@font-face{font-family:jakarta;src:url(../media/plus_jakarta_sans_var-s.p.0_l8wf7tt5xrh.woff2)format("woff2");font-display:swap;font-weight:200 800}@font-face{font-family:jakarta Fallback;src:local(Arial);ascent-override:98.16%;descent-override:20.99%;line-gap-override:0.0%;size-adjust:105.75%}.jakarta_c03fef77-module__uVliqq__className{font-family:jakarta,jakarta Fallback}.jakarta_c03fef77-module__uVliqq__variable{--font-head:"jakarta", "jakarta Fallback"}
@font-face{font-family:inter;src:url(../media/inter_var-s.p.1j27dg3h95i3k.woff2)format("woff2");font-display:swap;font-weight:100 900}@font-face{font-family:inter Fallback;src:local(Arial);ascent-override:89.79%;descent-override:22.36%;line-gap-override:0.0%;size-adjust:107.89%}.inter_7a46ae49-module__hb1KVa__className{font-family:inter,inter Fallback}.inter_7a46ae49-module__hb1KVa__variable{--font-ui:"inter", "inter Fallback"}
:root{--slate-950:#0f172a;--slate-900:#1e293b;--slate-700:#334155;--slate-500:#64748b;--slate-400:#94a3b8;--slate-200:#e2e8f0;--slate-100:#f1f5f9;--slate-50:#f8fafc;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-soft:#eff4ff;--emerald:#10b981;--emerald-deep:#047857;--emerald-soft:#ecfdf5;--amber:#f59e0b;--amber-deep:#b45309;--amber-soft:#fffbeb;--rose:#e11d48;--rose-soft:#fff1f2;--night:var(--slate-950);--green:var(--emerald-deep);--yellow:var(--amber);--bg:var(--slate-50);--card:#fff;--text:var(--slate-950);--muted:var(--slate-500);--border:var(--slate-200);--danger:var(--rose);--font-h:var(--font-head), "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-b:var(--font-ui), Inter, system-ui, -apple-system, "Segoe UI", sans-serif;--radius-card:16px;--radius-ctl:10px;--shadow-1:0 1px 3px 0 #0f172a0a, 0 4px 16px -2px #0f172a08;--shadow-2:0 4px 6px -1px #0f172a0f, 0 10px 25px -4px #0f172a0d}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-h);-webkit-font-smoothing:antialiased;margin:0;font-size:14px;line-height:1.5}h1,h2,h3{font-family:var(--font-h);color:var(--slate-950)}h1{letter-spacing:-.025em;margin:0;font-size:30px;font-weight:700;line-height:38px}h2{letter-spacing:-.015em;margin:0 0 8px;font-size:18px;font-weight:650;line-height:26px}.page{max-width:960px;margin:0 auto;padding:24px 16px}.center{background:radial-gradient(1200px 500px at 10% -10%, #2563eb14, transparent 60%), radial-gradient(900px 400px at 110% 110%, #10b98114, transparent 60%), var(--bg);place-items:center;min-height:100vh;padding:16px;display:grid}.card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-1);border:1px solid #e2e8f0bf;padding:22px 24px}.narrow{width:100%;max-width:400px}.stack{flex-direction:column;gap:12px;margin-top:16px;display:flex}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:220px}.topbar{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.list{flex-direction:column;gap:12px;padding:0;list-style:none;display:flex}.title{margin:8px 0;font-weight:600}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--danger);margin:0}.tag{font-family:var(--font-ui);letter-spacing:.02em;background:var(--emerald-soft);color:var(--emerald-deep);white-space:nowrap;border:1px solid #10b98140;border-radius:999px;align-items:center;padding:2px 9px;font-size:11px;font-weight:600;display:inline-flex}.tag.warn{background:var(--amber-soft);color:var(--amber-deep);border-color:#f59e0b4d}label{color:var(--slate-700);flex-direction:column;gap:5px;font-size:13px;font-weight:600;display:flex}input,select,textarea{font:inherit;font-family:var(--font-ui);color:var(--text);border:1px solid var(--slate-200);border-radius:var(--radius-ctl);background:#fff;padding:9px 12px;font-size:14px;font-weight:400;transition:border-color .15s,box-shadow .15s}input::placeholder,textarea::placeholder{color:var(--slate-400)}input:focus,select:focus,textarea:focus{border-color:var(--primary);outline:none;box-shadow:0 0 0 3px #dbeafe}textarea{resize:vertical}button{font:inherit;font-family:var(--font-h);border-radius:var(--radius-ctl);background:var(--primary);color:#fff;cursor:pointer;border:none;justify-content:center;align-items:center;gap:6px;padding:9px 16px;font-size:14px;font-weight:600;transition:background .15s,transform .15s;display:inline-flex;box-shadow:inset 0 1px #ffffff2e,0 1px 2px #0f172a1f}button:hover{background:var(--primary-hover)}button.secondary{color:var(--slate-900);border:1px solid var(--slate-200);box-shadow:none;background:#fff}button.secondary:hover{background:var(--slate-100)}button:disabled{opacity:.6;cursor:wait}button:focus-visible,a:focus-visible{outline:2px solid var(--primary);outline-offset:2px}a.button{border-radius:var(--radius-ctl);background:var(--primary);color:#fff;padding:9px 16px;font-weight:600;text-decoration:none;display:inline-block}a.button.secondary{color:var(--slate-900);border:1px solid var(--slate-200);background:#fff}fieldset.contents{border:0;margin:0;padding:0;display:contents}.nav{background:var(--slate-950);color:#fff;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px;display:flex}.nav a{color:#fff;font-weight:500;text-decoration:none}.nav-end{margin-left:auto}.nav .secondary{color:#fff;background:0 0;border-color:#ffffff4d}section.card{margin-top:20px}.row.top{align-items:flex-start}.mono,.preview{font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:.85rem}.preview{white-space:pre-wrap;background:var(--slate-50);border:1px solid var(--slate-100);border-radius:var(--radius-ctl);padding:12px;overflow-x:auto}details.item{border-top:1px solid var(--slate-100);padding:12px 0}details.item>summary{cursor:pointer}.success{color:var(--emerald-deep);margin:0}button.small{border-radius:8px;padding:5px 11px;font-size:12.5px}.tag.status-draft{background:var(--slate-100);color:var(--slate-700);border-color:#e2e8f0e6}.tag.status-in_review{background:var(--amber-soft);color:var(--amber-deep);border-color:#f59e0b4d}.tag.status-archived{background:var(--rose-soft);color:#be123c;border-color:#e11d4833}a{color:var(--primary)}.brand{align-items:center;gap:8px;display:inline-flex}.brand img{border-radius:8px}.brand-logo{box-shadow:var(--shadow-2);border-radius:18px;margin-bottom:12px;display:block}.tiles{grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:16px 0;display:grid}.tile{flex-direction:column;display:flex}.tile-value{letter-spacing:-.03em;color:var(--slate-950);font-variant-numeric:tabular-nums;font-size:30px;font-weight:800}.rate{background:var(--slate-100);vertical-align:middle;border-radius:999px;width:130px;height:22px;display:inline-block;position:relative;overflow:hidden}.rate-bar{border-radius:999px;position:absolute;inset:0 auto 0 0}.rate-bar.low{background:#fecdd3}.rate-bar.mid{background:#fde68a}.rate-bar.high{background:#a7f3d0}.rate-label{text-align:center;font-family:var(--font-ui);color:var(--slate-900);font-size:11.5px;font-weight:600;line-height:22px;display:block;position:relative}.table-wrap{overflow-x:auto}table.stats{border-collapse:collapse;width:100%;font-size:13.5px}table.stats th{font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--slate-500);background:var(--slate-50);font-size:11.5px;font-weight:600}table.stats th,table.stats td{text-align:left;border-bottom:1px solid var(--slate-100);white-space:nowrap;padding:10px 12px}table.stats tbody tr:hover td{background:#fbfcfe}table.stats td:first-child{white-space:normal}table.stats .chapter-row td{background:var(--slate-50);font-weight:650}ul.plain{margin:0;padding:0;list-style:none}ul.plain li{border-bottom:1px solid var(--slate-100);padding:10px 0}.warn-text{color:var(--danger);font-weight:600}.daychart{border-bottom:1px solid var(--border);align-items:stretch;gap:2px;height:200px;margin:12px 0 4px;display:flex}.daychart-col{cursor:default;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;min-width:0;display:flex}.daychart-col:hover .daychart-bar{background:var(--primary)}.daychart-value{color:var(--text);min-height:1.1em;font-size:.75rem;font-weight:600}.daychart-bar{background:var(--emerald-deep);border-radius:4px 4px 0 0;width:70%;min-height:2px}.daychart-axis{gap:2px;margin-bottom:12px;display:flex}.daychart-axis span{text-align:center;min-width:0;color:var(--muted);white-space:nowrap;flex:1;font-size:.7rem;overflow:hidden}.school-code{letter-spacing:3px;background:var(--emerald-soft);color:var(--emerald-deep);border-radius:8px;padding:4px 12px;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:1.2rem;font-weight:700}.legal{max-width:760px}.legal h3{color:var(--night);margin:12px 0 4px;font-size:1rem}.legal p{margin:8px 0}.legal ul,.legal ol{margin:8px 0;padding-left:20px}.legal li+li{margin-top:6px}.honeypot{opacity:0;width:1px;height:1px;position:absolute;left:-10000px}label.check{flex-direction:row;align-items:flex-start;gap:8px;font-weight:400}label.check input{width:auto;margin-top:3px}.qr svg{width:220px;height:220px;margin:0 auto;display:block}.secret{word-break:break-all;letter-spacing:.05em;font-weight:700}[hidden]{display:none!important}.icon{flex-shrink:0}.shell{grid-template-columns:256px minmax(0,1fr);min-height:100vh;display:grid}.side{background:var(--slate-950);color:#fff;scrollbar-width:thin;scrollbar-color:#ffffff26 transparent;flex-direction:column;gap:16px;height:100vh;padding:18px 14px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.side-brand{color:#fff;letter-spacing:-.02em;border-bottom:1px solid #ffffff12;align-items:center;gap:12px;margin:0 -14px;padding:2px 8px 18px 22px;font-size:19px;font-weight:800;line-height:1.15;text-decoration:none;display:flex}.side-brand img{border-radius:10px}.side-brand small{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--slate-400);font-size:10.5px;font-weight:600;display:block}.side-groups{flex-direction:column;gap:14px;display:flex}.side-group{flex-direction:column;gap:2px;display:flex}.side-title{font-family:var(--font-ui);letter-spacing:.08em;text-transform:uppercase;color:var(--slate-500);padding:0 12px 6px;font-size:10.5px;font-weight:600}.side-link{border-radius:var(--radius-ctl);color:#cbd5e1;align-items:center;gap:12px;padding:7px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s,color .15s;display:flex}.side-link .icon{color:var(--slate-400)}.side-link:hover{color:#fff;background:#ffffff0f}.side-link.active{background:var(--primary);color:#fff;font-weight:600;box-shadow:0 6px 16px -6px #2563eb99}.side-link.active .icon,.side-link:hover .icon{color:#fff}.side-end{border-top:1px solid #ffffff12;flex-direction:column;gap:10px;margin-top:auto;padding:14px 4px 0;display:flex}.side-status{font-family:var(--font-ui);color:var(--slate-400);align-items:center;gap:8px;padding:0 8px;font-size:12px;display:inline-flex}.dot-live{background:var(--emerald);border-radius:999px;width:8px;height:8px;box-shadow:0 0 0 3px #10b98133}.side-logout{color:#cbd5e1;width:100%;box-shadow:none;background:0 0;justify-content:flex-start;gap:12px;padding:9px 12px;font-weight:500}.side-logout:hover{color:#fff;background:#ffffff0f}.shell-body{flex-direction:column;min-width:0;display:flex}.topbar-admin{z-index:20;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--slate-200);background:#ffffffd9;justify-content:space-between;align-items:center;gap:12px;height:64px;padding:0 32px;display:flex;position:sticky;top:0}.crumbs{color:var(--slate-500);align-items:center;gap:8px;font-size:13.5px;display:flex}.crumbs strong{color:var(--slate-950);font-weight:650}.topbar-end{align-items:center;gap:16px;display:flex}.topbar-pill{background:var(--slate-100);font-family:var(--font-ui);color:var(--slate-700);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:500;display:inline-flex}.topbar-user{border-left:1px solid var(--slate-200);align-items:center;gap:10px;padding-left:16px;font-size:13px;font-weight:650;line-height:1.2;display:inline-flex}.topbar-user small{font-family:var(--font-ui);color:var(--slate-500);font-size:11px;font-weight:500;display:block}.avatar{background:var(--primary);color:#fff;border-radius:999px;place-items:center;width:34px;height:34px;font-weight:700;display:grid}.shell-main{width:100%;max-width:1240px;margin:0;padding:28px 32px 56px}@media (max-width:960px){.shell{grid-template-columns:1fr}.side{gap:10px;height:auto;padding:12px 16px;position:static}.side-brand{margin:0;padding:0 0 10px}.side-groups{flex-direction:row;gap:4px;padding-bottom:4px;overflow-x:auto}.side-group{flex-direction:row;gap:4px}.side-title{display:none}.side-link{white-space:nowrap}.side-end{flex-direction:row;justify-content:space-between;align-items:center;margin-top:0;padding:8px 0 0}.side-logout{width:auto}.topbar-admin{padding:0 16px;position:static}.topbar-pill,.topbar-user span:last-child{display:none}.shell-main{padding:20px 16px 40px}}.dash-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.dash-title{align-items:center;gap:10px;display:flex}.dash-meta{color:var(--slate-500);flex-wrap:wrap;align-items:center;gap:6px 10px;margin:6px 0 0;font-size:13px;display:flex}.dash-meta .icon{color:var(--slate-400)}.sep-dot{background:var(--slate-200);border-radius:999px;width:4px;height:4px}.pill-live{background:var(--emerald-soft);color:var(--emerald-deep);font-family:var(--font-ui);border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.pill-live:before{content:"";background:var(--emerald);border-radius:999px;width:6px;height:6px}.segmented{border:1px solid var(--slate-200);background:var(--card);box-shadow:var(--shadow-1);border-radius:12px;align-items:center;gap:2px;padding:4px;display:inline-flex}.segmented .icon{color:var(--primary);margin:0 6px 0 8px}.segmented a{color:var(--slate-500);border-radius:8px;padding:6px 14px;font-size:13px;font-weight:600;text-decoration:none}.segmented a:hover{color:var(--slate-950);background:var(--slate-100)}.segmented a.active{background:var(--primary);color:#fff}.todo{border-radius:var(--radius-card);background:linear-gradient(90deg,#f59e0b1a,#f59e0b0a 55%,#fff);border:1px solid #fde68acc;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px 24px;margin-top:24px;padding:18px 20px;display:flex}.todo-lead{align-items:center;gap:14px;display:flex}.todo-icon{color:#92400e;background:#f59e0b2e;border-radius:12px;place-items:center;width:42px;height:42px;display:grid}.todo-title{align-items:center;gap:8px;font-size:17px;font-weight:700;display:flex}.todo-count{color:#78350f;font-family:var(--font-ui);letter-spacing:.06em;text-transform:uppercase;background:#f59e0b33;border-radius:999px;padding:2px 9px;font-size:10.5px;font-weight:600}.todo-lead p{color:var(--slate-500);margin:2px 0 0;font-size:13px}.todo-chips{flex-wrap:wrap;gap:8px;display:flex}.todo-chip{border-radius:var(--radius-ctl);border:1px solid var(--slate-200);box-shadow:var(--shadow-1);color:var(--slate-950);background:#fff;align-items:center;gap:8px;padding:8px 14px;font-size:13px;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s;display:inline-flex}.todo-chip:before{content:"";background:var(--amber);border-radius:999px;width:8px;height:8px}.todo-chip.alert{color:var(--rose)}.todo-chip.alert:before{background:var(--rose)}.todo-chip .icon{color:var(--slate-400)}.todo-chip:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.section-label{font-family:var(--font-ui);letter-spacing:.04em;text-transform:uppercase;color:var(--slate-500);flex-wrap:wrap;justify-content:space-between;gap:4px 12px;margin:30px 0 12px;font-size:12px;font-weight:600;display:flex}.kpis{grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:20px;display:grid}.kpi{flex-direction:column;gap:6px;padding:18px 20px;transition:transform .15s,box-shadow .15s;display:flex}.kpi:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.kpi-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.kpi-icon{background:var(--primary-soft);width:30px;height:30px;color:var(--primary);border-radius:9px;place-items:center;display:grid}.kpi-label{color:var(--slate-500);font-size:13px;font-weight:600;line-height:1.3}.kpi-value{letter-spacing:-.03em;color:var(--slate-950);font-variant-numeric:tabular-nums;font-size:32px;font-weight:800;line-height:1.15}.kpi-foot{flex-wrap:wrap;align-items:center;gap:4px 8px;font-size:12px;display:flex}.delta{font-family:var(--font-ui);white-space:nowrap;border:1px solid #0000;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:600}.delta.up{color:var(--emerald-deep);background:var(--emerald-soft);border-color:#10b98140}.delta.down{color:#be123c;background:var(--rose-soft);border-color:#e11d4833}.delta.flat{color:var(--slate-500);background:var(--slate-100);border-color:var(--slate-200)}.card-head{flex-wrap:nowrap;justify-content:space-between;align-items:flex-start;gap:8px 16px;display:flex}.card-head h2{margin:0}.card-head>div{min-width:0}.card-head:has(.legend){flex-wrap:wrap}.card-head>.icon{color:var(--slate-400)}.card-sub{color:var(--slate-500);margin:2px 0 0;font-size:13px}.legend{color:var(--slate-700);align-items:center;gap:6px;font-size:13px;font-weight:500;display:inline-flex}.key{border-radius:3px;width:10px;height:10px;margin-left:10px;display:inline-block}.bar-key{background:var(--emerald-deep)}.line-key{background:var(--amber);width:14px;height:3px}.chart{width:100%;height:auto;margin-top:12px;display:block}.chart .grid{stroke:var(--slate-200);stroke-dasharray:3 4}.chart .axis{fill:var(--slate-400);font-family:var(--font-ui);font-size:9.5px}.chart .bar{fill:var(--emerald-deep)}.chart .hover-zone{fill:#0000}.chart g:hover .bar{fill:var(--primary)}.chart g:hover .hover-zone{fill:#2563eb0d}.chart .line{fill:none;stroke:var(--amber);stroke-width:2.5px;stroke-linejoin:round}.chart .dot{fill:#fff;stroke:var(--amber);stroke-width:2.5px}.chart-foot{background:var(--slate-50);border-radius:12px;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:14px;padding:14px 16px;display:grid}.chart-foot .stat-value{font-size:20px}.grid-main{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;display:grid}.grid-main>.card,.grid-4>.card,.grid-2>.card,.grid-3>.card{margin-top:20px}.grid-2,.grid-3,.grid-4{gap:0 20px;display:grid}.grid-2{grid-template-columns:repeat(auto-fit,minmax(340px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}.stats-row{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0;display:grid}.stats-col{flex-direction:column;gap:12px;margin-top:14px;display:flex}.stat{flex-direction:column;display:flex}.stats-col .stat{background:var(--slate-50);border:1px solid var(--slate-100);border-radius:12px;padding:14px 16px}.stat-value{letter-spacing:-.02em;color:var(--slate-950);font-variant-numeric:tabular-nums;font-size:24px;font-weight:800}.stat-value.good{color:var(--emerald-deep)}.stat-value.warn{color:var(--rose)}.funnel{flex-direction:column;gap:16px;margin:16px 0 0;padding:0;list-style:none;display:flex}.funnel-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 8px;font-size:13.5px;font-weight:500;display:flex}.funnel-rate{font-family:var(--font-ui);margin-top:3px;font-size:11.5px;display:block}.funnel-track,.barlist-track{background:var(--slate-100);border-radius:999px;height:8px;margin-top:6px;display:block;overflow:hidden}.funnel-bar{background:var(--primary);border-radius:999px;height:100%;display:block}.funnel li:nth-child(2) .funnel-bar{background:var(--emerald-deep)}.funnel li:nth-child(3) .funnel-bar{background:var(--emerald)}.funnel li:nth-child(4) .funnel-bar{background:var(--amber)}.funnel li:nth-child(5) .funnel-bar{background:#f97316}.note{background:var(--slate-50);color:var(--slate-700);border-radius:12px;align-items:flex-start;gap:10px;margin-top:18px;padding:12px 14px;font-size:12.5px;display:flex}.note .icon{color:var(--primary);margin-top:1px}.barlist{flex-direction:column;gap:14px;margin:14px 0 8px;padding:0;list-style:none;display:flex}.barlist-head{flex-wrap:wrap;justify-content:space-between;gap:2px 8px;font-size:13.5px;font-weight:600;display:flex}.barlist-head .muted{font-weight:400}.barlist-total{background:#a7f3d0;border-radius:999px;height:100%;display:block}.barlist-part{background:var(--emerald-deep);border-radius:999px;height:100%;display:block}.subjects{flex-direction:column;gap:14px;margin-top:8px;display:flex}.subjects .rate{margin-top:6px}.cohorts{border-collapse:separate;border-spacing:3px;text-align:center;width:100%;font-size:12.5px}.cohorts th{font-family:var(--font-ui);color:var(--slate-500);text-transform:uppercase;letter-spacing:.03em;font-size:11px;font-weight:600}.cohorts td{background:var(--slate-100);font-variant-numeric:tabular-nums;border-radius:7px;padding:7px 4px}.cohorts td:first-child,.cohorts td:nth-child(2){text-align:left;background:0 0}.hours{border-bottom:1px solid var(--slate-200);align-items:flex-end;gap:3px;height:140px;margin-top:14px;display:flex}.hours-col{flex:1;align-items:flex-end;height:100%;display:flex}.hours-bar{background:#bfdbfe;border-radius:4px 4px 0 0;width:100%;min-height:2px;display:block}.hours-bar.best{background:var(--primary)}.hours-col:hover .hours-bar{background:var(--slate-950)}.hours-axis{height:18px;font-family:var(--font-ui);color:var(--slate-400);font-size:11px;position:relative}.hours-axis span{white-space:nowrap;position:absolute;transform:translate(-50%)}.dash-foot{margin-top:24px}@media (max-width:1100px){.grid-main{grid-template-columns:1fr}}@media (max-width:620px){.stats-row,.chart-foot{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-2{grid-template-columns:1fr}.card{padding:16px}h1{font-size:26px;line-height:34px}}.page-head{align-items:flex-start;gap:16px;margin-bottom:8px;display:flex}.page-icon{background:linear-gradient(135deg, var(--primary), #4f46e5);color:#fff;border-radius:14px;flex-shrink:0;place-items:center;width:46px;height:46px;display:grid;box-shadow:0 8px 18px -8px #2563ebb3}.page-head-text{flex:1;min-width:0}.page-sub{max-width:860px;color:var(--slate-500);margin:4px 0 0;font-size:13.5px}.page-actions{align-self:center;gap:8px;display:flex}.section-head{align-items:flex-start;gap:12px;margin-bottom:4px;display:flex}.section-head h2{margin:0}.section-head-text{flex:1;min-width:0}.section-icon{background:var(--primary-soft);width:36px;height:36px;color:var(--primary);border-radius:10px;flex-shrink:0;place-items:center;display:grid}.stack>.section-head{margin-bottom:0}.empty{color:var(--slate-500);align-items:center;gap:14px;padding:6px 0;display:flex}.empty p{margin:0;font-weight:500}.empty-icon{background:var(--emerald-soft);width:42px;height:42px;color:var(--emerald-deep);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.list{margin:20px 0 0}.list>li.card{transition:transform .15s,box-shadow .15s}.list>li.card:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}.list .title{color:var(--slate-950);margin:0 0 2px;font-size:15px;font-weight:650}a.title,.list a.title{text-decoration:none}a.title:hover{color:var(--primary)}form.row,.card.row{align-items:flex-end}.list>li.card.row{align-items:center}label.row{border-radius:var(--radius-ctl);background:var(--amber-soft);color:var(--slate-900);border:1px solid #f59e0b4d;flex-flow:row;align-items:center;gap:10px;padding:12px 14px;font-weight:500}input[type=checkbox],input[type=radio]{width:17px;height:17px;accent-color:var(--primary);flex-shrink:0;padding:0}input[type=file]{background:var(--slate-50);padding:7px}input[type=file]::file-selector-button{border:1px solid var(--slate-200);font:inherit;cursor:pointer;background:#fff;border-radius:8px;margin-right:12px;padding:6px 12px;font-weight:600}textarea[readonly]{background:var(--slate-50)}.btn-wa,.btn-soft{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:5px 12px;font-size:12.5px;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex}.btn-wa{color:#15803d;background:#dcfce7;border:1px solid #bbf7d0}.btn-wa:hover{background:#bbf7d0}.btn-soft{background:var(--primary-soft);color:var(--primary);border:1px solid #dbeafe}.btn-soft:hover{background:#dbeafe}.card table.stats{margin-top:4px}.card>.table-wrap,.card.stack>table.stats{border:1px solid var(--slate-100);border-radius:12px}@media (max-width:620px){.page-head{gap:12px}.page-icon{width:40px;height:40px}.page-actions{width:100%}}.page-head{margin-bottom:20px}.list{gap:10px}.list>li.card{padding:16px 20px}.list .title+p,.list p.muted.small{margin:2px 0 0}.card .list>li.card{background:var(--slate-50);border-color:var(--slate-100);box-shadow:none}.card .list>li.card:hover{box-shadow:none;border-color:var(--slate-200);transform:none}label.row{background:var(--slate-50);border-color:var(--slate-200)}form label.row:has(input[required]){background:var(--amber-soft);border-color:#f59e0b4d}fieldset:not(.contents){border:1px solid var(--slate-200);border-radius:var(--radius-ctl);margin:0;padding:12px 14px 14px}fieldset:not(.contents) legend{color:var(--slate-700);padding:0 6px;font-size:13px;font-weight:600}fieldset label.row{margin:4px 6px 0 0;padding:8px 12px;display:inline-flex}.center .card.narrow{text-align:center;box-shadow:var(--shadow-2);padding:36px 32px}.center .card.narrow .brand-logo{margin:0 auto 16px}.center .card.narrow form,.center .card.narrow label{text-align:left}.center .card.narrow button[type=submit]{width:100%}.topbar .section-head{flex:1;margin:0}.filters{flex-direction:column;gap:14px;margin-top:4px;display:flex}.filter-presets{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--slate-200);color:var(--slate-700);background:#fff;border-radius:999px;padding:6px 14px;font-size:13px;font-weight:600;text-decoration:none}.chip:hover{background:var(--slate-100)}.chip.active{background:var(--primary);border-color:var(--primary);color:#fff}.filter-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));align-items:end;gap:12px;display:grid}.filter-actions{align-items:center;gap:8px;display:flex}.filter-actions .btn-soft{border-radius:var(--radius-ctl);padding:9px 14px;font-size:14px}.kpi-live .kpi-icon{background:var(--emerald-soft);color:var(--emerald-deep)}.kpi-live .kpi-value{color:var(--emerald-deep)}.chart .bar-android{fill:var(--emerald-deep)}.chart .bar-web{fill:var(--primary)}.chart g:hover .bar-android,.chart g:hover .bar-web{opacity:.8}.key-android{background:var(--emerald-deep)}.key-web{background:var(--primary)}.platform-list .key{margin-left:0}.split-bar{background:var(--slate-100);border-radius:999px;gap:2px;height:14px;margin:18px 0 14px;display:flex;overflow:hidden}.split-android{background:var(--emerald-deep)}.split-web{background:var(--primary)}.platform-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.platform-list li{grid-template-columns:14px 1fr auto 48px;align-items:center;gap:10px;font-size:14px;display:grid}.platform-list a{color:var(--slate-900);font-weight:500;text-decoration:none}.platform-list a:hover{color:var(--primary)}.platform-list .muted{text-align:right;font-size:12.5px}.heatmap{grid-template-columns:38px repeat(24,minmax(0,1fr));gap:3px;margin-top:16px;display:grid}.heat-row{display:contents}.heat-hour{font-family:var(--font-ui);color:var(--slate-400);font-size:10.5px}.heat-day{font-family:var(--font-ui);color:var(--slate-500);align-self:center;font-size:12px;font-weight:600}.heat-cell{aspect-ratio:1.4;background:var(--slate-100);border-radius:4px;min-height:14px;display:block}.heatmap .heat-cell:hover{outline:2px solid var(--slate-950);outline-offset:-1px}.heat-legend{color:var(--slate-500);flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:12px;font-size:12px;display:flex}.heat-legend .heat-cell{aspect-ratio:auto;width:18px;height:12px;min-height:0}.country{color:var(--slate-950);text-decoration:none}.country:hover{color:var(--primary)}.flag{background:var(--slate-100);border:1px solid var(--slate-200);min-width:28px;height:20px;font-family:var(--font-ui);letter-spacing:.04em;color:var(--slate-700);border-radius:5px;place-items:center;margin-right:6px;padding:0 5px;font-size:10.5px;font-weight:700;display:inline-grid}.bar-blue{background:var(--primary);border-radius:999px;height:100%;display:block}.mini-track{background:var(--slate-100);border-radius:999px;width:160px;max-width:100%;height:4px;margin-top:5px;display:block;overflow:hidden}.mini-track span{background:var(--primary);border-radius:999px;height:100%;display:block}.audience-kpis{margin-top:16px}@media (max-width:620px){.heatmap{grid-template-columns:30px repeat(24,minmax(0,1fr));gap:1px}.heat-hour{font-size:8px}}.country-track{position:relative}.country-track>span{position:absolute;inset:0 auto 0 0}.bar-soft{background:#bfdbfe;border-radius:999px;height:100%;display:block}.filters-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.filters-status{align-items:center;gap:10px;display:flex}.chip{cursor:pointer;font-family:inherit}.filters.is-loading~*{opacity:.55;transition:opacity .15s}.section-title{flex-wrap:wrap;align-items:center;gap:12px;margin:26px 0 12px;display:flex}.section-title h2{font-family:var(--font-head);color:var(--slate-900);align-items:center;gap:8px;margin:0;font-size:19px;display:flex}.section-title h2 svg{color:var(--primary)}.section-link{color:var(--primary);white-space:nowrap;align-items:center;gap:4px;margin-left:auto;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.section-link:hover{text-decoration:underline}.audience-summary{margin-bottom:18px}.donut-wrap{align-items:center;gap:18px;display:flex}.donut-wrap .platform-list{flex:1;min-width:0;margin:0}.donut{flex:none;width:128px;height:128px}.donut circle{fill:none;stroke-width:16px}.donut-bg{stroke:var(--slate-100)}.donut-web{stroke:var(--primary)}.donut-android{stroke:#047857}.donut-value{font-family:var(--font-head);fill:var(--slate-900);font-size:26px;font-weight:800}.donut-label{fill:var(--slate-500);font-size:11px}.key-live{background:#10b981;box-shadow:0 0 0 3px #10b98133}.country-bars{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.country-bars li{align-items:flex-start;gap:10px;display:flex}.country-bars .rank{background:var(--slate-100);width:22px;height:22px;color:var(--slate-700);border-radius:7px;flex:none;place-items:center;font-size:12px;font-weight:700;display:grid}.country-bars li:first-child .rank{background:var(--primary);color:#fff}.country-main{flex:1;min-width:0}.country-main .barlist-head{flex-wrap:wrap;justify-content:space-between;gap:8px;display:flex}.top-courses{flex-direction:column;gap:10px;margin:0;padding-left:20px;display:flex}.top-courses li::marker{color:var(--slate-400);font-weight:700}.top-courses a{color:var(--slate-900);font-weight:600;text-decoration:none;display:block}.top-courses a:hover{color:var(--primary)}@media (max-width:520px){.donut-wrap{flex-direction:column;align-items:stretch}.donut{align-self:center}.section-link{margin-left:0}}.country-num{white-space:nowrap;font-size:15px}.country-sub{margin-top:4px;font-size:12px;display:block}.country-main .barlist-head{flex-wrap:nowrap;align-items:baseline}.donut-wrap .platform-list li{white-space:nowrap}.country-bars{margin-top:14px}.plan-list{flex-direction:column;gap:10px;display:flex}.plan-row{border:1px solid var(--slate-200);border-radius:12px;grid-template-columns:minmax(220px,2fr) repeat(3,minmax(90px,1fr)) auto auto;align-items:end;gap:10px;padding:12px;display:grid}.plan-row>div{align-self:end}.plan-row .error,.plan-row .success{grid-column:1/-1;margin:0}.plan-name{font-weight:700}.coupon-list{margin-top:14px}.coupon-list li{border-top:1px solid var(--slate-100);flex-wrap:wrap;align-items:center;gap:8px 12px;padding:8px 0;display:flex}.coupon-list li>span{flex:1;min-width:160px}.coupon-list code{background:var(--slate-100);border-radius:6px;padding:2px 8px;font-weight:700}.licence-form fieldset{align-items:center;gap:6px;display:flex}@media (max-width:760px){.plan-row{grid-template-columns:1fr 1fr}.plan-name{grid-column:1/-1}}.settings-grid{align-items:start}.settings-grid label{flex-direction:column;gap:4px;display:flex}
