:root{--navy:#102a43;--blue:#1261a0;--cyan:#17a2b8;--ink:#1f2933;--muted:#65737e;--line:#d9e2ec;--paper:#fff;--wash:#f0f4f8;--success:#15803d;--warning:#b45309;--danger:#b91c1c;--radius:18px;--shadow:0 18px 45px rgba(16,42,67,.10)}
*{box-sizing:border-box}
body{margin:0;background:var(--wash);color:var(--ink);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
.login-shell{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 12% 12%,rgba(23,162,184,.22),transparent 35%),linear-gradient(135deg,#071f33,#143f62 52%,#136b84)}
.login-card{width:min(440px,100%);background:rgba(255,255,255,.97);border-radius:28px;padding:42px;box-shadow:0 30px 80px rgba(0,0,0,.25)}
.brand-mark{display:grid;place-items:center;width:68px;height:68px;border-radius:20px;background:linear-gradient(135deg,var(--blue),var(--cyan));color:#fff;font-weight:900;letter-spacing:.08em;box-shadow:0 12px 30px rgba(18,97,160,.28)}
.brand-mark.small{width:42px;height:42px;border-radius:13px;font-size:12px}
.branch-identity{margin:-6px 0 18px;color:var(--muted);font-size:12px;font-weight:900;letter-spacing:.14em;text-align:center;text-transform:uppercase}
.eyebrow{margin:0 0 5px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
h1,h2{margin:0;line-height:1.16;color:var(--navy)} h1{font-size:clamp(27px,4vw,38px)} h2{font-size:21px}
.muted{color:var(--muted)}.small-copy{font-size:13px}.form-error{min-height:23px;color:var(--danger)}.form-message{min-height:23px;color:var(--success)}
.text-button{background:transparent;border:0;color:var(--primary);padding:.65rem 0;text-decoration:underline;text-underline-offset:3px}.text-button:hover{background:transparent;color:var(--primary-dark)}
.language-login{float:right;margin-top:8px;padding:7px 10px;background:#e7f2f8;color:var(--navy)}
.stack{display:grid;gap:17px}.stack label,.filters label,.form-grid label{display:grid;gap:7px;color:#334e68;font-size:13px;font-weight:700}
input,select,textarea{width:100%;border:1px solid #bcccdc;border-radius:11px;background:#fff;padding:11px 12px;color:var(--ink);outline:none;transition:.18s border,.18s box-shadow}
input:focus,select:focus,textarea:focus{border-color:var(--cyan);box-shadow:0 0 0 3px rgba(23,162,184,.14)}
.button{border:0;border-radius:11px;padding:10px 15px;font-weight:800;transition:.18s transform,.18s opacity,.18s background}
.button:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;opacity:.5;transform:none}
.primary{background:linear-gradient(135deg,var(--blue),#087f8c);color:#fff}.secondary{background:#d9eaf7;color:var(--navy)}.ghost{background:rgba(255,255,255,.09);color:#fff}
.app-shell{min-height:100vh;display:grid;grid-template-columns:250px minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;padding:24px 18px;background:linear-gradient(180deg,#0b253a,#102a43);color:#fff}
.brand-row{display:flex;align-items:center;gap:12px;padding:0 8px 27px;font-weight:850;font-size:18px}
nav{display:grid;gap:13px;overflow:auto;padding-right:3px}.nav-group{display:grid;gap:5px}.nav-group h2{margin:5px 14px 2px;color:#829ab1;font-size:10px;letter-spacing:.12em;text-transform:uppercase}.nav-item{border:0;border-radius:11px;padding:10px 14px;background:transparent;color:#bcccdc;text-align:left;font-weight:750}.nav-item:hover,.nav-item.active{background:rgba(255,255,255,.10);color:#fff}
.sidebar-close,.sidebar-scrim,.menu-button,.mobile-signout{display:none}
.sidebar-footer{margin-top:auto;display:grid;gap:5px;padding:18px 8px 4px}.sidebar-footer .button{margin-top:10px}
main{min-width:0;padding:0 30px 42px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:28px 0 22px}.title-block{min-width:0;flex:1}.language-button{min-width:48px}
.view{display:grid;gap:20px}.panel{background:var(--paper);border:1px solid rgba(188,204,220,.7);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.filters{display:grid;grid-template-columns:repeat(4,minmax(140px,1fr)) auto;align-items:end;gap:14px}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.metrics-six{grid-template-columns:repeat(6,1fr)}.metrics article{padding:18px 20px;border-radius:16px;background:linear-gradient(135deg,#fff,#f5f9fc);border:1px solid var(--line)}.metrics span{display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.metrics strong{display:block;margin-top:7px;color:var(--navy);font-size:23px}
.table-panel{padding:0;overflow:hidden}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:13px 16px;border-bottom:1px solid #e6edf3;text-align:left}th{position:sticky;top:0;background:#f7fafc;color:#486581;font-size:12px;text-transform:uppercase;letter-spacing:.05em}tbody tr:hover{background:#f8fbfd}
body[data-density="compact"] th,body[data-density="compact"] td{padding:7px 10px;font-size:13px}
.split{display:grid;grid-template-columns:minmax(300px,.72fr) minmax(420px,1.28fr);gap:20px;align-items:start}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:17px}.card-list{display:grid;gap:11px}.item-card{border:1px solid var(--line);border-radius:14px;padding:15px;background:#fff}.item-card header{display:flex;justify-content:space-between;gap:12px}.item-card h3{margin:0;color:var(--navy);font-size:16px}.item-card p{margin:6px 0 0}.item-meta{display:flex;gap:9px;flex-wrap:wrap;margin-top:10px}.pill{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;background:#eaf2f8;color:#334e68;font-size:11px;font-weight:800}.notification-trigger{flex:0 0 auto;gap:8px;min-height:44px;max-width:100%;border:1px solid var(--line);padding:9px 13px;line-height:1.2;white-space:nowrap;cursor:pointer}.notification-trigger::before{width:9px;height:9px;flex:0 0 9px;border-radius:999px;background:var(--danger);box-shadow:0 0 0 4px rgba(185,28,28,.12);content:""}.notification-trigger:hover{transform:translateY(-1px)}.notification-trigger:focus-visible{outline:3px solid rgba(23,162,184,.28);outline-offset:2px}.pill.success{background:#dcfce7;color:var(--success)}.pill.warning{background:#ffedd5;color:var(--warning)}.pill.danger{background:#fee2e2;color:var(--danger)}
.card-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.card-actions .button{padding:7px 10px;font-size:12px}.danger-button{background:#fee2e2;color:var(--danger)}
.empty{padding:34px;text-align:center;color:var(--muted);border:1px dashed #bcccdc;border-radius:14px}.toast{position:fixed;z-index:120;right:22px;bottom:22px;max-width:400px;padding:13px 17px;border-radius:12px;background:var(--navy);color:#fff;box-shadow:var(--shadow);opacity:0;transform:translateY(16px);pointer-events:none;transition:.22s}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:var(--danger)}
.top-actions,.planner-toolbar,.setup-toolbar{display:flex;align-items:end;gap:12px;flex-wrap:wrap}.top-actions{min-width:0;align-items:center;justify-content:flex-end}.setup-toolbar label{min-width:280px}.loading-panel{text-align:center;padding:60px}.notice{padding:15px 18px;border-radius:14px;background:#e0f2fe;color:#075985}.notice.danger{background:#fee2e2;color:var(--danger)}
.dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:28px;border-radius:24px;background:linear-gradient(135deg,#0b3554,#126b82);color:#fff;box-shadow:var(--shadow)}.dashboard-hero h2{color:#fff;font-size:clamp(24px,4vw,34px)}.dashboard-hero p{margin:7px 0 0;color:#d9edf5}.dashboard-hero .eyebrow{color:#8fe1ec}.persona-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.persona-pill{display:inline-flex;padding:5px 10px;border:1px solid rgba(255,255,255,.28);border-radius:999px;background:rgba(255,255,255,.10);font-size:12px;font-weight:800}.dashboard-common-metric{min-width:150px;padding:18px;border-radius:18px;background:rgba(255,255,255,.12);text-align:center}.dashboard-common-metric span{display:block;color:#d9edf5;font-size:12px}.dashboard-common-metric strong{display:block;margin-top:5px;font-size:32px}
.quick-actions{display:grid;gap:11px}.quick-actions h2{font-size:16px}.quick-actions>div{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}.quick-action{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:64px;padding:13px 15px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--navy);text-align:left;font-weight:800;box-shadow:0 7px 20px rgba(16,42,67,.06)}.quick-action:hover{border-color:var(--cyan);transform:translateY(-1px)}.quick-action small{color:var(--blue);white-space:nowrap}
.dashboard-section{display:grid;gap:20px}.dashboard-section-heading{display:flex;justify-content:space-between;gap:14px}.dashboard-section-heading p{margin:6px 0 0}.dashboard-section.teacher-dashboard{border-top:4px solid #17a2b8}.dashboard-section.operations-dashboard{border-top:4px solid #1261a0}.dashboard-section.planner-dashboard{border-top:4px solid #7c3aed}.dashboard-section.administration-dashboard{border-top:4px solid #334e68}
.role-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.role-metric{padding:16px;border:1px solid var(--line);border-radius:15px;background:linear-gradient(135deg,#fff,#f5f9fc)}.role-metric span{display:block;color:var(--muted);font-size:12px;font-weight:750}.role-metric strong{display:block;margin-top:6px;color:var(--navy);font-size:25px}.dashboard-two-column{display:grid;grid-template-columns:1.3fr .7fr;gap:20px}.dashboard-two-column h3,.dashboard-table-block h3{margin:0 0 11px;color:var(--navy);font-size:16px}.day-timeline{display:grid;gap:8px}.timeline-item{display:grid;grid-template-columns:105px 1fr;gap:14px;align-items:start;padding:13px;border:1px solid var(--line);border-radius:13px;background:#fff}.timeline-item time{color:var(--blue);font-weight:850}.timeline-item p{margin:4px 0 0;color:var(--muted)}.compact-list{display:grid;gap:8px}.compact-list article{display:flex;align-items:start;justify-content:space-between;gap:12px;padding:13px;border:1px solid var(--line);border-radius:13px}.compact-list p{margin:4px 0 0}.dashboard-table-block{min-width:0}.dashboard-table-block .table-wrap{border:1px solid var(--line);border-radius:14px}
pre{max-height:420px;overflow:auto;padding:14px;border-radius:12px;background:#102a43;color:#eaf2f8;white-space:pre-wrap;word-break:break-word}.json-editor{font:13px/1.5 ui-monospace,SFMono-Regular,Menlo,monospace}.check-row{display:flex!important;grid-template-columns:auto 1fr!important;align-items:center;gap:9px!important}.check-row input,.check-grid input{width:auto}.check-grid{display:grid;grid-template-columns:repeat(3,minmax(150px,1fr));gap:8px}fieldset{border:1px solid var(--line);border-radius:12px;padding:13px}legend{padding:0 6px;color:var(--muted);font-size:12px;font-weight:800}.link-button{display:inline-flex;text-decoration:none}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(7,31,51,.62)}.modal{width:min(760px,96vw);max-height:92vh;overflow:auto;border-radius:20px;background:#fff;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.modal>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}
/* ... existing code above ... */

.link-button{display:inline-flex;text-decoration:none}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:rgba(7,31,51,.62)}.modal{width:min(760px,96vw);max-height:92vh;overflow:auto;border-radius:20px;background:#fff;padding:24px;box-shadow:0 30px 80px rgba(0,0,0,.3)}.modal>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}

/* --- NEW INTERACTIVE PLANNER WORKSPACE --- */
.planner-workspace { display: flex; height: 80vh; border: 1px solid #e0e0e0; border-radius: 8px; background: #fff; overflow: hidden; }
.unassigned-tray { width: 300px; background: #f8f9fa; border-right: 1px solid #e0e0e0; padding: 15px; overflow-y: auto; }
.tray-title { font-size: 0.9rem; font-weight: bold; text-transform: uppercase; color: #d32f2f; margin-bottom: 15px; }
.draggable-task { background: #fff; border: 1px solid #ffcdd2; border-left: 4px solid #d32f2f; padding: 10px; margin-bottom: 10px; border-radius: 4px; cursor: grab; box-shadow: 0 1px 3px rgba(0,0,0,0.1); }
.draggable-task h4 { margin: 0 0 5px 0; font-size: 14px; }
.draggable-task p { margin: 0; font-size: 12px; color: #555; }
.draggable-task .ai-solve-btn { margin-top: 8px; font-size: 11px; padding: 4px 8px; background: #e3f2fd; color: #0277bd; border: 1px solid #b3e5fc; border-radius: 4px; cursor: pointer; width: 100%; }

.calendar-area { flex-grow: 1; display: flex; flex-direction: column; background: #fff; }
.calendar-filters { padding: 15px; border-bottom: 1px solid #e0e0e0; display: flex; gap: 15px; align-items: center; background: #fdfdfd; }
.calendar-grid { display: grid; grid-template-columns: 80px repeat(5, 1fr); grid-auto-rows: minmax(80px, auto); overflow-y: auto; flex-grow: 1; background: #d9e2ec; gap: 1px; border: 1px solid #d9e2ec; }
.calendar-header { background: #fafafa; font-weight: bold; text-align: center; padding: 10px; font-size: 13px; color: #333; }
.time-label { background: #fafafa; color: #666; font-size: 11px; text-align: right; padding: 10px; border-right: 1px solid #e0e0e0; }
.calendar-cell { background: #fff; padding: 5px; min-height: 80px; position: relative; }
.calendar-cell.drag-over { background: #e8f5e9; outline: 2px dashed #4caf50; outline-offset: -2px; }

.scheduled-item { background: #e1f5fe; border: 1px solid #81d4fa; border-left: 4px solid #0288d1; border-radius: 4px; padding: 6px; font-size: 12px; height: 100%; display: flex; flex-direction: column; justify-content: space-between; cursor: pointer; }
.scheduled-item .pin-icon { position: absolute; top: 5px; right: 5px; font-size: 14px; color: #0288d1; display: none; }
.scheduled-item.pinned .pin-icon { display: block; }
/* ----------------------------------------- */

/* Step 10 — Manual-first planning and emergency continuity */
.planner-lifecycle{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--line);box-shadow:var(--shadow)}
.planner-lifecycle article{display:flex;gap:11px;align-items:center;min-width:0;padding:16px;background:#fff}.planner-lifecycle article.active{background:linear-gradient(135deg,#e9f7fb,#fff)}
.planner-lifecycle article>span{display:grid;place-items:center;flex:0 0 31px;height:31px;border-radius:50%;background:#d9eaf7;color:var(--navy);font-weight:900}.planner-lifecycle .active>span{background:var(--blue);color:#fff}
.planner-lifecycle strong,.planner-lifecycle small{display:block}.planner-lifecycle strong{color:var(--navy);font-size:13px}.planner-lifecycle small{margin-top:2px;color:var(--muted);font-size:11px}
.blueprint-library{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:14px}.blueprint-card{display:grid;gap:10px;padding:17px;border:1px solid var(--line);border-radius:17px;background:linear-gradient(145deg,#fff,#f7fbfd)}
.blueprint-card header{display:flex;justify-content:space-between;gap:12px}.blueprint-card h3{margin:4px 0 0;color:var(--navy);font-size:17px}.blueprint-card p{margin:0}.blueprint-version{color:var(--blue);font-size:11px;font-weight:900;letter-spacing:.1em}
.blueprint-metrics{display:flex;gap:20px;padding:11px;border-radius:12px;background:#eff6fa}.blueprint-metrics span{color:var(--muted);font-size:11px}.blueprint-metrics strong{display:block;color:var(--navy);font-size:18px}
.planner-primary-grid{display:grid;grid-template-columns:minmax(340px,.72fr) minmax(520px,1.28fr);gap:20px;align-items:start}.details-fields{margin-top:13px}.planner-advanced>summary{display:flex;justify-content:space-between;gap:16px;cursor:pointer}.planner-advanced .details-content{margin:24px 0}.planner-advanced h2{margin:25px 0 12px}.calendar-heading{margin-top:26px}
.modal-backdrop.planner-open{padding:0;background:rgba(7,31,51,.78)}.modal-backdrop.planner-open>.modal{width:100vw;max-width:none;height:100vh;max-height:none;overflow:hidden;border-radius:0;padding:0}.modal-backdrop.planner-open>.modal>header{height:64px;margin:0;padding:0 20px;border-bottom:1px solid var(--line);background:#fff}
.modal-backdrop.planner-open #modalBody{height:calc(100vh - 64px);overflow:hidden}
.planning-studio,.postsolve-studio{display:grid;grid-template-columns:255px minmax(690px,1fr) 330px;height:100%;min-height:0;background:#eef3f7}
.planning-task-tray,.planning-inspector{min-height:0;overflow:auto;padding:18px;background:#f8fbfd}.planning-task-tray{border-right:1px solid var(--line)}.planning-inspector{border-left:1px solid var(--line);background:#fff}
.planning-task-tray input[type="search"]{margin-bottom:13px}.planning-board{display:flex;min-width:0;min-height:0;flex-direction:column;background:#fff}.studio-section-heading{display:flex;justify-content:space-between;align-items:start;gap:10px;margin-bottom:13px}.studio-section-heading h3,.planning-inspector h3{margin:0;color:var(--navy)}
.count-badge{display:grid;place-items:center;min-width:29px;height:29px;padding:0 8px;border-radius:999px;background:#d9eaf7;color:var(--navy);font-size:12px;font-weight:900}
.studio-toolbar{display:flex;align-items:end;gap:16px;min-height:76px;padding:12px 16px;border-bottom:1px solid var(--line);background:#fff}.studio-view-controls{display:flex;gap:10px}.studio-view-controls label{display:grid;gap:4px;color:var(--muted);font-size:11px;font-weight:800}.studio-view-controls select{min-width:155px;padding:8px 10px}.studio-summary{display:flex;align-items:center;gap:10px;margin-left:auto;color:var(--muted);font-size:12px}.studio-actions{display:flex;gap:8px;align-items:center}
.studio-legend{display:flex;align-items:center;gap:15px;min-height:43px;padding:8px 16px;border-bottom:1px solid var(--line);background:#f8fbfd;font-size:11px}.studio-legend span{display:flex;align-items:center;gap:6px}.legend-dot{width:10px;height:10px;border-radius:3px}.legend-dot.hard{background:#1261a0}.legend-dot.preferred{background:#d97706}.legend-dot.block{background:#64748b}
.studio-grid{display:grid;grid-template-columns:82px repeat(5,minmax(145px,1fr));grid-auto-rows:minmax(96px,auto);min-width:807px;overflow:auto;flex:1;gap:1px;background:#d9e2ec}.studio-grid-head{position:sticky;z-index:5;top:0;display:grid;place-items:center;min-height:44px;padding:9px;background:#f5f9fc;color:#334e68;font-size:12px;font-weight:900}.studio-grid-head.time-column{left:0;z-index:6}.studio-time{position:sticky;z-index:4;left:0;display:grid;place-items:center;padding:8px;background:#f5f9fc;color:var(--navy)}.studio-time span{color:var(--muted);font-size:10px}
.studio-cell{position:relative;display:grid;align-content:start;gap:5px;min-height:96px;padding:6px;background:#fff;transition:.15s background,.15s outline}.studio-cell:not(.disabled):hover{background:#f2fbfd;outline:2px solid rgba(23,162,184,.35);outline-offset:-2px}.studio-cell.disabled{background:repeating-linear-gradient(135deg,#f5f7f9,#f5f7f9 7px,#edf1f4 7px,#edf1f4 14px)}.studio-cell.drag-over{background:#e8f8ef;outline:2px dashed #15803d;outline-offset:-3px}.cell-add{position:absolute;inset:0;display:grid;place-items:center;color:#9fb3c5;font-size:24px;pointer-events:none}
.blueprint-item{position:relative;z-index:2;display:grid;width:100%;gap:3px;padding:8px;border:1px solid #90c4df;border-left:4px solid #1261a0;border-radius:9px;background:#eef8fc;color:#102a43;text-align:left;box-shadow:0 2px 6px rgba(16,42,67,.07)}.blueprint-item:hover{transform:translateY(-1px)}.blueprint-item strong{font-size:12px}.blueprint-item span,.blueprint-item small{overflow:hidden;text-overflow:ellipsis;font-size:10px;white-space:nowrap}.blueprint-item.preferred{border-color:#f5bd69;border-left-color:#d97706;background:#fff8e9}.blueprint-item.block{border-color:#cbd5e1;border-left-color:#64748b;background:#f1f5f9}.blueprint-item.generated{cursor:grab}.blueprint-item.generated.modified{border-color:#f5bd69;border-left-color:#d97706;background:#fff9db}.blueprint-item.dragging{opacity:.45}
.demand-task{display:grid;width:100%;gap:3px;margin-bottom:8px;padding:10px;border:1px solid var(--line);border-left:4px solid #7c3aed;border-radius:11px;background:#fff;color:var(--navy);text-align:left}.demand-task:hover,.demand-task.selected{border-color:#7c3aed;background:#f5f3ff}.demand-task span,.demand-task small{color:var(--muted);font-size:11px}
.teacher-picker{display:grid;max-height:190px;overflow:auto;grid-template-columns:1fr;gap:4px}.teacher-picker label{display:flex;align-items:center;gap:7px;padding:6px;border-radius:8px;font-size:12px}.teacher-picker label:hover{background:#f1f5f9}.teacher-picker input{width:auto}
.icon-button{display:grid;place-items:center;width:31px;height:31px;border:0;border-radius:9px;background:#eaf2f8;color:var(--navy);font-size:19px}.feasibility-preview{display:grid;gap:6px;padding:11px;border-radius:12px;background:#f8fbfd}.feasibility-preview p{margin:0;font-size:11px}.feasibility-preview .danger{color:var(--danger)}.feasibility-preview .success{color:var(--success)}
.validation-list{display:grid;gap:8px}.validation-item,.validation-ok,.diagnostic-card{padding:11px;border:1px solid var(--line);border-radius:11px;background:#fff}.validation-item p,.validation-ok p,.diagnostic-card p{margin:4px 0 0;color:var(--muted);font-size:11px}.validation-item.danger{border-left:4px solid var(--danger)}.validation-item.warning{border-left:4px solid #d97706}.validation-ok{border-left:4px solid var(--success);background:#f0fdf4}.unsaved-badge{padding:6px 9px;border-radius:999px;background:#fff3cd;color:#8a5b00;font-size:11px;font-weight:900}
.coverage-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(135deg,#f0f9ff,#fff)}.coverage-hero h2{margin-bottom:7px}.coverage-principles{display:flex;gap:7px;flex-wrap:wrap}.coverage-principles span{padding:7px 10px;border-radius:999px;background:#d9eaf7;color:var(--navy);font-size:11px;font-weight:800}
.coverage-queue-card .coverage-impact{display:flex;align-items:baseline;gap:7px;margin-top:13px}.coverage-impact strong{color:var(--blue);font-size:25px}.coverage-impact span{color:var(--muted);font-size:12px}
.staffing-roster{border-top:4px solid #7c3aed;background:linear-gradient(135deg,#faf8ff,#fff)}
.modal-backdrop.coverage-open>.modal{width:min(1180px,96vw)}.coverage-assistant{display:grid;gap:20px}.coverage-assistant-hero{display:flex;justify-content:space-between;gap:16px;padding:17px;border-radius:16px;background:linear-gradient(135deg,#eef8fc,#fff)}.coverage-assistant-hero h2{margin:0}.coverage-assistant-hero p{margin:5px 0 0;color:var(--muted)}
.coverage-assistant-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.candidate-list,.session-cover-list{display:grid;gap:8px;max-height:440px;overflow:auto;padding-right:3px}.candidate-card{display:grid!important;grid-template-columns:auto 32px 1fr auto!important;align-items:center!important;gap:10px!important;padding:11px;border:1px solid var(--line);border-radius:12px;background:#fff}.candidate-card:has(input:checked){border-color:var(--blue);background:#f0f9ff}.candidate-card input{width:auto}.candidate-rank{color:var(--blue);font-weight:900}.candidate-main strong,.candidate-main small,.candidate-main em{display:block}.candidate-main small{margin-top:3px;color:var(--muted);font-size:10px}.candidate-main em{margin-top:4px;color:#9a6700;font-size:10px}.candidate-score{color:var(--navy);font-size:19px;font-weight:900;text-align:center}.candidate-score small{display:block;color:var(--muted);font-size:9px}
.session-cover-row{display:grid!important;grid-template-columns:1fr 1fr!important;align-items:center!important;gap:10px!important;padding:10px;border:1px solid var(--line);border-radius:11px}.session-cover-row strong,.session-cover-row small{display:block}.session-cover-row small{margin-top:3px;color:var(--muted)}.blocked-candidates summary{cursor:pointer;color:var(--navy);font-weight:850}.blocked-candidates article{padding:9px 0;border-bottom:1px solid var(--line)}.blocked-candidates p{margin:4px 0;color:var(--muted);font-size:11px}

.planning-safety-check{align-items:flex-start!important;padding:13px 14px;border:1px solid color-mix(in srgb,var(--accent,var(--blue)) 24%,var(--border,var(--line)));border-radius:13px;background:color-mix(in srgb,var(--accent,var(--blue)) 6%,var(--surface,#fff))}.planning-safety-check span{display:grid;gap:3px}.planning-safety-check small{color:var(--text-muted,var(--muted));font-weight:500;line-height:1.45}.full-width{width:100%}.deficiency-button{border-color:#f59e0b;background:#fff7ed;color:#9a3412}.planner-job-card.has-deficiency{border-color:#fdba74;border-left:5px solid #f97316;background:linear-gradient(135deg,#fff7ed,var(--surface,#fff) 45%)}.job-coverage{display:grid;grid-template-columns:auto minmax(90px,1fr) auto;align-items:center;gap:10px;margin-top:13px}.job-coverage>div:first-child{display:grid}.job-coverage strong{color:var(--heading,var(--navy));font-size:18px}.job-coverage span{color:var(--text-muted,var(--muted));font-size:11px}.job-coverage-track,.coverage-meter{height:8px;overflow:hidden;border-radius:999px;background:color-mix(in srgb,var(--border,var(--line)) 65%,transparent)}.job-coverage-track span,.coverage-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--accent,var(--blue)),var(--success));transition:width .35s ease}.planner-job-card.has-deficiency .job-coverage-track span{background:linear-gradient(90deg,#f97316,#facc15)}.deficiency-notice{padding:9px 11px;border-radius:10px;background:#ffedd5!important;color:#9a3412!important;font-size:12px}
.deficiency-report{display:grid;gap:22px;overflow:hidden}.deficiency-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:-22px -22px 0;padding:26px 28px;border-bottom:1px solid var(--border,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--success) 10%,var(--surface,#fff)),var(--surface,#fff))}.deficiency-hero.has-gaps{background:linear-gradient(135deg,#fff1e6,var(--surface,#fff) 62%)}.deficiency-hero h2{margin:2px 0 7px;color:var(--heading,var(--navy));font-size:clamp(22px,3vw,31px)}.deficiency-hero p:not(.eyebrow){max-width:760px;margin:0;color:var(--text-muted,var(--muted))}.coverage-dial{--coverage:0;position:relative;display:grid;flex:0 0 118px;width:118px;height:118px;place-content:center;text-align:center;border-radius:50%;background:conic-gradient(var(--success) calc(var(--coverage)*1%),color-mix(in srgb,var(--border,var(--line)) 70%,transparent) 0)}.has-gaps .coverage-dial{background:conic-gradient(#f97316 calc(var(--coverage)*1%),#fed7aa 0)}.coverage-dial::before{position:absolute;inset:10px;border-radius:50%;background:var(--surface,#fff);content:""}.coverage-dial strong,.coverage-dial span{position:relative;z-index:1}.coverage-dial strong{color:var(--heading,var(--navy));font-size:24px}.coverage-dial span{color:var(--text-muted,var(--muted));font-size:10px;font-weight:800;text-transform:uppercase}.coverage-dial.small{flex-basis:76px;width:76px;height:76px}.coverage-dial.small::before{inset:7px}.coverage-dial.small strong{font-size:16px}.coverage-dial.small span{font-size:8px}
.deficiency-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:11px}.deficiency-metrics.compact{grid-template-columns:repeat(3,1fr);margin-bottom:16px}.deficiency-metrics article{display:grid;gap:3px;padding:15px;border:1px solid var(--border,var(--line));border-radius:14px;background:var(--surface-soft,#f8fbfd)}.deficiency-metrics article>span{color:var(--text-muted,var(--muted));font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.deficiency-metrics article>strong{color:var(--heading,var(--navy));font-size:27px}.deficiency-metrics article>small{color:var(--text-muted,var(--muted))}.deficiency-metrics .metric-alert{border-color:#fdba74;background:#fff7ed}.deficiency-metrics .metric-alert strong{color:#c2410c}.coverage-meter{height:11px;margin-top:-12px}
.report-section{display:grid;gap:13px;padding-top:19px;border-top:1px solid var(--border,var(--line))}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:14px}.section-heading h3{margin:1px 0 0;color:var(--heading,var(--navy))}.cause-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:11px}.cause-card{padding:15px;border:1px solid var(--border,var(--line));border-top:4px solid #64748b;border-radius:14px;background:var(--surface,#fff)}.cause-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.cause-card header span{color:var(--text-muted,var(--muted));font-size:10px;font-weight:900;letter-spacing:.07em}.cause-card header strong{font-size:11px}.cause-card h4{margin:12px 0 5px;color:var(--heading,var(--navy))}.cause-card p{margin:0 0 9px;color:var(--text-muted,var(--muted));font-size:12px}.cause-card small{line-height:1.5}.cause-teacher{border-top-color:#7c3aed}.cause-time{border-top-color:#0284c7}.cause-room{border-top-color:#0f766e}.cause-capacity,.cause-solver{border-top-color:#f97316}
.recommendation-list{display:grid;gap:9px;margin:0;padding:0;list-style:none;counter-reset:recommendation}.recommendation-list li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--border,var(--line));border-radius:13px;background:var(--surface-soft,#f8fbfd)}.recommendation-rank{display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:var(--accent,var(--blue));color:#fff;font-weight:900}.recommendation-list strong{color:var(--heading,var(--navy));font-size:13px}.recommendation-list p{margin:4px 0 0;color:var(--text-muted,var(--muted));font-size:11px}.deficiency-table th{white-space:nowrap}.deficiency-table td{min-width:95px;vertical-align:top}.deficiency-table td:last-child{min-width:270px}.gap-badge{display:inline-flex;padding:5px 8px;border-radius:999px;background:#ffedd5;color:#9a3412;font-size:10px;font-weight:800}.quality-warning-list{padding:13px;border:1px solid #f5c46b;border-radius:13px;background:#fffbeb}.quality-warning-list summary{cursor:pointer;color:#92400e;font-weight:800}
.deficiency-tray{display:grid;align-content:start;gap:12px;overflow:auto}.deficiency-tray-summary{display:flex;align-items:center;gap:11px;padding:11px;border-radius:13px;background:var(--surface-soft,#f8fbfd)}.deficiency-tray-summary p{margin:0;font-size:11px}.cause-list,.affected-mini-list{display:grid;gap:7px}.affected-mini-list article{display:grid;gap:3px;padding:9px;border-bottom:1px solid var(--border,var(--line))}.affected-mini-list strong{color:var(--heading,var(--navy));font-size:11px}.affected-mini-list span{color:var(--text-muted,var(--muted));font-size:10px}

.ai-security-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:25px 28px;border:1px solid var(--border,var(--line));border-radius:22px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,var(--blue)) 12%,var(--surface,#fff)),var(--surface-elevated,#fff));box-shadow:var(--shadow-soft,var(--shadow))}.ai-security-hero h2{font-size:clamp(23px,3vw,31px)}.ai-security-hero p:not(.eyebrow){max-width:760px;margin:8px 0 0;color:var(--text-muted,var(--muted))}.ai-security-hero>.pill{flex:0 0 auto}
.ai-control-grid{display:grid;grid-template-columns:minmax(320px,.82fr) minmax(420px,1.18fr);gap:20px;align-items:start}.ai-vault-form{border-top:4px solid var(--accent,var(--blue))}.ai-key-state{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 15px;border:1px solid var(--border,var(--line));border-radius:13px;background:var(--surface-soft,#f5f9fc)}.ai-key-state span{color:var(--text-muted,var(--muted));font-size:12px;font-weight:800}.ai-key-state strong{color:var(--heading,var(--navy));letter-spacing:.08em}.ai-readiness-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px}.ai-readiness-grid article{display:grid;gap:5px;min-width:0;padding:14px;border:1px solid var(--border,var(--line));border-radius:14px;background:var(--surface-soft,#f5f9fc)}.ai-readiness-grid article>span{color:var(--text-muted,var(--muted));font-size:11px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.ai-readiness-grid article>strong{overflow-wrap:anywhere;color:var(--heading,var(--navy));font-size:15px}.ai-readiness-grid article>small{color:var(--text-muted,var(--muted))}.ai-readiness-grid .pill{justify-self:start;margin-top:2px}.ai-security-assurances{display:grid;grid-template-columns:minmax(220px,.42fr) minmax(360px,1fr);gap:24px;align-items:start}.ai-security-assurances ul{display:grid;gap:10px;margin:0;padding-left:20px}.ai-security-assurances li{padding-left:4px;color:var(--text,var(--ink))}

.rule-workbench-intro{display:grid;grid-template-columns:minmax(260px,.72fr) minmax(540px,1.28fr);gap:22px;align-items:center;background:linear-gradient(135deg,color-mix(in srgb,var(--accent,var(--blue)) 9%,var(--surface,#fff)),var(--surface,#fff))}.rule-workbench-intro h2{margin:3px 0 8px}.rule-scope-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.rule-scope-grid button{display:grid;gap:4px;padding:13px;border:1px solid var(--border,var(--line));border-radius:13px;background:var(--surface,#fff);color:var(--heading,var(--navy));text-align:left}.rule-scope-grid button:hover{border-color:var(--accent,var(--blue));transform:translateY(-1px)}.rule-scope-grid span{color:var(--text-muted,var(--muted));font-size:11px}.governed-rule-card>header{align-items:flex-start}.governed-rule-card>header p{margin:4px 0 0;color:var(--text-muted,var(--muted));font-size:11px}.parsed-rule-list{display:grid;gap:8px;margin:13px 0}.parsed-rule-row{display:grid;grid-template-columns:minmax(220px,1fr) minmax(165px,.45fr) 115px;gap:11px;align-items:end;padding:12px;border:1px solid var(--border,var(--line));border-left:4px solid var(--accent,var(--blue));border-radius:12px;background:var(--surface-soft,#f8fbfd)}.parsed-rule-row p{margin:4px 0 0;color:var(--text-muted,var(--muted));font-size:11px}.parsed-rule-row label{font-size:10px}.parsed-rule-row select,.parsed-rule-row input{padding:8px 9px}.rule-warning{padding:9px 11px;border-radius:10px;background:#fffbeb;color:#92400e;font-size:11px}
.planning-studio{grid-template-columns:315px minmax(690px,1fr) 315px}.studio-divider{margin:18px 0;border:0;border-top:1px solid var(--border,var(--line))}.compact-stack{gap:9px}.compact-stack label{font-size:10px}.compact-stack select,.compact-stack input,.compact-stack textarea{padding:8px 9px}.teacher-picker.compact{max-height:135px}.assignment-policy-list{display:grid;gap:6px;margin-top:12px}.assignment-policy-list article{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;align-items:center;padding:9px;border:1px solid var(--border,var(--line));border-radius:10px;background:var(--surface,#fff)}.assignment-policy-list strong,.assignment-policy-list span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-policy-list strong{color:var(--heading,var(--navy));font-size:11px}.assignment-policy-list span{margin-top:3px;color:var(--text-muted,var(--muted));font-size:9px}
.rule-base-library{overflow:hidden}.rule-base-summary{display:flex;flex-wrap:wrap;gap:.65rem;margin:1rem 0}.rule-base-summary span{display:flex;align-items:baseline;gap:.35rem;padding:.55rem .75rem;border:1px solid var(--border,var(--line));border-radius:999px;background:var(--surface-soft,#f5f9fc);color:var(--text-muted,var(--muted));font-size:.82rem}.rule-base-summary strong{color:var(--text,var(--ink));font-size:1rem}.rule-base-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(310px,1fr));gap:1rem}.rule-base-card{border:1px solid var(--border,var(--line));border-radius:18px;padding:1rem;background:linear-gradient(145deg,var(--surface,#fff),var(--surface-soft,#f5f9fc));box-shadow:var(--shadow-soft,var(--shadow))}.rule-base-card.archived{opacity:.72}.rule-base-card>header,.rule-base-constraint>header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.rule-base-card h3{margin:.2rem 0 0}.rule-base-code{font-size:.7rem;font-weight:800;letter-spacing:.1em;color:var(--accent,var(--blue));text-transform:uppercase}.rule-base-versions{display:grid;gap:.65rem;margin-top:.9rem}.rule-base-version{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem;align-items:start;padding:.75rem;border:1px solid var(--border,var(--line));border-radius:14px;background:var(--surface,#fff)}.rule-base-version>div:first-child span{display:block;color:var(--text-muted,var(--muted));font-size:.78rem;margin-top:.2rem}.rule-base-version .card-actions{grid-column:1/-1}.rule-base-editor{display:grid;gap:1rem}.rule-base-editor-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.rule-base-editor-head h2{margin:.15rem 0}.rule-base-add{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.75rem;padding:.8rem;border:1px dashed var(--accent,var(--blue));border-radius:14px;background:var(--surface-soft,#f5f9fc)}.rule-base-constraint-list{display:grid;gap:.8rem;max-height:58vh;overflow:auto;padding-right:.25rem}.rule-base-constraint{border:1px solid var(--border,var(--line));border-radius:16px;padding:.9rem;background:var(--surface,#fff)}.rule-base-constraint.overridden{border-color:color-mix(in srgb,var(--accent,var(--blue)) 55%,var(--border,var(--line)));box-shadow:inset 4px 0 0 var(--accent,var(--blue))}.rule-base-constraint header span{display:block;color:var(--text-muted,var(--muted));font-size:.76rem;margin-top:.18rem}.rule-base-constraint header>div:last-child{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}.override-badge{padding:.3rem .5rem;border-radius:999px;background:color-mix(in srgb,var(--accent,var(--blue)) 10%,var(--surface,#fff));color:var(--accent,var(--blue))!important;font-weight:700}.rule-base-constraint-body{display:grid;grid-template-columns:1fr auto;gap:.7rem;margin:.75rem 0}.rule-base-constraint-body>div span{display:block;color:var(--text-muted,var(--muted));font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.rule-base-constraint-body pre{grid-column:1/-1;max-height:180px;overflow:auto;margin:0;padding:.7rem;border-radius:10px;background:var(--surface-soft,#f5f9fc);font-size:.75rem;white-space:pre-wrap}
.rule-impact{margin:.65rem 0;color:var(--text-muted,var(--muted));font-size:.82rem}.rule-base-constraint-body details{grid-column:1/-1}.rule-base-constraint-body details>summary,.advanced-rule-edit>summary,.revision-history>summary{cursor:pointer;color:var(--accent,var(--blue));font-weight:750}.revision-history{margin:.65rem 0;padding:.6rem;border-radius:12px;background:var(--surface-soft,#f5f9fc)}.revision-history>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.25rem .75rem;padding:.55rem 0;border-bottom:1px solid var(--border,var(--line))}.revision-history>div:last-child{border-bottom:0}.revision-history span{color:var(--text-muted,var(--muted));font-size:.75rem}.revision-history p{grid-column:1/-1;margin:.25rem 0 0}.rule-edit-workbench{display:grid;gap:1rem}.rule-readable-hero{padding:1rem;border:1px solid color-mix(in srgb,var(--accent,var(--blue)) 35%,var(--border,var(--line)));border-radius:18px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent,var(--blue)) 10%,var(--surface,#fff)),var(--surface,#fff))}.rule-readable-hero h2{margin:.2rem 0 .55rem;font-size:1.2rem;line-height:1.45}.rule-readable-hero>div{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.75rem}.rule-readable-hero>div span{padding:.35rem .55rem;border:1px solid var(--border,var(--line));border-radius:999px;background:var(--surface,#fff);font-size:.72rem}.rule-edit-method,.advanced-rule-edit{padding:1rem;border:1px solid var(--border,var(--line));border-radius:16px;background:var(--surface,#fff)}.rule-edit-method h3{margin:.1rem 0}.rule-edit-method select[multiple]{min-height:118px}.rule-edit-method small{display:block;margin-top:.3rem;color:var(--text-muted,var(--muted));font-weight:500}.advanced-rule-edit>form{margin-top:1rem}.rule-change-review{display:grid;gap:1rem}.rule-change-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:.75rem;align-items:stretch}.rule-change-flow article{padding:1rem;border:1px solid var(--border,var(--line));border-radius:16px;background:var(--surface-soft,#f5f9fc)}.rule-change-flow article.proposed{border-color:color-mix(in srgb,var(--accent,var(--blue)) 55%,var(--border,var(--line)));background:color-mix(in srgb,var(--accent,var(--blue)) 8%,var(--surface,#fff))}.rule-change-flow article>span{font-size:.7rem;font-weight:850;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted,var(--muted))}.rule-change-flow article>p{margin:.5rem 0 0;font-weight:700;line-height:1.5}.change-arrow{align-self:center;color:var(--accent,var(--blue));font-size:1.8rem}.change-list{display:grid;gap:.5rem}.change-list>div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:.75rem;padding:.65rem;border-radius:10px;background:var(--surface-soft,#f5f9fc)}.change-list span{overflow-wrap:anywhere}.validation-summary{padding:1rem;border:1px solid color-mix(in srgb,#16a34a 40%,var(--border,var(--line)));border-radius:16px;background:color-mix(in srgb,#16a34a 7%,var(--surface,#fff))}.validation-summary h3{color:#15803d}.validation-summary ul{margin:.5rem 0;padding-left:1.25rem}
.current-rules-panel{overflow:hidden}.current-rules-heading{gap:1.25rem}.current-rules-heading h2{margin:.15rem 0}.rules-version-picker{flex:0 1 390px;min-width:280px}.rules-version-picker select{margin-top:.35rem}.rule-editing-banner{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1rem;padding:.85rem 1rem;border-radius:14px;border:1px solid var(--border,var(--line));background:var(--surface-soft,#f5f9fc)}.rule-editing-banner.editable{border-color:color-mix(in srgb,#16a34a 40%,var(--border,var(--line)));background:color-mix(in srgb,#16a34a 7%,var(--surface,#fff))}.rule-editing-banner>div{display:grid;gap:.15rem}.rule-editing-banner>div strong{color:var(--heading,var(--navy))}.rule-editing-banner>div span,.rule-editing-banner p{color:var(--text-muted,var(--muted));font-size:.78rem}.rule-editing-banner p{max-width:520px;margin:0;text-align:right}.existing-rule-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.existing-rule-item{display:grid;grid-template-columns:36px minmax(0,1fr);gap:.8rem;padding:1rem;border:1px solid var(--border,var(--line));border-radius:16px;background:var(--surface,#fff)}.existing-rule-item.is-strict{box-shadow:inset 4px 0 0 var(--danger,#b91c1c)}.existing-rule-item.is-flexible{box-shadow:inset 4px 0 0 #d97706}.existing-rule-number{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--surface-soft,#f5f9fc);color:var(--text-muted,var(--muted));font-size:.78rem;font-weight:850}.existing-rule-copy{min-width:0}.existing-rule-copy>header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem}.existing-rule-copy h3{margin:0;color:var(--heading,var(--navy));font-size:.95rem;line-height:1.4}.existing-rule-copy header p{margin:.28rem 0 0;color:var(--text-muted,var(--muted));font-size:.72rem}.rule-strength-chip{flex:0 0 auto;padding:.35rem .55rem;border-radius:999px;font-size:.7rem;font-weight:850}.rule-strength-chip.strict{background:#fee2e2;color:#991b1b}.rule-strength-chip.flexible{background:#fef3c7;color:#92400e}.existing-rule-copy details{margin:.75rem 0}.existing-rule-copy details>summary{cursor:pointer;color:var(--accent,var(--blue));font-size:.78rem;font-weight:750}.rule-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.65rem}.rule-detail-grid span{display:grid;gap:.18rem;padding:.55rem;border-radius:10px;background:var(--surface-soft,#f5f9fc);color:var(--text-muted,var(--muted));font-size:.68rem}.rule-detail-grid strong{overflow-wrap:anywhere;color:var(--text,var(--ink));font-size:.75rem}.inline-rule-history p{margin:.45rem 0 0;font-size:.72rem}.strength-button{border:1px solid transparent}.strength-button.flexible-action{background:#fef3c7;color:#92400e}.strength-button.strict-action{background:#fee2e2;color:#991b1b}.optional-label{margin-left:.35rem;padding:.2rem .42rem;border-radius:999px;background:var(--surface-soft,#f5f9fc);color:var(--text-muted,var(--muted));font-size:.65rem;font-weight:750;text-transform:uppercase}.friendly-rule-form h2,.rule-help-panel h2{margin:.15rem 0}.friendly-rule-form small{display:block;margin-top:.32rem;color:var(--text-muted,var(--muted));font-weight:500}.rule-help-panel{display:grid;gap:1rem}.rule-writing-examples{display:grid;gap:.65rem}.rule-writing-examples p{display:grid;gap:.18rem;margin:0;padding:.85rem;border-left:4px solid var(--accent,var(--blue));border-radius:12px;background:var(--surface-soft,#f5f9fc)}.rule-writing-examples span{color:var(--text-muted,var(--muted));font-size:.82rem}.rule-help-panel details>summary{cursor:pointer;padding:.8rem;border:1px solid var(--border,var(--line));border-radius:12px;color:var(--heading,var(--navy))}.rule-help-panel details[open]>summary{margin-bottom:.8rem}.new-rule-layout{align-items:stretch}
@media(max-width:1200px){.metrics-six{grid-template-columns:repeat(3,1fr)}.rule-workbench-intro{grid-template-columns:1fr}.parsed-rule-row{grid-template-columns:1fr 1fr}.existing-rule-list{grid-template-columns:1fr}}
@media(max-width:1050px){.filters{grid-template-columns:repeat(2,1fr)}.split,.planner-primary-grid,.ai-control-grid{grid-template-columns:1fr}.metrics{grid-template-columns:1fr 1fr}.check-grid{grid-template-columns:1fr 1fr}.dashboard-two-column{grid-template-columns:1fr}.planner-lifecycle{grid-template-columns:repeat(3,1fr)}.planning-studio,.postsolve-studio{grid-template-columns:210px minmax(690px,1fr)}.planning-inspector{position:absolute;z-index:10;right:0;top:64px;bottom:0;width:min(360px,92vw);box-shadow:-12px 0 30px rgba(16,42,67,.18)}.coverage-assistant-grid{grid-template-columns:1fr}}
@media(max-width:760px){.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;z-index:151;inset:0 auto 0 0;width:min(86vw,320px);height:100vh;padding:18px;transform:translateX(-105%);transition:transform .2s ease;box-shadow:0 0 50px rgba(0,0,0,.32)}body.nav-open{overflow:hidden}body.nav-open .sidebar{transform:translateX(0)}.brand-row{padding-bottom:16px}.sidebar-close{display:block;margin-left:auto;border:0;background:transparent;color:#fff;font-size:30px;line-height:1}.sidebar-scrim{position:fixed;z-index:150;inset:0;display:block;border:0;background:rgba(7,31,51,.62)}nav{display:grid;grid-template-columns:1fr;overflow:auto}.nav-item{text-align:left;padding:11px 14px}.sidebar-footer{display:grid}.menu-button,.mobile-signout{display:inline-flex}.topbar{align-items:flex-start;flex-wrap:wrap;padding:16px 0}.title-block{order:2;flex-basis:100%}.top-actions{width:100%;margin-left:0;justify-content:flex-start}.top-actions .language-button{display:inline-flex}main{padding:0 14px 30px}.filters,.metrics,.form-grid,.rule-base-version,.rule-base-add,.rule-base-constraint-body{grid-template-columns:1fr}.rule-base-editor-head{flex-direction:column}.login-card{padding:30px}.dashboard-hero{align-items:stretch;flex-direction:column;padding:22px}.dashboard-common-metric{text-align:left}.role-metrics{grid-template-columns:1fr 1fr}.timeline-item{grid-template-columns:1fr;gap:4px}.planner-lifecycle{grid-template-columns:1fr 1fr}.planner-lifecycle article{padding:11px}.coverage-hero{align-items:flex-start;flex-direction:column}.planning-studio,.postsolve-studio{grid-template-columns:1fr}.planning-task-tray{display:none}.studio-toolbar{align-items:stretch;flex-direction:column}.studio-summary{margin-left:0}.studio-actions{flex-wrap:wrap}.planning-inspector{top:64px}.coverage-assistant-grid{grid-template-columns:1fr}.candidate-card{grid-template-columns:auto 28px 1fr!important}.candidate-score{grid-column:3;text-align:left}.session-cover-row{grid-template-columns:1fr!important}}
@media(max-width:760px){.rule-change-flow,.change-list>div{grid-template-columns:1fr}.change-arrow{justify-self:center;transform:rotate(90deg)}.revision-history>div{grid-template-columns:1fr}.rule-base-constraint>header{flex-direction:column}.rule-base-constraint header>div:last-child{justify-content:flex-start}.current-rules-heading,.rule-editing-banner{align-items:stretch;flex-direction:column}.rules-version-picker{min-width:0;width:100%}.rule-editing-banner p{text-align:left}.existing-rule-item{grid-template-columns:1fr}.existing-rule-copy>header{flex-direction:column}.rule-detail-grid{grid-template-columns:1fr}.existing-rule-copy .card-actions{align-items:stretch;flex-direction:column}.existing-rule-copy .button{width:100%}}
@media(max-width:420px){.role-metrics,.ai-readiness-grid{grid-template-columns:1fr}.quick-actions>div{grid-template-columns:1fr}.ai-security-hero{align-items:flex-start;flex-direction:column;padding:20px}.ai-security-assurances{grid-template-columns:1fr}}
@media(max-width:900px){.deficiency-metrics{grid-template-columns:1fr 1fr}.recommendation-list li{grid-template-columns:34px minmax(0,1fr)}.recommendation-list li .button{grid-column:2;justify-self:start}}
@media(max-width:760px){.deficiency-hero{align-items:flex-start;flex-direction:column;margin:-15px -15px 0;padding:20px}.deficiency-metrics,.deficiency-metrics.compact{grid-template-columns:1fr 1fr}.planning-task-tray.deficiency-tray{display:grid;max-height:390px;border-bottom:1px solid var(--border,var(--line))}.job-coverage{grid-template-columns:auto 1fr}.job-coverage>span:last-child{grid-column:1/-1}.section-heading{align-items:flex-start;flex-direction:column}.deficiency-table td:last-child{min-width:220px}}
@media(max-width:480px){.deficiency-metrics,.deficiency-metrics.compact{grid-template-columns:1fr}.coverage-dial{width:96px;height:96px;flex-basis:96px}.recommendation-list li{grid-template-columns:1fr}.recommendation-rank,.recommendation-list li .button{grid-column:1}}

.form-guidance{display:grid;gap:4px;padding:13px 15px;border:1px solid var(--border,var(--line));border-left:4px solid var(--accent,var(--blue));border-radius:13px;background:var(--surface-soft,#f5f9fc)}.form-guidance strong{color:var(--heading,var(--navy));font-size:13px}.form-guidance span{color:var(--text-muted,var(--muted));font-size:12px}.multi-select-field{display:grid;gap:11px;min-width:0;padding:15px}.multi-select-toolbar{display:flex;align-items:end;justify-content:space-between;gap:12px}.multi-search{display:grid!important;flex:1;gap:5px!important;max-width:360px}.multi-search span{color:var(--text-muted,var(--muted));font-size:10px;font-weight:850;letter-spacing:.05em;text-transform:uppercase}.multi-search input{padding:9px 11px}.multi-select-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.multi-select-actions .text-button{padding:5px 2px;font-size:11px}.multi-count{padding:5px 9px;border-radius:999px;background:var(--accent-soft,#eaf2f8);color:var(--accent,var(--blue));font-size:10px;font-weight:900}.multi-option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;max-height:260px;overflow:auto;padding:3px}.multi-option{display:flex!important;align-items:center;gap:9px!important;min-width:0;padding:9px 10px;border:1px solid var(--border,var(--line));border-radius:10px;background:var(--surface,#fff);color:var(--text,var(--ink))!important;font-size:12px!important;font-weight:700!important;cursor:pointer;transition:.16s border-color,.16s background,.16s transform}.multi-option:hover{border-color:var(--accent,var(--blue));transform:translateY(-1px)}.multi-option.selected{border-color:color-mix(in srgb,var(--accent,var(--blue)) 52%,var(--border,var(--line)));background:color-mix(in srgb,var(--accent,var(--blue)) 9%,var(--surface,#fff))}.multi-option.disabled{opacity:.55;cursor:not-allowed}.multi-option.disabled:hover{border-color:var(--border,var(--line));transform:none}.multi-option input{flex:0 0 auto;width:auto;margin:0;accent-color:var(--accent,var(--blue))}.multi-option span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-option[hidden]{display:none!important}.field-hint{margin:0;color:var(--text-muted,var(--muted));font-size:11px}.multi-select-field.invalid{border-color:var(--danger);box-shadow:0 0 0 3px color-mix(in srgb,var(--danger) 14%,transparent)}
.natural-language-field{display:grid;gap:7px;padding:14px;border:1px solid color-mix(in srgb,var(--accent,var(--blue)) 25%,var(--border,var(--line)));border-radius:14px;background:color-mix(in srgb,var(--accent,var(--blue)) 4%,var(--surface,#fff))}.natural-language-field textarea{min-height:150px;line-height:1.55;resize:vertical}.natural-language-field .field-hint{line-height:1.5}
@media(max-width:760px){.multi-select-toolbar{align-items:stretch;flex-direction:column}.multi-search{max-width:none}.multi-select-actions{justify-content:flex-start}.multi-option-grid{grid-template-columns:1fr;max-height:230px}}
.existing-rule-list{max-height:68vh;overflow:auto;padding-right:.3rem}
@media(max-width:760px){.rules-version-picker{flex-basis:auto}.existing-rule-list{max-height:none;overflow:visible;padding-right:0}}
.board-color-0{--board-card-bg:#bfdbfe;--board-card-border:#3b82f6;--board-card-accent:#1e40af}.board-color-1{--board-card-bg:#bbf7d0;--board-card-border:#22c55e;--board-card-accent:#166534}.board-color-2{--board-card-bg:#fde68a;--board-card-border:#f59e0b;--board-card-accent:#92400e}.board-color-3{--board-card-bg:#ddd6fe;--board-card-border:#8b5cf6;--board-card-accent:#5b21b6}.board-color-4{--board-card-bg:#fecdd3;--board-card-border:#f43f5e;--board-card-accent:#9f1239}.board-color-5{--board-card-bg:#99f6e4;--board-card-border:#14b8a6;--board-card-accent:#115e59}.board-color-6{--board-card-bg:#fef08a;--board-card-border:#eab308;--board-card-accent:#713f12}.board-color-7{--board-card-bg:#cbd5e1;--board-card-border:#64748b;--board-card-accent:#334155}.board-color-8{--board-card-bg:#c7d2fe;--board-card-border:#6366f1;--board-card-accent:#3730a3}.board-color-9{--board-card-bg:#fbcfe8;--board-card-border:#ec4899;--board-card-accent:#9d174d}.board-color-10{--board-card-bg:#a5f3fc;--board-card-border:#06b6d4;--board-card-accent:#155e75}.board-color-11{--board-card-bg:#fecaca;--board-card-border:#ef4444;--board-card-accent:#991b1b}.board-color-12{--board-card-bg:#fed7aa;--board-card-border:#f97316;--board-card-accent:#9a3412}.board-color-13{--board-card-bg:#a7f3d0;--board-card-border:#10b981;--board-card-accent:#065f46}.board-color-14{--board-card-bg:#f5d0fe;--board-card-border:#d946ef;--board-card-accent:#86198f}.board-color-15{--board-card-bg:#d9f99d;--board-card-border:#84cc16;--board-card-accent:#3f6212}.board-color-16{--board-card-bg:#e9d5ff;--board-card-border:#a855f7;--board-card-accent:#6b21a8}.board-color-17{--board-card-bg:#bae6fd;--board-card-border:#0ea5e9;--board-card-accent:#075985}.manual-board-mode .studio-toolbar{align-items:center;flex-wrap:wrap;gap:10px}.manual-mode-toggle{display:flex!important;align-items:center;gap:9px!important;margin-left:auto;padding:7px 10px;border:1px solid #f59e0b;border-radius:12px;background:#fffbeb;color:#78350f!important;font-size:11px!important;cursor:pointer}.manual-mode-toggle input{width:auto;margin:0;accent-color:#d97706}.manual-mode-toggle span{display:grid;gap:1px}.manual-mode-toggle strong{font-size:11px}.manual-mode-toggle small{color:#92400e;font-size:9px;font-weight:600}.manual-warning-badge{padding:6px 9px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:11px;font-weight:900}.manual-board-mode .studio-legend{align-items:flex-start;flex-direction:column;gap:8px}.board-color-legend{display:flex;max-width:100%;gap:6px;overflow-x:auto;padding-bottom:2px}.board-color-legend span{display:inline-flex;flex:0 0 auto;align-items:center;gap:5px;padding:4px 8px;border:1px solid var(--board-card-border,var(--line));border-radius:999px;background:var(--board-card-bg,#fff);color:var(--board-card-accent,#475569);font-size:9px;font-weight:900}.board-color-legend i{width:10px;height:10px;border:2px solid var(--board-card-accent);border-radius:4px;background:var(--board-card-border)}.blueprint-item.generated.color-coded{border-color:var(--board-card-border);border-left:5px solid var(--board-card-accent);background:var(--board-card-bg);color:#172033}.blueprint-item.generated.color-coded:hover{filter:saturate(1.08) brightness(.98)}.blueprint-item.generated.color-coded.modified{box-shadow:0 0 0 3px rgba(245,158,11,.38),0 2px 6px rgba(16,42,67,.12)}.blueprint-item.generated.swap-target{outline:4px solid #2563eb;outline-offset:-3px;filter:saturate(1.18);transform:scale(.98)}.blueprint-item.generated.submitted{cursor:not-allowed;opacity:.82}.blueprint-item.generated.manual-warning{border-color:#ef4444;border-left-color:#b91c1c;background:#fff1f2;box-shadow:0 0 0 3px rgba(239,68,68,.14)}.blueprint-item.generated em{display:inline-flex;width:max-content;margin-top:3px;padding:2px 5px;border-radius:999px;background:#fee2e2;color:#991b1b;font-size:9px;font-style:normal;font-weight:900}.blueprint-item.generated em.submitted-label{background:#e0e7ff;color:#3730a3}.studio-cell.has-warning{background:#fff7ed;outline:2px solid #f59e0b;outline-offset:-2px}.manual-gap{display:grid;gap:4px;min-height:72px;padding:8px;border:2px dashed #f59e0b;border-radius:9px;background:#fffbeb;color:#92400e}.manual-gap strong{font-size:11px}.manual-gap span{font-size:9px;line-height:1.35}.manual-switcher{display:grid;gap:8px;padding:11px;border:1px solid #93c5fd;border-radius:12px;background:#eff6ff}.manual-switcher .button{width:100%}.manual-switcher>small{color:#1e3a8a;font-size:9px;line-height:1.4}.manual-mode-welcome{padding:14px;border:1px solid #f59e0b;border-radius:14px;background:#fffbeb}.manual-mode-welcome h3{margin:3px 0 7px}.manual-mode-welcome p:last-child{margin:0;color:#92400e;font-size:11px;line-height:1.5}.manual-warning-list{display:grid;gap:7px;padding:10px;border:1px solid #fecaca;border-radius:12px;background:#fff7f7}.manual-warning-list>strong{color:#991b1b;font-size:11px;text-transform:uppercase;letter-spacing:.06em}.manual-warning-list article{display:grid;grid-template-columns:22px minmax(0,1fr);gap:7px;padding-top:7px;border-top:1px solid #fecaca}.manual-warning-list article>span{display:grid;place-items:center;width:20px;height:20px;border-radius:999px;background:#dc2626;color:#fff;font-size:11px;font-weight:900}.manual-warning-list p{margin:0;color:#7f1d1d;font-size:10px;font-weight:800}.manual-warning-list small{display:block;margin-top:3px;color:#991b1b;font-size:9px;line-height:1.35}.validation-ok.compact{padding:9px}.manual-board-mode .planning-inspector select:disabled{opacity:.75}.manual-board-mode .planning-inspector label small{display:block;margin-top:4px;color:var(--muted);font-size:9px;font-weight:500}
.board-color-18{--board-card-bg:#fb923c;--board-card-border:#c2410c;--board-card-accent:#7c2d12}.board-color-19{--board-card-bg:#4ade80;--board-card-border:#16a34a;--board-card-accent:#14532d}.board-color-20{--board-card-bg:#60a5fa;--board-card-border:#2563eb;--board-card-accent:#1e3a8a}.board-color-21{--board-card-bg:#e879f9;--board-card-border:#c026d3;--board-card-accent:#701a75}.board-color-22{--board-card-bg:#f87171;--board-card-border:#dc2626;--board-card-accent:#7f1d1d}.board-color-23{--board-card-bg:#22d3ee;--board-card-border:#0891b2;--board-card-accent:#164e63}.board-color-24{--board-card-bg:#a3e635;--board-card-border:#65a30d;--board-card-accent:#365314}.board-color-25{--board-card-bg:#a78bfa;--board-card-border:#7c3aed;--board-card-accent:#4c1d95}.board-color-26{--board-card-bg:#f472b6;--board-card-border:#db2777;--board-card-accent:#831843}.board-color-27{--board-card-bg:#2dd4bf;--board-card-border:#0d9488;--board-card-accent:#134e4a}.board-color-28{--board-card-bg:#facc15;--board-card-border:#ca8a04;--board-card-accent:#713f12}.board-color-29{--board-card-bg:#818cf8;--board-card-border:#4f46e5;--board-card-accent:#312e81}.board-color-30{--board-card-bg:#c084fc;--board-card-border:#9333ea;--board-card-accent:#581c87}.board-color-31{--board-card-bg:#38bdf8;--board-card-border:#0284c7;--board-card-accent:#0c4a6e}.board-color-32{--board-card-bg:#fb7185;--board-card-border:#e11d48;--board-card-accent:#881337}.board-color-33{--board-card-bg:#34d399;--board-card-border:#059669;--board-card-accent:#064e3b}.board-color-34{--board-card-bg:#fbbf24;--board-card-border:#d97706;--board-card-accent:#78350f}.board-color-35{--board-card-bg:#94a3b8;--board-card-border:#475569;--board-card-accent:#1e293b}
@media(max-width:1050px){.manual-mode-toggle{margin-left:0}.manual-board-mode .studio-toolbar{align-items:stretch}.manual-board-mode .studio-actions{width:100%}.manual-board-mode .studio-actions .button{flex:1}}

/* Setup Data — colored rows and governed approval visibility across every dataset */
.setup-data-summary{display:flex;align-items:center;gap:9px;flex-wrap:wrap;padding:11px 13px;border-bottom:1px solid var(--border,var(--line));background:var(--surface-soft,#f7fafc)}
.setup-data-summary>span{display:inline-flex;align-items:center;gap:5px;padding:5px 9px;border:1px solid var(--border,var(--line));border-radius:999px;background:var(--surface,#fff);color:var(--text-muted,var(--muted));font-size:10px;font-weight:750}
.setup-data-summary>span strong{color:var(--heading,var(--navy));font-size:12px}.setup-data-summary>span.has-pending{border-color:#f2bd54;background:#fff3cd;color:#8a5b00}.setup-data-summary>span.has-pending strong{color:#92400e}
.setup-data-grid tbody tr.setup-data-row:nth-child(4n+1)>td{background:#cfe7ff}.setup-data-grid tbody tr.setup-data-row:nth-child(4n+2)>td{background:#d6f4d2}.setup-data-grid tbody tr.setup-data-row:nth-child(4n+3)>td{background:#fff0a8}.setup-data-grid tbody tr.setup-data-row:nth-child(4n)>td{background:#ead9ff}
.setup-data-grid tbody tr.setup-data-row>td{transition:filter .15s ease,background .15s ease}.setup-data-grid tbody tr.setup-data-row:hover>td{filter:saturate(1.12) brightness(.96)}
.setup-data-grid tbody tr.setup-data-row.awaiting-approval>td{background:#ffcaca!important}.setup-data-grid tbody tr.setup-data-row.awaiting-approval>td:first-child{box-shadow:inset 6px 0 0 #b91c1c}.setup-data-grid tbody tr.setup-data-row.awaiting-approval:hover>td{background:#ffb4b4!important}
.setup-data-grid th:first-child{position:sticky;z-index:4;left:0;min-width:210px;background:#fff1f2;box-shadow:2px 0 0 #e8a5aa}.setup-data-grid tbody td:first-child{position:sticky;z-index:2;left:0;box-shadow:2px 0 0 rgba(71,85,105,.2)}
.setup-approval-cell{min-width:210px}.setup-approval-state{display:inline-flex;align-items:center;gap:7px;min-width:max-content;padding:6px 9px;border-radius:10px}.setup-approval-state>span:first-child{display:grid;width:21px;height:21px;place-items:center;border-radius:50%;font-size:11px;font-weight:950}.setup-approval-state strong,.setup-approval-state small{display:block}.setup-approval-state strong{font-size:10px;letter-spacing:.03em;text-transform:uppercase}.setup-approval-state small{margin-top:2px;font-size:9px;font-weight:700}
.setup-approval-state.current{background:rgba(255,255,255,.68);color:#11663f}.setup-approval-state.current>span:first-child{background:#b7e9cf;color:#0f6842}.setup-approval-state.waiting{background:#b91c1c;color:#fff;box-shadow:0 2px 8px rgba(127,29,29,.25)}.setup-approval-state.waiting>span:first-child{background:#fff;color:#b91c1c}.setup-approval-state.waiting small{color:#fee2e2}
@media(max-width:760px){.setup-data-summary{align-items:flex-start}.setup-data-grid th:first-child,.setup-approval-cell{min-width:190px}}

/* Planning Rules — one rule per row with clear, scannable columns */
.existing-rule-table-wrap{max-height:68vh;overflow:auto;border:1px solid var(--border,var(--line));border-radius:15px;background:var(--surface,#fff);box-shadow:0 8px 24px rgba(16,42,67,.06)}
.existing-rule-table{width:100%;min-width:1080px;border-collapse:separate;border-spacing:0;white-space:normal}
.existing-rule-table th{position:sticky;z-index:3;top:0;padding:.72rem .8rem;border-bottom:1px solid var(--border,var(--line));background:var(--surface-soft,#f7fafc);color:var(--text-muted,var(--muted));font-size:.68rem;font-weight:850;letter-spacing:.07em;text-align:left;text-transform:uppercase}
.existing-rule-table td{padding:.88rem .8rem;border-bottom:1px solid var(--border,var(--line));vertical-align:top;white-space:normal}
.existing-rule-table tbody tr:last-child td{border-bottom:0}.existing-rule-table tbody tr{transition:background .15s ease}.existing-rule-table tbody tr:hover{background:color-mix(in srgb,var(--accent,var(--blue)) 4%,var(--surface,#fff))}
.existing-rule-table tbody tr.is-strict td:first-child{border-left:4px solid var(--danger,#b91c1c)}.existing-rule-table tbody tr.is-flexible td:first-child{border-left:4px solid #d97706}
.rule-number-column{width:48px}.rule-actions-column{width:152px}.rule-table-number{width:48px;color:var(--text-muted,var(--muted));font-size:.78rem;font-weight:900;text-align:center}
.rule-table-scope{width:165px}.rule-table-scope strong,.rule-table-scope span,.rule-table-settings strong,.rule-table-settings span{display:block}.rule-table-scope strong{color:var(--heading,var(--navy));line-height:1.35}.rule-table-scope span,.rule-table-settings span,.rule-table-meaning>span{margin-top:.3rem;color:var(--text-muted,var(--muted));font-size:.72rem;line-height:1.4}
.rule-table-meaning{min-width:370px}.rule-table-meaning>strong{display:block;color:var(--text,var(--ink));font-size:.88rem;line-height:1.48}.rule-table-settings{width:215px}.rule-table-settings strong{color:var(--heading,var(--navy));font-size:.77rem;overflow-wrap:anywhere}.rule-table-strength{width:110px}.rule-table-strength small{display:block;margin-top:.45rem;color:var(--text-muted,var(--muted));font-size:.7rem;font-weight:750}
.rule-row-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.rule-row-actions .button{padding:.52rem .68rem;font-size:.72rem;white-space:nowrap}.rule-row-actions .danger-button{border:1px solid #fecaca}
.rule-row-details{margin-top:.55rem}.rule-row-details>summary{cursor:pointer;color:var(--accent,var(--blue));font-size:.7rem;font-weight:800}.rule-row-details code{display:block;margin-top:.42rem;color:var(--text-muted,var(--muted));font-size:.66rem;overflow-wrap:anywhere}.rule-row-details .inline-rule-history{padding:.25rem .5rem .4rem;border-radius:10px;background:var(--surface-soft,#f7fafc)}
.rule-saved-state{display:inline-flex;align-items:center;margin-right:.45rem;padding:.27rem .52rem;border-radius:999px;background:#dcfce7;color:#166534!important;font-size:.7rem!important;font-weight:850}
@media(max-width:760px){.existing-rule-table-wrap{max-height:none}.existing-rule-table{min-width:940px}.existing-rule-table th,.existing-rule-table td{padding:.72rem .65rem}.rule-table-meaning{min-width:320px}}

/* Semester Planner — latest published rules are automatic, not a historical choice */
.latest-rule-base-summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.9rem 1rem;border:1px solid color-mix(in srgb,var(--success,#15803d) 35%,var(--border,var(--line)));border-radius:14px;background:color-mix(in srgb,var(--success,#15803d) 7%,var(--surface,#fff))}
.latest-rule-base-summary>div{display:grid;gap:.15rem;min-width:0}.latest-rule-base-summary>div>span{color:var(--text-muted,var(--muted));font-size:.7rem;font-weight:850;letter-spacing:.06em;text-transform:uppercase}.latest-rule-base-summary>div>strong{overflow-wrap:anywhere;color:var(--heading,var(--navy));font-size:.95rem}.latest-rule-base-summary>div>small{color:var(--text-muted,var(--muted));font-size:.75rem}.latest-rule-base-summary>.pill{flex:0 0 auto}
@media(max-width:560px){.latest-rule-base-summary{align-items:flex-start;flex-direction:column}.latest-rule-base-summary>.pill{align-self:flex-start}}

/* Book Progress — quick teacher entry and majority-based pacing */
.progress-hero{display:flex;align-items:center;justify-content:space-between;gap:1.25rem;border-left:6px solid #22c55e;background:linear-gradient(135deg,color-mix(in srgb,#22c55e 10%,var(--surface,#fff)),var(--surface,#fff))}.progress-hero.short{border-left-color:#f59e0b;background:linear-gradient(135deg,#fff8e6,var(--surface,#fff))}.progress-hero.review{border-left-color:#3b82f6;background:linear-gradient(135deg,#eff6ff,var(--surface,#fff))}.progress-hero.holiday{border-left-color:#ef4444;background:linear-gradient(135deg,#fff1f2,var(--surface,#fff))}.progress-hero h2{margin:.25rem 0}.progress-hero p:last-child{margin:0;color:var(--text-muted,var(--muted))}.progress-week-type{flex:0 0 auto;padding:.55rem .8rem;border-radius:999px;background:rgba(255,255,255,.78);color:var(--heading,var(--navy));font-size:.72rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase}
.progress-level-tabs{display:flex;gap:.65rem;overflow-x:auto;padding:.15rem 0 .6rem;scrollbar-width:thin}.progress-level-tab{display:grid;flex:0 0 170px;gap:.2rem;padding:.8rem .9rem;border:1px solid var(--border,var(--line));border-radius:13px;background:var(--surface,#fff);color:var(--text,var(--ink));text-align:left;cursor:pointer}.progress-level-tab strong{color:var(--heading,var(--navy));font-size:.8rem}.progress-level-tab small{overflow:hidden;color:var(--text-muted,var(--muted));font-size:.66rem;text-overflow:ellipsis;white-space:nowrap}.progress-level-tab.active{border-color:var(--accent,var(--blue));background:color-mix(in srgb,var(--accent,var(--blue)) 9%,var(--surface,#fff));box-shadow:0 0 0 2px color-mix(in srgb,var(--accent,var(--blue)) 14%,transparent)}
.progress-main-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.4fr);gap:1rem;align-items:start}.progress-target-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.progress-target-grid article,.progress-consensus-metrics article{display:grid;gap:.25rem;padding:1rem;border-radius:13px;background:var(--surface-soft,#f5f9fc)}.progress-target-grid span,.progress-consensus-metrics span{color:var(--text-muted,var(--muted));font-size:.7rem;font-weight:800}.progress-target-grid strong,.progress-consensus-metrics strong{color:var(--heading,var(--navy));font-size:1.2rem}.progress-unit{margin:.8rem 0 0}.progress-empty-target{padding:1rem;border:1px dashed #f59e0b;border-radius:12px;background:#fffbeb;color:#92400e;font-size:.8rem;font-weight:750}
.progress-decision{display:inline-flex;align-items:center;padding:.45rem .7rem;border-radius:999px;font-size:.7rem;font-weight:900;white-space:nowrap}.progress-decision.waiting{background:#f1f5f9;color:#475569}.progress-decision.behind{background:#fee2e2;color:#991b1b}.progress-decision.track{background:#dcfce7;color:#166534}.progress-decision.ahead{background:#dbeafe;color:#1d4ed8}.progress-decision.mixed{background:#fef3c7;color:#92400e}.progress-consensus-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:.65rem}.progress-consensus-metrics small{color:var(--text-muted,var(--muted));font-size:.65rem}.progress-vote-bar{display:flex;gap:.5rem;margin-top:.75rem}.progress-vote-bar span{flex:max(1,var(--votes));padding:.48rem .55rem;border-radius:9px;font-size:.66rem;font-weight:850;text-align:center}.progress-vote-bar .behind{background:#fee2e2;color:#991b1b}.progress-vote-bar .track{background:#dcfce7;color:#166534}.progress-vote-bar .ahead{background:#dbeafe;color:#1d4ed8}.progress-decision-copy{margin:.8rem 0 0;padding:.75rem;border-radius:11px;background:var(--surface-soft,#f5f9fc);color:var(--text-muted,var(--muted));font-size:.78rem;line-height:1.5}
.progress-teacher-form{display:grid;gap:1rem;border-top:4px solid var(--accent,var(--blue))}.progress-page-inputs{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.progress-page-inputs label,.progress-reason-row label{display:grid;gap:.45rem;color:var(--heading,var(--navy));font-size:.76rem;font-weight:800}.progress-page-inputs input{min-height:68px;padding:.6rem .9rem;font-size:1.6rem;font-weight:900;text-align:center}.progress-reason-row{display:grid;grid-template-columns:.8fr 1.2fr;gap:1rem}.progress-submit{justify-self:start;min-width:190px}.progress-holiday-message{display:flex;align-items:center;gap:1rem}.progress-holiday-message>span{font-size:2rem}.progress-holiday-message h2,.progress-holiday-message p{margin:.15rem 0}
.progress-report-table small{display:block;margin-top:.25rem;color:var(--text-muted,var(--muted))}.progress-missing-row{color:var(--text-muted,var(--muted));background:var(--surface-soft,#f5f9fc)}.progress-controls>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer}.progress-control-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border,var(--line))}.progress-control-grid form{padding:1rem;border-radius:13px;background:var(--surface-soft,#f5f9fc)}.progress-control-grid h3{margin:0}.progress-assignment-levels{display:grid;grid-template-columns:repeat(2,1fr);gap:.55rem;padding:.8rem;border:1px solid var(--border,var(--line));border-radius:12px}.progress-assignment-levels label{display:flex;align-items:flex-start;gap:.55rem;padding:.55rem;border-radius:9px;background:var(--surface,#fff);cursor:pointer}.progress-assignment-levels input{width:auto;margin-top:.2rem}.progress-assignment-levels span{display:grid;gap:.1rem}.progress-assignment-levels small{color:var(--text-muted,var(--muted));font-size:.63rem}.progress-week-selector{min-width:230px}
@media(max-width:980px){.progress-main-grid,.progress-control-grid{grid-template-columns:1fr}.progress-consensus-metrics{grid-template-columns:repeat(3,1fr)}}
@media(max-width:620px){.progress-hero{align-items:flex-start;flex-direction:column}.progress-page-inputs,.progress-reason-row,.progress-consensus-metrics,.progress-assignment-levels{grid-template-columns:1fr}.progress-submit{width:100%}.progress-vote-bar{flex-direction:column}.progress-controls>summary{align-items:flex-start;flex-direction:column}.progress-week-selector{min-width:0;width:100%}}
