:root{--pad: 1.25rem}*{box-sizing:border-box}html{scrollbar-gutter:stable}body{margin:0;font-family:Karla,system-ui,sans-serif;color:var(--ink, #16181d);background:#f6f7f9}.empty{min-height:60vh;display:grid;place-items:center;color:var(--muted, #5b6270)}.signin{position:relative;min-height:100vh;display:grid;place-items:center;padding:2rem 1.25rem}.signin-stage{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center;gap:1.6rem;width:100%;max-width:24rem}.signin-logo{width:220px;max-width:72%;height:auto}.signin-card{width:100%;background:#fff;border:1px solid var(--line, #e7e9ee);border-radius:18px;padding:2.4rem 2.2rem;max-width:24rem;text-align:center;box-shadow:0 24px 60px -28px #10182d73}.signin-card h1{font-weight:800;margin:0 0 .5rem}.signin-card p{color:var(--muted, #5b6270);margin-bottom:1.5rem}@media (prefers-reduced-motion: no-preference){.signin-logo{animation:card-rise-in .7s cubic-bezier(.22,.61,.36,1) both}.signin-card{animation:card-rise-in .7s cubic-bezier(.22,.61,.36,1) both .12s}}.topbar{display:flex;align-items:center;gap:1.5rem;padding:.8rem var(--pad);background:#fff;border-bottom:1px solid var(--line, #e7e9ee);position:sticky;top:0;z-index:10}.topbar .brand{font-weight:800;font-size:1.02rem;line-height:1.2}.topbar .brand span{color:var(--magenta, #C639A5)}@media (max-width: 760px){.topbar{gap:.8rem;flex-wrap:wrap}.topbar .brand span{display:none}}.topbar nav{display:flex;gap:.4rem;margin-left:auto}.topbar nav button,.admin-tabs button{font:inherit;border:1px solid transparent;background:none;padding:.45rem .9rem;border-radius:999px;cursor:pointer;color:var(--body, #2c2e34)}.topbar nav button.on,.admin-tabs button.on{background:var(--ink, #16181d);color:#fff}.who{display:flex;align-items:center;gap:.8rem;font-size:.9rem;color:var(--muted, #5b6270)}button.link{background:none;border:none;color:var(--blue, #1C3BA1);cursor:pointer;font:inherit}.content{max-width:72rem;margin:0 auto;padding:var(--pad)}.dash-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:2rem;align-items:start}@media (max-width: 880px){.dash-grid{grid-template-columns:1fr}.preview-col{order:-1}}.controls h2{font-weight:800;font-size:1.15rem;margin:0 0 1rem}.controls h2 em,.field em{font-style:normal;font-weight:400;color:var(--muted, #5b6270);font-size:.85em}.field{display:block;margin-bottom:1.1rem}.field>span{display:block;font-weight:600;font-size:.9rem;margin-bottom:.35rem}.field input,.project-row input,select{width:100%;font:inherit;padding:.55rem .7rem;border:1px solid var(--line, #e7e9ee);border-radius:10px;background:#fff}.project-row{display:grid;grid-template-columns:1fr 1.4fr;gap:.5rem;margin-bottom:.5rem}.field.toggle{display:flex;align-items:center;gap:.6rem}.field.toggle input{width:auto}.field.toggle span{font-weight:600;font-size:.9rem}.ext-line{display:flex;align-items:center;gap:.55rem}.ext-base{font-size:.95rem;color:var(--body, #2c2e34);white-space:nowrap;font-weight:500}.ext-box{width:5.5rem;font:inherit;padding:.55rem .7rem;border:1px solid var(--line, #e7e9ee);border-radius:10px}.headshot-picker{display:flex;gap:.6rem;flex-wrap:wrap}.hs-opt{width:58px;height:58px;border-radius:50%;padding:0;border:2px solid var(--line, #e7e9ee);background:none;cursor:pointer;overflow:hidden;transition:border-color .15s,box-shadow .15s}.hs-opt img{width:100%;height:100%;object-fit:cover;display:block}.hs-opt.on{border-color:var(--cyan, #28C2E5);box-shadow:0 0 0 2px var(--cyan, #28C2E5)}.err{color:#c0392b;font-size:.85rem}.field-ok{color:#0b8a4b;font-size:.8rem;margin:.35rem 0 0}.field-warn{color:#c0392b;font-size:.8rem;margin:.35rem 0 0}.links{display:flex;gap:1rem;margin-top:1rem;font-size:.9rem}.links a{color:var(--blue, #1C3BA1)}.preview-frame{position:sticky;top:5rem}.preview-hidden-badge{background:#fff3cd;color:#8a6d00;border:1px solid #ffe69c;border-radius:10px;padding:.5rem .8rem;font-size:.85rem;text-align:center;margin-bottom:.6rem}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(8.5rem,1fr));gap:.8rem;margin:1rem 0}.stat{background:linear-gradient(160deg,#f4f7ff,#fbf2fb);border:1px solid #ece1f1;border-radius:16px;padding:1.1rem .9rem;text-align:center}.analytics-full{width:100%;margin:2rem 0 0;padding:1.8rem 0 0;border-top:1px solid var(--line, #e7e9ee);clear:both}.analytics-panel{width:100%}.analytics-full>h2{font-weight:800;font-size:1.15rem;margin:0 0 1rem}.analytics-full>h2 em{font-style:normal;font-weight:400;color:var(--muted, #5b6270);font-size:.85em}.stat.feature{background:linear-gradient(135deg,#1c3ba1,#7a3b9f 52%,#c639a5);border:none;box-shadow:0 10px 24px -12px #782d8c8c}.stat.feature .stat-n{color:#fff}.stat.feature .stat-l{color:#ffffffe6}.stat.feature .trend{color:#ffffffeb}.stat.feature .trend.up{color:#c8f5d9}.stat .trend{font-size:.78rem;font-weight:700;margin-left:.45rem}.trend.up{color:#1a7f48}.trend.down{color:#b3261e}.trend.flat{color:var(--muted, #5b6270)}.analytics-panel h3{font-weight:800;margin:1.4rem 0 .7rem}.bd-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem 1.4rem;margin:.4rem 0 1.2rem}.bd{background:#fff;border:1px solid var(--line, #e7e9ee);border-radius:14px;padding:.9rem 1rem}.bd h4{margin:0 0 .6rem;font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted, #5b6270)}.bd-row{display:grid;grid-template-columns:6.5rem 1fr auto;align-items:center;gap:.6rem;margin:.35rem 0;font-size:.86rem}.bd-k{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-transform:capitalize}.bd-bar{height:8px;background:var(--soft, #f6f7f9);border-radius:999px;overflow:hidden}.bd-bar span{display:block;height:100%;background:linear-gradient(90deg,#1c3ba1,#c639a5);border-radius:999px}.bd-v{font-variant-numeric:tabular-nums;font-weight:600}.bd-v em{font-style:normal;color:var(--muted, #5b6270);font-weight:400;margin-left:.35rem;font-size:.82em}.table-wrap{overflow-x:auto}.grid th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.grid th.sortable:hover{color:var(--cyan, #28C2E5)}.stat-n{font-size:1.75rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-l{font-size:.78rem;color:var(--muted, #5b6270);margin-top:.2rem}.muted{color:var(--muted, #5b6270);font-size:.9rem}table.recent,table.grid{width:100%;border-collapse:collapse;font-size:.88rem;background:#fff;border:1px solid var(--line, #e7e9ee);border-radius:12px;overflow:hidden}table th,table td{text-align:left;padding:.55rem .7rem;border-bottom:1px solid var(--line, #e7e9ee)}table th{background:var(--soft, #f6f7f9);font-weight:700;font-size:.8rem}tr.off{opacity:.5}.grid a{color:var(--blue, #1C3BA1)}.pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.72rem;background:var(--soft, #f6f7f9);border:1px solid var(--line, #e7e9ee);margin-right:.25rem}.pill.warn{background:#fff3cd;border-color:#ffe69c;color:#8a6d00}.pill.core{background:#e6f7fb;border-color:#b8e9f3;color:#0b6b80}.admin-tabs{display:flex;gap:.4rem;margin-bottom:1.2rem;max-width:30rem}.admin-tabs button{flex:1;text-align:center}.admin h3{margin:1.5rem 0 .6rem;font-weight:800}.roles-admin .hint{color:var(--muted, #5b6270);font-size:.85rem;max-width:40rem;margin-bottom:1rem}.tag-list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.5rem}.tag-list li label{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer}.tag-list .tag{display:inline-block;padding:.25rem .65rem;border-radius:999px;font-size:.82rem;background:var(--soft, #f6f7f9);border:1px solid var(--line, #e7e9ee)}.tag-list .tag.hidden{background:#fdeaea;border-color:#f3c2c2;color:#9a2a2a;text-decoration:line-through}.roles-save{margin-top:1.2rem;display:flex;align-items:center;gap:.8rem}.saved-note{color:#1a7f48;font-size:.85rem;font-weight:600}.role-toggles{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.1rem}.role-chip{flex:0 0 auto;display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .65rem;border:1px solid var(--line, #e7e9ee);border-radius:8px;background:#fff;font-size:.8rem;line-height:1.15;white-space:nowrap;cursor:pointer;-webkit-user-select:none;user-select:none}.role-chip input{flex:none;width:14px;height:14px;margin:0;accent-color:var(--cyan, #28C2E5)}.role-chip.off{opacity:.55;text-decoration:line-through;background:var(--soft, #f6f7f9)}.field-note{font-size:.74rem;color:var(--muted, #5b6270);margin:.45rem 0 0}.picker{border:1px solid var(--line, #e7e9ee);border-radius:12px;padding:.8rem;background:#fff}.chosen{display:flex;flex-direction:column;gap:.5rem}.chosen:not(:empty){margin-bottom:.7rem}.chosen-item{display:flex;align-items:center;gap:.6rem;background:var(--soft, #f6f7f9);border-radius:10px;padding:.35rem .5rem}.chosen-item img,.chosen-item .ph{width:34px;height:34px;border-radius:8px;object-fit:cover;flex:none}.chosen-item .ph{display:grid;place-items:center;background:var(--brand-grad, linear-gradient(100deg,#1C3BA1,#C639A5));color:#fff;font-weight:700}.chosen-item .ci-name{flex:1;font-size:.9rem;font-weight:500}.chosen-item button{border:none;background:none;font-size:1.35rem;line-height:1;color:var(--muted, #5b6270);cursor:pointer;padding:0 .3rem}.picker-group{margin-bottom:.6rem}.picker-label{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted, #5b6270);margin:.2rem 0 .4rem}.opt-list{display:flex;flex-direction:column;gap:.25rem;max-height:15rem;overflow-y:auto}.opt{display:flex;align-items:center;gap:.55rem;width:100%;text-align:left;border:1px solid var(--line, #e7e9ee);background:#fff;border-radius:9px;padding:.35rem .5rem;cursor:pointer;font:inherit}.opt:hover{border-color:var(--cyan, #28C2E5);background:#f3fcfe}.opt img{width:30px;height:30px;border-radius:7px;object-fit:cover;flex:none}.opt span{font-size:.88rem}.opt em{font-style:normal;color:var(--muted, #5b6270)}.picker-search{width:100%;font:inherit;padding:.5rem .65rem;border:1px solid var(--line, #e7e9ee);border-radius:9px;margin:.1rem 0 .5rem}.switch{position:relative;display:inline-block;width:38px;height:22px}.switch input{opacity:0;width:0;height:0}.switch span{position:absolute;top:0;right:0;bottom:0;left:0;background:#c8ccd4;border-radius:999px;transition:.15s;cursor:pointer}.switch span:before{content:"";position:absolute;height:16px;width:16px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.15s}.switch input:checked+span{background:var(--cyan, #28C2E5)}.switch input:checked+span:before{transform:translate(16px)}
