/* Merged platform shell: React-owned pages (Documents, Real schedule, System). Legacy views keep style.css / lab.css. */
.viewhost{display:contents}
.viewhost.off{display:none}
.navgroup-sep{height:6px}
.nav button .pill{margin-left:auto;font-size:10px;font-weight:700;padding:1px 6px;border-radius:99px;background:var(--neutral-bg);color:var(--muted)}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.form-grid .full{grid-column:1/-1}
.form-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--muted)}
textarea.input{min-height:70px;resize:vertical;font-family:inherit}
.doc-desc{max-width:340px;font-size:12.5px;line-height:1.4}
.doc-ins{max-width:360px;font-size:12.5px;line-height:1.4;color:#334155}
.doc-actions{display:flex;gap:6px;flex-wrap:wrap}
.pager{display:flex;gap:10px;align-items:center;justify-content:flex-end;padding:10px 14px}
.errbox{background:#fdecec;border:1px solid #f5b5b5;color:#8a1c1c;border-radius:10px;padding:10px 14px;margin:10px 0;font-size:13px}
.okbox{background:#e8f6ef;border:1px solid #a9dcc3;color:#0b5c3f;border-radius:10px;padding:10px 14px;margin:10px 0;font-size:13px}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
@media (max-width:700px){.form-grid{grid-template-columns:1fr}}

/* ---- dark theme ---- */
[data-theme=dark]{
  --bg:#0e1424;--surface:#161e33;--surface-2:#1b2540;--border:#27324d;--border-strong:#34415f;--text:#e7ecf7;--muted:#9fb0cc;--faint:#7585a3;
  --primary:#5b8cff;--primary-600:#7aa0ff;--primary-50:#1d2b52;--primary-100:#24366a;--head:#243a73;--head-text:#fff;
  --ok:#5fd394;--ok-bg:#123a28;--warn:#f1c35d;--warn-bg:#3d3210;--bad:#ff8a80;--bad-bg:#46201d;--info:#b3a6ff;--info-bg:#2a2455;--neutral-bg:#222c46;--gold:#e0b04a;--gold-bg:#3b3015;
  --tint-blue:linear-gradient(135deg,#1b2a52,#16223f);--tint-mint:linear-gradient(135deg,#14332d,#112821);--tint-lav:linear-gradient(135deg,#271f4d,#1f193e);--tint-slate:linear-gradient(135deg,#1c2640,#161e33);
  --shadow:0 1px 2px rgba(0,0,0,.5);color-scheme:dark}
[data-theme=dark] .input,[data-theme=dark] select.input,[data-theme=dark] .grp,[data-theme=dark] .chip,[data-theme=dark] .chatbox,[data-theme=dark] .msg.a,[data-theme=dark] .btn{background:var(--surface-2)}
[data-theme=dark] .btn.primary{background:var(--primary);color:#0b1020}
[data-theme=dark] .tag.demo{background:#3b3015;color:#f1c35d}[data-theme=dark] .tag.syn{background:#2a2455;color:#b3a6ff}
[data-theme=dark] .toast{background:#e7ecf7;color:#0e1424}
[data-theme=dark] .errbox{background:#46201d;border-color:#7a2f2a;color:#ffb4ac}[data-theme=dark] .okbox{background:#123a28;border-color:#1f6a46;color:#8fe3b4}
[data-theme=dark] .banner{background:var(--surface-2);border-color:var(--border-strong);color:var(--text)}
[data-theme=dark] tr:hover td{background:rgba(255,255,255,.03)}
.themebtn{margin-top:10px;width:100%}
.donutbox{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.donutbox .lg div{display:flex;align-items:center;gap:8px;margin:4px 0;font-size:13px}.donutbox .lg i{width:10px;height:10px;border-radius:50%;display:inline-block}
.loginwrap{min-height:100vh;display:grid;place-items:center;padding:20px}
.logincard{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px;box-shadow:var(--shadow)}
.logincard h1{font-size:22px;margin:10px 0 4px}.logincard label{display:block;font-size:12px;font-weight:600;color:var(--muted);margin:12px 0 4px}
.userbox{border-top:1px solid var(--border);margin-top:12px;padding-top:10px;font-size:12.5px}
