:root{--color-white:#fff;--color-black:#000;--color-neutral-50:#f2f2f2;--color-neutral-100:#e6e6e6;--color-neutral-200:#ccc;--color-neutral-300:#b3b3b3;--color-neutral-400:#999;--color-neutral-500:#7f7f7f;--color-neutral-600:#666;--color-neutral-700:#4d4d4d;--color-neutral-800:#333;--color-neutral-900:#1a1a1a;--color-navy-25:#f5f5f7;--color-navy-50:#ebebef;--color-navy-100:#d1d2db;--color-navy-200:#b6b7c6;--color-navy-300:#989caf;--color-navy-400:#798097;--color-navy-500:#5a647f;--color-navy-600:#3b4967;--color-navy-700:#1e2f50;--color-navy-800:#04183d;--color-navy-900:#01121d;--color-blue-50:#e2ebfa;--color-blue-100:#cadaf5;--color-blue-200:#9bb8ed;--color-blue-300:#6c97e4;--color-blue-400:#3c75dc;--color-blue-500:#0d54d3;--color-blue-600:#0b45ae;--color-blue-700:#093789;--color-blue-800:#062864;--color-blue-900:#04193f;--color-sky-50:#e0f7ff;--color-sky-300:#14cfff;--color-sky-700:#006581;--color-mint-50:#e4fcf7;--color-mint-100:#bdf7ec;--color-mint-300:#1fe5bf;--color-mint-500:#18ae91;--color-mint-600:#14937a;--color-mint-700:#107763;--color-mint-800:#0c5c4c;--color-green-50:#ebfceb;--color-green-400:#37c648;--color-green-600:#009910;--color-green-700:#008005;--color-yellow-50:#fffad6;--color-yellow-100:#fff4b8;--color-yellow-400:#f2b214;--color-yellow-700:#8e6703;--color-yellow-800:#684c00;--color-orange-50:#fcf3e3;--color-orange-200:#f4cc92;--color-orange-500:#e9721a;--color-orange-600:#b65413;--color-red-50:#ffebeb;--color-red-100:#ffd9d9;--color-red-400:#e33636;--color-red-500:#c90808;--color-red-600:#b10000;--color-pink-50:#ffebf8;--color-pink-200:#fc9cda;--color-pink-600:#c7007f;--color-purple-50:#f7ebff;--color-purple-400:#ab45ec;--color-purple-600:#7a0cc0;--color-primary:var(--color-blue-500);--color-primary-hovered:var(--color-blue-600);--color-primary-foreground:var(--color-white);--color-primary-container:var(--color-blue-50);--color-primary-container-hovered:var(--color-blue-100);--color-primary-container-foreground:var(--color-navy-900);--color-secondary:var(--color-navy-500);--color-secondary-hovered:var(--color-navy-600);--color-secondary-foreground:var(--color-white);--color-secondary-container:var(--color-navy-50);--color-secondary-container-hovered:var(--color-navy-100);--color-secondary-container-foreground:var(--color-navy-900);--color-error:var(--color-red-500);--color-error-hovered:var(--color-red-600);--color-error-foreground:var(--color-white);--color-error-container:var(--color-red-50);--color-error-container-hovered:var(--color-red-100);--color-error-container-foreground:var(--color-red-500);--color-warn:var(--color-yellow-700);--color-warn-hovered:var(--color-yellow-800);--color-warn-container:var(--color-yellow-50);--color-warn-container-foreground:var(--color-yellow-700);--color-success:var(--color-mint-700);--color-success-hovered:var(--color-mint-800);--color-success-container:var(--color-mint-50);--color-success-container-foreground:var(--color-mint-700);--color-surface:var(--color-white);--color-surface-dim:var(--color-navy-100);--color-surface-bright:var(--color-navy-50);--color-surface-container-low:var(--color-white);--color-surface-container-low-hovered:var(--color-navy-25);--color-surface-container-middle:var(--color-navy-25);--color-surface-container-middle-hovered:var(--color-navy-50);--color-surface-container-high:var(--color-navy-50);--color-surface-container-high-hovered:var(--color-navy-100);--color-surface-foreground:var(--color-navy-900);--color-surface-foreground-variant:var(--color-navy-500);--color-outline:var(--color-navy-400);--color-outline-hovered:var(--color-navy-500);--color-outline-variant:var(--color-navy-200);--color-outline-variant-hovered:var(--color-navy-300);--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:40px;--spacing-2xl:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--radius-xl:32px;--radius-full:9999px;--shadow-elevation-1:0px 1px 5px 0px oklch(0% 0 0/.3), 0px 2px 8px 1px oklch(0% 0 0/.1);--shadow-elevation-1-left:-5px 0px 5px -5px oklch(0% 0 0/.3), -8px 0px 8px -8px oklch(0% 0 0/.1);--shadow-elevation-3:0px 1px 6px 0px oklch(0% 0 0/.3), 0px 4px 16px 3px oklch(0% 0 0/.1);--focus-ring-default-color:var(--color-primary);--focus-ring-width:2px;--focus-ring-offset:2px;--font-body:"BIZ UDPGothic", "Hiragino Sans", "Yu Gothic UI", system-ui, sans-serif;--font-display:var(--font-body);--font-mono:"SFMono-Regular", "IBM Plex Mono", "Menlo", monospace;color:var(--color-surface-foreground);background:var(--color-surface-container-middle);font-family:var(--font-body);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:400;line-height:1.5}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{min-height:100vh}button,input,select,textarea{color:inherit;font:inherit}h1,h2,h3,p{margin:0}a{color:inherit}.app-shell{box-sizing:border-box;min-height:100vh;padding:20px 24px 24px}.auth-shell{place-items:center;padding:24px;display:grid}.auth-panel{border:1px solid var(--color-outline-variant);background:var(--color-surface);width:min(100%,380px);box-shadow:var(--shadow-elevation-1);border-radius:8px;gap:18px;padding:28px;display:grid}.auth-panel--loading{color:var(--color-surface-foreground-variant);justify-items:center}.auth-panel__heading{gap:6px;display:grid}.auth-panel__heading h1{font-family:var(--font-display);margin:0;font-size:1.45rem}.auth-panel__heading p{color:var(--color-surface-foreground-variant);margin:0}.app-header{border-bottom:1px solid var(--color-outline-variant);justify-content:space-between;align-items:center;gap:20px;padding:0 0 10px;display:flex}.app-header__title{gap:6px;display:grid}.app-header h1{font-size:clamp(1.25rem,1.6vw,1.55rem);line-height:1.2;font-family:var(--font-display)}.app-nav{border:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface) 72%, transparent);border-radius:999px;align-items:center;gap:4px;padding:4px;display:inline-flex}.app-nav__item{min-height:32px;color:var(--color-surface-foreground-variant);cursor:pointer;font:inherit;background:0 0;border:0;border-radius:999px;padding:0 12px;font-size:.84rem}.app-nav__item--active{background:var(--color-primary);color:var(--color-on-primary)}.app-header__lead{max-width:68ch;color:var(--color-surface-foreground-variant);font-size:.94rem}.app-header__meta{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.header-chip{border:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface) 72%, transparent);min-height:38px;color:var(--color-surface-foreground-variant);border-radius:999px;align-items:center;gap:8px;padding:0 12px;font-size:.82rem;display:inline-flex}.admin-workspace{gap:18px;margin-top:12px;display:grid}.admin-overview{justify-content:space-between;align-items:center;gap:18px;padding:18px;display:flex}.admin-overview h2,.admin-create-panel h2,.admin-users-panel h2,.admin-empty-state h2{margin:0;font-size:1.1rem}.admin-overview p,.admin-empty-state p,.admin-muted{color:var(--color-surface-foreground-variant);margin:6px 0 0}.admin-stats{gap:10px;display:flex}.admin-stats span{border:1px solid var(--color-outline-variant);min-height:38px;color:var(--color-surface-foreground-variant);border-radius:999px;align-items:baseline;gap:6px;padding:0 12px;display:inline-flex}.admin-stats strong{color:var(--color-surface-foreground);font-family:var(--font-display);font-size:1.1rem}.admin-create-panel,.admin-users-panel,.admin-empty-state{padding:18px}.admin-create-form{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) 130px minmax(180px,1fr) auto;align-items:end;gap:12px;margin-top:14px;display:grid}.admin-user-list{gap:10px;margin-top:14px;display:grid}.admin-user-row{border:1px solid var(--color-outline-variant);background:var(--color-surface);border-radius:8px;grid-template-columns:minmax(170px,1.2fr) minmax(160px,1fr) 110px 130px auto minmax(160px,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.admin-user-row__identity{align-self:center;gap:4px;display:grid}.admin-user-row__identity strong{font-family:var(--font-display)}.admin-user-row__identity span{color:var(--color-surface-foreground-variant);font-size:.82rem}.normal-button{border:1px solid var(--color-outline-variant);background:var(--color-surface);min-height:38px;color:var(--color-surface-foreground);cursor:pointer;font:inherit;border-radius:8px;padding:0 12px;font-weight:700}.normal-button:disabled{cursor:not-allowed;opacity:.58}.overview-strip{grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px;display:grid}.overview-strip--panel{margin-top:16px}.scope-row{flex-wrap:wrap;gap:6px 14px;margin:10px 0 0;padding:0;list-style:none;display:flex}.scope-row li{align-items:baseline;gap:6px;display:inline-flex}.scope-row span{color:var(--color-surface-foreground-variant);font-size:.78rem}.scope-row strong{font-family:var(--font-display);font-size:1.05rem;line-height:1}.summary-stat{border:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface) 74%, transparent);border-radius:16px;padding:12px 14px}.summary-stat span{color:var(--color-surface-foreground-variant);font-size:.78rem;display:block}.summary-stat strong{font-size:1.42rem;line-height:1;font-family:var(--font-display);margin-top:6px;display:block}.workspace{grid-template-columns:minmax(360px,430px) minmax(0,1fr);align-items:start;gap:24px;margin-top:12px;display:grid}.workspace--controls-collapsed{grid-template-columns:minmax(0,1fr);padding-left:36px}.panel--collapsed{min-height:0;box-shadow:none;background:0 0;border:0;padding:0!important}.panel__collapse-toggle{border:1px solid var(--color-outline-variant);background:var(--color-white);width:28px;height:28px;color:var(--color-surface-foreground);cursor:pointer;z-index:5;border-radius:999px;justify-content:center;align-items:center;padding:0;font-size:1rem;line-height:1;display:inline-flex;position:absolute;top:8px;right:-14px;box-shadow:0 2px 6px oklch(0% 0 0/.08)}.panel--controls{position:relative}.panel--collapsed .panel__collapse-toggle{left:8px;right:auto}.panel{border:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface) 90%, transparent);border-radius:18px;box-shadow:0 10px 24px oklch(0% 0 0/.05)}.panel--controls,.panel--results{padding:18px}.panel__section+.panel__section{border-top:1px solid var(--color-outline-variant);margin-top:18px;padding-top:18px}.section-heading{gap:4px;display:grid}.section-heading h2,.results-header h2,.board-card h3,.analysis-card h3,.empty-state h3{font-family:var(--font-display)}.section-heading p,.results-header p,.empty-state p,.analysis-card li,.board-slot-cell__meta{color:var(--color-surface-foreground-variant)}.section-heading p,.results-header p{font-size:.88rem}.control-grid{grid-template-columns:minmax(152px,1.15fr) minmax(112px,.85fr);grid-template-areas:"scenario scenario""solver seconds""solve solve";align-items:end;gap:10px 12px;margin-top:12px;display:grid}.control-grid__scenario{grid-area:scenario}.control-grid__seconds{grid-area:seconds}.control-grid__solver{grid-area:solver}.control-grid__solve{white-space:nowrap;grid-area:solve;justify-self:stretch;font-weight:700}.section-heading--inline{justify-content:space-between;align-items:center;gap:10px;display:flex}.link-button{color:var(--color-success-container-foreground);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;padding:4px 2px;font-size:.82rem}.link-button:hover:not(:disabled){text-decoration:underline}.link-button:disabled{color:var(--color-surface-foreground-variant);cursor:not-allowed}.dirty-badge{background:color-mix(in oklch, var(--color-primary) 14%, transparent);color:var(--color-primary);letter-spacing:.03em;border-radius:999px;padding:2px 10px;font-size:.72rem;font-weight:700}.scenario-description{color:var(--color-surface-foreground);background:color-mix(in oklch, var(--color-surface) 60%, transparent);border:1px solid var(--color-outline-variant);border-radius:12px;margin:10px 0 0;padding:10px 12px;font-size:.85rem;line-height:1.55}.info-list--compact{margin-top:10px}.info-list--compact .info-list__row{grid-template-columns:110px minmax(0,1fr);padding:8px 12px}.info-list--compact .info-list__row span{font-size:.78rem}.info-list--compact .info-list__row strong{font-size:.88rem}.actions-row--split{grid-template-columns:1fr 1fr;gap:8px;display:grid}.actions-row--split .secondary-button--primary{grid-column:1/-1}.secondary-button--primary{border-color:color-mix(in oklch, var(--color-success) 40%, transparent);background:color-mix(in oklch, var(--color-success) 8%, transparent);color:var(--color-success-container-foreground);font-weight:700}.secondary-button--subtle{background:0 0}.field{gap:6px;display:grid}.field>span{color:var(--color-surface-foreground);font-size:.86rem;font-weight:600}.field>span.field__hint{color:var(--color-surface-foreground-variant);font-weight:400}.field select,.field input,.scenario-editor,.solve-button,.tab{font:inherit}.field select,.field input,.scenario-editor{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 86%, transparent);width:100%;color:var(--color-surface-foreground);box-sizing:border-box;border-radius:12px}.field select,.field input{height:44px;padding:0 12px}.field select{height:48px;padding:0 48px 0 16px}.field input[type=checkbox],.field input[type=radio]{width:16px;height:16px;accent-color:var(--color-primary);margin:0;padding:0}.solve-button{height:44px;color:var(--color-white);background:var(--color-primary);box-shadow:0 8px 18px color-mix(in oklch, var(--color-success) 20%, transparent);cursor:pointer;border:none;border-radius:12px;padding:0 16px}.secondary-button{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 78%, transparent);min-height:40px;color:var(--color-surface-foreground);cursor:pointer;border-radius:12px;margin-top:14px;padding:0 14px}.secondary-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button--compact{min-height:38px;margin-top:0}.solve-button:disabled{cursor:not-allowed;opacity:.6}.feedback{white-space:pre-wrap;border-radius:12px;margin-top:10px;padding:10px 12px;font-size:.9rem}.feedback--error{background:color-mix(in oklch, var(--color-error) 8%, transparent);color:var(--color-error-container-foreground)}.feedback--warn{background:color-mix(in oklch, var(--color-warn) 10%, transparent);color:var(--color-warn-container-foreground)}.feedback--ok{background:color-mix(in oklch, var(--color-success) 10%, transparent);color:var(--color-success-container-foreground)}.feedback--info{background:color-mix(in oklch, var(--color-primary) 10%, transparent);color:var(--color-primary)}.info-list{border:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface) 65%, transparent);border-radius:14px;margin-top:14px;overflow:hidden}.info-list__row{grid-template-columns:128px minmax(0,1fr);align-items:start;gap:12px;padding:11px 14px;display:grid}.info-list__row+.info-list__row{border-top:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent)}.info-list__row span{color:var(--color-surface-foreground-variant);font-size:.82rem}.info-list__row strong{font-size:.94rem;line-height:1.4}.panel__section--editor{min-height:360px}.scenario-editor{resize:vertical;min-height:500px;font-family:var(--font-mono);margin-top:14px;padding:14px;font-size:.82rem;line-height:1.52}.results-header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.results-header__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.results-header__actions .secondary-button--compact{border-radius:8px;min-height:32px;margin-top:0;padding:0 10px;font-size:.78rem;line-height:1}.swap-selection-toolbar{z-index:50;border:1px solid color-mix(in oklch, var(--color-success) 20%, transparent);background:color-mix(in oklch, var(--color-success-container) 98%, transparent);min-width:min(520px,100vw - 48px);max-width:calc(100vw - 48px);box-shadow:0 12px 32px color-mix(in oklch, var(--color-success) 22%, transparent), 0 2px 6px color-mix(in oklch, var(--color-success) 12%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:18px;justify-content:space-between;align-items:center;gap:16px;padding:12px 18px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.board-stack:has(>.swap-selection-toolbar){padding-bottom:140px}.swap-selection-toolbar__summary{gap:2px;display:grid}.swap-selection-toolbar__summary span{color:var(--color-surface-foreground-variant);font-size:.84rem}.swap-selection-toolbar__actions{gap:10px;display:flex}.score-strip{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.badge,.pill,.severity{letter-spacing:.02em;border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;display:inline-flex}.badge{border:1px solid #0000;min-height:28px;padding:0 10px;font-weight:600}.badge--neutral-bare{color:var(--color-surface-foreground-variant);background:0 0;font-weight:500}.badge--ok{background:color-mix(in oklch, var(--color-success) 12%, transparent);color:var(--color-success-container-foreground)}.badge--warn{background:color-mix(in oklch, var(--color-warn) 14%, transparent);color:var(--color-warn-container-foreground)}.badge--hard{background:color-mix(in oklch, var(--color-error) 12%, transparent);color:var(--color-error-container-foreground)}.badge--soft{background:color-mix(in oklch, var(--color-secondary) 10%, transparent);color:var(--color-primary)}.badge--neutral{background:color-mix(in oklch, var(--color-outline) 8%, transparent);color:var(--color-surface-foreground-variant)}.tabs{flex-wrap:wrap;gap:8px;margin:18px 0 16px;display:flex}.tab{border:1px solid color-mix(in oklch, var(--color-outline) 12%, transparent);background:color-mix(in oklch, var(--color-surface) 72%, transparent);min-height:38px;color:var(--color-surface-foreground-variant);cursor:pointer;border-radius:999px;padding:0 14px}.tab--active{color:var(--color-white);background:var(--color-primary);border-color:#0000}.board-stack,.analysis-list{gap:14px;display:grid}.board-card,.analysis-card,.empty-state,.school-board{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 76%, transparent);border-radius:16px}.board-card,.school-board{padding:14px;overflow-x:auto}.school-board{padding:0}.analysis-card{padding:16px 18px}.empty-state{text-align:center;padding:28px}.board-card__header{margin-bottom:12px}.board-card--editable{position:relative}.board-grid,.school-board__grid{background:color-mix(in oklch, var(--color-outline) 12%, transparent);border-radius:12px;gap:1px;display:grid;overflow:hidden}.board-grid{width:100%}.school-board__grid{width:max-content;min-width:100%;overflow:visible}.board-grid__head,.board-grid__period,.school-board__head,.school-board__slot{background:color-mix(in oklch, var(--color-surface-container-high) 96%, transparent);color:var(--color-surface-foreground);padding:10px 8px;font-size:.86rem;font-weight:700}.board-grid__head--corner,.school-board__head--corner{color:var(--color-surface-foreground-variant)}.school-board__head--corner,.school-board__slot{z-index:2;background:var(--color-surface-container-high);box-shadow:1px 0 0 color-mix(in oklch, var(--color-outline) 12%, transparent);position:sticky;left:0}.board-slot-cell{background:color-mix(in oklch, var(--color-surface) 98%, transparent);min-height:123px;padding:10px 12px;transition:background-color .14s,box-shadow .14s,opacity .14s,transform .14s;position:relative}.board-slot-cell:before{content:"";opacity:.55;background:0 0;width:2px;display:none;position:absolute;top:0;bottom:0;left:0}.board-slot-cell--empty:before{display:none}.board-slot-cell--editable{padding-bottom:10px}.board-slot-cell--menu-enabled{padding-top:12px}.board-slot-cell--source{opacity:.34}.board-slot-cell--drop-target{background:color-mix(in oklch, var(--color-success-container) 98%, transparent)}.board-slot-cell--drop-blocked,.board-slot-cell--hard-violation{background:color-mix(in oklch, var(--color-error-container) 98%, transparent)}.board-slot-cell--soft-violation:not(.board-slot-cell--hard-violation){background:color-mix(in oklch, var(--color-warn-container) 98%, transparent)}.board-slot-cell--selectable{cursor:pointer}.board-slot-cell--selectable:hover,.board-slot-cell--selected{background:color-mix(in oklch, var(--color-success-container) 98%, transparent)}.board-slot-cell__topline{align-items:center;gap:8px;min-height:22px;padding-right:32px;display:flex}.board-slot-cell__selection-badge{z-index:4;background:var(--color-success-container-foreground);width:24px;height:24px;color:var(--color-white);box-shadow:0 8px 18px color-mix(in oklch, var(--color-success) 28%, transparent);border-radius:999px;justify-content:center;align-items:center;font-size:.76rem;font-weight:700;display:inline-flex;position:absolute;top:8px;left:8px}.board-slot-cell__markers{z-index:3;cursor:help;border-radius:999px;outline:none;align-items:center;gap:3px;padding:2px;display:inline-flex;position:absolute;top:3px;left:3px}.board-slot-cell__markers:focus-visible{box-shadow:0 0 0 2px color-mix(in oklch, var(--color-primary) 45%, transparent)}.board-slot-cell__marker{width:8px;height:8px;box-shadow:0 0 0 2px color-mix(in oklch, var(--color-surface) 95%, transparent);border-radius:50%}.board-slot-cell__marker--soft{background:var(--color-warn)}.board-slot-cell__violation-popup{background:var(--color-neutral-800);min-width:260px;max-width:340px;color:var(--color-white);pointer-events:none;z-index:100;border-radius:8px;padding:10px 12px;font-size:.8rem;line-height:1.4;position:fixed;transform:translate(-100%);box-shadow:0 10px 28px oklch(0% 0 0/.28)}.board-slot-cell__violation-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.board-slot-cell__violation{align-items:flex-start;gap:8px;display:flex}.board-slot-cell__violation-badge{letter-spacing:.04em;border-radius:999px;flex:none;justify-content:center;align-items:center;min-width:38px;padding:2px 6px;font-size:.68rem;font-weight:700;display:inline-flex}.board-slot-cell__violation-badge--hard{background:color-mix(in oklch, var(--color-error) 90%, transparent);color:var(--color-white)}.board-slot-cell__violation-badge--soft{background:color-mix(in oklch, var(--color-warn) 90%, transparent);color:var(--color-surface-foreground)}.board-slot-cell__violation-body{flex-direction:column;gap:2px;min-width:0;display:flex}.board-slot-cell__violation-label{color:var(--color-white);font-weight:600}.board-slot-cell__violation-message{color:var(--color-neutral-100);word-break:break-word}.board-slot-cell__headline{min-width:0;color:var(--color-surface-foreground);align-items:center;gap:5px;font-size:.92rem;font-weight:700;line-height:1.3;display:inline-flex}.board-slot-cell__title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board-slot-cell__icon{width:12px;height:12px;color:color-mix(in oklch, var(--color-outline) 62%, transparent);flex:none}.board-slot-cell__icon--lock{width:13px;height:13px;color:var(--color-success-container-foreground)}.board-slot-cell__meta{flex-direction:column;align-items:flex-start;gap:3px;margin-top:5px;font-size:.8rem;line-height:1.3;display:flex}.board-slot-cell__meta-item{align-items:flex-start;gap:3px;min-width:0;max-width:100%;display:inline-flex}.board-slot-cell__meta-item>svg{margin-top:2px}.board-slot-cell__meta-text{text-overflow:ellipsis;word-break:break-word;flex-direction:column;min-width:0;display:inline-flex;overflow:hidden}.board-slot-cell__meta-text-line{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.board-slot-cell__footer{align-items:center;gap:6px;min-height:20px;margin-top:4px;font-size:.8rem;line-height:1.3;display:flex}.board-slot-cell--editable .board-slot-cell__footer{padding-right:28px}.board-slot-cell__meta-item--room{flex:auto;align-items:center;overflow:hidden}.board-slot-cell__meta-sep{color:color-mix(in oklch, var(--color-outline) 40%, transparent)}.board-slot-cell__menu{z-index:4;position:absolute;top:8px;right:8px}.board-slot-cell__menu-toggle{width:24px;height:24px;color:color-mix(in oklch, var(--color-outline) 70%, transparent);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:inline-flex}.board-slot-cell__menu-toggle:hover,.board-slot-cell__menu-toggle:focus-visible{background:color-mix(in oklch, var(--color-outline) 8%, transparent);color:var(--color-surface-foreground);outline:none}.board-slot-cell__menu-toggle[aria-expanded=true]{background:color-mix(in oklch, var(--color-outline) 12%, transparent);color:var(--color-surface-foreground)}.board-slot-cell__icon--more{width:14px;height:14px}.board-slot-cell__menu-list{border:1px solid color-mix(in oklch, var(--color-outline) 12%, transparent);background:color-mix(in oklch, var(--color-surface) 98%, transparent);border-radius:14px;min-width:180px;padding:6px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 18px 36px oklch(0% 0 0/.18)}.board-slot-cell__menu-list--portal{z-index:1000;position:fixed;right:auto}.board-slot-cell__menu-item{text-align:left;width:100%;color:var(--color-surface-foreground);background:0 0;border:none;border-radius:10px;padding:10px 12px;font-size:.86rem}.board-slot-cell__menu-item:hover{background:color-mix(in oklch, var(--color-success) 8%, transparent)}.board-slot-cell__menu-item--danger{color:var(--color-error)}.board-slot-cell__menu-item--danger:hover{background:color-mix(in oklch, var(--color-error) 8%, transparent)}.board-slot-cell__handle{width:20px;height:20px;color:color-mix(in oklch, var(--color-outline) 60%, transparent);cursor:grab;z-index:2;touch-action:none;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s,transform .12s,opacity .12s;display:inline-flex;position:absolute;bottom:6px;right:6px}@media (hover:hover){.board-slot-cell__handle{opacity:0}.board-slot-cell:hover .board-slot-cell__handle,.board-slot-cell:focus-within .board-slot-cell__handle,.board-slot-cell__handle:focus-visible{opacity:1}}.board-slot-cell__handle:hover,.board-slot-cell__handle:focus-visible{background:color-mix(in oklch, var(--color-outline) 8%, transparent);color:var(--color-surface-foreground);outline:none}.board-slot-cell__handle:active{cursor:grabbing;background:color-mix(in oklch, var(--color-outline) 14%, transparent);transform:scale(.94)}.board-slot-cell__icon--grip{width:14px;height:14px}.board-slot-cell__empty{color:color-mix(in oklch, var(--color-outline) 40%, transparent)}.board-drag-preview{z-index:50;pointer-events:none;width:min(240px,100vw - 32px);position:fixed;top:0;left:0;transform:translate(-9999px,-9999px)}.board-drag-preview .board-slot-cell{transform-origin:0 0;border-radius:14px;transform:scale(1.03);box-shadow:0 20px 42px oklch(0% 0 0/.26)}body.board-dragging{-webkit-user-select:none;user-select:none}.pill{margin-left:6px;padding:3px 8px}.analysis-card__header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.analysis-card__count{font-family:var(--font-display);color:var(--color-surface-foreground);font-size:1.3rem}.analysis-card ul{margin:12px 0 0;padding-left:18px}.severity{margin:0 0 8px;padding:4px 8px}.severity--hard{background:color-mix(in oklch, var(--color-error) 12%, transparent);color:var(--color-error-container-foreground)}.severity--soft{background:color-mix(in oklch, var(--color-secondary) 10%, transparent);color:var(--color-primary)}.dialog-backdrop{z-index:40;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:oklch(0% 0 0/.38);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.conditions-dialog{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:var(--color-surface);border-radius:22px;grid-template-rows:auto minmax(0,1fr);width:min(1240px,100%);max-height:min(88vh,980px);display:grid;overflow:hidden;box-shadow:0 28px 70px oklch(0% 0 0/.18)}.conditions-dialog__header{border-bottom:1px solid var(--color-outline-variant);justify-content:space-between;align-items:flex-start;gap:18px;padding:22px 24px 18px;display:flex}.conditions-dialog__eyebrow{letter-spacing:.12em;text-transform:uppercase;color:var(--color-surface-foreground-variant);font-size:.76rem}.conditions-dialog__header h2{font-size:1.6rem;font-family:var(--font-display);margin-top:4px}.conditions-dialog__lead{max-width:68ch;color:var(--color-surface-foreground-variant);margin-top:8px;font-size:.92rem}.conditions-dialog__actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.conditions-dialog__body{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:18px 24px 24px;display:grid;overflow:auto}.dialog-panel{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 72%, transparent);border-radius:16px;padding:16px}.dialog-panel--wide{grid-column:1/-1}.dialog-panel__heading{gap:4px;margin-bottom:14px;display:grid}.dialog-panel__heading h3{font-size:1.05rem;font-family:var(--font-display)}.dialog-panel__heading p{color:var(--color-surface-foreground-variant);font-size:.85rem}.dialog-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:14px;display:grid}.dialog-metric-grid .summary-stat{background:color-mix(in oklch, var(--color-surface) 80%, transparent)}.dialog-metric-grid .summary-stat strong{font-size:1.2rem}.dialog-list{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface-container-high) 72%, transparent);border-radius:14px;overflow:hidden}.dialog-list__row{grid-template-columns:150px minmax(0,1fr);gap:10px;padding:10px 12px;display:grid}.dialog-list__row+.dialog-list__row{border-top:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent)}.dialog-list__row span{color:var(--color-surface-foreground-variant);font-size:.82rem}.dialog-list__row strong{font-size:.9rem;line-height:1.45}.token-row{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.token{background:color-mix(in oklch, var(--color-success) 10%, transparent);min-height:30px;color:var(--color-success-container-foreground);border-radius:999px;align-items:center;padding:0 10px;font-size:.78rem;display:inline-flex}.dialog-table{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 72%, transparent);border-radius:14px;overflow:hidden}.dialog-table__head,.dialog-table__row{grid-template-columns:minmax(0,1.2fr) minmax(140px,.7fr);display:grid}.dialog-table__head{background:color-mix(in oklch, var(--color-surface-container-high) 96%, transparent);padding:10px 12px;font-size:.82rem;font-weight:700}.dialog-table__row+.dialog-table__row{border-top:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent)}.dialog-table__cell{padding:10px 12px;font-size:.9rem}.dialog-table__cell--soft{color:var(--color-surface-foreground-variant)}.timetable-history-dialog{width:min(960px,100%)}.timetable-history-table{min-width:760px}.timetable-history-table__row{grid-template-columns:1.15fr 1.55fr .8fr .65fr .7fr .85fr;align-items:center}.timetable-history-table__row>span{text-overflow:ellipsis;white-space:nowrap;min-width:0;padding:9px 12px;overflow:hidden}.timetable-history-table__row[data-active=true]{background:color-mix(in oklch, var(--color-primary) 7%, var(--color-surface-container-low))}.timetable-history-table__actions{flex-wrap:nowrap;justify-content:flex-start;gap:6px;display:flex}.timetable-history-dialog .secondary-button--compact{white-space:nowrap;border-radius:7px;min-height:28px;margin-top:0;padding:0 8px;font-size:.72rem;line-height:1}.timetable-history-count,.timetable-history-status{white-space:nowrap;border-radius:999px;align-items:center;min-height:22px;font-size:.72rem;font-weight:800;display:inline-flex}.timetable-history-count{border:1px solid var(--color-outline-variant);color:var(--color-surface-foreground-variant);padding:0 8px}.timetable-history-status{padding:0 9px}.timetable-history-status--active{background:var(--color-primary-container);color:var(--color-primary)}.timetable-history-status--archived{background:color-mix(in oklch, var(--color-outline) 10%, transparent);color:var(--color-surface-foreground-variant)}.condition-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.scenario-library-dialog{width:min(860px,100%)}.scenario-library-dialog__header{padding-bottom:16px}.scenario-library-dialog__body{flex-direction:column;gap:22px;padding:18px 24px 24px;display:flex;overflow:auto}.scenario-group{flex-direction:column;gap:8px;display:flex}.scenario-group__header{align-items:baseline;gap:10px;padding:0 2px;display:flex}.scenario-group__header h3{font-size:.95rem;font-family:var(--font-display);margin:0}.scenario-group__count{color:var(--color-surface-foreground-variant);font-size:.78rem}.scenario-group__empty{border:1px dashed color-mix(in oklch, var(--color-outline) 18%, transparent);background:color-mix(in oklch, var(--color-surface) 55%, transparent);color:var(--color-surface-foreground-variant);border-radius:12px;margin:0;padding:12px 14px;font-size:.85rem;line-height:1.5}.scenario-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.scenario-row{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 82%, transparent);border-radius:14px;grid-template-columns:minmax(0,1fr) auto;align-items:stretch;transition:border-color .12s,background .12s,box-shadow .12s;display:grid;position:relative}.scenario-row__main{text-align:left;font:inherit;color:inherit;cursor:pointer;background:0 0;border:none;border-radius:14px 0 0 14px;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;padding:12px 14px;display:grid}.scenario-row__main:focus-visible{outline:2px solid color-mix(in oklch, var(--color-success) 50%, transparent);outline-offset:-2px}.scenario-row__main:disabled{cursor:not-allowed;opacity:.6}.scenario-row__indicator{color:color-mix(in oklch, var(--color-outline) 36%, transparent);font-size:.95rem;line-height:1.6}.scenario-row--selected .scenario-row__indicator{color:var(--color-success-container-foreground)}.scenario-row__content{gap:4px;min-width:0;display:grid}.scenario-row__title-line{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.scenario-row__title-line strong{font-size:.96rem;font-weight:600}.scenario-row__pill{background:color-mix(in oklch, var(--color-success) 14%, transparent);color:var(--color-success-container-foreground);letter-spacing:.03em;border-radius:999px;padding:1px 8px;font-size:.7rem;font-weight:700}.scenario-row__description{color:var(--color-surface-foreground-variant);text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.83rem;line-height:1.5;display:-webkit-box;overflow:hidden}.scenario-row__meta{color:var(--color-surface-foreground-variant);flex-wrap:wrap;gap:6px 12px;margin-top:2px;font-size:.76rem;display:flex}.scenario-row__actions{align-items:center;gap:4px;padding:10px 12px 10px 6px;display:flex}.icon-button{color:var(--color-surface-foreground-variant);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;padding:6px 10px;font-size:.8rem;transition:background .12s,color .12s,border-color .12s}.icon-button:hover:not(:disabled){background:color-mix(in oklch, var(--color-outline) 8%, transparent);color:var(--color-surface-foreground)}.icon-button:disabled{cursor:not-allowed;opacity:.45}.icon-button--danger:hover:not(:disabled){background:color-mix(in oklch, var(--color-error) 10%, transparent);color:var(--color-error-container-foreground)}.condition-card,.teacher-card{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 74%, transparent);border-radius:14px;padding:12px 13px}.condition-card__title,.teacher-card__header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.condition-card__title h4,.teacher-card__header h4{margin:0;font-size:.96rem}.condition-card__title span,.teacher-card__header p{color:var(--color-surface-foreground-variant);font-size:.8rem}.condition-card__meta{flex-wrap:wrap;gap:7px;margin-top:10px;display:flex}.condition-card__meta span{background:color-mix(in oklch, var(--color-outline) 8%, transparent);min-height:28px;color:var(--color-surface-foreground-variant);border-radius:999px;align-items:center;padding:0 9px;font-size:.77rem;display:inline-flex}.actions-row{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.guide-list{gap:10px;margin-top:14px;display:grid}.guide-list__item{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 72%, transparent);border-radius:14px;gap:4px;padding:12px 14px;display:grid}.guide-list__item strong{font-size:.9rem}.guide-list__item span{color:var(--color-surface-foreground-variant);font-size:.84rem;line-height:1.5}.conditions-dialog--editor{grid-template-rows:auto auto minmax(0,1fr);width:min(1520px,100%);max-height:calc(100vh - 28px)}.editor-header{border-bottom:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface) 94%, transparent);justify-content:space-between;align-items:center;gap:18px;padding:16px 24px;display:flex}.editor-header__title{align-items:baseline;gap:12px;min-width:0;display:flex}.editor-header__title h2{font-size:1.25rem;font-family:var(--font-display);margin:0}.editor-header__scenario{color:var(--color-surface-foreground-variant);white-space:nowrap;text-overflow:ellipsis;max-width:32ch;font-size:.88rem;overflow:hidden}.editor-header__actions{flex-wrap:nowrap;justify-content:flex-end;align-items:center;gap:8px;display:flex}.editor-header__menu{position:relative}.editor-header__menu-toggle{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 82%, transparent);width:38px;min-height:38px;color:var(--color-surface-foreground);cursor:pointer;border-radius:10px;font-size:1rem;line-height:1}.editor-header__menu-list{z-index:10;border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 98%, transparent);border-radius:12px;min-width:200px;padding:6px;display:grid;position:absolute;top:calc(100% + 4px);right:0;box-shadow:0 12px 32px oklch(0% 0 0/.16)}.editor-header__menu-item{color:var(--color-surface-foreground);text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:9px 12px}.editor-header__menu-item:hover:not(:disabled){background:color-mix(in oklch, var(--color-outline) 8%, transparent)}.editor-header__menu-item:disabled{color:var(--color-surface-foreground-variant);cursor:not-allowed;opacity:.6}.editor-statusbar{background:color-mix(in oklch, var(--color-surface-container-high) 60%, transparent);border-bottom:1px solid var(--color-outline-variant);flex-wrap:wrap;align-items:center;gap:8px;min-height:44px;padding:10px 24px;display:flex}.editor-statusbar__summary{color:var(--color-surface-foreground-variant);font-size:.82rem}.editor-layout{grid-template-columns:232px minmax(0,1fr);gap:0;min-height:0;display:grid;overflow:hidden}.editor-nav{border-right:1px solid var(--color-outline-variant);background:color-mix(in oklch, var(--color-surface-container-high) 60%, transparent);align-content:start;gap:2px;min-width:0;padding:14px 10px 20px 14px;display:grid;overflow:auto}.editor-nav__group-label{letter-spacing:.08em;color:var(--color-surface-foreground-variant);text-transform:uppercase;padding:12px 10px 4px;font-size:.7rem;font-weight:700}.editor-nav__group-label:first-child{padding-top:4px}.editor-nav__item{color:var(--color-surface-foreground);text-align:left;font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:9px 12px 9px 16px;transition:background .12s,border-color .12s;display:flex;position:relative}.editor-nav__item strong{font-size:.9rem;font-weight:600}.editor-nav__item:hover:not(.editor-nav__item--active){background:color-mix(in oklch, var(--color-surface) 60%, transparent)}.editor-nav__item--active{background:color-mix(in oklch, var(--color-primary-container) 94%, transparent);color:var(--color-surface-foreground)}.editor-nav__item--active:before{background:var(--color-primary)}.editor-nav__item--active strong{font-weight:700}.editor-content{min-width:0;padding:18px 24px 24px;overflow:auto}.editor-feedback{margin-bottom:14px}.editor-section{gap:16px;display:grid}.editor-section__headerbar{justify-content:space-between;align-items:flex-start;gap:14px;display:flex}.editor-section__heading{gap:4px;display:grid}.editor-section__heading h3{font-size:1.08rem;font-family:var(--font-display)}.editor-section__heading p{color:var(--color-surface-foreground-variant);font-size:.86rem}.editor-form-grid{grid-template-columns:minmax(0,1fr) 160px;align-items:end;gap:12px;display:grid}.editor-form-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.editor-form-grid--subject,.editor-form-grid--subjectOptions{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));align-items:end}.editor-form-grid__full{grid-column:1/-1}.editor-textarea,.editor-table input,.editor-table select,.assignment-card input,.assignment-card select,.editor-card input,.editor-card select{border:1px solid color-mix(in oklch, var(--color-outline) 16%, transparent);background:color-mix(in oklch, var(--color-surface) 96%, transparent);box-sizing:border-box;width:100%;min-height:40px;font:inherit;color:var(--color-surface-foreground);border-radius:10px;padding:0 12px;transition:border-color .15s,box-shadow .15s}.editor-textarea:focus,.editor-table input:focus,.editor-table select:focus,.assignment-card input:focus,.assignment-card select:focus,.assignment-row__field input:focus,.assignment-row__field select:focus,.editor-card input:focus,.editor-card select:focus,.field input:focus,.field select:focus{border-color:color-mix(in oklch, var(--color-primary) 50%, transparent);box-shadow:0 0 0 var(--focus-ring-width) color-mix(in oklch, var(--color-primary) 12%, transparent);outline:none}.editor-textarea{resize:vertical;min-height:110px;padding:12px}.editor-card-list{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.editor-card-list .editor-card{padding:12px 14px}.editor-card-list .editor-card__title h4{font-size:.88rem}.editor-card-list .editor-card__title span{font-size:.76rem}.editor-card-list .editor-card .field{gap:2px}.editor-card-list .editor-card .field strong{font-size:.95rem}.editor-card,.constraint-group,.assignment-card{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 78%, transparent);border-radius:16px}.editor-card,.assignment-card{padding:14px}.fixed-panel{flex-direction:column;gap:14px;min-width:0;display:flex}.editor-card__title,.detail-drawer__header,.fixed-panel__header,.constraint-group__header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.fixed-panel__header{margin-bottom:8px}.editor-card__title-text{gap:4px;min-width:0;display:grid}.editor-card__title h4,.detail-drawer__header h4,.fixed-panel__header h4,.constraint-group__header h4{margin:0;font-size:.96rem}.editor-card__title span,.detail-drawer__header p,.constraint-group__header span{color:var(--color-surface-foreground-variant);font-size:.8rem}.editor-card--subject{align-content:start;gap:14px;display:grid}.editor-card-list--subjects{grid-template-columns:repeat(auto-fit,minmax(420px,1fr))}.subject-pill-row{flex-wrap:wrap;gap:8px;display:flex}.period-bar{--period-bar-prefer-background:color-mix(in oklch, var(--color-success) 30%, transparent);--period-bar-prefer-border:color-mix(in oklch, var(--color-success) 50%, transparent);--period-bar-avoid-background:color-mix(in oklch, var(--color-error) 25%, transparent);--period-bar-avoid-border:color-mix(in oklch, var(--color-error) 50%, transparent);gap:6px;display:grid}.period-bar__row{grid-template-columns:repeat(auto-fit,minmax(54px,1fr));gap:6px;display:grid}.period-bar__cell{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 95%, transparent);min-height:40px;color:var(--color-surface-foreground-variant);font:inherit;cursor:pointer;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 4px 4px;font-size:.82rem;line-height:1.1;transition:border-color .12s,background .12s,color .12s;display:flex;position:relative}.period-bar__cell:hover{border-color:color-mix(in oklch, var(--color-outline) 28%, transparent)}.period-bar__cell strong{font-size:.88rem;font-weight:600}.period-bar__cell em{letter-spacing:.04em;font-size:.7rem;font-style:normal;font-weight:700}.period-bar__legend{color:var(--color-surface-foreground-variant);flex-wrap:wrap;gap:14px;font-size:.75rem;display:flex}.period-bar__legend span:before{content:"";vertical-align:middle;border:1px solid color-mix(in oklch, var(--color-outline) 20%, transparent);border-radius:3px;width:10px;height:10px;margin-right:6px;display:inline-block}.period-bar__legend .period-bar__legend-prefer:before{background:var(--period-bar-prefer-background);border-color:var(--period-bar-prefer-border)}.period-bar__legend .period-bar__legend-avoid:before{background:var(--period-bar-avoid-background);border-color:var(--period-bar-avoid-border)}.checkbox-field{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 92%, transparent);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:8px;min-height:40px;padding:0 12px;display:inline-flex}.checkbox-field input{accent-color:var(--color-primary);margin:0}.slot-chip-row{flex-wrap:wrap;gap:6px;display:flex}.checkbox-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:6px;display:grid}.slot-chip{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 95%, transparent);min-height:32px;color:var(--color-surface-foreground-variant);cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 12px;font-size:.85rem;transition:all .12s;display:inline-flex}.slot-chip:hover:not(.slot-chip--active){border-color:color-mix(in oklch, var(--color-outline) 28%, transparent);color:var(--color-surface-foreground)}.slot-chip--active{border-color:color-mix(in oklch, var(--color-success) 40%, transparent);background:color-mix(in oklch, var(--color-success) 14%, transparent);color:var(--color-success-container-foreground);font-weight:600}.requirement-layout,.teacher-editor-layout,.fixed-layout{grid-template-columns:minmax(0,1.2fr) minmax(320px,1fr);align-items:start;gap:14px;display:grid}.requirement-main{flex-direction:column;gap:12px;min-width:0;display:flex}.requirement-view-header{justify-content:flex-end;align-items:center;min-height:32px;display:flex}.view-mode-switch{border:1px solid var(--color-outline);border-radius:var(--radius-sm);background:var(--color-surface-container-low);display:inline-flex;overflow:hidden}.view-mode-button{border:0;border-left:1px solid var(--color-outline);block-size:32px;inline-size:36px;color:var(--color-surface-foreground-variant);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}.view-mode-button:first-child{border-left:0}.view-mode-button:hover{background:var(--color-surface-container-low-hovered);color:var(--color-surface-foreground)}.view-mode-button:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-default-color);outline-offset:-2px}.view-mode-button--active{background:var(--color-primary-container);color:var(--color-primary);box-shadow:inset 0 0 0 1px var(--color-primary)}.view-mode-button__icon{fill:none;stroke:currentColor;stroke-width:1.9px;stroke-linecap:round;stroke-linejoin:round;block-size:18px;inline-size:18px}.requirement-matrix,.detail-drawer,.teacher-list,.teacher-editor{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 82%, transparent);border-radius:14px}.requirement-matrix,.teacher-list{overflow:auto}.requirement-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.view-toggle{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 80%, transparent);border-radius:10px;padding:3px;display:inline-flex}.view-toggle__button{min-height:32px;color:var(--color-surface-foreground-variant);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:0 12px;font-size:.85rem}.view-toggle__button:disabled{cursor:not-allowed;opacity:.45}.view-toggle__button--active{background:color-mix(in oklch, var(--color-primary) 12%, transparent);color:var(--color-primary);font-weight:700}.requirement-matrix__grid{background:color-mix(in oklch, var(--color-outline) 10%, transparent);gap:1px;min-width:100%;display:grid}.requirement-matrix__head{background:color-mix(in oklch, var(--color-surface-container-high) 96%, transparent);padding:10px;font-size:.82rem;font-weight:700}.requirement-matrix__head--corner{color:var(--color-surface-foreground-variant)}.requirement-cell{background:color-mix(in oklch, var(--color-surface) 98%, transparent);text-align:left;cursor:pointer;border:none;gap:4px;min-height:72px;padding:10px 12px;transition:background .12s;display:grid;position:relative}.requirement-cell:hover:not(.requirement-cell--active){background:color-mix(in oklch, var(--color-primary-container) 95%, transparent)}.requirement-cell strong{min-width:0;font-size:1.1rem;font-family:var(--font-display);flex-wrap:wrap;align-items:baseline;gap:2px;line-height:1.1;display:flex}.requirement-cell__target{min-width:0;color:var(--color-surface-foreground-variant);overflow-wrap:anywhere;font-size:.78rem}.requirement-cell span{color:var(--color-surface-foreground-variant);font-size:.75rem}.requirement-cell__marker{color:var(--color-surface-foreground-variant);opacity:.5;font-size:.7rem;position:absolute;top:8px;right:10px}.requirement-cell--active{background:color-mix(in oklch, var(--color-primary-container) 96%, transparent);box-shadow:inset 2px 0 0 var(--color-primary)}.requirement-cell--short{box-shadow:inset 0 -2px 0 color-mix(in oklch, var(--color-warn) 38%, transparent)}.requirement-cell--met{box-shadow:inset 0 -2px 0 color-mix(in oklch, var(--color-success) 34%, transparent)}.requirement-cell--over{box-shadow:inset 0 -2px 0 color-mix(in oklch, var(--color-error) 32%, transparent)}.requirement-cell--missing{box-shadow:inset 0 -2px 0 color-mix(in oklch, var(--color-outline) 16%, transparent)}.requirement-cell--active.requirement-cell--short{box-shadow:inset 2px 0 0 var(--color-primary), inset 0 -2px 0 color-mix(in oklch, var(--color-warn) 38%, transparent)}.requirement-cell--active.requirement-cell--met{box-shadow:inset 2px 0 0 var(--color-primary), inset 0 -2px 0 color-mix(in oklch, var(--color-success) 34%, transparent)}.requirement-cell--active.requirement-cell--over{box-shadow:inset 2px 0 0 var(--color-primary), inset 0 -2px 0 color-mix(in oklch, var(--color-error) 32%, transparent)}.requirement-cell--active.requirement-cell--missing{box-shadow:inset 2px 0 0 var(--color-primary), inset 0 -2px 0 color-mix(in oklch, var(--color-outline) 16%, transparent)}.requirement-cell--active .requirement-cell__marker{opacity:1;color:var(--color-primary)}.requirement-cell--zero strong{color:var(--color-surface-foreground-variant);opacity:.55}.requirement-list{gap:8px;display:grid}.requirement-list__item{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 85%, transparent);cursor:pointer;text-align:left;min-width:0;font:inherit;color:var(--color-surface-foreground);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 14px;transition:background .12s,border-color .12s;display:grid}.requirement-list__item:hover:not(.requirement-list__item--active){background:color-mix(in oklch, var(--color-primary-container) 90%, transparent);border-color:color-mix(in oklch, var(--color-primary) 20%, transparent)}.requirement-list__item--active{border-color:color-mix(in oklch, var(--color-primary) 36%, transparent);background:color-mix(in oklch, var(--color-primary-container) 96%, transparent)}.requirement-list__label{flex-wrap:wrap;align-items:baseline;gap:8px;min-width:0;display:flex}.requirement-list__label strong{font-size:.95rem}.requirement-list__label span{color:var(--color-surface-foreground-variant);font-size:.8rem}.requirement-list__meta{min-width:0;color:var(--color-surface-foreground-variant);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px;font-size:.8rem;display:flex}.requirement-list__count{background:color-mix(in oklch, var(--color-success) 14%, transparent);min-width:46px;max-width:100%;height:28px;color:var(--color-success-container-foreground);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:0 10px;font-size:.86rem;font-weight:700;display:inline-flex}.requirement-list__count--zero{background:color-mix(in oklch, var(--color-outline) 8%, transparent);color:var(--color-surface-foreground-variant)}.requirement-list__count--short{background:color-mix(in oklch, var(--color-warn) 12%, transparent);color:var(--color-warn-container-foreground)}.requirement-list__count--met{background:color-mix(in oklch, var(--color-success) 14%, transparent);color:var(--color-success-container-foreground)}.requirement-list__count--over{background:color-mix(in oklch, var(--color-error) 10%, transparent);color:var(--color-error-container-foreground)}.requirement-list__count--missing{background:color-mix(in oklch, var(--color-outline) 8%, transparent);color:var(--color-surface-foreground-variant)}.requirement-list__flag{background:color-mix(in oklch, var(--color-primary) 12%, transparent);color:var(--color-primary);border-radius:999px;align-items:center;padding:2px 8px;font-size:.72rem;font-weight:700;display:inline-flex}.detail-drawer,.teacher-editor{gap:12px;padding:14px;display:grid}.detail-drawer--requirements{grid-template-rows:auto auto auto minmax(0,1fr);align-self:stretch;max-height:72vh}.teacher-editor__section{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface-container-high) 70%, transparent);border-radius:12px;gap:10px;padding:12px 14px;display:grid}.teacher-editor__section-title{letter-spacing:.06em;color:var(--color-surface-foreground-variant);text-transform:uppercase;font-size:.8rem;font-weight:700}.detail-drawer__meta{color:var(--color-surface-foreground-variant);justify-content:space-between;align-items:center;gap:10px;font-size:.84rem;display:flex}.requirement-drawer__summary{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface-container-high) 78%, transparent);border-radius:12px;grid-template-columns:repeat(auto-fit,minmax(116px,1fr));align-items:stretch;gap:8px;padding:10px;display:grid}.requirement-drawer__metric{background:color-mix(in oklch, var(--color-surface) 84%, transparent);border-radius:10px;align-content:center;gap:2px;min-width:0;min-height:46px;padding:8px 10px;display:grid}.requirement-drawer__metric strong{min-width:0;font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.08rem;line-height:1.1}.requirement-drawer__metric span{min-width:0;color:var(--color-surface-foreground-variant);overflow-wrap:anywhere;font-size:.72rem;font-weight:700}.requirement-drawer__summary .secondary-button{white-space:normal;justify-content:center;align-self:center;min-width:0}.requirement-target-editor{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 72%, transparent);border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;padding:12px;display:grid}.requirement-target-editor__meta{min-width:0;color:var(--color-surface-foreground-variant);justify-items:end;gap:6px;font-size:.78rem;display:grid}.requirement-target-editor__meta span{overflow-wrap:anywhere;min-width:0}.standard-target-editor{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 82%, transparent);border-radius:14px;min-width:0;overflow:auto}.standard-target-grid{background:color-mix(in oklch, var(--color-outline) 10%, transparent);gap:1px;min-width:100%;display:grid}.standard-target-grid__head,.standard-target-grid__grade,.standard-target-cell{background:color-mix(in oklch, var(--color-surface) 96%, transparent)}.standard-target-grid__head,.standard-target-grid__grade{padding:10px;font-size:.82rem;font-weight:800}.standard-target-grid__head{background:color-mix(in oklch, var(--color-surface-container-high) 96%, transparent);color:var(--color-surface-foreground-variant)}.standard-target-grid__grade{background:color-mix(in oklch, var(--color-surface-container-high) 94%, transparent);align-items:center;display:flex}.standard-target-cell{gap:5px;padding:8px;display:grid}.standard-target-cell span{color:var(--color-surface-foreground-variant);font-size:.68rem;font-weight:800}.standard-target-cell input{border:1px solid color-mix(in oklch, var(--color-outline) 16%, transparent);background:color-mix(in oklch, var(--color-surface) 96%, transparent);box-sizing:border-box;width:100%;min-height:34px;color:var(--color-surface-foreground);font:inherit;border-radius:9px;padding:0 9px;font-size:.82rem}.standard-target-cell input:focus{border-color:color-mix(in oklch, var(--color-primary) 50%, transparent);box-shadow:0 0 0 var(--focus-ring-width) color-mix(in oklch, var(--color-primary) 12%, transparent);outline:none}.assignment-workspace{align-content:start;gap:12px;min-height:0;padding-right:2px;display:grid;overflow:auto}.assignment-list{gap:12px;display:grid}.assignment-list--compact{gap:8px}.assignment-card{gap:12px;display:grid}.assignment-row{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 74%, transparent);cursor:pointer;border-radius:12px;grid-template-columns:72px minmax(72px,.6fr) minmax(140px,1fr) auto auto;align-items:end;gap:8px;padding:10px;transition:background .12s,border-color .12s,box-shadow .12s;display:grid}.assignment-row:hover:not(.assignment-row--active){border-color:color-mix(in oklch, var(--color-primary) 22%, transparent);background:color-mix(in oklch, var(--color-primary-container) 88%, transparent)}.assignment-row:focus-visible{box-shadow:0 0 0 var(--focus-ring-width) color-mix(in oklch, var(--color-primary) 14%, transparent);outline:none}.assignment-row--active{border-color:color-mix(in oklch, var(--color-primary) 38%, transparent);background:color-mix(in oklch, var(--color-primary-container) 96%, transparent);box-shadow:inset 2px 0 0 var(--color-primary)}.assignment-row__index{color:var(--color-primary);align-self:center;font-size:.78rem;font-weight:800}.assignment-row__field{gap:4px;min-width:0;display:grid}.assignment-row__field span{color:var(--color-surface-foreground-variant);font-size:.68rem;font-weight:800}.assignment-row__field input,.assignment-row__field select{border-radius:9px;min-height:34px;padding:0 9px;font-size:.82rem}.assignment-row__badges{flex-wrap:wrap;justify-content:flex-end;align-self:center;gap:5px;display:flex}.assignment-row__badge{background:color-mix(in oklch, var(--color-outline) 8%, transparent);min-height:26px;color:var(--color-surface-foreground-variant);white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:0 8px;font-size:.72rem;font-weight:700;display:inline-flex}.assignment-row__badge--active{background:color-mix(in oklch, var(--color-success) 12%, transparent);color:var(--color-success-container-foreground)}.assignment-detail-panel{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface-container-high) 72%, transparent);border-radius:12px;gap:12px;padding:12px;display:grid}.assignment-detail-panel__header{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.assignment-detail-panel__header div{gap:3px;min-width:0;display:grid}.assignment-detail-panel__header strong{font-size:.9rem}.assignment-detail-panel__header span{color:var(--color-surface-foreground-variant);font-size:.78rem}.assignment-card__row{justify-content:space-between;align-items:center;gap:10px;display:flex}.assignment-card__row--top{align-items:flex-start}.teacher-list{align-content:start;gap:2px;max-height:72vh;padding:6px;display:grid}.teacher-list__item{text-align:left;font:inherit;color:var(--color-surface-foreground);cursor:pointer;background:0 0;border:none;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:2px 8px;padding:8px 10px 8px 15px;transition:background .12s,border-color .12s;display:grid;position:relative}.teacher-list__item:before{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:0}.teacher-list__item strong{text-overflow:ellipsis;white-space:nowrap;grid-column:1;min-width:0;font-size:.9rem;overflow:hidden}.teacher-list__item span{color:var(--color-surface-foreground-variant);font-size:.76rem}.teacher-list__item>span:first-of-type{grid-area:2/1}.teacher-list__item>span:nth-of-type(2){background:color-mix(in oklch, var(--color-success) 10%, transparent);color:var(--color-success-container-foreground);border-radius:999px;grid-area:1/2/span 2;align-self:center;padding:2px 8px;font-weight:700}.teacher-list__item:hover:not(.teacher-list__item--active){background:color-mix(in oklch, var(--color-surface) 70%, transparent)}.teacher-list__item--active{background:color-mix(in oklch, var(--color-primary-container) 94%, transparent)}.teacher-list__item--active:before{background:var(--color-primary)}.slot-selector{background:0 0;border:0;border-radius:0;gap:2px;padding:0;display:grid}.slot-selector__row{align-items:center;gap:4px;display:grid}.slot-selector__day-label{color:var(--color-surface-foreground-variant);text-align:center;padding:4px 0;font-size:.8rem;font-weight:700}.slot-selector__period-head{color:var(--color-surface-foreground-variant);text-align:center;text-transform:uppercase;letter-spacing:.04em;padding:4px 0;font-size:.72rem;font-weight:700}.slot-cell{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 90%, transparent);min-height:30px;color:var(--color-surface-foreground-variant);cursor:pointer;border-radius:8px;padding:0;font-size:.78rem;font-weight:600;transition:all .12s}.slot-cell:hover:not(.slot-cell--active){border-color:color-mix(in oklch, var(--color-outline) 30%, transparent);background:var(--color-surface);color:var(--color-surface-foreground)}.slot-cell--active{border-color:color-mix(in oklch, var(--color-success) 50%, transparent);background:color-mix(in oklch, var(--color-success) 16%, transparent);color:var(--color-success-container-foreground)}.checkbox-pill{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 92%, transparent);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:10px;align-items:center;gap:8px;min-height:34px;padding:0 12px;font-size:.85rem;transition:border-color .12s,background .12s;display:flex}.checkbox-pill:hover{border-color:color-mix(in oklch, var(--color-outline) 28%, transparent)}.checkbox-pill input{width:16px;height:16px;accent-color:var(--color-primary);flex:none;margin:0;padding:0}.checkbox-pill>span{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.checkbox-pill:has(input:checked){border-color:var(--color-outline);background:var(--color-surface);color:var(--color-surface-foreground)}.editor-table{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 78%, transparent);border-radius:16px;overflow:hidden}.editor-table__head,.editor-table__row{align-items:stretch;display:grid}.editor-table__head{background:color-mix(in oklch, var(--color-surface-container-high) 96%, transparent);padding:10px 12px;font-size:.82rem;font-weight:700}.editor-table__head--classes,.editor-table__row--classes{grid-template-columns:92px minmax(160px,1.2fr) 80px minmax(150px,1fr) minmax(150px,1fr) 96px}.editor-table__head--rooms,.editor-table__row--rooms{grid-template-columns:92px minmax(200px,1fr) 200px 96px}.editor-table__row+.editor-table__row{border-top:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent)}.editor-table__row{background:color-mix(in oklch, var(--color-surface) 60%, transparent)}.editor-table__cell{align-items:center;gap:6px;min-width:0;min-height:56px;padding:8px 10px;display:flex}.editor-table__cell--actions{justify-content:center}.editor-table input,.editor-table select{height:36px;min-height:36px;padding:0 10px}.editor-table .danger-button{min-height:34px;padding:0 10px}.constraint-groups{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:12px;display:grid}.constraint-group{overflow:hidden}.constraint-group__header{border-bottom:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface-container-high) 92%, transparent);padding:10px 14px}.constraint-group__list{gap:0;padding:4px;display:grid}.constraint-toggle{cursor:pointer;border-radius:10px;grid-template-columns:auto minmax(0,1fr);align-items:center;column-gap:12px;padding:10px 12px;transition:background .12s;display:grid}.constraint-toggle input[type=checkbox]{opacity:0;pointer-events:none;position:absolute}.switch{background:color-mix(in oklch, var(--color-outline) 20%, transparent);border-radius:999px;flex:none;width:38px;height:22px;transition:background .15s;position:relative}.switch:after{content:"";background:var(--color-white);border-radius:50%;width:18px;height:18px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px oklch(0% 0 0/.2)}.constraint-toggle input:checked~.switch:after{transform:translate(16px)}.constraint-toggle__main{gap:2px;min-width:0;display:grid}.constraint-toggle__title{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.constraint-toggle__title span:first-child{font-size:.9rem;font-weight:600}.constraint-toggle__main p{color:var(--color-surface-foreground-variant);font-size:.8rem;line-height:1.45}.json-tools{flex-wrap:wrap;gap:10px;display:flex}.scenario-editor--dialog{resize:vertical;min-height:280px;max-height:60vh}.danger-button{border:1px solid color-mix(in oklch, var(--color-error) 16%, transparent);background:color-mix(in oklch, var(--color-error-container) 94%, transparent);min-height:38px;color:var(--color-error-container-foreground);cursor:pointer;border-radius:12px;padding:0 12px}.danger-button--compact{border-radius:10px;min-height:34px;padding:0 10px;font-size:.82rem}.empty-state--inline{padding:18px}.confirm-dialog-backdrop{z-index:5;background:oklch(0% 0 0/.28);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.confirm-dialog{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 98%, transparent);border-radius:20px;gap:16px;width:min(620px,100%);padding:20px;display:grid;box-shadow:0 24px 64px oklch(0% 0 0/.18)}.confirm-dialog__header{gap:6px;display:grid}.confirm-dialog__header h3{font-size:1.08rem;font-family:var(--font-display)}.confirm-dialog__header p,.confirm-dialog__body p{color:var(--color-surface-foreground-variant);font-size:.88rem;line-height:1.55}.confirm-dialog__list{gap:8px;margin:0;padding-left:20px;display:grid}.confirm-dialog__list li{line-height:1.5}.confirm-dialog__actions{justify-content:flex-end;gap:10px;display:flex}.board-move-dialog-backdrop{z-index:60;background:oklch(0% 0 0/.28);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.board-move-dialog{grid-template-rows:auto 1fr auto;width:min(760px,100%);min-height:0;max-height:min(80vh,920px)}.board-move-dialog--replacement{width:min(820px,100%)}.board-move-dialog--subject-setting{min-height:min(80vh,920px)}.board-move-dialog .confirm-dialog__body{align-content:start;gap:14px;min-height:0;padding-right:4px;display:grid;overflow-y:auto}.subject-setting-tabs{border:1px solid color-mix(in oklch, var(--color-outline) 12%, transparent);background:color-mix(in oklch, var(--color-surface) 68%, transparent);border-radius:12px;grid-template-columns:repeat(2,minmax(0,1fr));align-self:start;gap:4px;padding:4px;display:inline-grid}.subject-setting-tabs__tab{min-height:34px;color:var(--color-surface-foreground-variant);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:0 14px;font-size:.86rem;font-weight:800}.subject-setting-tabs__tab:hover:not(.subject-setting-tabs__tab--active){background:color-mix(in oklch, var(--color-surface) 84%, transparent);color:var(--color-surface-foreground)}.subject-setting-tabs__tab:focus-visible{box-shadow:0 0 0 var(--focus-ring-width) color-mix(in oklch, var(--color-primary) 16%, transparent);outline:none}.subject-setting-tabs__tab--active{background:var(--color-primary);color:var(--color-white)}.subject-setting-panel{gap:12px;display:grid}.subject-setting-panel--search{grid-template-rows:auto minmax(0,1fr);align-content:start;min-height:0}.dialog-help-text{color:var(--color-surface-foreground-variant);margin:0;padding:0;font-size:.86rem;line-height:1.55}.subject-search-intro{grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:12px;display:grid}.subject-search-results{align-content:start;gap:12px;min-height:0;display:grid}.subject-search-results>.empty-state{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100%;display:flex}.board-move-dialog__scores{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;display:grid}.board-move-dialog__score{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 72%, transparent);border-radius:12px;align-items:baseline;gap:10px;padding:10px 14px;display:flex}.board-move-dialog__score span{color:var(--color-surface-foreground-variant);font-size:.8rem}.board-move-dialog__score strong{font-family:var(--font-display);font-size:1rem}.board-move-dialog__impacts{gap:10px;display:grid}.board-move-dialog__impacts h4{font-size:.95rem;font-family:var(--font-display)}.board-move-dialog__impact-list{gap:10px;display:grid}.board-move-dialog__impact-card{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 76%, transparent);border-radius:16px;gap:10px;padding:14px;display:grid}.board-move-dialog__impact-header{justify-content:space-between;align-items:center;gap:12px;display:flex}.board-move-dialog__impact-header strong{font-size:.96rem}.board-move-dialog__impact-summary{color:var(--color-surface-foreground-variant);margin:0;font-size:.88rem}.board-move-dialog__impact-section{gap:6px;display:grid}.board-move-dialog__impact-section span{letter-spacing:.02em;color:var(--color-surface-foreground-variant);font-size:.78rem;font-weight:700}.board-move-dialog__impact-section ul{gap:6px;margin:0;padding-left:18px;display:grid}.board-move-dialog__impact-section li{color:var(--color-surface-foreground);font-size:.84rem;line-height:1.5}.board-move-dialog__empty-impact{margin:0}.candidate-list{gap:6px;margin:0;padding:0;list-style:none;display:grid}.candidate-card{border:1px solid color-mix(in oklch, var(--color-outline) 10%, transparent);background:color-mix(in oklch, var(--color-surface) 78%, transparent);border-radius:12px;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;padding:10px 14px;transition:border-color .12s,background .12s;display:grid}.candidate-card:hover{border-color:color-mix(in oklch, var(--color-outline) 22%, transparent);background:color-mix(in oklch, var(--color-surface) 92%, transparent)}.candidate-card--swap{grid-template-columns:minmax(0,1fr) auto;align-items:flex-start;padding:12px 14px}.candidate-card--subject-setting{grid-template-columns:minmax(160px,.72fr) minmax(280px,1.28fr) auto;align-items:flex-start}.candidate-card__summary{flex-direction:column;gap:2px;min-width:0;display:flex}.candidate-card__title{font-family:var(--font-display);color:var(--color-surface-foreground);font-size:.98rem;line-height:1.25}.candidate-card__sub{color:var(--color-surface-foreground-variant);flex-wrap:wrap;align-items:baseline;gap:4px;min-width:0;font-size:.84rem;display:flex}.candidate-card__sep{opacity:.5}.candidate-card__delta-wrap{outline:none;align-items:center;display:inline-flex;position:relative}.candidate-card__delta{font-family:var(--font-display);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:4px 10px;font-size:.82rem;line-height:1.2;display:inline-flex}.candidate-card__delta--ok{background:color-mix(in oklch, var(--color-success) 12%, transparent);color:var(--color-success-container-foreground)}.candidate-card__delta--hard{background:color-mix(in oklch, var(--color-error) 14%, transparent);color:var(--color-error-container-foreground)}.candidate-card__delta-part+.candidate-card__delta-part{opacity:.9;border-left:1px solid;padding-left:8px}.candidate-card__delta-count{background:color-mix(in oklch, var(--color-surface) 55%, transparent);letter-spacing:.02em;border-radius:999px;padding:1px 7px;font-size:.72rem}.candidate-card__apply{justify-self:end}.candidate-card__settings{gap:10px;min-width:0;display:grid}.candidate-card__teacher{gap:4px;min-width:160px;display:grid}.candidate-card__teacher span,.candidate-card__assistants>span{color:var(--color-surface-foreground-variant);font-size:.68rem;font-weight:800}.candidate-card__teacher select{border:1px solid color-mix(in oklch, var(--color-outline) 16%, transparent);background:color-mix(in oklch, var(--color-surface) 96%, transparent);min-height:34px;color:var(--color-surface-foreground);font:inherit;border-radius:9px;padding:0 28px 0 10px;font-size:.84rem}.candidate-card__teacher select:focus{border-color:color-mix(in oklch, var(--color-primary) 50%, transparent);box-shadow:0 0 0 var(--focus-ring-width) color-mix(in oklch, var(--color-primary) 12%, transparent);outline:none}.candidate-card__assistants{gap:5px;min-width:0;display:grid}.candidate-card__assistants-toggle{border:1px solid color-mix(in oklch, var(--color-outline) 14%, transparent);background:color-mix(in oklch, var(--color-surface) 88%, transparent);width:100%;min-height:34px;color:var(--color-surface-foreground);font:inherit;text-align:left;cursor:pointer;border-radius:9px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;padding:6px 10px;display:grid}.candidate-card__assistants-toggle:focus-visible{border-color:color-mix(in oklch, var(--color-success) 48%, transparent);box-shadow:0 0 0 var(--focus-ring-width) color-mix(in oklch, var(--color-success) 12%, transparent);outline:none}.candidate-card__assistants-toggle:disabled{cursor:wait;opacity:.64}.candidate-card__assistants-toggle>span:first-child{color:var(--color-surface-foreground-variant);font-size:.68rem;font-weight:800}.candidate-card__assistants-toggle strong{min-width:0;color:var(--color-success-container-foreground);text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;font-weight:800;overflow:hidden}.candidate-card__assistants-caret{color:var(--color-surface-foreground-variant);font-size:.72rem;font-weight:800}.candidate-card__assistant-grid{padding-top:2px}.candidate-card__swap-header{justify-content:space-between;align-items:center;gap:10px;margin-bottom:4px;display:flex}.swap-pair-rows{gap:2px;margin:0;padding:0;list-style:none;display:grid}.swap-pair-row{border-radius:8px;grid-template-columns:minmax(64px,auto) minmax(48px,auto) minmax(0,1.1fr) minmax(0,1.4fr) minmax(0,1.4fr);align-items:baseline;gap:12px;padding:6px 8px;font-size:.84rem;line-height:1.3;display:grid}.swap-pair-row:nth-child(odd){background:color-mix(in oklch, var(--color-surface) 55%, transparent)}.swap-pair-row__board,.swap-pair-row__slot{color:var(--color-surface-foreground-variant);white-space:nowrap;font-size:.78rem}.swap-pair-row__field{min-width:0;color:var(--color-surface-foreground-variant);align-items:baseline;display:flex;position:relative}.swap-pair-row__field-text{text-overflow:ellipsis;white-space:nowrap;align-items:baseline;gap:4px;min-width:0;display:inline-flex;overflow:hidden}.swap-pair-row__field:hover:after{content:attr(data-tooltip);z-index:95;background:var(--color-neutral-800);max-width:360px;color:var(--color-white);font-family:var(--font-body);white-space:normal;word-break:break-word;pointer-events:none;border-radius:8px;padding:6px 10px;font-size:.78rem;font-weight:500;line-height:1.4;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 8px 20px oklch(0% 0 0/.25)}.swap-pair-row__field--emphasis{font-family:var(--font-display);color:var(--color-surface-foreground);font-size:.9rem}.swap-pair-row__field--changed{color:var(--color-surface-foreground)}.swap-pair-row__field--changed.swap-pair-row__field--emphasis{font-weight:700}.swap-pair-row__before{color:var(--color-surface-foreground-variant);text-decoration:line-through;-webkit-text-decoration-color:color-mix(in oklch, var(--color-outline) 40%, transparent);text-decoration-color:color-mix(in oklch, var(--color-outline) 40%, transparent)}.swap-pair-row__arrow{color:var(--color-surface-foreground-variant);opacity:.6}.swap-pair-row__after{color:var(--color-success-container-foreground)}.swap-pair-row__field--emphasis .swap-pair-row__after{font-weight:700}@media (width<=720px){.swap-pair-row{grid-template-columns:auto auto 1fr;grid-auto-rows:auto;row-gap:2px}.swap-pair-row>.swap-pair-row__field{grid-column:1/-1}}.candidate-card__popup{background:var(--color-neutral-800);min-width:260px;max-width:360px;color:var(--color-white);z-index:90;border-radius:12px;padding:10px 12px;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 28px oklch(0% 0 0/.3)}.candidate-card__popup ul{gap:8px;margin:0;padding:0;list-style:none;display:grid}.candidate-card__popup li{gap:2px;display:grid}.candidate-card__popup strong{font-size:.78rem}.candidate-card__popup span{color:var(--color-neutral-100);font-size:.76rem;line-height:1.45}.empty-state--compact{padding:24px 12px}.teacher-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.teacher-card__section{gap:4px;margin-top:12px;display:grid}.teacher-card__section span{color:var(--color-surface-foreground-variant);font-size:.78rem}.teacher-card__section strong{font-size:.88rem;line-height:1.45}.constraint-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.constraint-block{border:1px solid color-mix(in oklch, var(--color-outline) 8%, transparent);background:color-mix(in oklch, var(--color-surface) 74%, transparent);border-radius:14px;overflow:hidden}.constraint-block__label{background:color-mix(in oklch, var(--color-error) 10%, transparent);color:var(--color-error-container-foreground);text-transform:uppercase;letter-spacing:.04em;padding:10px 12px;font-size:.8rem;font-weight:700}.constraint-block__label--soft{background:color-mix(in oklch, var(--color-secondary) 8%, transparent);color:var(--color-primary)}.constraint-list{margin:0;padding:12px 18px 14px 30px}.constraint-list li+li{margin-top:8px}@media (width<=1200px){.overview-strip{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace{grid-template-columns:1fr}.workspace--controls-collapsed{grid-template-columns:minmax(0,1fr);padding-left:36px}.editor-layout{grid-template-columns:1fr}.editor-nav{border-right:none;border-bottom:1px solid var(--color-outline-variant);flex-wrap:wrap;gap:4px;padding:10px 14px;display:flex}.editor-nav__group-label{width:100%;padding:4px 6px 2px}.editor-nav__item{border-bottom:0;border-left:none;border-radius:8px;flex:none;padding:6px 12px}.editor-nav__item:before{content:none}.editor-nav__item--active{background:color-mix(in oklch, var(--color-primary-container) 94%, transparent);border-left-color:#0000}.requirement-layout,.teacher-editor-layout,.fixed-layout{grid-template-columns:1fr}.detail-drawer--requirements{max-height:none}.conditions-dialog__body,.scenario-library-dialog__body,.teacher-grid{grid-template-columns:1fr 1fr}}@media (orientation:landscape) and (height<=560px){.requirement-drawer__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.requirement-target-editor{grid-template-columns:1fr}.requirement-target-editor__meta{grid-template-columns:repeat(2,minmax(0,1fr));place-items:center stretch}.requirement-target-editor__meta .secondary-button{white-space:normal;justify-content:center}}@media (width<=820px){.app-shell{padding:16px}.app-header,.results-header,.editor-header{flex-direction:column}.app-header__meta,.score-strip,.editor-header__actions{justify-content:flex-start}.app-nav,.admin-stats{justify-content:flex-start;align-self:stretch;overflow-x:auto}.admin-overview{flex-direction:column;align-items:stretch}.admin-create-form,.admin-user-row,.control-grid{grid-template-columns:1fr}.info-list__row{grid-template-columns:1fr;gap:4px}.dialog-backdrop{padding:12px}.editor-content,.editor-statusbar,.editor-header{padding-left:16px;padding-right:16px}.editor-nav{padding-left:12px;padding-right:12px}.conditions-dialog__header,.conditions-dialog__body,.scenario-library-dialog__body,.constraint-columns,.condition-grid,.teacher-grid{grid-template-columns:1fr}.conditions-dialog__header{flex-direction:column}.conditions-dialog__actions{justify-content:flex-start}.requirement-drawer__summary{grid-template-columns:repeat(2,minmax(0,1fr))}.requirement-drawer__summary .secondary-button{justify-content:center}.requirement-target-editor{grid-template-columns:1fr}.requirement-target-editor__meta{justify-items:stretch}.assignment-row{grid-template-columns:minmax(0,1fr) minmax(96px,auto);align-items:stretch}.assignment-row__index,.assignment-row__badges{align-self:center}.assignment-row__field--count,.assignment-row__field--teacher{grid-column:1/-1}.candidate-card{grid-template-columns:1fr;align-items:stretch}.candidate-card--subject-setting{grid-template-columns:1fr}.candidate-card__teacher{min-width:0}.candidate-card__apply{justify-self:stretch}.subject-search-intro{grid-template-columns:1fr}}@media (width<=640px){.overview-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.panel--controls,.panel--results,.board-card,.school-board,.analysis-card,.empty-state{padding:14px}.scenario-editor{min-height:380px}.dialog-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dialog-list__row,.dialog-table__head,.dialog-table__row,.editor-table__head,.editor-table__row,.constraint-toggle,.editor-form-grid,.editor-form-grid--three,.editor-form-grid--subject,.editor-form-grid--subjectOptions{grid-template-columns:1fr}.editor-section__headerbar,.confirm-dialog__actions{flex-direction:column;align-items:stretch}.editor-card-list--subjects{grid-template-columns:1fr}}body{background:var(--color-surface-container-middle);min-width:0;color:var(--color-surface-foreground)}button,a,input,select,textarea{outline-color:var(--focus-ring-default-color);outline-offset:var(--focus-ring-offset)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-default-color)}.app-shell{background:var(--color-surface-container-middle);min-height:100vh;padding:0}.app-content{min-width:0;min-height:100vh;padding:var(--spacing-md) var(--spacing-sm) var(--spacing-sm);flex-direction:column;display:flex}.app-header{justify-content:space-between;align-items:center;gap:var(--spacing-lg);padding:0 var(--spacing-lg) var(--spacing-md);border:0;flex:none;display:flex}.app-header__title{gap:2px}.app-header h1{color:var(--color-surface-foreground);font-family:var(--font-display);font-size:32px;font-weight:800;line-height:1.25}.app-header__meta{gap:var(--spacing-sm)}.workspace{flex:auto;grid-template-columns:minmax(320px,376px) minmax(0,1fr);gap:24px;min-height:0;margin-top:0;display:grid}.workspace--controls-collapsed{grid-template-columns:minmax(0,1fr);padding-left:38px;position:relative}.panel{border:1px solid var(--color-outline-variant);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:none}.panel--controls,.panel--results{min-width:0;padding:var(--spacing-lg)}.panel--results{overflow:auto}.panel--collapsed{width:0;min-width:0;height:0;min-height:0;box-shadow:none;background:0 0;border:0;position:absolute;top:0;left:0;overflow:visible;padding:0!important}.panel__collapse-toggle{border-color:var(--color-outline-variant);border-radius:var(--radius-full);background:var(--color-surface);width:30px;height:30px;box-shadow:var(--shadow-elevation-1);color:var(--color-surface-foreground);top:12px;right:-15px}.panel__collapse-toggle:hover{background:var(--color-surface-container-high)}.panel__section+.panel__section{border-top-color:var(--color-outline-variant)}.section-heading h2,.results-header h2,.board-card h3,.analysis-card h3,.empty-state h3,.conditions-dialog__header h2,.editor-header__title h2,.editor-section__heading h3{color:var(--color-surface-foreground);font-family:var(--font-display);letter-spacing:0;font-weight:800}.section-heading h2,.results-header h2{font-size:24px}.section-heading p,.results-header p,.empty-state p,.analysis-card li,.board-slot-cell__meta,.scenario-description{color:var(--color-surface-foreground-variant)}.header-chip,.badge,.pill,.severity,.dirty-badge,.token,.scenario-row__pill,.requirement-list__count,.assignment-row__badge{border-radius:var(--radius-full);letter-spacing:0;font-weight:800}.token{background:var(--color-secondary-container);color:var(--color-secondary-container-foreground)}.token--muted{background:var(--color-surface-container-middle);color:var(--color-surface-foreground-variant)}.header-chip{border-color:var(--color-outline-variant);background:var(--color-surface);min-height:40px;color:var(--color-surface-foreground-variant)}.control-grid{gap:var(--spacing-sm)}.field{gap:var(--spacing-xs)}.field>span,.assignment-row__field span,.standard-target-cell span{color:var(--color-surface-foreground);font-size:14px;font-weight:800}.field select,.field input,.scenario-editor,.editor-textarea,.editor-table input,.editor-table select,.assignment-card input,.assignment-card select,.assignment-row__field input,.assignment-row__field select,.editor-card input,.editor-card select,.standard-target-cell input,.candidate-card__teacher select{border:1px solid var(--color-outline);border-radius:var(--radius-sm);background:var(--color-surface);min-height:40px;color:var(--color-surface-foreground);box-shadow:none}.field select{appearance:none;min-height:48px;padding-inline:var(--spacing-md) 48px;border-color:var(--color-outline);border-radius:var(--radius-sm);background-color:var(--color-surface);background-image:url("data:image/svg+xml,%3Csvg width='24' height='24' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 9L12 15L18 9' stroke='%2307171F' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right var(--spacing-md) center;background-size:24px 24px;font-size:18px;line-height:1.4}.field input:not([type=checkbox]):not([type=radio]){height:48px;min-height:48px;padding-inline:var(--spacing-md);font-size:18px;line-height:1.4}.field select:focus,.field input:focus,.scenario-editor:focus,.editor-textarea:focus,.editor-table input:focus,.editor-table select:focus,.assignment-card input:focus,.assignment-card select:focus,.assignment-row__field input:focus,.assignment-row__field select:focus,.editor-card input:focus,.editor-card select:focus,.standard-target-cell input:focus,.candidate-card__teacher select:focus{border-color:var(--color-primary);box-shadow:none;outline:none}.solve-button,.secondary-button,.danger-button,.link-button,.icon-button,.tab,.view-toggle__button,.view-mode-button,.editor-nav__item,.editor-header__menu-toggle,.editor-header__menu-item,.period-bar__cell,.slot-chip,.slot-cell,.requirement-cell,.requirement-list__item,.teacher-list__item,.board-slot-cell__menu-toggle,.board-slot-cell__menu-item,.board-slot-cell__handle,.candidate-card__assistants-toggle{transition:background-color .12s,border-color .12s,color .12s,box-shadow .12s,transform .12s}.solve-button{border-radius:var(--radius-sm);background:var(--color-primary);min-height:40px;box-shadow:none;color:var(--color-primary-foreground);border:0;font-weight:800}.solve-button:hover:not(:disabled){background:var(--color-primary-hovered);transform:translateY(-1px)}.secondary-button,.icon-button,.editor-header__menu-toggle{border:1px solid var(--color-outline);border-radius:var(--radius-sm);background:var(--color-surface-container-low);min-height:40px;color:var(--color-surface-foreground);box-shadow:none;font-weight:800}.secondary-button:hover:not(:disabled),.icon-button:hover:not(:disabled),.editor-header__menu-toggle:hover:not(:disabled){border-color:var(--color-outline-hovered);background:var(--color-surface-container-low-hovered)}.secondary-button--primary{border-color:var(--color-primary);background:var(--color-primary-container);color:var(--color-primary)}.secondary-button--primary:hover:not(:disabled){background:var(--color-primary-container-hovered)}.secondary-button--subtle,.link-button{color:var(--color-surface-foreground);background:0 0;border-color:#0000}.link-button:hover:not(:disabled),.secondary-button--subtle:hover:not(:disabled){background:var(--color-surface-container-middle)}.danger-button,.icon-button--danger:hover:not(:disabled){border-color:var(--color-error);background:var(--color-error-container);color:var(--color-error)}.danger-button:hover:not(:disabled){background:var(--color-error-container-hovered)}.feedback{border-radius:var(--radius-md);border:1px solid #0000;font-weight:700}.feedback--error{border-color:var(--color-error);background:var(--color-error-container);color:var(--color-error-container-foreground)}.feedback--warn{border-color:var(--color-warn);background:var(--color-warn-container);color:var(--color-warn-container-foreground)}.feedback--ok{border-color:var(--color-success);background:var(--color-success-container);color:var(--color-success-container-foreground)}.feedback--info{border-color:var(--color-primary);background:var(--color-primary-container);color:var(--color-primary)}.scope-row span,.info-list__row span,.scenario-group__count,.scenario-row__description,.scenario-row__meta,.conditions-dialog__lead,.dialog-panel__heading p,.dialog-list__row span,.editor-header__scenario,.editor-statusbar__summary,.editor-section__heading p,.editor-card__title span,.detail-drawer__header p,.constraint-group__header span{color:var(--color-surface-foreground-variant)}.info-list,.summary-stat,.dialog-panel,.condition-card,.teacher-card,.editor-card,.constraint-group,.assignment-card,.requirement-matrix,.detail-drawer,.teacher-list,.teacher-editor,.standard-target-editor,.assignment-detail-panel,.teacher-editor__section,.candidate-card{border-color:var(--color-outline-variant);border-radius:var(--radius-md);background:var(--color-surface-container-low);box-shadow:none}.fixed-panel,.slot-selector{box-shadow:none;background:0 0;border:0;border-radius:0}.fixed-panel .editor-card>.field{margin-top:var(--spacing-sm)}.info-list__row+.info-list__row{border-top-color:var(--color-outline-variant)}.tabs{gap:var(--spacing-lg);border-bottom:1px solid var(--color-outline-variant);background:0 0;border-radius:0;padding:0}.tab{min-height:44px;padding:0 0 var(--spacing-sm);color:var(--color-surface-foreground-variant);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;font-size:16px;font-weight:800}.tab:hover:not(.tab--active){color:var(--color-surface-foreground)}.tab--active{border-bottom-color:var(--color-primary);color:var(--color-surface-foreground);background:0 0}.badge{min-height:28px;padding:0 var(--spacing-sm);border:1px solid #0000;font-size:12px}.badge--ok,.severity--soft,.requirement-list__count--met{border-color:var(--color-success);background:var(--color-success-container);color:var(--color-success-container-foreground)}.slot-chip--active,.slot-cell--active{border-color:var(--color-primary);background:var(--color-primary-container);color:var(--color-primary)}:is(.checkbox-pill:has(input:checked),.checkbox-field:has(input:checked)){border-color:var(--color-outline);background:var(--color-surface);color:var(--color-surface-foreground)}.checkbox-pill input,.checkbox-field input{accent-color:var(--color-primary)}.checkbox-pill input[type=checkbox],.checkbox-field input[type=checkbox]{box-sizing:border-box;block-size:20px;min-block-size:20px;max-block-size:20px;inline-size:20px;min-inline-size:20px;max-inline-size:20px;accent-color:var(--color-primary);flex:0 0 20px;align-self:center;margin:0;padding:0}.checkbox-pill input[type=checkbox]:focus,.checkbox-field input[type=checkbox]:focus{outline:none}:is(.checkbox-pill:has(input[type=checkbox]:focus-visible),.checkbox-field:has(input[type=checkbox]:focus-visible)){outline:var(--focus-ring-width) solid var(--focus-ring-default-color);outline-offset:var(--focus-ring-offset)}.badge--warn,.dirty-badge,.requirement-list__count--short{border-color:var(--color-warn);background:var(--color-warn-container);color:var(--color-warn-container-foreground)}.badge--hard,.severity--hard,.requirement-list__count--over{border-color:var(--color-error);background:var(--color-error-container);color:var(--color-error-container-foreground)}.badge--soft{border-color:var(--color-primary);background:var(--color-primary-container);color:var(--color-primary)}.badge--neutral,.badge--neutral-bare,.requirement-list__count--zero,.requirement-list__count--missing{border-color:var(--color-outline-variant);background:var(--color-surface-container-middle);color:var(--color-surface-foreground)}.swap-selection-toolbar{border:1px solid var(--color-primary);border-radius:var(--radius-md);background:var(--color-primary-container);box-shadow:none}.board-stack,.analysis-list{gap:var(--spacing-lg)}.board-card,.analysis-card,.empty-state,.school-board{border:1px solid var(--color-outline-variant);border-radius:var(--radius-md);background:var(--color-surface);box-shadow:none}.board-card,.school-board{overflow:auto}.board-card__header{padding-bottom:var(--spacing-sm)}.board-grid,.school-board__grid{background:var(--color-outline-variant);border:1px solid var(--color-outline-variant);border-radius:var(--radius-sm);gap:1px;overflow:hidden}.board-grid__head,.board-grid__period,.school-board__head,.school-board__slot,.requirement-matrix__head,.standard-target-grid__head{background:var(--color-surface-container-high);color:var(--color-surface-foreground-variant);font-weight:800}.board-grid__period,.school-board__slot{background:var(--color-surface-container-low);color:var(--color-surface-foreground)}.board-slot-cell{background:var(--color-surface-container-low);min-height:82px;box-shadow:none;color:var(--color-surface-foreground);border:0;border-radius:0}.board-slot-cell:before{display:none}.board-slot-cell--empty{background:var(--color-surface-container-low-hovered)}.board-slot-cell--editable:hover,.board-slot-cell--selectable:hover{background:var(--color-primary-container)}.board-slot-cell--source,.board-slot-cell--selected{background:var(--color-success-container);box-shadow:none}.board-slot-cell--drop-target{background:var(--color-primary-container);box-shadow:none}.board-slot-cell--drop-blocked,.board-slot-cell--hard-violation{background:var(--color-error-container);box-shadow:none}.board-slot-cell--soft-violation:not(.board-slot-cell--hard-violation){background:var(--color-warn-container);box-shadow:none}.board-slot-cell__headline{gap:var(--spacing-xs)}.board-slot-cell__title{font-weight:800}.board-slot-cell__selection-badge,.board-slot-cell__marker{background:var(--color-primary);color:var(--color-primary-foreground)}.board-slot-cell__marker--hard{background:var(--color-error)}.board-slot-cell__marker--soft{background:var(--color-warn);color:var(--color-navy-900)}.board-slot-cell__menu-toggle,.board-slot-cell__handle{background:var(--color-surface);color:var(--color-surface-foreground-variant)}.board-slot-cell__menu-toggle:hover,.board-slot-cell__menu-toggle:focus-visible,.board-slot-cell__menu-toggle[aria-expanded=true],.board-slot-cell__handle:hover,.board-slot-cell__handle:focus-visible{background:var(--color-surface-container-high);color:var(--color-surface-foreground)}.board-slot-cell__menu-list,.editor-header__menu-list,.board-slot-cell__violation-popup,.candidate-card__popup{border:1px solid var(--color-outline-variant);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-surface-foreground);box-shadow:var(--shadow-elevation-1)}.board-slot-cell__violation-label,.board-slot-cell__violation-message{color:var(--color-surface-foreground)}.panel--collapsed .panel__collapse-toggle{top:0;left:0;right:auto}.board-slot-cell__menu-item:hover,.editor-header__menu-item:hover:not(:disabled){background:var(--color-surface-container-high)}.board-slot-cell__menu-item--danger,.editor-header__menu-item--danger{color:var(--color-error)}.board-drag-preview .board-slot-cell{border-radius:var(--radius-sm);box-shadow:var(--shadow-elevation-3)}.dialog-backdrop,.board-move-dialog-backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:oklch(0% 0 0/.3)}.conditions-dialog,.confirm-dialog{border:1px solid var(--color-outline-variant);border-radius:var(--radius-lg);background:var(--color-surface);box-shadow:var(--shadow-elevation-1)}.conditions-dialog__header,.editor-header,.editor-statusbar,.confirm-dialog__header,.confirm-dialog__actions{border-color:var(--color-outline-variant);background:var(--color-surface)}.conditions-dialog__body,.editor-content,.confirm-dialog__body{background:var(--color-surface)}.dialog-table,.editor-table,.requirement-matrix,.standard-target-editor{border-color:var(--color-outline-variant);background:var(--color-surface)}.dialog-table__head,.editor-table__head,.constraint-group__header,.requirement-matrix__head,.standard-target-grid__head{background:var(--color-surface-container-high);color:var(--color-surface-foreground);font-weight:800}.dialog-table__row,.editor-table__row,.requirement-cell,.standard-target-cell,.standard-target-grid__grade{background:var(--color-surface-container-low)}.dialog-table__row+.dialog-table__row,.editor-table__row+.editor-table__row,.constraint-group__header{border-color:var(--color-outline-variant)}.editor-table__row:hover{background:var(--color-surface-container-low-hovered)}.constraint-toggle:hover{background:var(--color-surface-container-high)}.switch{background:var(--color-surface-dim)}.switch:after{background:var(--color-surface);box-shadow:var(--shadow-elevation-1)}.constraint-toggle input:checked~.switch{background:var(--color-primary)}.constraint-toggle input:focus-visible~.switch{box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring-default-color)}.scenario-row{border-color:var(--color-outline-variant);border-radius:var(--radius-md);background:var(--color-surface-container-low)}.scenario-row:hover:not(.scenario-row--selected){border-color:var(--color-outline-hovered);background:var(--color-surface-container-low-hovered)}.scenario-row--selected{border-color:var(--color-primary);background:var(--color-primary-container);box-shadow:inset 2px 0 0 var(--color-primary)}.scenario-row--selected .scenario-row__indicator,.scenario-row__pill{color:var(--color-primary)}.scenario-row__pill{background:var(--color-primary-container-hovered)}.editor-layout{grid-template-columns:252px minmax(0,1fr)}.editor-nav{border-right-color:var(--color-outline-variant);background:var(--color-surface)}.editor-nav__group-label{color:var(--color-surface-foreground-variant);letter-spacing:0;text-transform:none;font-size:14px}.editor-nav__item{border-radius:var(--radius-sm);color:var(--color-surface-foreground-variant)}.editor-nav__item:hover:not(.editor-nav__item--active){color:var(--color-surface-foreground);background:0 0}.editor-nav__item:focus-visible,.teacher-list__item:focus-visible{outline:none}.editor-nav__item{border-left:0}.editor-nav__item:before{content:"";background:0 0;width:2px;position:absolute;top:0;bottom:0;left:0}.editor-nav__item--active:before,.editor-nav__item:focus-visible:before,.teacher-list__item--active:before,.teacher-list__item:focus-visible:before{background:var(--color-primary)}.requirement-list__item:focus-visible,.assignment-row:focus-visible,.requirement-cell:focus-visible{box-shadow:inset 2px 0 0 var(--color-primary);outline:none}.tab:focus-visible,.view-toggle__button:focus-visible{border-bottom-color:var(--color-primary);outline:none}.editor-nav__item--active,.teacher-list__item--active,.requirement-list__item--active,.assignment-row--active,.requirement-cell--active{border-left-color:var(--color-primary);background:var(--color-primary-container);color:var(--color-surface-foreground);box-shadow:inset 2px 0 0 var(--color-primary)}.editor-nav__item--active{box-shadow:none;background:0 0}.teacher-list__item--active{box-shadow:none}.view-toggle{gap:var(--spacing-lg);border:0;border-bottom:1px solid var(--color-outline-variant);background:0 0;border-radius:0;padding:0}.view-toggle__button{min-height:40px;padding:0 0 var(--spacing-sm);color:var(--color-surface-foreground-variant);background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0;font-weight:800}.view-toggle__button--active{border-bottom-color:var(--color-primary);color:var(--color-surface-foreground);background:0 0}.period-bar__cell,.slot-chip,.slot-cell,.checkbox-field,.checkbox-pill{border-color:var(--color-outline);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-surface-foreground)}.period-bar__cell:hover,.slot-chip:hover:not(.slot-chip--active),.slot-cell:hover:not(.slot-cell--active),.checkbox-field:hover,.checkbox-pill:hover{border-color:var(--color-outline-hovered)}.period-bar__cell--prefer{border-color:var(--period-bar-prefer-border);background:var(--period-bar-prefer-background);color:var(--color-success-container-foreground)}.period-bar__cell--avoid{border-color:var(--period-bar-avoid-border);background:var(--period-bar-avoid-background);color:var(--color-error-container-foreground)}.requirement-cell,.standard-target-grid__grade,.standard-target-cell,.requirement-matrix__head,.requirement-matrix__grid,.standard-target-grid{background-color:var(--color-surface-container-low)}.requirement-matrix__grid,.standard-target-grid{background:var(--color-outline-variant)}.requirement-cell:hover:not(.requirement-cell--active),.requirement-list__item:hover:not(.requirement-list__item--active),.teacher-list__item:hover:not(.teacher-list__item--active),.assignment-row:hover:not(.assignment-row--active),.candidate-card:hover{border-color:var(--color-outline-hovered);background:var(--color-surface-container-low-hovered)}.candidate-list{gap:var(--spacing-sm)}.candidate-card__apply{align-self:center}.candidate-card__delta--good{background:var(--color-success-container);color:var(--color-success-container-foreground)}.candidate-card__delta--bad{background:var(--color-error-container);color:var(--color-error-container-foreground)}.candidate-card__delta--neutral{background:var(--color-surface-container-middle);color:var(--color-surface-foreground)}.candidate-card__delta--ok,.candidate-card__delta--good{background:var(--color-success-container);color:var(--color-success-container-foreground)}.candidate-card__delta--warn{background:var(--color-warn-container);color:var(--color-warn-container-foreground)}.candidate-card__delta--hard,.candidate-card__delta--bad{background:var(--color-error-container);color:var(--color-error-container-foreground)}.candidate-card__teacher select,.candidate-card__assistants-toggle{border-color:var(--color-outline);background:var(--color-surface);color:var(--color-surface-foreground)}.candidate-card__teacher select:focus,.candidate-card__assistants-toggle:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-default-color);outline-offset:var(--focus-ring-offset);border-color:var(--color-primary);box-shadow:none}.candidate-card__assistants-toggle:hover:not(:disabled){border-color:var(--color-outline-hovered);background:var(--color-surface-container-low-hovered)}.candidate-card__assistants-toggle strong,.swap-pair__side--after .swap-pair__label{color:var(--color-primary)}.swap-pair__side--after{border-color:var(--color-primary);background:var(--color-primary-container)}.swap-pair__side--after .swap-pair__label{background:var(--color-primary-container-hovered)}.candidate-card__popup{background:var(--color-neutral-800);color:var(--color-white)}.candidate-card__popup span{color:var(--color-neutral-100)}@media (width<=1180px){.workspace{grid-template-columns:minmax(280px,340px) minmax(0,1fr)}.workspace--controls-collapsed{grid-template-columns:minmax(0,1fr);padding-left:38px}.editor-layout,.requirement-layout,.teacher-editor-layout,.fixed-layout{grid-template-columns:1fr}.editor-nav{border-right:0;border-bottom:1px solid var(--color-outline-variant)}}@media (width<=900px){.app-content{min-height:0}.app-header,.results-header{flex-direction:column;align-items:flex-start}.workspace,.workspace--controls-collapsed{grid-template-columns:minmax(0,1fr);padding-left:0}.panel__collapse-toggle{display:none}.editor-nav__item:before{content:none}}@media (width<=640px){.app-header h1{font-size:24px}.panel--controls,.panel--results{padding:var(--spacing-md)}.control-grid,.condition-grid,.conditions-dialog__body,.editor-form-grid,.editor-form-grid--three,.editor-card-list--subjects,.assignment-row{grid-template-columns:1fr}}
