:root{--bg: #0a0d12;--bg-raise: #10141c;--surface: rgba(255, 255, 255, .035);--surface-2: rgba(255, 255, 255, .06);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #e9edf3;--text-dim: #9aa3b2;--text-faint: #5f6878;--accent: #c6f432;--accent-soft: rgba(198, 244, 50, .12);--amber: #fbbf24;--amber-soft: rgba(251, 191, 36, .12);--red: #fb7185;--red-soft: rgba(251, 113, 133, .12);--blue: #60a5fa;--violet: #a78bfa;--cyan: #22d3ee;--font-body: "Inter", system-ui, sans-serif;--font-display: "Unbounded", "Inter", system-ui, sans-serif;--radius: 18px;--radius-sm: 12px;--dur: .28s;--ease: cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background:radial-gradient(900px 500px at 85% -10%,rgba(198,244,50,.07),transparent 60%),radial-gradient(700px 500px at -10% 110%,rgba(96,165,250,.06),transparent 60%)}#root{position:relative;z-index:1}.shell{display:grid;grid-template-columns:232px 1fr;min-height:100vh}.main{padding:20px 28px 48px;min-width:0}.sidebar{position:sticky;top:0;height:100vh;padding:22px 14px;border-right:1px solid var(--border);background:linear-gradient(180deg,rgba(255,255,255,.02),transparent);display:flex;flex-direction:column;gap:4px}.brand{display:flex;align-items:center;gap:10px;padding:4px 10px 20px}.brand-badge{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;background:var(--accent);color:#0c1200;box-shadow:0 0 24px #c6f43259;flex-shrink:0}.brand-name{font-family:var(--font-display);font-size:12px;font-weight:700;letter-spacing:.04em;line-height:1.25}.brand-sub{font-size:10px;color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase}.nav-section{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--text-faint);padding:14px 12px 6px}.nav-item{display:flex;align-items:center;gap:11px;width:100%;padding:10px 12px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--text-dim);font:inherit;font-weight:500;cursor:pointer;position:relative;text-decoration:none;transition:color var(--dur) var(--ease),background var(--dur) var(--ease)}.nav-item:hover{color:var(--text);background:var(--surface)}.nav-item.active{color:var(--text)}.nav-pill{position:absolute;inset:0;border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);box-shadow:inset 0 1px #ffffff0f}.nav-item>svg,.nav-item>span{position:relative;z-index:1}.nav-item.active>svg{color:var(--accent)}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:6px 0 22px;flex-wrap:wrap}.page-title{font-family:var(--font-display);font-size:26px;font-weight:600;letter-spacing:-.01em}.page-sub{color:var(--text-dim);margin-top:4px;font-size:13px}.seg{display:inline-flex;padding:4px;gap:2px;background:var(--surface);border:1px solid var(--border);border-radius:12px}.seg button{border:0;background:transparent;color:var(--text-dim);font:inherit;font-size:12.5px;font-weight:600;padding:7px 14px;border-radius:9px;cursor:pointer;transition:all var(--dur) var(--ease)}.seg button:hover{color:var(--text)}.seg button.on{background:var(--accent);color:#0c1200;box-shadow:0 2px 14px #c6f4324d}.grid{display:grid;gap:14px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:18px 20px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;overflow:hidden;transition:border-color var(--dur) var(--ease),transform var(--dur) var(--ease)}.card:hover{border-color:var(--border-strong)}.card-title{font-size:12px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.kpi-value{font-family:var(--font-display);font-size:27px;font-weight:600;letter-spacing:-.01em;line-height:1.1;font-variant-numeric:tabular-nums}.kpi-label{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);margin-bottom:10px;display:flex;align-items:center;gap:8px}.kpi-foot{margin-top:10px;font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:8px}.pill{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;font-weight:700;padding:3px 9px;border-radius:999px;font-variant-numeric:tabular-nums}.pill.up{background:var(--accent-soft);color:var(--accent)}.pill.down{background:var(--red-soft);color:var(--red)}.pill.flat{background:var(--surface-2);color:var(--text-dim)}.pill.warn{background:var(--amber-soft);color:var(--amber)}.table{width:100%;border-collapse:collapse;font-size:13px}.table th{text-align:left;font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);font-weight:600;padding:8px 10px;border-bottom:1px solid var(--border);white-space:nowrap}.table td{padding:10px;border-bottom:1px solid rgba(255,255,255,.04);font-variant-numeric:tabular-nums;white-space:nowrap}.table tr:last-child td{border-bottom:0}.table tbody tr{transition:background var(--dur) var(--ease)}.table tbody tr:hover{background:#ffffff08}.num,.table th.num{text-align:right}.meter{height:6px;background:var(--surface-2);border-radius:999px;overflow:hidden}.meter>div{height:100%;border-radius:999px;transition:width .8s var(--ease)}.dot{width:8px;height:8px;border-radius:999px;display:inline-block;flex-shrink:0}.alert-row{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border-radius:var(--radius-sm);background:var(--surface);border:1px solid var(--border);font-size:13px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.4}}@media(max-width:1100px){.shell{grid-template-columns:64px 1fr}.brand-name,.brand-sub,.nav-item>span,.nav-section{display:none}.nav-item{justify-content:center}}@media(max-width:760px){.main{padding:14px 14px 40px}.page-title{font-size:20px}}:root{color-scheme:dark}select option,select optgroup{background:var(--bg-raise);color:var(--text)}.nav-phase{font-size:9px;color:var(--text-faint);letter-spacing:.08em;vertical-align:super;margin-left:3px}.sidebar-user{padding:10px 12px 4px;border-top:1px solid var(--border)}.sidebar-user-name{font-size:12.5px;font-weight:600}.sidebar-user-role{font-size:10px;color:var(--text-faint);letter-spacing:.08em;text-transform:uppercase}@media(max-width:1100px){.sidebar-user{display:none}}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:100%;max-width:380px;padding:34px 32px 30px}.login-brand{display:flex;align-items:center;gap:12px;margin-bottom:22px}.login-title{font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:.02em}.login-sub{font-size:12px;color:var(--text-dim)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint)}.field input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;color:var(--text);font:inherit;transition:border-color var(--dur) var(--ease)}.field input:focus{outline:none;border-color:var(--accent)}.btn-primary{width:100%;padding:12px;border:0;border-radius:var(--radius-sm);background:var(--accent);color:#0c1200;font:inherit;font-weight:700;cursor:pointer;box-shadow:0 2px 18px #c6f43247;transition:transform var(--dur) var(--ease),opacity var(--dur) var(--ease)}.btn-primary:hover:not(:disabled){transform:translateY(-1px)}.btn-primary:disabled{opacity:.55;cursor:wait}.btn-ghost{padding:9px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;transition:border-color var(--dur) var(--ease),color var(--dur) var(--ease)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.form-error{margin:4px 0 12px;font-size:12.5px;color:var(--red)}.login-hint{margin-top:18px;font-size:11.5px;color:var(--text-faint);line-height:1.6}.login-hint code{color:var(--text-dim);background:var(--surface-2);border-radius:5px;padding:1px 5px}.battery{display:inline-flex;align-items:center;gap:3px}.battery-body{display:inline-flex;align-items:center;border:1.5px solid var(--border-strong);background:var(--surface-2);padding:2.5px}.battery-fill{display:block;height:100%}.battery-cap{width:3.5px;border-radius:2px;background:var(--border-strong)}.battery-value{margin-left:7px;font-weight:700;font-variant-numeric:tabular-nums}.battery-hero .battery-value{font-family:var(--font-display);font-size:34px}.filters-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:16px}.filters-row select,.filters-row input{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 12px;color:var(--text);font:inherit;font-size:12.5px}.filters-row select:focus,.filters-row input:focus{outline:none;border-color:var(--accent)}.row-link{cursor:pointer}.profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px}.kv{display:grid;grid-template-columns:140px 1fr;gap:6px 12px;font-size:13px}.kv dt{color:var(--text-faint)}.kv dd{font-weight:500;overflow-wrap:anywhere}.breakdown-row{display:grid;grid-template-columns:120px 1fr 42px;align-items:center;gap:12px;font-size:12.5px;color:var(--text-dim);margin-bottom:10px}.breakdown-row .num{font-weight:700;color:var(--text);font-variant-numeric:tabular-nums}.placeholder-card{padding:44px 30px;text-align:center;color:var(--text-dim)}.placeholder-card .icon{color:var(--text-faint);margin-bottom:12px}.placeholder-card h3{font-family:var(--font-display);font-size:17px;color:var(--text);margin-bottom:8px}.materials-list{display:flex;flex-direction:column;gap:6px;margin:6px 0}.material-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);padding:8px 10px;font-size:12.5px}.material-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.material-body{margin-top:8px;padding:10px 12px;background:var(--surface-2);border-radius:10px;white-space:pre-wrap;font-size:12.5px;line-height:1.6;max-height:420px;overflow-y:auto}.materials-editor{margin-top:8px;padding:8px 10px;border:1px dashed var(--border);border-radius:var(--radius-sm)}.nblm-helper{margin:8px 0 12px 18px;font-size:12px;color:var(--text-dim);line-height:1.7}.nblm-helper b{color:var(--text)}.material-url-input{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 11px;color:var(--text);font:inherit;font-size:12.5px;margin-bottom:6px}.material-url-input:focus{outline:none;border-color:var(--accent)}.lesson-editor{padding:10px 0;border-top:1px solid rgba(255,255,255,.05)}.icon-btn{padding:6px 8px;line-height:0}.org-divisions{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px}.org-division{position:relative;padding-top:22px}.org-division-number{position:absolute;top:10px;right:16px;font-family:var(--font-display);font-size:34px;font-weight:700;opacity:.18;line-height:1}.org-ckp{font-size:12.5px;font-style:italic;color:var(--text-dim);border-left:2px solid var(--border-strong);padding-left:10px;margin-bottom:8px}.org-chip{display:inline-flex;align-items:center;font-size:12px;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--border)}.org-card{display:flex;align-items:center;gap:10px;padding:8px 10px;margin:4px 0;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);max-width:560px}.org-avatar{width:30px;height:30px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:var(--accent-soft);color:var(--accent);font-size:11px;font-weight:700;flex-shrink:0}.group-header{display:flex;align-items:center;gap:8px;width:100%;background:transparent;border:0;color:var(--text);font:inherit;cursor:pointer;padding:2px 0}.test-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid rgba(255,255,255,.05);flex-wrap:wrap}.kanban{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:start}.kanban-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px;min-height:120px}.kanban-head{font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text-faint);display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.option-row{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);cursor:pointer;font-size:13px;transition:border-color var(--dur) var(--ease)}.option-row:hover{border-color:var(--border-strong)}.option-row input{accent-color:var(--accent)}.open-answer{width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);padding:11px 13px;color:var(--text);font:inherit;resize:vertical}.open-answer:focus{outline:none;border-color:var(--accent)}.org-node{margin-left:18px;padding-left:14px;border-left:1px solid var(--border)}.org-node.root{margin-left:0;padding-left:0;border-left:0}.org-entry{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:13px}.org-entry .pos{color:var(--text-faint);font-size:12px}
