:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f2;--surface:#fcfcfb;--surface-2:#f3f3f0;--surface-3:#ebebe6;--border:#0b0b0b1a;--border-strong:#0b0b0b2e;--text:#0b0b0b;--text-2:#52514e;--text-3:#898781;--accent:#2a78d6;--accent-strong:#1c5cab;--accent-soft:#e3eefc;--on-accent:#fff;--grid:#e1e0d9;--axis:#c3c2b7;--series-1:#2a78d6;--series-2:#eb6834;--good:#0ca30c;--good-text:#006300;--good-soft:#e3f5e3;--warn:#fab219;--warn-text:#8a5a00;--warn-soft:#fff4dc;--bad:#d03b3b;--bad-text:#b02a2a;--bad-soft:#fbe6e6;--violet-soft:#ecebfa;--violet-text:#4a3aa7;--shadow:0 1px 2px #0000000a, 0 4px 16px #0000000d;--radius:12px;--radius-sm:8px;--sidebar:248px;--sb-bg:#343a46;--sb-sub:#2c313b;--sb-input:#2c313b;--sb-line:#4a5160;--sb-text:#d4d8e0;--sb-muted:#9aa1ae;--sb-hover:#ffffff0f;--sb-active:#ffffff1a;--sb-accent:#ff7a3d;--tone-blue:#1e88e5;--tone-green:#1fa45a;--tone-orange:#f2711c;--tone-violet:#8b5cf6;--tone-indigo:#5b5ce6;--tone-red:#e5484d;--tone-pink:#e5397a;--tone-teal:#14a39a;--tone-slate:#4b5565;color:var(--text);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}@media (prefers-color-scheme:dark){:root:where(:not([data-theme=light])){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d0d;--surface:#1a1a19;--surface-2:#222220;--surface-3:#2c2c2a;--border:#ffffff1a;--border-strong:#ffffff2e;--text:#fff;--text-2:#c3c2b7;--text-3:#898781;--accent:#3987e5;--accent-strong:#6da7ec;--accent-soft:#1b2b40;--grid:#2c2c2a;--axis:#383835;--series-1:#3987e5;--series-2:#d95926;--good-text:#0ca30c;--good-soft:#142914;--warn-text:#fab219;--warn-soft:#2e2510;--bad-text:#e66767;--bad-soft:#351a1a;--violet-soft:#25213f;--violet-text:#9085e9;--shadow:0 1px 2px #0000004d;--sb-bg:#15171c;--sb-sub:#101216;--sb-input:#101216;--sb-line:#2a2e36}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0d0d0d;--surface:#1a1a19;--surface-2:#222220;--surface-3:#2c2c2a;--border:#ffffff1a;--border-strong:#ffffff2e;--text:#fff;--text-2:#c3c2b7;--text-3:#898781;--accent:#3987e5;--accent-strong:#6da7ec;--accent-soft:#1b2b40;--grid:#2c2c2a;--axis:#383835;--series-1:#3987e5;--series-2:#d95926;--good-text:#0ca30c;--good-soft:#142914;--warn-text:#fab219;--warn-soft:#2e2510;--bad-text:#e66767;--bad-soft:#351a1a;--violet-soft:#25213f;--violet-text:#9085e9;--shadow:0 1px 2px #0000004d;--sb-bg:#15171c;--sb-sub:#101216;--sb-input:#101216;--sb-line:#2a2e36}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{margin:0;line-height:1.25}h1{font-size:22px;font-weight:650}h2{font-size:16px;font-weight:600}h3{font-size:14px;font-weight:600}p{margin:0}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{min-height:100vh;display:flex}.sidebar{width:var(--sidebar);background:var(--sb-bg);color:var(--sb-text);z-index:40;flex-direction:column;flex-shrink:0;transition:transform .2s;display:flex;position:fixed;inset:0 auto 0 0}.brand{color:#fff;align-items:center;gap:10px;padding:16px 18px 14px;text-decoration:none;display:flex}.brand:hover{text-decoration:none}.brand-logo{background:var(--brand-grad);color:#fff;border-radius:50%;flex-shrink:0;place-items:center;width:34px;height:34px;display:grid}.brand-name{white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:650;line-height:1.2;overflow:hidden}.brand-sub{color:var(--sb-muted);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.side-search{border:1px solid var(--sb-line);background:var(--sb-input);border-radius:6px;margin:4px 16px 6px;display:flex;overflow:hidden}.side-search input{color:#fff;background:0 0;border:0;outline:none;flex:1;min-width:0;padding:9px 10px}.side-search input::placeholder{color:var(--sb-muted)}.side-search span{border-left:1px solid var(--sb-line);color:#fff;place-items:center;width:40px;display:grid}.side-search:focus-within{border-color:var(--sb-accent)}.nav{scrollbar-width:thin;scrollbar-color:var(--sb-line) transparent;flex:1;padding:4px 0 24px;overflow-y:auto}.nav-group{text-transform:uppercase;letter-spacing:.05em;color:var(--sb-muted);padding:16px 18px 6px;font-size:11px;font-weight:600}.nav a,.nav-parent{width:100%;color:var(--sb-text);cursor:pointer;text-align:left;background:0 0;border:0;border-left:3px solid #0000;align-items:center;gap:12px;padding:9px 18px;font-size:14px;font-weight:500;text-decoration:none;display:flex}.nav a .lbl,.nav-parent .lbl{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.nav a:hover,.nav-parent:hover{background:var(--sb-hover);color:#fff;text-decoration:none}.nav a.active{background:var(--sb-active);color:#fff;border-left-color:var(--sb-accent);font-weight:600}.nav-parent.has-active{color:#fff}.nav-parent .chev{opacity:.8;flex-shrink:0;transition:transform .15s}.nav-tree.open>.nav-parent .chev{transform:rotate(-90deg)}.nav-children{background:var(--sb-sub);padding:4px 0}.nav a.sub{padding:7px 18px 7px 30px;font-size:13.5px}.nav a.sub .dot{opacity:.7;border:1.5px solid;border-radius:50%;flex-shrink:0;width:6px;height:6px}.nav a.sub.active{color:#fff;background:0 0;border-left-color:#0000}.nav a.sub.active .dot{background:var(--sb-accent);border-color:var(--sb-accent);opacity:1}.nav .ai-tag{color:#c9c1ff;background:#8b7cf640;border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700}.main{margin-left:var(--sidebar);flex-direction:column;flex:1;min-width:0;transition:margin-left .2s;display:flex}.app.collapsed .sidebar{transform:translate(-100%)}.app.collapsed .main{margin-left:0}.topbar{background:var(--surface);border-bottom:1px solid var(--border);z-index:30;align-items:center;gap:6px;height:62px;padding:0 20px;display:flex;position:sticky;top:0;box-shadow:0 1px 6px #0000000a}.topbar .spacer{flex:1}.topbar-title{color:var(--text-2);white-space:nowrap;margin:0 10px 0 8px;font-size:17px;font-weight:650}.cmd-btn{border:1px solid var(--border-strong);background:var(--surface);height:40px;color:var(--text-2);cursor:pointer;border-radius:99px;align-items:center;gap:8px;padding:0 14px;font-weight:600;display:inline-flex}.cmd-btn:hover{border-color:var(--accent);color:var(--accent-strong)}.add-btn{gap:3px;padding:0 8px}.add-btn .plus{background:var(--text-2);width:22px;height:22px;color:var(--surface);border-radius:50%;place-items:center;display:grid}.bell-btn{padding:0 10px;position:relative}.bell-count{color:#1b1b1b;background:#f5b400;border-radius:5px;place-items:center;min-width:18px;height:18px;padding:0 5px;font-size:11px;font-weight:700;display:grid;position:absolute;top:2px;right:0}.avatar-btn{cursor:pointer;background:0 0;border:0;border-radius:50%;margin-left:6px;padding:0}.avatar-btn .avatar{background:var(--brand-grad);color:#fff;width:38px;height:38px;box-shadow:0 0 0 3px var(--accent-soft)}.dd{position:relative}.dd-menu{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);z-index:50;min-width:220px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000024}.dd-head{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:8px 10px 6px;font-size:11px;font-weight:600}.dd-user{border-bottom:1px solid var(--border);margin-bottom:4px;padding:8px 10px 10px}.dd-menu button{border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;color:var(--text);background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;display:flex}.dd-menu button:hover{background:var(--surface-2)}.dd-menu button.danger{color:var(--bad-text)}.dd-menu .dd-foot{color:var(--accent);border-top:1px solid var(--border);border-radius:0 0 var(--radius-sm) var(--radius-sm);margin-top:4px;font-weight:550}.content{width:100%;max-width:1640px;margin:0 auto;padding:24px 28px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:20px;display:flex}.page-head p{color:var(--text-2);margin-top:4px}.page-actions{flex-wrap:wrap;gap:8px;display:flex}.backdrop{display:none}.ai-fab{z-index:45;color:#fff;border:3px solid var(--surface);background:linear-gradient(135deg,#ff6b6b,#e5484d);border-radius:50%;place-items:center;width:58px;height:58px;transition:transform .15s;display:grid;position:fixed;bottom:22px;right:22px;box-shadow:0 8px 24px #e5484d66}.ai-fab:hover{text-decoration:none;transform:translateY(-2px)scale(1.04)}.palette-backdrop{place-items:start center;padding-top:12vh}.palette{background:var(--surface);border:1px solid var(--border);border-radius:14px;width:100%;max-width:560px;overflow:hidden;box-shadow:0 24px 64px #0000004d}.palette-search{border-bottom:1px solid var(--border);color:var(--text-3);align-items:center;gap:10px;padding:14px 16px;display:flex}.palette-search input{color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:16px}kbd{border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text-3);border-radius:5px;padding:3px 6px;font:600 11px/1 system-ui,sans-serif}.palette-list{max-height:50vh;padding:6px;overflow-y:auto}.palette-list button{border-radius:var(--radius-sm);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:12px;width:100%;padding:8px 10px;font-weight:500;display:flex}.palette-list button.active{background:var(--accent-soft);color:var(--accent-strong)}@media (width<=960px){.sidebar,.app.collapsed .sidebar{box-shadow:var(--shadow);transform:translate(-100%)}.sidebar.open,.app.collapsed .sidebar.open{transform:none}.main{margin-left:0}.backdrop.show{z-index:35;background:#00000073;display:block;position:fixed;inset:0}.content{padding:16px}.topbar{padding:0 12px}}@media (width<=1200px){.hide-md{display:none!important}}@media (width<=600px){.topbar{gap:0}.cmd-btn{gap:4px;height:36px;padding:0 10px}.avatar-btn{margin-left:2px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.card-pad{padding:18px}.card-head{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;display:flex}.card-head .sub{color:var(--text-3);font-size:12px}.card-body{padding:18px}.grid{gap:16px;display:grid}.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}.span-2{grid-column:span 2}@media (width<=1100px){.grid-4,.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}.span-2{grid-column:auto}}.stack{flex-direction:column;gap:12px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.between{justify-content:space-between}.muted{color:var(--text-3)}.text-2{color:var(--text-2)}.small{font-size:12px}.mono{font-variant-numeric:tabular-nums}.right{text-align:right}.nowrap{white-space:nowrap}.pre{white-space:pre-wrap}.mt{margin-top:16px}.mb{margin-bottom:16px}.hr{background:var(--border);height:1px;margin:12px 0}.stat{padding:16px 18px}.stat-label{color:var(--text-2);align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.stat-icon{background:var(--accent-soft);width:30px;height:30px;color:var(--accent-strong);border-radius:8px;place-items:center;display:grid}.stat-value{letter-spacing:-.01em;margin-top:10px;font-size:26px;font-weight:650}.stat-foot{color:var(--text-3);margin-top:2px;font-size:12px}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);height:34px;color:var(--text);cursor:pointer;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-weight:550;text-decoration:none;display:inline-flex}.btn:hover{background:var(--surface-2);text-decoration:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.btn-primary:hover{background:var(--accent-strong)}.btn-ai{background:var(--violet-text);border-color:var(--violet-text);color:#fff}.btn-ai:hover{filter:brightness(1.08);background:var(--violet-text)}.btn-danger{color:var(--bad-text)}.btn-ghost{background:0 0;border-color:#0000}.btn-sm{height:28px;padding:0 10px;font-size:12px}.btn-icon{width:34px;padding:0}.btn-sm.btn-icon{width:28px}.input,.select,.textarea{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);width:100%;height:36px;padding:0 10px}.textarea{resize:vertical;height:auto;min-height:90px;padding:8px 10px}.input:focus,.select:focus,.textarea:focus{outline:2px solid var(--accent);outline-offset:-1px;border-color:#0000}.field{flex-direction:column;gap:5px;min-width:0;display:flex}.field>span{color:var(--text-2);font-size:12px;font-weight:550}.field .hint{color:var(--text-3);font-size:11px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 14px;display:grid}.form-grid .full{grid-column:1/-1}@media (width<=600px){.form-grid{grid-template-columns:minmax(0,1fr)}}.filters{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.filters .input,.filters .select{width:auto;min-width:160px}.search{position:relative}.search svg{color:var(--text-3);position:absolute;top:50%;left:10px;transform:translateY(-50%)}.search .input{min-width:240px;padding-left:32px}.check{cursor:pointer;align-items:center;gap:8px;display:inline-flex}.table-wrap{overflow-x:auto}table.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--text-3);border-bottom:1px solid var(--border);white-space:nowrap;background:var(--surface);padding:10px 14px;font-size:12px;font-weight:600}.table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px 14px}.table tr:last-child td{border-bottom:0}.table tbody tr:hover td{background:var(--surface-2)}.table td.num,.table th.num{text-align:right;font-variant-numeric:tabular-nums}.table .clickable{cursor:pointer}.cell-title{font-weight:550}.cell-sub{color:var(--text-3);font-size:12px}.badge{background:var(--surface-3);height:22px;color:var(--text-2);white-space:nowrap;border-radius:99px;align-items:center;gap:4px;padding:0 8px;font-size:12px;font-weight:550;display:inline-flex}.badge-good{background:var(--good-soft);color:var(--good-text)}.badge-warn{background:var(--warn-soft);color:var(--warn-text)}.badge-bad{background:var(--bad-soft);color:var(--bad-text)}.badge-info{background:var(--accent-soft);color:var(--accent-strong)}.badge-ai{background:var(--violet-soft);color:var(--violet-text)}.avatar{background:var(--accent-soft);width:34px;height:34px;color:var(--accent-strong);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:650;display:grid}.avatar-lg{width:56px;height:56px;font-size:18px}.tabs{border-bottom:1px solid var(--border);gap:2px;margin-bottom:16px;display:flex;overflow-x:auto}.tab{cursor:pointer;color:var(--text-2);white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 14px;font-weight:550}.tab:hover{color:var(--text)}.tab.active{color:var(--accent-strong);border-bottom-color:var(--accent)}.seg{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;display:inline-flex}.seg button{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:6px;padding:5px 12px;font-weight:550}.seg button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.modal-backdrop{z-index:100;background:#00000073;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:var(--radius);border:1px solid var(--border);flex-direction:column;width:100%;max-width:640px;max-height:calc(100vh - 32px);display:flex;box-shadow:0 20px 60px #00000040}.modal-lg{max-width:920px}.modal-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 18px;display:flex}.modal-body{padding:18px;overflow-y:auto}.modal-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 18px;display:flex}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:calc(100vw - 32px);display:flex;position:fixed;bottom:16px;right:16px}.toast{background:var(--text);color:var(--bg);border-radius:var(--radius-sm);box-shadow:var(--shadow);max-width:420px;padding:10px 14px;font-weight:500}.toast-error{background:var(--bad);color:#fff}.empty{text-align:center;color:var(--text-3);padding:40px 16px}.empty svg{margin-bottom:8px}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.loading{color:var(--text-3);justify-content:center;align-items:center;gap:10px;padding:48px;display:flex}.alert{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn-text);padding:10px 14px;font-weight:500}.alert-error{background:var(--bad-soft);color:var(--bad-text)}.alert-info{background:var(--accent-soft);color:var(--accent-strong)}.alert-ai{background:var(--violet-soft);color:var(--violet-text)}.chart{width:100%;position:relative}.chart svg{width:100%;display:block;overflow:visible}.chart text{fill:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.chart .grid-line{stroke:var(--grid);stroke-width:1px}.chart .base-line{stroke:var(--axis);stroke-width:1px}.chart-tip{pointer-events:none;background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow);white-space:nowrap;z-index:5;padding:6px 10px;font-size:12px;position:absolute;transform:translate(-50%,calc(-100% - 10px))}.chart-tip strong{color:var(--text);display:block}.chart-tip span{color:var(--text-2)}.hbar{grid-template-columns:90px 1fr 44px;align-items:center;gap:10px;padding:5px 0;display:grid}.hbar-track{background:var(--surface-3);border-radius:4px;height:10px;overflow:hidden}.hbar-fill{background:var(--series-1);border-radius:0 4px 4px 0;height:100%}.meter{background:var(--surface-3);border-radius:99px;height:6px;overflow:hidden}.meter>div{background:var(--series-1);border-radius:99px;height:100%}.auth-wrap{background:var(--bg);grid-template-columns:1.1fr 1fr;min-height:100vh;display:grid}.auth-hero{background:var(--hero);color:#fff;flex-direction:column;justify-content:space-between;padding:48px;display:flex;position:relative;overflow:hidden}.auth-hero:after{content:"";pointer-events:none;background:#ffffff0f;border-radius:50%;width:520px;height:520px;position:absolute;bottom:-200px;right:-180px}.auth-hero h1{letter-spacing:-.01em;max-width:480px;margin-top:16px;font-size:36px}.auth-hero ul{gap:12px;max-width:440px;margin:28px 0 0;padding:0;list-style:none;display:grid}.auth-hero li{opacity:.95;align-items:flex-start;gap:10px;display:flex}.auth-logo{background:var(--brand-grad);color:#fff;border-radius:12px;place-items:center;width:40px;height:40px;display:grid}.auth-chip{letter-spacing:.04em;text-transform:uppercase;background:#ffffff29;border-radius:99px;padding:4px 12px;font-size:12px;font-weight:650;display:inline-block}.auth-form{place-items:center;padding:24px;display:grid}.auth-card{gap:16px;width:100%;max-width:400px;padding:28px}.auth-card-icon{background:var(--brand-grad);color:#fff;width:46px;height:46px;box-shadow:0 8px 20px -8px var(--accent);border-radius:12px;place-items:center;display:grid}.auth-submit{height:42px;font-size:15px}@media (width<=860px){.auth-wrap{grid-template-columns:1fr}.auth-hero{display:none}}.chooser{background:var(--bg);flex-direction:column;align-items:center;gap:32px;min-height:100vh;padding:48px 16px;display:flex}.chooser-head{text-align:center;flex-direction:column;align-items:center;gap:8px;display:flex}.chooser-head .brand-logo{width:52px;height:52px}.chooser-head h1{font-size:28px}.chooser-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;width:100%;max-width:1100px;display:grid}.chooser-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);color:var(--text);border-top:4px solid var(--accent);flex-direction:column;gap:6px;padding:22px;transition:transform .15s,border-color .15s;display:flex}.chooser-card:hover{border-color:var(--accent);text-decoration:none;transform:translateY(-3px)}.chooser-card .auth-card-icon{margin-bottom:8px}.chooser-url{color:var(--accent-strong);align-items:center;gap:4px;margin-top:auto;padding-top:10px;font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:600;display:inline-flex}:root{--brand-grad:linear-gradient(135deg, #ff8a3d, #f04e23);--hero:linear-gradient(150deg, #1c5cab, #2a78d6 55%, #4a3aa7)}[data-portal]{--accent-soft:color-mix(in srgb, var(--accent) 13%, var(--surface))}[data-portal=superadmin]{--accent:#b45309;--accent-strong:#92400e;--sb-bg:#16171d;--sb-sub:#0f1014;--sb-input:#0f1014;--sb-line:#2c2e38;--sb-accent:#f5b301;--brand-grad:linear-gradient(135deg, #fcd34d, #d97706);--hero:linear-gradient(150deg, #0f1014, #1d1f2b 55%, #4a3206)}[data-portal=admin]{--brand-grad:linear-gradient(135deg, #ff8a3d, #f04e23);--hero:linear-gradient(150deg, #1c5cab, #2a78d6 55%, #4a3aa7)}[data-portal=staff]{--accent:#0f766e;--accent-strong:#115e59;--sb-bg:#0f3534;--sb-sub:#0b2928;--sb-input:#0b2928;--sb-line:#1f4f4d;--sb-accent:#2dd4bf;--brand-grad:linear-gradient(135deg, #2dd4bf, #0f766e);--hero:linear-gradient(150deg, #0b2928, #0f766e 60%, #0e7490)}[data-portal=student]{--accent:#4f46e5;--accent-strong:#4338ca;--sb-bg:#1e1b4b;--sb-sub:#17153a;--sb-input:#17153a;--sb-line:#34307a;--sb-accent:#a5b4fc;--brand-grad:linear-gradient(135deg, #818cf8, #4f46e5);--hero:linear-gradient(150deg, #1e1b4b, #4f46e5 55%, #7c3aed)}[data-portal=parent]{--accent:#15803d;--accent-strong:#166534;--sb-bg:#12301e;--sb-sub:#0d2617;--sb-input:#0d2617;--sb-line:#22543a;--sb-accent:#86efac;--brand-grad:linear-gradient(135deg, #4ade80, #15803d);--hero:linear-gradient(150deg, #0d2617, #15803d 55%, #0f766e)}:root[data-theme=dark] [data-portal]:not([data-portal=admin]){--accent-strong:color-mix(in srgb, var(--accent) 45%, #fff)}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) [data-portal]:not([data-portal=admin]){--accent-strong:color-mix(in srgb, var(--accent) 45%, #fff)}}.portal-pill{background:var(--accent-soft);color:var(--accent-strong);white-space:nowrap;border-radius:99px;padding:4px 10px;font-size:12px;font-weight:650}.chat{flex-direction:column;height:calc(100vh - 174px);min-height:420px;display:flex}.chat-log{flex-direction:column;flex:1;gap:14px;padding:18px;display:flex;overflow-y:auto}.msg{border-radius:14px;max-width:min(760px,92%);padding:10px 14px}.msg-user{background:var(--accent);color:var(--on-accent);white-space:pre-wrap;border-bottom-right-radius:4px;align-self:flex-end}.msg-ai{background:var(--surface-2);border:1px solid var(--border);border-bottom-left-radius:4px;align-self:flex-start}.chat-input{border-top:1px solid var(--border);gap:8px;padding:12px;display:flex}.chat-input .textarea{height:42px;min-height:42px}.suggestions{flex-wrap:wrap;gap:8px;display:flex}.suggestions button{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;color:var(--text-2);border-radius:99px;padding:6px 12px;font-size:13px}.suggestions button:hover{border-color:var(--accent);color:var(--accent-strong)}.md p{margin:0 0 8px}.md p:last-child{margin-bottom:0}.md ul,.md ol{margin:4px 0 8px;padding-left:20px}.md table{border-collapse:collapse;margin:6px 0 10px;font-size:13px;display:block;overflow-x:auto}.md th,.md td{border:1px solid var(--border-strong);text-align:left;padding:4px 8px}.md th{background:var(--surface-3)}.md code{background:var(--surface-3);border-radius:4px;padding:1px 5px;font-size:12px}.md h1,.md h2,.md h3,.md h4{margin:10px 0 6px;font-size:14px}.att-btns{gap:4px;display:inline-flex}.att-btn{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;width:34px;height:30px;color:var(--text-2);border-radius:6px;font-weight:650}.att-btn.on.P{background:var(--good-soft);border-color:var(--good);color:var(--good-text)}.att-btn.on.A{background:var(--bad-soft);border-color:var(--bad);color:var(--bad-text)}.att-btn.on.L{background:var(--warn-soft);border-color:var(--warn);color:var(--warn-text)}.att-cell{text-align:center;width:26px;font-size:11px;font-weight:650;padding:6px 2px!important}.att-cell.P{color:var(--good-text)}.att-cell.A{color:var(--bad-text);background:var(--bad-soft)}.att-cell.L{color:var(--warn-text)}.tt{grid-template-columns:repeat(6,minmax(140px,1fr));gap:10px;display:grid;overflow-x:auto}.tt-day h3{padding:6px 2px 8px}.tt-slot{background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--series-1);border-radius:var(--radius-sm);margin-bottom:8px;padding:8px 10px;position:relative}.tt-slot .time{color:var(--text-3);font-variant-numeric:tabular-nums;font-size:11px}.tt-slot .del{position:absolute;top:4px;right:4px}.kanban{grid-template-columns:repeat(6,minmax(220px,1fr));gap:12px;padding-bottom:8px;display:grid;overflow-x:auto}.kan-col{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);min-height:200px;padding:10px}.kan-col h3{text-transform:capitalize;justify-content:space-between;padding:2px 4px 10px;display:flex}.kan-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;box-shadow:var(--shadow);margin-bottom:8px;padding:10px}.kan-card:hover{border-color:var(--accent)}.q-card{padding:16px 18px}.q-opt{border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface);text-align:left;align-items:flex-start;gap:10px;width:100%;margin-top:8px;padding:10px 12px;display:flex}.q-opt:hover{border-color:var(--accent)}.q-opt.sel{border-color:var(--accent);background:var(--accent-soft)}.q-opt.right{border-color:var(--good);background:var(--good-soft)}.q-opt.wrong{border-color:var(--bad);background:var(--bad-soft)}.q-letter{border:1px solid var(--border-strong);border-radius:50%;flex-shrink:0;place-items:center;width:22px;height:22px;font-size:12px;font-weight:650;display:grid}.timer{font-variant-numeric:tabular-nums;font-size:18px;font-weight:650}.doc{color:#111;border-radius:var(--radius);border:1px solid var(--border);background:#fff;max-width:820px;margin:0 auto;padding:32px}.doc h1{font-size:22px}.doc table{border-collapse:collapse;width:100%;margin-top:12px}.doc th,.doc td{text-align:left;border:1px solid #bbb;padding:7px 10px;font-size:13px}.doc th{background:#f1f1ee}.doc .doc-head{border-bottom:2px solid #111;justify-content:space-between;gap:16px;margin-bottom:14px;padding-bottom:12px;display:flex}.doc .muted{color:#666}.doc-stack{gap:18px;display:grid}.admit-top{align-items:stretch;gap:14px;display:flex}.admit-top table{flex:1}.admit-photo{text-align:center;color:#777;border:1px dashed #999;place-items:center;width:110px;min-height:130px;font-size:11px;display:grid}.clash-row td{background:var(--bad-soft)}.band-row{grid-template-columns:90px 90px 90px 1fr 36px;gap:8px;margin-bottom:6px;display:grid}.paper-row{grid-template-columns:minmax(120px,2fr) 70px 70px 140px 100px 100px minmax(90px,1fr) minmax(130px,1.4fr) 36px;align-items:center;gap:6px;margin-bottom:6px;display:grid}.paper-head{color:var(--text-3);font-size:11.5px;font-weight:600}@media (width<=900px){.paper-row{grid-template-columns:1fr 1fr}.paper-head{display:none}.band-row{grid-template-columns:1fr 1fr}}.paper-q{margin:10px 0}.paper-opts{grid-template-columns:1fr 1fr;gap:2px 20px;margin:4px 0 0 22px;display:grid}.child-switch{flex-direction:column;gap:4px;padding:0 16px 6px;display:flex}.child-switch label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.nav a .nav-count{text-align:center;background:var(--warn-soft);min-width:20px;color:var(--warn-text);border-radius:99px;margin-left:auto;padding:1px 6px;font-size:11px;font-weight:700}.child-card{color:inherit;border:1px solid #0000;text-decoration:none;transition:border-color .15s,transform .15s}.child-card:hover{border-color:var(--accent)}.player{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.player-outline{max-height:calc(100vh - 96px);padding:8px;position:sticky;top:72px;overflow-y:auto}.outline-module{text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:12px 8px 6px;font-size:11px;font-weight:600}.outline-lesson{border-radius:var(--radius-sm);cursor:pointer;text-align:left;width:100%;color:var(--text-2);font:inherit;background:0 0;border:0;align-items:center;gap:8px;padding:8px;display:flex}.outline-lesson:hover{background:var(--surface-2);color:var(--text)}.outline-lesson.active{background:var(--accent-soft);color:var(--accent-strong);font-weight:550}.embed{aspect-ratio:16/9;border-radius:var(--radius-sm);background:#000;width:100%;position:relative;overflow:hidden}.embed iframe,.embed video{border:0;width:100%;height:100%;position:absolute;inset:0}.lesson-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);align-items:center;gap:10px;padding:8px 10px;display:flex}.batch-picker{border:1px solid var(--border);border-radius:var(--radius-sm);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;padding:10px;display:grid}.batch-picker .check{padding:2px 0;display:flex}@media (width<=960px){.player{grid-template-columns:minmax(0,1fr)}.player-outline{order:-1;max-height:none;position:static}}.accent{color:var(--accent)}.tile-ic{color:#fff;background:var(--tone-blue);border-radius:10px;flex-shrink:0;place-items:center;width:40px;height:40px;display:grid}.tile-ic.sm{border-radius:8px;width:28px;height:28px}.tone-blue{background:linear-gradient(135deg, #42a5f5, var(--tone-blue))}.tone-green{background:linear-gradient(135deg, #3cc47c, var(--tone-green))}.tone-orange{background:linear-gradient(135deg, #ff9a45, var(--tone-orange))}.tone-violet{background:linear-gradient(135deg, #a78bfa, var(--tone-violet))}.tone-indigo{background:linear-gradient(135deg, #7c7cf5, var(--tone-indigo))}.tone-red{background:linear-gradient(135deg, #ff6b6b, var(--tone-red))}.tone-pink{background:linear-gradient(135deg, #f45d96, var(--tone-pink))}.tone-teal{background:linear-gradient(135deg, #2cc5b9, var(--tone-teal))}.tone-slate{background:linear-gradient(135deg, #6b7686, var(--tone-slate))}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.dash-head h1{letter-spacing:-.01em;font-size:26px;font-weight:700}.dash-head p{margin-top:4px}.ticker{background:var(--surface);border:1px solid var(--border);min-width:0;height:46px;box-shadow:var(--shadow);border-radius:99px;flex:0 620px;align-items:center;display:flex;overflow:hidden}.ticker-label{text-transform:uppercase;height:100%;color:var(--accent-strong);border-right:1px solid var(--border);flex-shrink:0;align-items:center;gap:6px;padding:0 16px;font-size:13px;font-weight:700;display:inline-flex}.ticker-track{flex:1;min-width:0;padding:0 14px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000);mask-image:linear-gradient(90deg,#0000,#000 20px calc(100% - 20px),#0000)}.ticker-run{white-space:nowrap;gap:40px;animation:linear infinite ticker;display:inline-flex}.ticker-run:hover{animation-play-state:paused}.ticker-run a{color:var(--text);align-items:center;gap:6px;font-weight:550;display:inline-flex}.ticker-dot{background:var(--tone-red);width:8px;height:8px;box-shadow:0 0 0 3px var(--bad-soft);border-radius:50%}@keyframes ticker{0%{transform:translate(0)}to{transform:translate(-50%)}}@media (prefers-reduced-motion:reduce){.ticker-run{animation:none}}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:14px;display:grid}.kpi{color:inherit;min-height:130px;padding:16px 18px 14px;text-decoration:none;transition:transform .15s,box-shadow .15s;position:relative;overflow:hidden}a.kpi:hover{text-decoration:none;transform:translateY(-2px);box-shadow:0 10px 24px #00000014}.kpi-top{z-index:1;justify-content:space-between;align-items:flex-start;display:flex;position:relative}.kpi-change{border-radius:99px;align-items:center;gap:2px;padding:2px 8px;font-size:12px;font-weight:700;display:inline-flex}.kpi-change.up{color:var(--good-text);background:var(--good-soft)}.kpi-change.down{color:var(--bad-text);background:var(--bad-soft)}.kpi-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;z-index:1;white-space:nowrap;margin-top:14px;font-size:clamp(20px,1.7vw,24px);font-weight:750;position:relative}.kpi-label{color:var(--text-3);z-index:1;font-size:13px;position:relative}.kpi-spark{opacity:.95;width:46%;height:44px;position:absolute;top:64px;right:0}.spark{width:100%;height:100%;display:block}.hub-row{grid-template-columns:minmax(0,1fr) 440px;align-items:start;gap:16px;display:grid}@media (width<=1250px){.hub-row{grid-template-columns:minmax(0,1fr)}}.hub{padding:20px;scroll-margin-top:80px}.hub-head p{margin-top:2px}.hub-tools{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.hub-search{border:1px solid var(--border-strong);border-radius:var(--radius-sm);height:38px;color:var(--text-3);flex:0 280px;align-items:center;gap:8px;min-width:220px;padding:0 10px;display:flex}.hub-search input{min-width:0;color:var(--text);background:0 0;border:0;outline:none;flex:1}.hub-search:focus-within{border-color:var(--accent)}.pill-tabs{background:var(--surface-2);border-radius:var(--radius-sm);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.pill-tabs button{cursor:pointer;color:var(--text-2);background:0 0;border:0;border-radius:6px;padding:6px 12px;font-size:13px;font-weight:500}.pill-tabs button:hover{color:var(--text)}.pill-tabs button.active{background:var(--surface);color:var(--accent-strong);box-shadow:var(--shadow);font-weight:650}.pill-tabs.sm button{padding:4px 10px;font-size:12px}.hub-grid{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:10px;margin-top:18px;display:grid}.hub-tile{border:1px solid var(--border);background:var(--surface);min-height:92px;color:var(--text-2);text-align:center;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:14px 8px;font-size:12.5px;font-weight:500;line-height:1.25;transition:border-color .15s,transform .15s,box-shadow .15s;display:flex;position:relative}.hub-tile:hover{border-color:var(--accent);color:var(--text);text-decoration:none;transform:translateY(-2px);box-shadow:0 8px 20px #00000012}.hub-tile .tile-ic{width:34px;height:34px}.hub-tile .ai-tag{background:var(--violet-soft);color:var(--violet-text);border-radius:99px;padding:1px 6px;font-size:10px;font-weight:700;position:absolute;top:6px;right:6px}.activity{overflow:hidden}.activity-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px;display:flex}.activity-list{max-height:640px;overflow-y:auto}.act-item{border-bottom:1px solid var(--border);color:var(--text);align-items:flex-start;gap:12px;padding:14px 18px;display:flex}.act-item:last-child{border-bottom:0}.act-item:hover{background:var(--surface-2);text-decoration:none}.act-item .tile-ic{border-radius:9px;width:34px;height:34px}.act-body{flex:1;min-width:0}.act-title{font-size:14px;line-height:1.35}.act-title strong{font-weight:650}.act-meta{color:var(--text-3);align-items:center;gap:8px;margin-top:4px;font-size:12px;display:flex}.act-meta .badge{border-radius:4px;height:18px;padding:0 6px;font-size:11px}.act-when{color:var(--text-3);white-space:nowrap;flex-direction:column;align-items:flex-end;font-size:11px;display:flex}.act-when strong{color:var(--text);font-size:12px;font-weight:600}.cert{color:#1d1d1f;--c1:#1e3a5f;--c2:#b8892b;--paper:#fffdf7;width:100%;margin:0 auto;font-family:Georgia,Times New Roman,serif;container-type:inline-size}.cert-portrait{aspect-ratio:210/297;max-width:760px}.cert-landscape{aspect-ratio:297/210;max-width:1040px}.cert-frame{background:var(--paper);width:100%;height:100%;padding:2.2cqw;position:relative;overflow:hidden;box-shadow:0 10px 40px #0000001f}.cert-inner{border:.5cqw double var(--c1);outline:.18cqw solid var(--c2);outline-offset:-1.3cqw;text-align:center;flex-direction:column;align-items:center;height:100%;padding:4cqw 6.5cqw 3cqw;display:flex;position:relative}.cert-landscape .cert-inner{padding:2.6cqw 7cqw 2cqw}.cert-watermark{color:var(--c1);opacity:.035;pointer-events:none;letter-spacing:-.02em;place-items:center;font-size:26cqw;font-weight:700;display:grid;position:absolute;inset:0}.cert-landscape .cert-watermark{font-size:20cqw}.cert-top{color:#555;justify-content:space-between;width:100%;font-family:system-ui,sans-serif;font-size:1.45cqw;display:flex}.cert-landscape .cert-top{font-size:1.1cqw}.cert-logo{color:#fff;background:radial-gradient(circle at 35% 30%, color-mix(in srgb, var(--c2) 70%, #fff), var(--c2));width:8.5cqw;height:8.5cqw;box-shadow:0 0 0 .5cqw var(--paper), 0 0 0 .75cqw var(--c2);border-radius:50%;place-items:center;margin-top:2cqw;display:grid}.cert-landscape .cert-logo{width:6cqw;height:6cqw;margin-top:.8cqw}.cert-logo svg{width:55%;height:55%}.cert-institute{color:var(--c1);letter-spacing:.02em;text-transform:uppercase;margin-top:2cqw;font-size:3.6cqw;font-weight:700}.cert-landscape .cert-institute{margin-top:1.1cqw;font-size:2.5cqw}.cert-address{color:#666;margin-top:.4cqw;font-family:system-ui,sans-serif;font-size:1.45cqw}.cert-landscape .cert-address{font-size:1.05cqw}.cert-heading{color:var(--c2);letter-spacing:.01em;margin-top:3.2cqw;font-size:5cqw;font-style:italic;font-weight:400;line-height:1.1}.cert-landscape .cert-heading{margin-top:1.6cqw;font-size:4cqw}.cert-rule{background:linear-gradient(90deg, transparent, var(--c2), transparent);width:40%;height:.15cqw;margin:1.6cqw 0 3cqw;position:relative}.cert-rule span{background:var(--c2);width:1.2cqw;height:1.2cqw;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(45deg)}.cert-landscape .cert-rule{margin:1cqw 0 1.8cqw}.cert-body{color:#2a2a2a;text-align:justify;text-align-last:center;flex:1;width:100%;font-size:2.2cqw;line-height:1.75}.cert-landscape .cert-body{text-align:center;font-size:1.65cqw;line-height:1.6}.cert-body p{margin:0 0 1.6cqw}.cert-landscape .cert-body p{margin:0 0 1cqw}.cert-line{display:block}.cert-portrait .cert-line{display:inline}.cert-portrait .cert-line+.cert-line:before{content:" "}.cert-name{color:var(--c1);border-bottom:.12cqw solid color-mix(in srgb, var(--c2) 60%, transparent);margin:.25em 0;text-align:center;width:fit-content;margin-inline:auto;padding:0 4cqw;font-family:Segoe Script,Brush Script MT,Lucida Handwriting,cursive;font-size:2.2em;line-height:1.35;display:block}.cert-signs{color:#333;justify-content:space-around;gap:3cqw;width:100%;margin-top:2cqw;font-family:system-ui,sans-serif;font-size:1.5cqw;font-weight:600;display:flex}.cert-landscape .cert-signs{margin-top:1cqw;font-size:1.15cqw}.cert-signs>div{flex-direction:column;align-items:center;min-width:18cqw;display:flex}.cert-landscape .cert-signs>div{min-width:14cqw}.cert-sign-line{border-top:.12cqw solid #444;width:100%;margin:5cqw 0 .6cqw}.cert-landscape .cert-sign-line{margin-top:3.5cqw}.cert-verify{color:#777;margin-top:1.6cqw;font-family:system-ui,sans-serif;font-size:1.1cqw}.cert-landscape .cert-verify{margin-top:.8cqw;font-size:.85cqw}.cert-void{color:#d03b3b47;pointer-events:none;letter-spacing:.08em;border:1cqw solid #d03b3b47;border-radius:2cqw;padding:1cqw 4cqw;font:800 11cqw/1 system-ui,sans-serif;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)rotate(-24deg)}.cert-royal{--c1:#6d1a2a;--c2:#c79a2e;--paper:#fffaf0}.cert-royal .cert-inner{border:1.1cqw solid var(--c1);outline:.3cqw solid var(--c2);outline-offset:-1.9cqw}.cert-royal .cert-frame{background:radial-gradient(circle at 50% 40%, #fffdf6, var(--paper) 70%)}.cert-royal .cert-frame:before,.cert-royal .cert-frame:after{content:"";border:.5cqw solid var(--c2);z-index:1;border-radius:50%;width:9cqw;height:9cqw;position:absolute}.cert-royal .cert-frame:before{top:-4.5cqw;left:-4.5cqw}.cert-royal .cert-frame:after{bottom:-4.5cqw;right:-4.5cqw}.cert-elegant{--c1:#1f4d36;--c2:#b08d3c;--paper:#fbfbf6}.cert-elegant .cert-inner{border:.25cqw solid var(--c1);outline:.12cqw solid var(--c2);outline-offset:-1cqw}.cert-modern{--c1:#1e2a78;--c2:#0ea5a4;--paper:#fff;font-family:Segoe UI,system-ui,sans-serif}.cert-modern .cert-frame{padding:0}.cert-modern .cert-frame:before{content:"";background:linear-gradient(180deg, var(--c1), var(--c2));width:4cqw;position:absolute;inset:0 auto 0 0}.cert-modern .cert-frame:after{content:"";background:color-mix(in srgb, var(--c2) 12%, transparent);border-radius:50%;width:30cqw;height:30cqw;position:absolute;top:-12cqw;right:-12cqw}.cert-modern .cert-inner{border:0;outline:0;margin-left:4cqw}.cert-modern .cert-heading{color:var(--c1);text-transform:uppercase;letter-spacing:.06em;font-size:4.2cqw;font-style:normal;font-weight:800}.cert-modern.cert-landscape .cert-heading{font-size:3.2cqw}.cert-modern .cert-institute{color:var(--c2)}.cert-modern .cert-logo{background:linear-gradient(135deg, var(--c2), var(--c1));box-shadow:none}.cert-modern .cert-rule{background:var(--c2);width:12%;height:.3cqw}.cert-modern .cert-rule span{display:none}.cert-page{padding:8px 0 24px}.issue-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:20px;display:grid}.issue-grid .cert-portrait{max-width:340px}@media (width<=860px){.issue-grid{grid-template-columns:minmax(0,1fr)}}.pick-list{border:1px solid var(--border-strong);border-radius:var(--radius-sm);flex-direction:column;gap:4px;max-height:230px;padding:6px 10px;display:flex;overflow-y:auto}.pick-list .check{align-items:flex-start;padding:3px 0}.pick-all{border-bottom:1px solid var(--border);font-weight:600;padding-bottom:6px!important}.chip-row{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface-2);cursor:pointer;color:var(--text-2);border-radius:99px;padding:3px 9px;font:500 11.5px ui-monospace,Consolas,monospace}.chip:hover{border-color:var(--accent);color:var(--accent-strong)}.tpl-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px;display:grid}.tpl-card{color:inherit;flex-direction:column;display:flex;overflow:hidden}.tpl-card.off{opacity:.6}.link-card:hover{border-color:var(--accent);text-decoration:none}.tpl-thumb{color:#fff;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:120px;padding:0 16px;font:italic 600 16px Georgia,serif;display:flex}.cert-swatch-classic{background:linear-gradient(135deg,#1e3a5f,#2c5282);box-shadow:inset 0 0 0 6px #1e3a5f,inset 0 0 0 8px #b8892b}.cert-swatch-royal{background:linear-gradient(135deg,#6d1a2a,#9b2c3d);box-shadow:inset 0 0 0 6px #6d1a2a,inset 0 0 0 9px #c79a2e}.cert-swatch-elegant{background:linear-gradient(135deg,#1f4d36,#2f6b4c);box-shadow:inset 0 0 0 6px #1f4d36,inset 0 0 0 7px #b08d3c}.cert-swatch-modern{text-transform:uppercase;letter-spacing:.05em;background:linear-gradient(135deg,#1e2a78,#0ea5a4);font-family:system-ui,sans-serif;font-size:13px;font-style:normal}.tpl-info{flex-direction:column;flex:1;gap:8px;padding:14px 16px;display:flex}.verify-wrap{background:var(--bg);place-items:center;min-height:100vh;padding:24px 16px;display:grid}.verify-card{flex-direction:column;gap:18px;width:100%;max-width:560px;padding:28px;display:flex}.verify-head{color:var(--accent);align-items:center;gap:14px;display:flex}.verify-head h1{color:var(--text);font-size:22px}.verify-result{border-radius:var(--radius);align-items:flex-start;gap:14px;padding:16px;display:flex}.verify-result.good{background:var(--good-soft);color:var(--good-text)}.verify-result.bad{background:var(--bad-soft);color:var(--bad-text)}.verify-result strong{font-size:16px}.verify-table{border-collapse:collapse;width:100%;color:var(--text);margin-top:10px;font-size:14px}.verify-table th{text-align:left;color:var(--text-2);vertical-align:top;width:110px;padding:4px 12px 4px 0;font-weight:500}.verify-table td{padding:4px 0}@media print{.no-print,.sidebar,.topbar,.toasts,.ai-fab{display:none!important}.main{margin:0!important}.content{max-width:none;padding:0!important}body{background:#fff}.doc{border:0;max-width:none;padding:0}.doc-stack{display:block}.doc-stack>.doc{break-after:page}.doc-stack>.doc:last-child{break-after:auto}.card{box-shadow:none}.cert-page{padding:0}.cert,.cert *{-webkit-print-color-adjust:exact;print-color-adjust:exact}.cert{max-width:none}.cert-portrait{width:210mm;height:297mm}.cert-landscape{width:297mm;height:210mm}.cert-frame{box-shadow:none}}@media (width<=600px){.hide-sm{display:none}}.owner-shell{background:var(--bg);min-height:100vh}.owner-top{z-index:20;background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 24px;display:flex;position:sticky;top:0}.owner-top a{color:inherit;text-decoration:none}.owner-main{max-width:1280px;margin:0 auto;padding:24px}.module-checks{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;display:grid}.module-checks .full{grid-column:1/-1}.module-check{align-items:flex-start;font-weight:400}.module-check .hint{font-style:normal;display:block}@media (width<=600px){.owner-main{padding:16px}.module-checks{grid-template-columns:minmax(0,1fr)}}.live-map{border:1px solid var(--border);background:var(--bg);z-index:0;border-radius:12px;width:100%;overflow:hidden}.live-map .leaflet-tooltip{font:600 12px/1.3 inherit}.bus-pin{pointer-events:auto;flex-direction:column;align-items:center;gap:2px;display:flex;position:relative;transform:translate(-50%,-50%)}.bus-dot{color:#fff;background:#7a7a76;border:3px solid #fff;border-radius:50%;place-items:center;width:32px;height:32px;display:grid;box-shadow:0 2px 8px #00000059}.bus-pin.live .bus-dot{background:var(--good);animation:2s infinite bus-pulse}.bus-pin.sel .bus-dot{background:var(--accent);width:38px;height:38px}.bus-label{color:#0b0b0b;white-space:nowrap;background:#fff;border-radius:6px;padding:3px 6px;font:700 11px/1 system-ui,sans-serif;box-shadow:0 1px 4px #00000040}@keyframes bus-pulse{0%{box-shadow:0 0 #0ca30c8c}70%{box-shadow:0 0 0 12px #0ca30c00}to{box-shadow:0 0 #0ca30c00}}@media (prefers-reduced-motion:reduce){.bus-pin.live .bus-dot{animation:none}}.live-grid{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:16px;display:grid}@media (width<=960px){.live-grid{grid-template-columns:minmax(0,1fr)}}.live-list{max-height:560px;overflow:auto}.live-item{text-align:left;border:0;border-bottom:1px solid var(--border);width:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;align-items:flex-start;gap:10px;padding:12px 14px;display:flex}.live-item:hover{background:var(--accent-soft)}.live-item.sel{background:var(--accent-soft);box-shadow:inset 3px 0 0 var(--accent)}.live-dot{background:#9a9a95;border-radius:50%;flex:none;width:10px;height:10px;margin-top:5px}.live-dot.live{background:var(--good)}.live-dot.stale{background:var(--warn)}.driver-wrap{background:var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.driver-card{width:100%;max-width:440px}.driver-big{border-radius:14px;width:100%;padding:18px;font-size:18px;font-weight:700}
