:root{--ink:#16233f;--ink-2:#3b4863;--ink-3:#6b7690;--line:#e2e5eb;--line-strong:#cdd2dc;--paper:#f6f7f9;--surface:#fff;--brass:#b07d2b;--brass-soft:#f5ecdc;--pos:#2e9d6b;--pos-soft:#e3f4ec;--neu:#e2a325;--neu-soft:#fbf1db;--neg:#d2453f;--neg-soft:#fbe6e5;--focus:#2f6fde;--radius-s:6px;--radius-m:10px;--radius-l:16px;--shadow-pop:0 18px 48px #16233f2e;--font-display:"Bricolage Grotesque", "Segoe UI", system-ui, sans-serif;--font-body:"Instrument Sans", "Segoe UI", system-ui, sans-serif;--side-w:236px}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;font-size:15px;line-height:1.5}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0;font-weight:650;line-height:1.15}h1{font-size:30px}h2{font-size:21px}h3{font-size:16px}p{margin:0}a{color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important}}.muted{color:var(--ink-3)}.small{font-size:13px}.num{font-family:var(--font-display);font-variant-numeric:tabular-nums}.stack{flex-direction:column;gap:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.grow{flex:1}.shell{grid-template-columns:var(--side-w) 1fr;background:linear-gradient(to right, var(--ink) var(--side-w), var(--paper) var(--side-w));min-height:100%;display:grid}.side{background:var(--ink);color:#d9deea;flex-direction:column;gap:4px;height:100vh;padding:22px 14px;display:flex;position:sticky;top:0}.brand{color:#fff;font-family:var(--font-display);align-items:center;gap:10px;padding:0 10px 22px;font-size:19px;font-weight:650;display:flex}.brand small{font-family:var(--font-body);color:#9aa5bd;font-size:12px;font-weight:400;display:block}.nav-link{border-radius:var(--radius-s);color:#c4cbdb;align-items:center;gap:10px;padding:9px 12px;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:#fff;background:#ffffff0f}.nav-link.active{color:#fff;box-shadow:inset 3px 0 0 var(--brass);background:#ffffff1a}.nav-link svg{opacity:.85;flex:none;width:18px;height:18px}.side-foot{border-top:1px solid #ffffff14;margin-top:auto;padding:12px 10px 0;font-size:13px}.side-foot .who{color:#fff;text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.side-foot button{margin-top:8px}.main{min-width:0}.topbar{border-bottom:1px solid var(--line);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;padding:18px 32px;display:flex}.topbar .org{font-family:var(--font-display);font-size:18px;font-weight:650}.page{max-width:1240px;padding:28px 32px 56px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:22px;display:flex}.page-head p{color:var(--ink-3);max-width:64ch;margin-top:6px}.btn.menu-toggle{display:none}@media (width<=880px){.shell{background:var(--paper);grid-template-columns:1fr}.side{z-index:40;width:260px;transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.shell.menu-open .side{box-shadow:var(--shadow-pop);transform:none}.btn.menu-toggle{display:inline-flex}.topbar{padding:14px 16px}.page{padding:20px 16px 48px}h1{font-size:25px}}.banner{border-bottom:1px solid #0000;align-items:center;gap:10px;padding:12px 32px;font-size:14px;display:flex}.banner.warn{background:var(--brass-soft);color:#6d4a12;border-color:#ead7b4}.banner.danger{background:var(--neg-soft);color:#8c2622;border-color:#f2c4c2}.banner a{color:inherit;font-weight:600}@media (width<=880px){.banner{padding:10px 16px}}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-l)}.panel-head{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 20px;display:flex}.panel-body{padding:20px}.btn{border-radius:var(--radius-s);border:1px solid var(--line-strong);background:var(--surface);height:38px;color:var(--ink);font:600 14px/1 var(--font-body);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:8px;padding:0 16px;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--ink-3)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--ink);border-color:var(--ink);color:#fff}.btn.primary:hover{background:#22325a}.btn.danger{color:var(--neg);border-color:#efc1bf}.btn.danger:hover{background:var(--neg-soft)}.btn.ghost{background:0 0;border-color:#0000}.btn.ghost:hover{background:#16233f0f}.btn.small{height:32px;padding:0 12px;font-size:13px}.btn.on-dark{color:#d9deea;background:0 0;border-color:#ffffff2e}.btn.on-dark:hover{color:#fff;border-color:#fff6}.btn svg{width:16px;height:16px}.field{flex-direction:column;gap:6px;display:flex}.field>span{color:var(--ink-2);font-size:13px;font-weight:600}.field .hint{color:var(--ink-3);font-size:12px;font-weight:400}.input,.select,.textarea{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);width:100%;min-height:40px;color:var(--ink);font:15px/1.4 var(--font-body);padding:9px 12px}.textarea{resize:vertical;min-height:84px}.input:focus,.select:focus,.textarea:focus{border-color:var(--focus);outline:none;box-shadow:0 0 0 3px #2f6fde26}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=640px){.form-grid{grid-template-columns:1fr}}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex}.check input{width:18px;height:18px;accent-color:var(--ink);margin-top:2px}.segmented{border:1px solid var(--line-strong);border-radius:var(--radius-s);scrollbar-width:none;background:var(--surface);max-width:100%;display:inline-flex;overflow-x:auto}.segmented button{white-space:nowrap;height:36px;font:600 13px var(--font-body);color:var(--ink-2);cursor:pointer;background:0 0;border:0;flex:none;padding:0 14px}.segmented button+button{border-left:1px solid var(--line)}.segmented button[aria-pressed=true]{background:var(--ink);color:#fff}.chips{border:1px solid var(--line-strong);border-radius:var(--radius-s);background:var(--surface);flex-wrap:wrap;gap:6px;min-height:42px;padding:6px;display:flex}.chip{background:var(--paper);border:1px solid var(--line);border-radius:999px;align-items:center;gap:6px;padding:3px 6px 3px 10px;font-size:13px;display:inline-flex}.chip button{cursor:pointer;color:var(--ink-3);background:0 0;border:0;padding:2px 4px;font-size:15px;line-height:1}.chips input{min-width:160px;font:14px var(--font-body);border:0;outline:none;flex:1;padding:4px}.form-error{color:var(--neg);font-size:14px}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%;font-size:14px}.table th{text-align:left;color:var(--ink-3);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px 16px;font-size:13px;font-weight:600}.table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:12px 16px}.table tr:last-child td{border-bottom:0}.table td.num,.table th.num{text-align:right}.table tbody tr:hover{background:#fafbfc}.badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.ok{background:var(--pos-soft);color:#1d6b48}.badge.warn{background:var(--neu-soft);color:#835a0c}.badge.bad{background:var(--neg-soft);color:#9a2b26}.badge.plain{background:var(--paper);color:var(--ink-2);border:1px solid var(--line)}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.on{background:var(--pos);box-shadow:0 0 0 3px var(--pos-soft)}.dot.off{background:var(--line-strong)}.mood{background:var(--line);border-radius:999px;min-width:120px;height:10px;display:flex;overflow:hidden}.mood span{height:100%;display:block}.mood .p{background:var(--pos)}.mood .n{background:var(--neu)}.mood .x{background:var(--neg)}.mood.lg{height:16px}.counts{font-variant-numeric:tabular-nums;align-items:center;gap:12px;display:inline-flex}.counts span{align-items:center;gap:4px;display:inline-flex}.score{font-family:var(--font-display);font-size:16px;font-weight:650}.figures{border:1px solid var(--line);border-radius:var(--radius-l);background:var(--surface);grid-template-columns:1.4fr repeat(3,1fr);display:grid;overflow:hidden}.figure{border-left:1px solid var(--line);padding:18px 20px}.figure:first-child{border-left:0}.figure .label{color:var(--ink-3);font-size:13px}.figure .value{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin-top:4px;font-size:34px;font-weight:650;line-height:1.1}.figure .value small{color:var(--ink-3);font-size:16px;font-weight:500}@media (width<=900px){.figures{grid-template-columns:1fr 1fr}.figure:nth-child(3){border-left:0}.figure:nth-child(n+3){border-top:1px solid var(--line)}}.backdrop{z-index:60;background:#16233f73;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius-l);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow-pop);overflow:auto}.modal.wide{width:min(760px,100%)}.modal-head{justify-content:space-between;align-items:flex-start;gap:16px;padding:20px 24px 0;display:flex}.modal-body{padding:18px 24px}.modal-foot{flex-wrap:wrap;justify-content:flex-end;gap:10px;padding:0 24px 22px;display:flex}.toasts{z-index:80;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--ink);color:#fff;border-radius:var(--radius-m);box-shadow:var(--shadow-pop);max-width:380px;padding:12px 16px;font-size:14px}.toast.error{background:#8c2622}.auth{grid-template-columns:minmax(0,1fr) minmax(360px,480px);min-height:100%;display:grid}.auth-art{background:var(--ink);color:#fff;flex-direction:column;justify-content:space-between;gap:32px;padding:48px;display:flex}.auth-art .faces{gap:18px;display:flex}.auth-art .faces svg{width:76px;height:76px}.auth-art h1{max-width:14ch;font-size:42px}.auth-art p{color:#aeb8cd;max-width:46ch;margin-top:14px}.auth-form{background:var(--surface);flex-direction:column;justify-content:center;gap:22px;padding:48px 40px;display:flex}.auth-form form{flex-direction:column;gap:16px;display:flex}@media (width<=860px){.auth{grid-template-columns:1fr}.auth-art{padding:28px 20px}.auth-art h1{font-size:28px}.auth-art .faces svg{width:48px;height:48px}.auth-form{padding:28px 20px}}.empty{text-align:center;color:var(--ink-3);padding:40px 20px}.empty h3{color:var(--ink);margin-bottom:6px}.spinner{border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}.center{place-items:center;min-height:200px;display:grid}@keyframes spin{to{transform:rotate(360deg)}}.tabs{border-bottom:1px solid var(--line);scrollbar-width:none;gap:4px;margin-bottom:18px;display:flex;overflow-x:auto}.tabs button{font:600 14px var(--font-body);color:var(--ink-3);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px}.tabs button[aria-selected=true]{color:var(--ink);border-bottom-color:var(--brass)}.kv{grid-template-columns:max-content 1fr;gap:8px 20px;font-size:14px;display:grid}.kv dt{color:var(--ink-3)}.kv dd{margin:0}.pager{border-top:1px solid var(--line);color:var(--ink-3);justify-content:space-between;align-items:center;padding:12px 16px;font-size:13px;display:flex}@media (width<=1000px){.branding-grid{grid-template-columns:1fr!important}.branding-grid>.panel{position:static!important}}.face-toggles{flex-wrap:wrap;gap:10px;display:flex}.face-toggle{border:1px solid var(--line);background:var(--surface);min-width:92px;font:600 13px var(--font-body);color:var(--ink);cursor:pointer;border-radius:14px;flex-direction:column;align-items:center;gap:4px;padding:10px 8px;display:flex}.face-toggle .small{color:var(--ink-3);font-weight:500}.face-toggle[aria-pressed=true]{border:2px solid var(--ink);background:color-mix(in srgb, var(--ink) 8%, var(--surface));padding:9px 7px}.face-toggle[aria-pressed=true] .small{color:var(--ink)}.swatches{flex-wrap:wrap;gap:10px;display:flex}.swatch{cursor:pointer;font:inherit;color:var(--ink-2);background:0 0;border:0;flex-direction:column;align-items:center;gap:4px;padding:0;display:flex}.swatch span{border:1px solid var(--line-strong);border-radius:12px;width:44px;height:44px}.swatch[aria-pressed=true] span{outline:3px solid var(--ink);outline-offset:2px}.swatch:disabled{cursor:not-allowed;opacity:.45}.swatch small{font-size:11px}.plan-sum{flex-wrap:wrap;align-items:baseline;gap:10px;min-height:40px;display:flex}.plan-sum strong{font-size:20px}.tier-features{color:var(--ink-2);flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;padding:0;font-size:13px;list-style:none;display:flex}.tier-features li:before{content:"✓ ";color:#1d6b48;font-weight:700}.tier-features li.off{color:var(--ink-3)}.tier-features li.off:before{content:"– ";color:var(--ink-3)}.feature-row{border-top:1px solid var(--line);grid-template-columns:1fr auto;align-items:center;gap:12px;padding:10px 0;display:grid}.feature-row:first-child{border-top:0}.license-meter{background:var(--paper);border:1px solid var(--line);border-radius:999px;height:8px;margin-top:8px;overflow:hidden}.license-meter span{background:var(--ink);height:100%;display:block}.license-meter.full span{background:#c58a14}.note{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:10px 14px;font-size:14px}.note.warn{background:var(--neu-soft);color:#6b4a0a;border-color:#0000}.plan-lock{background:var(--paper);border:1px dashed var(--line);color:var(--ink-2);border-radius:12px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;display:flex}.plan-lock strong{color:var(--ink)}.license-card{margin-bottom:18px}.license-card.full{border-color:#e7c27a}.license-card-body{gap:14px;display:grid}.license-figures{flex-wrap:wrap;gap:20px 36px;display:flex}.license-stat{display:grid}.license-stat .n{color:var(--ink);font-size:30px;font-weight:700;line-height:1.1}.license-stat .n.ok{color:#1d6b48}.license-stat .n.warn{color:#9a5b00}.license-stat .l{color:var(--ink-3);font-size:13px}.license-slots{flex-wrap:wrap;gap:6px;display:flex}.license-slots span{background:var(--paper);border:1px solid var(--line-strong,var(--line));border-radius:999px;width:34px;height:10px}.license-slots span.used{background:var(--ink);border-color:var(--ink)}.license-help{background:var(--neu-soft);color:#5c3d06;border-radius:12px;gap:10px;padding:14px 16px;font-size:14px;display:grid}.license-help strong{color:#4a3104}
