:root{
  --bg:#f4f6fa;--panel:#fff;--text:#182033;--muted:#6f7890;--line:#e4e8f1;--nav:#121a2c;--nav2:#1c2740;
  --accent:#335dff;--accent-soft:#edf1ff;--danger:#cc3148;--danger-soft:#fff0f2;--warn:#b06a00;--warn-soft:#fff6e6;
  --ok:#2d8a5b;--ok-soft:#ebf8f1;--shadow:0 8px 30px rgba(20,31,55,.07);--radius:16px;
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--text);background:var(--bg)}button,input,select{font:inherit}.hidden{display:none!important}
.login-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 25% 20%,#23345e 0,#121a2c 38%,#0d1322 100%)}
.login-card{width:min(440px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.login-card h1{margin:30px 0 8px;font-size:30px}.login-card p{color:var(--muted);line-height:1.55;margin:0 0 24px}.login-card label{display:block;font-size:13px;font-weight:700;margin:14px 0;color:#4f5870}.login-card input{display:block;width:100%;margin-top:7px;border:1px solid var(--line);border-radius:11px;padding:12px 13px;outline:none}.login-card input:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.form-error{min-height:20px;color:var(--danger);font-size:13px;margin-top:10px}.wide{width:100%;margin-top:8px}.primary,.secondary,.ghost{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:700}.primary{background:var(--accent);color:#fff}.secondary{background:var(--accent-soft);color:#294bc7}.ghost{background:transparent;color:#c5cee2;border:1px solid #34415d}
.app-shell{display:grid;grid-template-columns:248px minmax(0,1fr);min-height:100vh}.sidebar{background:var(--nav);color:#fff;padding:20px 14px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.brand{display:flex;align-items:center;gap:11px;padding:4px 8px 18px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;background:linear-gradient(135deg,#4b72ff,#6a46d9);border-radius:11px;color:white;font-size:20px;font-weight:900}.brand strong{display:block;font-size:17px}.brand small{display:block;color:#96a3bf;margin-top:1px}.brand-login{padding:0}.brand-login strong{color:#182033}.brand-login small{color:#7b849a}
.read-only-badge{margin:0 8px 18px;padding:8px 10px;border-radius:9px;background:#26324c;color:#bfc9dd;font-size:12px}.sidebar nav{display:flex;flex-direction:column;gap:4px}.nav-btn{display:flex;gap:10px;align-items:center;width:100%;border:0;background:transparent;color:#bfc8dc;border-radius:10px;padding:10px 12px;text-align:left;cursor:pointer}.nav-btn:hover{background:#1a253d;color:white}.nav-btn.active{background:#24304c;color:white}.nav-btn .nav-icon{width:22px;text-align:center}.nav-btn .tag{margin-left:auto;font-size:9px;text-transform:uppercase;padding:3px 6px;border-radius:6px;background:#36415c;color:#bfc9dd}.sidebar-bottom{margin-top:auto;padding:14px 8px 0;display:grid;gap:10px}.sidebar-bottom small{color:#74819c}
.main{min-width:0;padding:24px}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.topbar h1{margin:0;font-size:28px}.subtitle{color:var(--muted);font-size:13px;margin-top:4px}.status-pill{background:var(--ok-soft);color:var(--ok);font-weight:700;font-size:12px;border-radius:999px;padding:8px 11px}.status-pill span{display:inline-block;width:7px;height:7px;background:var(--ok);border-radius:50%;margin-right:6px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.toolbar{padding:13px;display:flex;align-items:end;gap:12px;flex-wrap:wrap}.field label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:800;margin:0 0 5px}.field select,.field input{height:40px;border:1px solid var(--line);border-radius:9px;padding:0 11px;background:#fff;outline:none}.field.compact select{min-width:150px}.field.search{flex:1;min-width:240px}.field.search input{width:100%}.segmented{display:flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:#f7f8fb}.segmented button{border:0;background:transparent;border-radius:7px;padding:8px 12px;color:var(--muted);font-weight:700;cursor:pointer}.segmented button.active{background:#fff;color:var(--text);box-shadow:0 2px 8px rgba(18,26,44,.08)}
.kpis{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:12px;margin:16px 0}.kpi{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px 15px}.kpi .value{font-size:25px;font-weight:850;letter-spacing:-.03em}.kpi .label{font-size:12px;color:var(--muted);margin-top:3px}.kpi.error .value{color:var(--danger)}.kpi.warn .value{color:var(--warn)}
.schedule-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:16px;align-items:start}.schedule-card{min-width:0;overflow:hidden}.card-head{padding:16px 18px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:16px}.card-head h2{font-size:17px;margin:0}.card-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.legend{display:flex;gap:12px;color:var(--muted);font-size:11px;white-space:nowrap}.legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:4px}.legend .ok{background:var(--ok)}.legend .warn{background:var(--warn)}
.schedule-grid{overflow:auto;max-height:calc(100vh - 265px);min-height:430px}.grid-table{border-collapse:separate;border-spacing:0;width:max-content;min-width:100%;font-size:12px}.grid-table th,.grid-table td{border-right:1px solid var(--line);border-bottom:1px solid var(--line);vertical-align:top}.grid-table thead th{position:sticky;top:0;z-index:3;background:#f9fafc;padding:9px 8px;min-width:145px;max-width:190px}.grid-table thead th:first-child{left:0;z-index:5;min-width:58px}.grid-table tbody th{position:sticky;left:0;z-index:2;background:#fbfcfe;width:58px;min-width:58px;text-align:center;padding:12px 6px;color:#59637b}.grid-table td{padding:5px;min-width:145px;max-width:190px;height:76px;background:#fff}.lesson-card{border-left:3px solid #8da3ff;background:#f8f9ff;border-radius:8px;padding:7px 8px;margin:1px 0 5px;line-height:1.25}.lesson-card.ambiguous{border-left-color:var(--warn);background:var(--warn-soft)}.lesson-card .subject{font-weight:800;color:#24304a}.lesson-card .teacher{margin-top:4px;color:#4e5870}.lesson-card .meta{display:flex;gap:7px;flex-wrap:wrap;color:#7a8499;font-size:11px;margin-top:4px}.lesson-card .group{background:#eef1f7;border-radius:5px;padding:1px 4px}.empty-cell{color:#c4cad7;text-align:center;padding-top:20px}.loading{padding:40px;color:var(--muted);text-align:center}
.issues-card{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:hidden}.issues-card #issuesList{max-height:calc(100vh - 120px);overflow:auto;padding:10px}.issue{border-radius:10px;padding:10px 11px;margin-bottom:8px;background:#f8f9fb;border:1px solid var(--line)}.issue.error{background:var(--danger-soft);border-color:#ffd8de}.issue.warning{background:var(--warn-soft);border-color:#ffe2ad}.issue .issue-title{font-size:12px;font-weight:800}.issue .issue-detail{font-size:11px;color:#626c83;margin-top:4px;line-height:1.35}.issue .rule-id{font-size:9px;color:#8c94a7;margin-top:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.no-issues{padding:22px 12px;text-align:center;color:var(--ok);font-weight:700}
.hero{padding:24px;display:flex;justify-content:space-between;gap:30px;align-items:center}.hero h2{font-size:24px;margin:5px 0 8px}.hero p{color:var(--muted);line-height:1.55;max-width:760px}.eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--accent);font-weight:900}.pipeline{display:flex;align-items:center;gap:7px;flex-wrap:wrap;justify-content:flex-end;max-width:330px}.pipeline b{font-size:11px;background:var(--accent-soft);color:#3153c5;padding:7px 9px;border-radius:8px}.pipeline span{color:#9aa3b6}.rules-grid{display:grid;grid-template-columns:repeat(3,minmax(240px,1fr));gap:12px}.rule-card{padding:15px}.rule-top{display:flex;justify-content:space-between;gap:10px}.rule-card h3{font-size:14px;margin:0}.rule-card p{font-size:12px;color:var(--muted);line-height:1.45}.rule-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}.chip{font-size:9px;font-weight:850;text-transform:uppercase;letter-spacing:.04em;padding:4px 6px;border-radius:6px;background:#eef1f6;color:#687287}.chip.hard{background:var(--danger-soft);color:var(--danger)}.chip.soft{background:var(--ok-soft);color:var(--ok)}.chip.active{background:var(--accent-soft);color:#3455c7}.rule-id{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;color:#7c869b;margin-top:10px}.rule-explain{border-top:1px dashed var(--line);padding-top:9px;margin-top:10px;font-size:11px;color:#505a71}
.placeholder-page{padding:30px}.placeholder-page h2{font-size:26px;margin:7px 0}.placeholder-page>p{max-width:780px;color:var(--muted);line-height:1.6}.feature-list{display:grid;grid-template-columns:repeat(2,minmax(260px,1fr));gap:10px;margin-top:24px;max-width:900px}.feature{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.feature b{display:block;font-size:13px}.feature span{display:block;color:var(--muted);font-size:11px;margin-top:4px}.simple-table{width:100%;border-collapse:collapse;margin-top:18px}.simple-table th,.simple-table td{border-bottom:1px solid var(--line);padding:9px;text-align:left;font-size:12px}.simple-table th{color:var(--muted);font-size:10px;text-transform:uppercase}.simple-table td:first-child{font-weight:700}
@media(max-width:1200px){.schedule-layout{grid-template-columns:1fr}.issues-card{position:static;max-height:none}.issues-card #issuesList{max-height:320px}.kpis{grid-template-columns:repeat(3,1fr)}.rules-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.app-shell{grid-template-columns:1fr}.sidebar{position:static;height:auto}.sidebar nav{display:grid;grid-template-columns:repeat(2,1fr)}.sidebar-bottom{display:none}.main{padding:14px}.topbar{align-items:flex-start}.status-pill{display:none}.kpis{grid-template-columns:repeat(2,1fr)}.hero{display:block}.pipeline{justify-content:flex-start;margin-top:18px}.rules-grid{grid-template-columns:1fr}.feature-list{grid-template-columns:1fr}.schedule-grid{max-height:65vh}}

/* v0.1.4 — Data Truth & Diagnostics */
.kpis-six{grid-template-columns:repeat(6,minmax(120px,1fr))}.legend .bad{background:var(--danger)}.bands button{padding-left:10px;padding-right:10px}.bell-small{font-size:9px;font-weight:500;margin-top:3px}.lesson-card .resolution{background:#eef6ff;color:#3a5e9a;border-radius:5px;padding:1px 4px}.lesson-card.flash{outline:3px solid rgba(51,93,255,.32);box-shadow:0 0 0 7px rgba(51,93,255,.10);transition:.2s}
.issue-filters{display:flex;gap:5px;flex-wrap:wrap;padding:10px 10px 0}.issue-filters button{border:1px solid var(--line);background:#fff;color:var(--muted);border-radius:7px;padding:6px 8px;font-size:10px;font-weight:800;cursor:pointer}.issue-filters button.active{background:var(--accent-soft);border-color:#cfd8ff;color:#3153c5}.issues-card #issuesList{max-height:calc(100vh - 180px)}.issue-group{padding-bottom:8px}.issue-group-title{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 4px;font-size:11px;font-weight:850;color:#4c566d}.issue-group-title b{min-width:25px;text-align:center;border-radius:999px;background:#eef1f6;padding:3px 7px;color:#5c6680}.issue{display:block;width:100%;text-align:left;font:inherit;cursor:pointer}.issue:hover{filter:brightness(.985);transform:translateY(-1px)}.no-issues.neutral{color:var(--muted)}
.compact-hero{padding:20px 24px}.data-card{overflow:hidden}.table-wrap{overflow:auto;max-height:calc(100vh - 360px)}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.data-table th,.data-table td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.data-table thead th{position:sticky;top:0;background:#f9fafc;z-index:2;color:#6f7890;text-transform:uppercase;font-size:10px;letter-spacing:.04em}.data-table tbody tr:hover{background:#fafbff}.data-table td:first-child{font-weight:800}.muted-chip{display:inline-block;background:#f0f2f6;color:#7a8397;border-radius:6px;padding:3px 6px;font-size:10px}.warn-chip{background:var(--warn-soft);color:var(--warn)}.text-warn{color:var(--warn);font-weight:800}
.audit-grid{display:grid;grid-template-columns:repeat(4,minmax(160px,1fr));gap:10px;margin-top:22px}.audit-box{border:1px solid var(--line);border-radius:12px;padding:14px;background:#fafbfc}.audit-box b{display:block;font-size:11px;color:#626c83}.audit-box strong{display:block;font-size:25px;margin-top:4px}.audit-box span{display:block;color:var(--muted);font-size:10px;margin-top:4px}
@media(max-width:1400px){.kpis-six{grid-template-columns:repeat(3,1fr)}.audit-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.bands{order:4}.table-wrap{max-height:none}.audit-grid{grid-template-columns:1fr}}

/* v0.2.0 — isolated draft editor */
.draft-badge{background:#233b35;color:#bfe8d5}.editor-warning{padding:20px 22px;display:flex;justify-content:space-between;align-items:center;gap:22px;margin-bottom:14px;border-color:#d9e7df;background:linear-gradient(135deg,#fff,#f7fcf9)}.editor-warning h2{margin:5px 0 6px;font-size:23px}.editor-warning p{margin:0;color:var(--muted);max-width:850px;line-height:1.5}.editor-safe-pill{white-space:nowrap;background:var(--ok-soft);color:var(--ok);font-weight:850;border-radius:999px;padding:9px 12px;font-size:11px}.editor-toolbar{margin-bottom:0}.danger-btn{border:0;border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:700;background:var(--danger-soft);color:var(--danger)}.danger-btn:hover{filter:brightness(.98)}button:disabled{opacity:.45;cursor:not-allowed}.editor-empty{padding:36px;text-align:center}.editor-empty h2{margin:0 0 8px}.editor-empty p{max-width:700px;margin:0 auto 18px;color:var(--muted);line-height:1.55}.draft-status{font-size:11px;font-weight:850;border-radius:999px;padding:7px 10px;background:var(--accent-soft);color:#3153c5}.draft-status.ready{background:var(--ok-soft);color:var(--ok)}
.editor-grid-table td.editor-drop{transition:background .12s,box-shadow .12s}.editor-grid-table td.editor-drop.drag-over{background:#eef3ff;box-shadow:inset 0 0 0 2px #9ab0ff}.editor-card{cursor:pointer}.editor-card[draggable="true"]{cursor:grab}.editor-card.dragging{opacity:.35}.editor-card.changed{border-left-color:var(--accent);background:#f5f7ff}.editor-card.cancelled{opacity:.58;text-decoration:line-through;border-left-color:#9aa3b6;background:#f4f5f7}.editor-card.ambiguous{border-left-color:var(--danger);background:var(--danger-soft)}.edit-chip{background:#e8edff;color:#3153c5;border-radius:5px;padding:1px 4px}.edit-chip.pin{background:#f0f2f6;color:#566079}.edit-chip.cancel{background:#f2e9ec;color:#8a4250}.editor-history-head{border-top:1px solid var(--line);padding:11px 13px 5px;font-size:11px;color:#566079}.editor-history{max-height:220px;overflow:auto;padding:6px 10px 12px}.history-row{border-top:1px solid #edf0f5;padding:8px 3px}.history-row:first-child{border-top:0}.history-row b{display:block;font-size:11px}.history-row span{display:block;font-size:10px;color:#69738a;margin-top:2px}.history-row small{display:block;font-size:9px;color:#99a1b2;margin-top:3px}.loading.small{padding:14px;font-size:11px}
.entry-dialog{width:min(650px,calc(100vw - 30px));border:0;border-radius:18px;padding:0;box-shadow:0 26px 80px rgba(10,20,40,.28)}.entry-dialog::backdrop{background:rgba(12,18,30,.52)}.entry-dialog form{padding:22px}.dialog-head{display:flex;justify-content:space-between;gap:16px;align-items:start}.dialog-head h2{margin:4px 0 0;font-size:22px}.icon-btn{width:34px;height:34px;border:1px solid var(--line);background:#fff;border-radius:9px;font-size:22px;line-height:1;cursor:pointer}.source-line{margin:14px 0;padding:9px 10px;border-radius:9px;background:#f7f8fb;color:#69738a;font-size:11px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid label,.note-field{font-size:11px;font-weight:800;color:#566079}.form-grid input,.note-field input{display:block;width:100%;height:40px;border:1px solid var(--line);border-radius:9px;padding:0 10px;margin-top:5px;background:#fff}.form-grid input:disabled{background:#f5f6f8;color:#767f91}.form-grid .span2{grid-column:1/-1}.check-row{display:flex;gap:20px;flex-wrap:wrap;margin:15px 0;font-size:12px;font-weight:700;color:#49536a}.note-field{display:block}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:9px;align-items:center;margin-top:18px}.ghost-light{border:1px solid var(--line);background:#fff;color:#657087;border-radius:9px;padding:9px 11px;font-weight:700;cursor:pointer}
@media(max-width:760px){.editor-warning{display:block}.editor-safe-pill{display:inline-block;margin-top:14px}.form-grid{grid-template-columns:1fr}.form-grid .span2{grid-column:auto}.dialog-actions{grid-template-columns:1fr 1fr}.dialog-actions span{display:none}}

/* v0.2.1 — public test access */
.public-test-banner{display:flex;align-items:center;gap:12px;margin-bottom:12px;padding:10px 14px;border:1px solid #f0d7a7;background:#fff9ee;border-radius:12px;font-size:11px;color:#6b5731}.public-test-banner b{font-size:10px;letter-spacing:.08em;color:#9a661a}.public-mode-chip{display:inline-block;margin:0 0 10px;padding:5px 8px;border-radius:999px;background:#fff2d8;color:#946017;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.status-stack{display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.status-safe{background:#fff7e7;color:#8a601e}.status-safe:before{content:"●";margin-right:5px;color:#d5962c}@media(max-width:800px){.public-test-banner{align-items:flex-start;flex-direction:column;gap:3px}.status-stack{display:none}}

/* v0.2.2 — AI advisor foundation */
.ai-hero{align-items:flex-start}.ai-provider{min-width:240px;max-width:330px}.ai-provider span{display:block;font-weight:850;border-radius:999px;padding:8px 11px;width:max-content}.ai-provider small{display:block;color:var(--muted);font-size:10px;line-height:1.45;margin-top:8px}.ai-connected{background:var(--ok-soft);color:var(--ok)}.ai-pending{background:var(--warn-soft);color:var(--warn)}.ai-layout{display:grid;grid-template-columns:1fr 1fr;gap:14px}.ai-panel{overflow:hidden}.ai-priorities,.ai-modules{padding:12px}.ai-priority{display:grid;grid-template-columns:28px 1fr;align-items:start;gap:9px;padding:10px 5px;border-bottom:1px solid var(--line)}.ai-priority:last-child{border-bottom:0}.ai-priority b{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:var(--accent-soft);color:#3153c5;font-size:11px}.ai-priority span{font-size:12px;line-height:1.45;color:#4f5970}.ai-note{margin:0 12px 12px;padding:10px;border-radius:9px;background:#f7f8fb;color:#687287;font-size:10px;line-height:1.45}.ai-module-card{display:grid;grid-template-columns:32px 1fr;gap:10px;padding:10px 5px;border-bottom:1px solid var(--line)}.ai-module-card:last-child{border-bottom:0}.ai-module-num{display:grid;place-items:center;width:28px;height:28px;border-radius:8px;background:#171f34;color:#fff;font-size:11px;font-weight:850}.ai-module-card b{display:block;font-size:12px}.ai-module-card span{display:block;color:var(--muted);font-size:10px;line-height:1.4;margin-top:3px}.ai-guard-card{margin-top:14px;padding:20px 22px;display:flex;justify-content:space-between;gap:28px}.ai-guard-card h2{margin:5px 0 0;font-size:20px}.ai-guard-card ul{margin:0;max-width:620px;color:#59637b;font-size:11px;line-height:1.6}.suggestion-action{display:flex;align-items:center;gap:10px;margin-top:14px}.suggestion-action span{font-size:9px;color:#8a93a6}.entry-suggestions{margin-top:10px;border:1px solid #dfe5f4;background:#f8faff;border-radius:11px;padding:11px}.suggestions-head{display:flex;justify-content:space-between;gap:12px;align-items:start}.suggestions-head b{font-size:11px}.suggestions-head small{max-width:330px;color:#7b8599;font-size:9px;text-align:right;line-height:1.35}.suggestions-block{margin-top:10px}.suggestions-block>span{display:block;text-transform:uppercase;letter-spacing:.05em;color:#778197;font-size:8px;font-weight:850;margin-bottom:5px}.suggestions-block>div{display:flex;gap:5px;flex-wrap:wrap}.suggestions-block em{font-size:10px;color:#8c95a8}.suggestion-chip{border:1px solid #ccd7ff;background:#fff;color:#3153c5;border-radius:999px;padding:5px 8px;font-size:9px;font-weight:800;cursor:pointer}.suggestion-chip.room{border-color:#d9e5dd;color:#2f7854}.suggestion-chip:hover{filter:brightness(.98);transform:translateY(-1px)}
@media(max-width:1000px){.ai-layout{grid-template-columns:1fr}.ai-guard-card{display:block}.ai-guard-card ul{margin-top:14px;padding-left:18px}}@media(max-width:700px){.suggestion-action{align-items:flex-start;flex-direction:column}.suggestions-head{display:block}.suggestions-head small{display:block;text-align:left;margin-top:5px}}


/* v0.2.3 — Visual Board & Day Setup */
.grid-table thead .parallel-row th{top:0;z-index:6;background:#edf1f8;border-bottom:1px solid #d9deea;text-align:center;font-size:9px;letter-spacing:.06em;text-transform:uppercase;color:#5e687e}.grid-table thead .class-row th{top:25px;z-index:5}.parallel-band{border-left:2px solid #c8cfde!important}.parallel-start{border-left:3px solid #c4ccdb!important}.schedule-grid{scrollbar-gutter:stable}.editor-toolbar{gap:8px}.editor-mode{margin-left:2px}.setup-summary{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:8px 12px;margin:8px 0 0;border:1px solid var(--line);border-radius:11px;background:#fafbfe;font-size:10px;color:#687287}.setup-summary b{color:#3f4960}.setup-summary span{padding:4px 7px;background:#eef1f7;border-radius:999px}.impact-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:8px 0 0;padding:8px 12px;border-radius:10px;border:1px solid}.impact-bar b{font-size:11px}.impact-bar span{font-size:10px;font-weight:750}.impact-bar small{font-size:9px;opacity:.8}.impact-bar.safe{background:#effaf4;border-color:#bcdcca;color:#246b49}.impact-bar.warn{background:#fff7e8;border-color:#edcf98;color:#855e18}.impact-bar.hard{background:#fff0f2;border-color:#ebbdc5;color:#943b4c}
.teacher-pattern{--teacher-color:#dde3ef}.pattern-solid{background:color-mix(in srgb,var(--teacher-color) 32%,white)!important}.pattern-stripes{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--teacher-color) 48%,white) 0 7px,color-mix(in srgb,var(--teacher-color) 22%,white) 7px 13px)!important}.pattern-dots{background-color:color-mix(in srgb,var(--teacher-color) 22%,white)!important;background-image:radial-gradient(color-mix(in srgb,var(--teacher-color) 78%,black) 1px,transparent 1.5px)!important;background-size:8px 8px!important}.pattern-diagonal{background:repeating-linear-gradient(45deg,color-mix(in srgb,var(--teacher-color) 26%,white) 0 5px,color-mix(in srgb,var(--teacher-color) 54%,white) 5px 7px)!important}.pattern-cross{background-color:color-mix(in srgb,var(--teacher-color) 24%,white)!important;background-image:linear-gradient(color-mix(in srgb,var(--teacher-color) 50%,white) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--teacher-color) 50%,white) 1px,transparent 1px)!important;background-size:8px 8px!important}.editor-card.teacher-pattern{border-left-color:color-mix(in srgb,var(--teacher-color) 80%,#333)!important}
.editor-grid-table td.editor-drop.preview-safe{background:#e8f8ef!important;box-shadow:inset 0 0 0 2px #66b98a}.editor-grid-table td.editor-drop.preview-warn{background:#fff6dd!important;box-shadow:inset 0 0 0 2px #d5a13a}.editor-grid-table td.editor-drop.preview-hard{background:#ffe9ec!important;box-shadow:inset 0 0 0 2px #d86276}
.nano-workspace{grid-template-columns:minmax(0,1fr)!important}.nano-workspace>.issues-card{display:none}.nano-board{max-height:calc(100vh - 290px);background:#f6f8fb}.nano-table{font-size:9px;table-layout:fixed;width:max-content;min-width:100%}.nano-table th:first-child{width:42px;min-width:42px;max-width:42px}.nano-table .class-row th{width:72px;min-width:72px;max-width:72px;padding:4px 2px;font-size:9px}.nano-table .parallel-row th{height:22px}.nano-table tbody th{height:36px;padding:3px;position:sticky;left:0;z-index:4;background:#f7f8fb}.nano-cell{width:72px;min-width:72px;max-width:72px;height:36px!important;padding:2px!important}.nano-stack{display:flex;gap:2px;width:100%;height:100%;min-height:28px}.nano-tile{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;flex:1 1 0;border:1px solid color-mix(in srgb,var(--teacher-color) 70%,#667);border-radius:4px;padding:2px;overflow:hidden;cursor:grab;font-size:8px;font-weight:850;line-height:1.05;text-align:center;color:#263044}.nano-tile span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.nano-tile i{position:absolute;width:5px;height:5px;border-radius:50%;right:2px;top:2px;background:#3153c5}.nano-tile.cancelled{opacity:.35;text-decoration:line-through}.nano-tile.dragging{opacity:.25}.nano-cell .nano-stack:empty:after{content:''}.nano-table td,.nano-table th{border-bottom-color:#e2e6ee}.nano-table .parallel-start{border-left:3px solid #aeb8ca!important}
.wide-dialog{width:min(900px,calc(100vw - 26px));max-height:92vh;overflow:auto}.wizard-intro{color:#69738a;font-size:11px;line-height:1.5;margin:10px 0 14px}.wizard-section{border-top:1px solid var(--line);padding:13px 0 2px}.wizard-section h3{font-size:12px;margin:0 0 9px;color:#39445b}.form-grid.three{grid-template-columns:1fr 1fr 1fr}.form-grid select,.form-grid textarea,.note-field textarea{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:9px 10px;margin-top:5px;background:#fff;font:inherit}.form-grid textarea,.note-field textarea{height:74px;resize:vertical;font-weight:500;color:#293349}.check-line{display:block;margin-top:9px;font-size:11px;font-weight:750;color:#526077}.priority-grid{display:grid;grid-template-columns:repeat(3,minmax(180px,1fr));gap:8px}.priority-grid label{padding:8px 9px;border:1px solid var(--line);border-radius:9px;font-size:10px;font-weight:750;color:#4e5970}.wizard-footnote{padding:10px;margin-top:12px;border-radius:9px;background:#f3f6fc;color:#657087;font-size:9px;line-height:1.45}.teacher-style-search{margin:12px 0}.teacher-styles-list{max-height:56vh;overflow:auto;border:1px solid var(--line);border-radius:11px}.teacher-style-row{display:grid;grid-template-columns:44px minmax(180px,1fr) 52px 130px;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line)}.teacher-style-row:last-child{border-bottom:0}.teacher-style-row b{font-size:11px}.teacher-swatch{width:40px;height:24px;border-radius:6px;border:1px solid #c9d0de}.teacher-style-row input[type=color]{width:48px;height:30px;border:0;background:none;padding:0}.teacher-style-row select{height:32px;border:1px solid var(--line);border-radius:8px;background:#fff;font-size:10px;padding:0 6px}
@media(max-width:900px){.priority-grid{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:1fr}.nano-table .class-row th,.nano-cell{width:64px;min-width:64px;max-width:64px}.teacher-style-row{grid-template-columns:36px 1fr 46px 100px}.teacher-swatch{width:32px}}
@media(max-width:620px){.priority-grid{grid-template-columns:1fr}.teacher-style-row{grid-template-columns:32px 1fr 42px}.teacher-style-row select{grid-column:2/4}.setup-summary{display:none}}


/* v0.2.4 — Setup Presets & Room Planner */
.preset-strip{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:8px;align-items:end;padding:10px;border:1px solid #dce3ef;border-radius:11px;background:#f8faff;margin:4px 0 6px}.preset-strip .field{margin:0}.preset-strip select{width:100%;border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 9px;font:inherit}.preset-hint{font-size:9px;color:#707b91;line-height:1.45;margin:0 0 6px}.room-planner-dialog{width:min(1120px,calc(100vw - 24px))}.room-planner-controls{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;border-top:1px solid var(--line);padding-top:12px}.room-planner-controls label{font-size:10px;font-weight:750;color:#59647a}.room-planner-controls label.span2{grid-column:span 2}.room-planner-controls small{font-weight:500;color:#8a93a5}.room-planner-controls input,.room-planner-controls select,.bulk-room input{display:block;width:100%;border:1px solid var(--line);border-radius:9px;padding:8px 9px;margin-top:5px;background:#fff;font:inherit;color:#293349}.room-checks{margin:10px 0}.room-planner-actions{display:flex;gap:8px;align-items:end;flex-wrap:wrap;padding:9px 0}.bulk-room{font-size:10px;font-weight:750;color:#59647a;min-width:220px}.room-planner-summary{padding:10px 12px;background:#f5f7fb;border:1px solid var(--line);border-radius:10px;font-size:10px;color:#5d687e;line-height:1.45;margin:4px 0 10px}.room-planner-table-wrap{max-height:48vh;overflow:auto;border:1px solid var(--line);border-radius:10px}.room-planner-table{font-size:10px}.room-planner-table th{position:sticky;top:0;background:#f5f7fb;z-index:2}.room-planner-table input.room-choice{width:112px;border:1px solid #cfd6e3;border-radius:7px;padding:6px 7px;font-size:10px}.room-confidence{display:inline-block;padding:3px 6px;border-radius:999px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.room-confidence.high{background:#e8f7ee;color:#28704c}.room-confidence.medium{background:#fff4d8;color:#86611e}.room-confidence.low{background:#f0f2f7;color:#687287}.room-confidence.manual{background:#e9eefc;color:#3856a8}.room-reason{max-width:280px;color:#6c768a;font-size:9px;line-height:1.35}.room-empty-cell{color:#9aa3b4;font-style:italic}.room-candidates{font-size:8px;color:#8a93a4;white-space:nowrap}.room-planner-table tr[data-room-row].changed{background:#f1f7ff}.room-planner-table tr[data-room-row].invalid{background:#fff0f2}.room-planner-legend{font-size:9px;color:#7c8699}
@media(max-width:900px){.preset-strip{grid-template-columns:1fr 1fr}.room-planner-controls{grid-template-columns:1fr 1fr}.room-planner-controls label.span2{grid-column:span 2}}@media(max-width:620px){.preset-strip{grid-template-columns:1fr}.room-planner-controls{grid-template-columns:1fr}.room-planner-controls label.span2{grid-column:span 1}.room-planner-actions{align-items:stretch;flex-direction:column}.bulk-room{min-width:0}}
