.kbd-chip[data-v-572b951b]{min-height:28px;padding:2px 9px;margin:1px;font-size:12px;border-radius:7px}.hint-tip[data-v-572b951b]{border-left:3px solid var(--accent);padding-left:8px}.hint-tip svg[data-v-572b951b]{color:var(--accent)}.cell.focus-cell[data-v-572b951b]{outline:3px solid var(--accent);outline-offset:-3px;animation:cellPulse-572b951b 1s ease-in-out 3}@keyframes cellPulse-572b951b{50%{outline-color:#4059c726}}.viol-clickable[data-v-572b951b]{cursor:pointer}.viol-clickable[data-v-572b951b]:hover{text-decoration:underline}.viol-goto[data-v-572b951b]{color:var(--accent);font-size:11.5px;margin-left:6px;white-space:nowrap;opacity:0}.viol-clickable:hover .viol-goto[data-v-572b951b]{opacity:1}.events-box[data-v-572b951b]{border:1px solid var(--border);border-radius:8px;padding:8px 10px;margin:4px 0 10px;background:var(--accent-soft, #f2f6ff)}.events-box h4[data-v-572b951b]{margin:0 0 4px;font-size:13px}.event-chips[data-v-572b951b]{display:flex;flex-wrap:wrap;gap:5px;margin-top:4px}.event-select-chip[data-v-572b951b]{color:#fff;border:none;border-radius:14px;padding:3px 12px;font-size:12px;font-weight:600;cursor:pointer;opacity:.82}.event-select-chip[data-v-572b951b]:hover{opacity:1}.event-select-chip.on[data-v-572b951b]{opacity:1;box-shadow:0 0 0 2px #fff,0 0 0 4px currentColor}.event-active-note[data-v-572b951b]{margin-top:6px;font-weight:600;color:var(--accent)}.cell.event-target[data-v-572b951b]{outline:2px dashed var(--accent);outline-offset:-3px;cursor:copy}.chip.event-chip .subj[data-v-572b951b]{font-size:11px;font-weight:700;letter-spacing:.02em}.own-plan[data-v-eb9a8641]{margin-bottom:12px}.own-title[data-v-eb9a8641]{margin:0 0 8px;font-size:15px;display:flex;align-items:center;gap:8px}.own-chip[data-v-eb9a8641]{background:var(--accent);color:#fff;border-radius:10px;font-size:11px;font-weight:700;padding:1px 9px}.own-days[data-v-eb9a8641]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}.own-day strong[data-v-eb9a8641]{display:block;font-size:13px;margin-bottom:4px}.own-day ul[data-v-eb9a8641]{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:3px}.own-day li[data-v-eb9a8641]{font-size:12.5px;display:flex;align-items:center;gap:5px}.own-dot[data-v-eb9a8641]{width:9px;height:9px;border-radius:3px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000001f}.own-p[data-v-eb9a8641]{color:var(--muted);font-variant-numeric:tabular-nums}.own-time[data-v-eb9a8641]{color:var(--muted);font-size:10.5px;margin-left:3px}.own-note[data-v-eb9a8641]{color:var(--muted);font-size:12px;font-style:italic}.own-row th.tname[data-v-eb9a8641]{background:var(--accent-soft);color:var(--accent)}.own-badge[data-v-eb9a8641]{background:var(--accent);color:#fff;border-radius:8px;font-size:10px;font-weight:700;padding:0 6px;margin-left:5px}.rules-help[data-v-1e170d8d]{margin-bottom:12px}.rules-help summary[data-v-1e170d8d]{cursor:pointer;color:var(--accent);font-weight:600;font-size:13px}.rules-help .hint[data-v-1e170d8d]{margin-top:8px}.rules-overview[data-v-1e170d8d]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 14px;margin-bottom:12px;background:var(--panel);border:1px solid var(--border);border-radius:9px;font-size:13px}.rules-overview .ov-item[data-v-1e170d8d]{color:var(--muted)}.rules-overview strong[data-v-1e170d8d]{color:var(--text);font-size:15px;margin-right:2px}.ov-hard strong[data-v-1e170d8d]{color:var(--hard)}.ov-soft strong[data-v-1e170d8d]{color:var(--soft)}.ov-sep[data-v-1e170d8d]{color:var(--border)}.ov-viol[data-v-1e170d8d]{border:none;background:transparent;cursor:pointer;font:inherit;color:var(--muted);padding:3px 9px;border-radius:7px}.ov-viol:not(:disabled) strong[data-v-1e170d8d]{color:var(--hard)}.ov-viol[data-v-1e170d8d]:not(:disabled):hover{background:#fdeaea}.ov-viol.on[data-v-1e170d8d]{background:var(--hard);color:#fff}.ov-viol.on strong[data-v-1e170d8d]{color:#fff}.ov-viol[data-v-1e170d8d]:disabled{opacity:.5;cursor:default}.ov-warn[data-v-1e170d8d]{border:none;background:transparent;cursor:pointer;font:inherit;color:var(--muted);padding:3px 9px;border-radius:7px}.ov-warn:not(:disabled) strong[data-v-1e170d8d]{color:var(--soft)}.ov-warn[data-v-1e170d8d]:not(:disabled):hover{background:#f8eecf}.ov-warn.on[data-v-1e170d8d]{background:var(--soft);color:#fff}.ov-warn.on strong[data-v-1e170d8d]{color:#fff}.ov-warn[data-v-1e170d8d]:disabled{opacity:.5;cursor:default}.rules-toolbar[data-v-1e170d8d]{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.rules-search[data-v-1e170d8d]{flex:1;min-width:170px;padding:6px 10px}.seg[data-v-1e170d8d]{display:inline-flex;border:1px solid var(--border);border-radius:7px;overflow:hidden}.seg button[data-v-1e170d8d]{border:none;border-radius:0;background:transparent;padding:5px 11px;cursor:pointer;font-size:12.5px;color:var(--muted)}.seg button[data-v-1e170d8d]:hover{background:#f4f6fb;color:var(--text)}.seg button.on[data-v-1e170d8d]{background:var(--accent);color:#fff}.group-select[data-v-1e170d8d]{font-size:12.5px;color:var(--muted);display:inline-flex;align-items:center;gap:5px}.tb-spacer[data-v-1e170d8d]{flex:1}.linklike[data-v-1e170d8d]{border:none;background:transparent;color:var(--accent);cursor:pointer;font-size:12.5px;padding:4px 6px}.linklike[data-v-1e170d8d]:hover{text-decoration:underline;background:transparent}.linklike-on[data-v-1e170d8d]{font-weight:700;text-decoration:underline}.add-rule-cat[data-v-1e170d8d]{font-size:12px;font-weight:600;color:var(--accent);background:#fff;border:1px solid var(--accent);border-radius:20px;padding:3px 11px;white-space:nowrap}.bulk-bar[data-v-1e170d8d]{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:8px 12px;margin-bottom:12px;background:var(--accent-soft);border:1px solid var(--accent);border-radius:8px;font-size:13px}.bulk-all[data-v-1e170d8d]{display:inline-flex;align-items:center;gap:6px;color:var(--text);cursor:pointer}.bulk-count[data-v-1e170d8d]{color:var(--accent);font-weight:700}.empty-note[data-v-1e170d8d]{color:var(--muted);font-style:italic;padding:10px 2px}.rule-group[data-v-1e170d8d]{margin-bottom:4px}.group-head[data-v-1e170d8d]{width:100%;text-align:left;border:none;background:transparent;cursor:pointer;font-size:13px;font-weight:700;color:var(--text);padding:12px 4px 7px;margin-bottom:8px;display:flex;align-items:center;gap:8px;border-bottom:1px solid var(--border-soft)}.group-head[data-v-1e170d8d]:hover{color:var(--accent);background:transparent}.group-chevron[data-v-1e170d8d]{color:var(--muted);font-size:11px;width:12px}.group-count[data-v-1e170d8d]{font-weight:600;font-size:11px;color:var(--accent);background:var(--accent-soft);border-radius:10px;padding:1px 8px}.rule-card.collapsed[data-v-1e170d8d]{padding-top:8px;padding-bottom:8px}.rule-card.picked[data-v-1e170d8d]{box-shadow:inset 0 0 0 2px var(--accent);background:#f6f8ff}.pick-box[data-v-1e170d8d]{flex:none;width:16px;height:16px}.rule-head-row[data-v-1e170d8d]{display:flex;align-items:center;gap:9px;cursor:pointer}.rule-chevron[data-v-1e170d8d]{color:var(--muted);font-size:11px;width:12px;flex:none}.rule-title[data-v-1e170d8d]{font-weight:600;white-space:nowrap}.rule-label-input[data-v-1e170d8d]{flex:1;min-width:200px;font-weight:600}.rule-summary[data-v-1e170d8d]{color:var(--muted);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.rh-spacer[data-v-1e170d8d]{flex:1;min-width:6px}.sev-badge[data-v-1e170d8d]{font-size:10px;font-weight:700;padding:2px 7px;border-radius:10px;text-transform:uppercase;letter-spacing:.03em;flex:none}.sev-badge.hard[data-v-1e170d8d]{background:#fbe7e7;color:var(--hard)}.sev-badge.soft[data-v-1e170d8d]{background:#f8eecf;color:#9a6f14}.viol-badge[data-v-1e170d8d]{font-size:11px;font-weight:700;color:#fff;background:var(--hard);border-radius:10px;padding:1px 7px;flex:none}.warn-badge[data-v-1e170d8d]{font-size:11px;font-weight:700;color:#8a6300;background:#f8eecf;border:1px solid #e6cf87;border-radius:10px;padding:0 7px;flex:none;cursor:help}.warn-note[data-v-1e170d8d]{background:#fdf6e3;border:1px solid #e6cf87;border-radius:7px;padding:7px 11px;margin:8px 0 2px;font-size:12.5px;color:#7a5800}.warn-note div+div[data-v-1e170d8d]{margin-top:3px}.small[data-v-1e170d8d],.danger.small[data-v-1e170d8d]{padding:3px 9px;font-size:12px;flex:none}.add-rule[data-v-1e170d8d]{display:block;border:2px solid var(--accent);background:var(--accent-soft, #eef4ff);margin-bottom:12px}.add-rule-row[data-v-1e170d8d]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:8px}.add-rule-title[data-v-1e170d8d]{font-size:15px;color:var(--accent);white-space:nowrap;display:block;margin-bottom:8px}.quick-grid[data-v-1e170d8d]{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:7px}.quick-goal[data-v-1e170d8d]{text-align:left;display:flex;flex-direction:column;gap:2px;padding:8px 11px;border-radius:9px;background:#fff}.quick-goal strong[data-v-1e170d8d]{font-size:13px}.quick-goal small[data-v-1e170d8d]{color:var(--muted);font-size:11.5px}.quick-goal:hover strong[data-v-1e170d8d]{color:var(--accent)}.all-types-toggle[data-v-1e170d8d]{margin-top:8px;padding-left:0}.add-rule-select[data-v-1e170d8d]{flex:1;min-width:220px;font-weight:600}.add-rule-btn[data-v-1e170d8d]{white-space:nowrap}.add-rule-desc[data-v-1e170d8d]{margin:8px 0 0;color:var(--muted);font-size:12.5px}.rule-card.just-added[data-v-1e170d8d]{animation:rule-flash-1e170d8d 2.5s ease-out}@keyframes rule-flash-1e170d8d{0%,25%{box-shadow:0 0 0 2px var(--accent)}to{box-shadow:none}}.chip-select[data-v-e6fe6335]{display:flex;flex-wrap:wrap;gap:3px;align-items:center}.sel-chip[data-v-e6fe6335]{display:inline-flex;align-items:center;gap:2px;background:var(--accent-soft);color:var(--accent);border:1px solid #ccd5f2;border-radius:20px;padding:1px 4px 1px 9px;font-size:12px;font-weight:600;line-height:1.5;white-space:nowrap}.sel-chip.unknown[data-v-e6fe6335]{background:#fdf0f0;color:var(--hard);border-color:#f0cfcf}.sel-chip .x[data-v-e6fe6335]{border:none;background:transparent;color:inherit;opacity:.65;padding:0 4px;font-size:13px;line-height:1;border-radius:50%;cursor:pointer}.sel-chip .x[data-v-e6fe6335]:hover{opacity:1;background:#00000014}.empty[data-v-e6fe6335]{color:var(--hard);font-size:11.5px;font-style:italic}.adder[data-v-e6fe6335]{border:1px dashed var(--border);background:transparent;color:var(--muted);border-radius:20px;font-size:12px;padding:1px 6px;max-width:118px;cursor:pointer}.adder[data-v-e6fe6335]:hover{border-color:var(--accent);color:var(--accent)}.data-layout[data-v-4b6362d9]{max-width:1200px;margin:0 auto}.readiness[data-v-4b6362d9]{margin-bottom:14px}.readiness.ok[data-v-4b6362d9]{border-left:4px solid var(--ok)}.readiness-title[data-v-4b6362d9]{display:flex;align-items:center;gap:7px}.readiness.ok .readiness-title[data-v-4b6362d9],.readiness.ok .readiness-title svg[data-v-4b6362d9]{color:var(--ok)}.readiness:not(.ok) .readiness-title svg[data-v-4b6362d9]{color:#c08a1d}.ready-ok[data-v-4b6362d9]{margin:0}.finding-list[data-v-4b6362d9]{list-style:none;margin:4px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.finding-list li[data-v-4b6362d9]{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;border-radius:8px;padding:7px 10px}.finding-list li svg[data-v-4b6362d9]{flex-shrink:0;margin-top:2px}.finding-list li.error[data-v-4b6362d9]{background:#fdf1f1;border:1px solid #f0cfcf;color:#7c2d2d}.finding-list li.error svg[data-v-4b6362d9]{color:var(--hard)}.finding-list li.warn[data-v-4b6362d9]{background:#fdf6ec;border:1px solid #ecd9b4;color:#8a6116}.finding-list li.warn svg[data-v-4b6362d9]{color:#c08a1d}.toolbar[data-v-4b6362d9]{display:flex;gap:10px;align-items:center;margin-bottom:6px}.toolbar-spacer[data-v-4b6362d9]{flex:1}.section-title .sub[data-v-4b6362d9]{color:var(--muted);font-weight:400;font-size:13px;margin-left:6px}.card-title[data-v-4b6362d9]{margin:0 0 8px;font-size:14px}.cards-row[data-v-4b6362d9]{display:grid;grid-template-columns:minmax(470px,1.4fr) minmax(260px,.8fr) minmax(300px,1fr);gap:14px;margin-top:14px;align-items:start}.cards-row .panel[data-v-4b6362d9]{overflow-x:auto}.cards-row-2[data-v-4b6362d9]{grid-template-columns:1fr 1fr}@media(max-width:1150px){.cards-row[data-v-4b6362d9],.cards-row-2[data-v-4b6362d9]{grid-template-columns:1fr}}.optional-tag[data-v-4b6362d9]{font-size:11px;font-weight:600;color:var(--muted);background:#eceff5;border-radius:8px;padding:1px 8px;margin-left:6px;vertical-align:middle}.raster-row[data-v-4b6362d9]{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px;margin-bottom:8px}.times-table input[data-v-4b6362d9]{width:100%}.over[data-v-4b6362d9]{color:var(--hard);font-weight:700}.muted-num[data-v-4b6362d9]{color:var(--muted);font-variant-numeric:tabular-nums}.class-strip[data-v-4b6362d9]{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:10px}.strip-chip[data-v-4b6362d9]{border-radius:20px;padding:3px 12px;font-size:12.5px;font-weight:600}.strip-chip .strip-hours[data-v-4b6362d9]{font-weight:400;color:var(--muted);font-size:11.5px;margin-left:2px}.strip-chip.on[data-v-4b6362d9]{background:var(--accent);border-color:var(--accent);color:#fff}.strip-chip.on .strip-hours[data-v-4b6362d9]{color:#ffffffd9}.strip-chip.on[data-v-4b6362d9]:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.strip-chip:not(.on) .strip-hours.soll-ok[data-v-4b6362d9]{color:var(--ok);font-weight:600}.strip-chip:not(.on) .strip-hours.soll-bad[data-v-4b6362d9]{color:var(--hard);font-weight:700}td.soll-ok[data-v-4b6362d9]{color:var(--ok);font-weight:600}td.soll-bad[data-v-4b6362d9]{color:var(--hard);font-weight:700}table.lessons td[data-v-4b6362d9]{vertical-align:middle}.group-row td[data-v-4b6362d9]{background:#f0f2f7;font-weight:700;color:#3c485c;padding:5px 8px;border-bottom:1px solid #ccd3df}.group-row .group-hours[data-v-4b6362d9]{font-weight:400;color:var(--muted);font-size:12px;margin-left:8px}table.data tbody tr.group-row[data-v-4b6362d9]:hover{background:#f0f2f7}.subject-cell[data-v-4b6362d9]{display:flex;align-items:center;gap:6px}.subject-cell .dot[data-v-4b6362d9]{width:12px;height:12px;border-radius:4px;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000001f}.stepper[data-v-4b6362d9]{display:inline-flex;align-items:stretch;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;background:#fff}.stepper button[data-v-4b6362d9]{min-width:34px;min-height:34px;padding:0;border:none;border-radius:0;background:#f7f8fc;font-weight:700;font-size:16px;line-height:1;color:var(--muted)}.stepper button[data-v-4b6362d9]:hover:not(:disabled){background:var(--accent-soft);color:var(--accent)}.stepper input[data-v-4b6362d9]{width:40px;min-height:0;border:none;border-left:1px solid var(--border-soft);border-right:1px solid var(--border-soft);border-radius:0;text-align:center;font-weight:600;-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}.stepper input[data-v-4b6362d9]:focus{box-shadow:none}.stepper input[data-v-4b6362d9]::-webkit-outer-spin-button,.stepper input[data-v-4b6362d9]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.row-actions[data-v-4b6362d9]{white-space:nowrap;text-align:right}.row-actions .icon[data-v-4b6362d9]:not(.danger):hover{color:var(--accent);background:var(--accent-soft)}.empty-note[data-v-4b6362d9]{color:var(--muted);font-style:italic;padding:14px 8px}.paste-list[data-v-4b6362d9]{margin-top:6px}.paste-list summary[data-v-4b6362d9]{cursor:pointer;color:var(--accent);font-weight:600;font-size:12.5px}.paste-list textarea[data-v-4b6362d9]{width:100%;font-family:inherit;font-size:13px;margin-top:6px}.paste-list code[data-v-4b6362d9]{background:#eef1f7;border-radius:4px;padding:1px 5px;font-size:12px}.paste-msg[data-v-4b6362d9]{margin-left:8px;font-size:12.5px;color:var(--ok);font-weight:600}.load[data-v-4b6362d9]{min-width:92px}.load-num[data-v-4b6362d9]{font-size:12.5px;font-variant-numeric:tabular-nums}.load-bar[data-v-4b6362d9]{height:5px;background:#edf0f6;border-radius:3px;overflow:hidden;margin-top:3px}.load-fill[data-v-4b6362d9]{height:100%;background:var(--accent);border-radius:3px;transition:width .2s ease}.load.full .load-fill[data-v-4b6362d9]{background:var(--ok)}.load.full .load-num[data-v-4b6362d9]{color:var(--ok);font-weight:600}.load.over .load-fill[data-v-4b6362d9]{background:var(--hard)}.load.over .load-num[data-v-4b6362d9]{color:var(--hard);font-weight:700}.versions-layout[data-v-78fa78bd]{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.save-panel h3[data-v-78fa78bd]{margin:0 0 6px}.panel h3[data-v-78fa78bd]{display:flex;align-items:center;gap:7px;margin:0 0 8px;font-size:15px}.plan-title-row[data-v-78fa78bd]{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.plan-title-row input[data-v-78fa78bd]{flex:1;max-width:380px;font-weight:400}.term-box[data-v-78fa78bd]{border-top:1px solid var(--border-soft);margin-top:10px;padding-top:10px}.term-box h4[data-v-78fa78bd]{margin:0 0 6px;font-size:13.5px}.term-box .field[data-v-78fa78bd]{display:flex;flex-direction:column;gap:4px;font-weight:600;font-size:13px;margin:8px 0}.term-box .field input[data-v-78fa78bd]{font-weight:400;max-width:380px}.check-row[data-v-78fa78bd]{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;margin:7px 0;font-weight:400}.check-row input[data-v-78fa78bd]{margin-top:2px;flex-shrink:0}.term-actions[data-v-78fa78bd]{display:flex;gap:8px;margin-top:10px}.ok-note[data-v-78fa78bd]{color:var(--ok);margin-top:8px}.save-row[data-v-78fa78bd]{display:flex;gap:8px;margin:8px 0}.save-row input[data-v-78fa78bd]{flex:1}.empty-versions[data-v-78fa78bd]{color:var(--muted);font-style:italic;text-align:center}.version-card[data-v-78fa78bd]{display:flex;align-items:center;gap:12px}.version-main[data-v-78fa78bd]{flex:1;min-width:0}.version-name[data-v-78fa78bd]{width:100%;font-weight:600;border-color:transparent;background:transparent;padding-left:0}.version-name[data-v-78fa78bd]:hover,.version-name[data-v-78fa78bd]:focus{border-color:var(--border);background:#fff;padding-left:7px}.version-meta[data-v-78fa78bd]{color:var(--muted);font-size:12.5px;margin-top:2px}.version-actions[data-v-78fa78bd]{display:flex;gap:6px;flex-shrink:0}.print-overlay[data-v-d21ba73e]{position:fixed;top:0;right:0;bottom:0;left:0;background:#eceff4;z-index:100;overflow-y:auto;padding:0 0 40px}.print-controls[data-v-d21ba73e]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px 20px;background:#fff;border-bottom:1px solid var(--border);position:sticky;top:0;z-index:5;box-shadow:0 1px 8px #141e370f}.print-root[data-v-d21ba73e]{max-width:1000px;margin:18px auto;display:flex;flex-direction:column;gap:20px;padding:0 16px}.print-sheet[data-v-d21ba73e]{background:#fff;border-radius:8px;box-shadow:0 2px 10px #141e371a;padding:22px 26px}.sheet-head[data-v-d21ba73e]{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:10px}.sheet-head h2[data-v-d21ba73e]{margin:0;font-size:19px}.sheet-head span[data-v-d21ba73e]{color:#667;font-size:12px}.sheet-table[data-v-d21ba73e]{border-collapse:collapse;width:100%;table-layout:fixed}.sheet-table th[data-v-d21ba73e],.sheet-table td[data-v-d21ba73e]{border:1px solid #b9c0cc;padding:4px 6px;text-align:center;height:42px;vertical-align:middle}.sheet-table thead th[data-v-d21ba73e]{background:#eef0f5;font-weight:700}.sheet-table th.pnum[data-v-d21ba73e]{width:34px;background:#eef0f5;color:#556}.sheet-table th.pnum-wide[data-v-d21ba73e]{width:78px}.pnum .ptime[data-v-d21ba73e]{display:block;font-weight:400;font-size:9px;color:#667;white-space:nowrap}.cell-main[data-v-d21ba73e]{font-weight:600;font-size:13px;line-height:1.2}.cell-sub[data-v-d21ba73e]{font-size:11px;color:#445}.wall-table th[data-v-d21ba73e],.wall-table td[data-v-d21ba73e]{height:24px;padding:2px 4px}.wall-day-row th[data-v-d21ba73e]{background:#dfe4ec;text-align:left;padding:3px 8px;font-size:12px}.wall-main[data-v-d21ba73e]{font-weight:700;font-size:11px}.wall-sub[data-v-d21ba73e]{font-size:9.5px;color:#445;margin-left:4px}.matrix-table[data-v-d21ba73e]{border-collapse:collapse;width:100%;table-layout:fixed}.matrix-table th[data-v-d21ba73e],.matrix-table td[data-v-d21ba73e]{border:1px solid #b9c0cc;padding:1px 2px;text-align:center;font-size:8px;line-height:1.25;overflow:hidden;height:20px}.matrix-table thead th[data-v-d21ba73e]{background:#eef0f5;font-weight:700;white-space:nowrap}.matrix-table .mt-name[data-v-d21ba73e]{width:40px;background:#eef0f5;font-weight:700;font-size:9px}.matrix-table .mt-num[data-v-d21ba73e]{width:22px;background:#f6f7fa}.matrix-table .mt-daystart[data-v-d21ba73e]{border-left:2px solid #7c8494}.matrix-table .mt-busy[data-v-d21ba73e]{background:#eef2fb;font-weight:600}@media print{.print-overlay[data-v-d21ba73e]{position:static;overflow:visible;background:#fff;padding:0}.print-controls[data-v-d21ba73e]{display:none}.print-root[data-v-d21ba73e]{max-width:none;margin:0;padding:0;gap:0}.print-sheet[data-v-d21ba73e]{box-shadow:none;border-radius:0;padding:0;page-break-after:always}.print-sheet[data-v-d21ba73e]:last-child{page-break-after:auto}.sheet-table td[data-v-d21ba73e],.sheet-table th[data-v-d21ba73e]{print-color-adjust:exact;-webkit-print-color-adjust:exact}}.admin-wrap[data-v-9aec2246]{min-height:100vh;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px}.admin-card[data-v-9aec2246]{width:min(640px,100%);padding:22px 26px}.admin-card h2[data-v-9aec2246]{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:18px}.key-form[data-v-9aec2246]{display:flex;gap:8px;margin:10px 0}.key-form input[data-v-9aec2246]{flex:1}.school-block[data-v-9aec2246]{margin:14px 0}.school-head[data-v-9aec2246]{display:flex;align-items:center;gap:10px;margin-bottom:5px;flex-wrap:wrap}.school-head .meta[data-v-9aec2246]{color:var(--muted);font-size:12px;flex:1}.school-head .danger[data-v-9aec2246]{padding:3px 10px;font-size:12.5px}.error[data-v-9aec2246]{color:var(--hard);background:#fdf1f1;border:1px solid #f0cfcf;border-radius:7px;padding:7px 10px;font-size:12.5px;margin:10px 0}.ok-msg[data-v-9aec2246]{color:var(--ok);background:#f0f9f1;border:1px solid #cfe8d2;border-radius:7px;padding:7px 10px;font-size:12.5px;margin:10px 0}.back-btn[data-v-9aec2246]{margin-top:12px}.brand-logo[data-v-8a6e3cbf]{display:block}.legal-overlay[data-v-ae2c19ce]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:#181e376b;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);animation:legalFade-ae2c19ce .2s ease both}@keyframes legalFade-ae2c19ce{0%{opacity:0}to{opacity:1}}.legal-card[data-v-ae2c19ce]{width:min(680px,100%);max-height:min(86vh,760px);display:flex;flex-direction:column;border-radius:18px;background:#fff;box-shadow:0 30px 70px -20px #252c6e80;overflow:hidden;animation:legalIn-ae2c19ce .28s cubic-bezier(.22,1,.36,1) both}@keyframes legalIn-ae2c19ce{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.legal-head[data-v-ae2c19ce]{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--border-soft)}.legal-tabs[data-v-ae2c19ce]{display:flex;gap:3px;background:#eceff5d9;border-radius:11px;padding:4px}.legal-tabs button[data-v-ae2c19ce]{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;border-radius:8px;padding:7px 12px;color:var(--muted);font-weight:600;font-size:13px}.legal-tabs button.active[data-v-ae2c19ce]{background:#fff;color:var(--accent);box-shadow:0 2px 6px #141e3724}.legal-close[data-v-ae2c19ce]{border:none;background:transparent;color:var(--muted);padding:6px;border-radius:9px;line-height:0}.legal-close[data-v-ae2c19ce]:hover{color:var(--hard);background:#fdf0f0}.legal-body[data-v-ae2c19ce]{overflow-y:auto;padding:22px 26px 26px}.legal-text[data-v-ae2c19ce]{font-size:13.5px;line-height:1.6;color:var(--text)}.legal-text h2[data-v-ae2c19ce]{font-size:20px;margin:0 0 12px;letter-spacing:-.3px}.legal-text h3[data-v-ae2c19ce]{font-size:14.5px;margin:20px 0 5px;color:var(--text)}.legal-text p[data-v-ae2c19ce]{margin:0 0 10px;color:var(--muted)}.legal-text address[data-v-ae2c19ce]{font-style:normal;line-height:1.65;color:var(--text);padding:12px 14px;background:var(--accent-soft);border-radius:10px;margin:4px 0 6px}.legal-text ul[data-v-ae2c19ce]{margin:0 0 10px;padding-left:18px;color:var(--muted)}.legal-text li[data-v-ae2c19ce]{margin-bottom:8px}.legal-text a[data-v-ae2c19ce]{color:var(--accent)}@media(max-width:560px){.legal-overlay[data-v-ae2c19ce]{padding:12px}.legal-body[data-v-ae2c19ce]{padding:18px 18px 22px}.legal-tabs button[data-v-ae2c19ce]{padding:7px 10px;font-size:12.5px}}@media(prefers-reduced-motion:reduce){.legal-overlay[data-v-ae2c19ce],.legal-card[data-v-ae2c19ce]{animation:none}}.login-wrap[data-v-16af9732]{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;isolation:isolate}.login-wrap[data-v-16af9732]:before,.login-wrap[data-v-16af9732]:after{content:"";position:absolute;border-radius:50%;filter:blur(70px);opacity:.6;z-index:-1;pointer-events:none}.login-wrap[data-v-16af9732]:before{width:620px;height:620px;top:-240px;left:-160px;background:radial-gradient(circle at 30% 30%,#7c86f2 0%,#5b76e8 45%,transparent 72%);animation:floatA-16af9732 18s ease-in-out infinite}.login-wrap[data-v-16af9732]:after{width:560px;height:560px;bottom:-220px;right:-140px;background:radial-gradient(circle at 60% 60%,#b98af0 0%,#6fe0a0 60%,transparent 74%);animation:floatB-16af9732 22s ease-in-out infinite}@keyframes floatA-16af9732{0%,to{transform:translate(0) scale(1)}50%{transform:translate(60px,50px) scale(1.08)}}@keyframes floatB-16af9732{0%,to{transform:translate(0) scale(1)}50%{transform:translate(-50px,-40px) scale(1.1)}}.login-card[data-v-16af9732]{width:min(920px,100%);display:grid;grid-template-columns:1.05fr 1fr;border-radius:24px;overflow:hidden;background:#ffffffb8;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border:1px solid rgba(255,255,255,.6);box-shadow:0 1px 2px #141e370f,0 30px 70px -20px #252c6e73;animation:cardIn-16af9732 .55s cubic-bezier(.22,1,.36,1) both}@keyframes cardIn-16af9732{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.login-trust-chips[data-v-16af9732]{list-style:none;margin:20px 0 0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:10px;animation:cardIn-16af9732 .6s cubic-bezier(.22,1,.36,1) .08s both}.login-trust-chips li[data-v-16af9732]{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:20px;font-size:12.5px;font-weight:600;color:#33396b;background:#ffffffa8;border:1px solid rgba(255,255,255,.75);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:0 4px 14px -6px #252c6e59}.login-trust-chips svg[data-v-16af9732]{color:#2c7a3b}.login-preview[data-v-16af9732]{width:min(920px,100%);margin-top:30px;display:flex;flex-direction:column;align-items:center;animation:cardIn-16af9732 .6s cubic-bezier(.22,1,.36,1) .15s both}.preview-cap[data-v-16af9732]{display:inline-flex;align-items:center;gap:7px;margin:0 0 14px;font-size:13.5px;font-weight:600;color:#3d4576}.preview-cap svg[data-v-16af9732]{color:#4059c7}.preview-frame[data-v-16af9732]{margin:0;width:100%;border-radius:16px;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.7);box-shadow:0 1px 2px #141e370f,0 26px 60px -24px #252c6e80}.preview-bar[data-v-16af9732]{display:flex;align-items:center;gap:7px;height:32px;padding:0 14px;background:linear-gradient(180deg,#f4f6fb,#eaeef6);border-bottom:1px solid var(--border-soft)}.preview-bar i[data-v-16af9732]{width:10px;height:10px;border-radius:50%;background:#cfd6e4}.preview-bar i[data-v-16af9732]:nth-child(1){background:#f0a9a2}.preview-bar i[data-v-16af9732]:nth-child(2){background:#f3d08a}.preview-bar i[data-v-16af9732]:nth-child(3){background:#a9d9a5}.preview-frame img[data-v-16af9732]{display:block;width:100%;height:auto}.login-legal[data-v-16af9732]{margin-top:18px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:12.5px}.login-legal button[data-v-16af9732]{border:none;background:transparent;color:#4a4f78;font-weight:600;padding:4px 6px;border-radius:8px}.login-legal button[data-v-16af9732]:hover{color:#2b2f86;background:#ffffff80;text-decoration:underline}.login-legal span[data-v-16af9732]{color:#3c426e80}.login-legal .legal-brand[data-v-16af9732]{color:#4a4f78;font-weight:500;display:inline-flex;align-items:center;gap:7px}.legal-brand .shark[data-v-16af9732]{flex-shrink:0;transition:transform .25s ease}.legal-brand:hover .shark[data-v-16af9732]{transform:rotate(-10deg) translateY(-1px) scale(1.12)}.legal-brand strong[data-v-16af9732]{font-weight:800;letter-spacing:.1px;color:#2b2f86}.legal-brand .brand-fin[data-v-16af9732]{color:#ff8f6b}.login-hero[data-v-16af9732]{position:relative;overflow:hidden;background:radial-gradient(560px 320px at -8% -18%,rgba(255,255,255,.18) 0%,transparent 60%),radial-gradient(430px 320px at 118% -12%,rgba(255,186,122,.3) 0%,transparent 58%),radial-gradient(460px 360px at -10% 120%,rgba(255,170,110,.34) 0%,transparent 62%),radial-gradient(460px 340px at 112% 118%,rgba(111,224,160,.42) 0%,transparent 66%),linear-gradient(155deg,#4a5ee0,#3a45b8 52%,#2b2f86);color:#fff;padding:38px 34px 28px;display:flex;flex-direction:column}.login-hero[data-v-16af9732]:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);background-size:34px 34px;-webkit-mask-image:radial-gradient(120% 90% at 20% 0%,#000 0%,transparent 70%);mask-image:radial-gradient(120% 90% at 20% 0%,#000 0%,transparent 70%);pointer-events:none}.login-hero[data-v-16af9732]>*{position:relative}.login-brand[data-v-16af9732]{display:flex;align-items:center;gap:14px}.login-logo-glow[data-v-16af9732]{position:relative;display:inline-flex;filter:drop-shadow(0 6px 16px rgba(8,12,45,.5));animation:logoFloat-16af9732 5s ease-in-out infinite}.login-logo-glow[data-v-16af9732]:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:20px;background:radial-gradient(circle,rgba(255,255,255,.32),transparent 70%);z-index:-1}@keyframes logoFloat-16af9732{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}.login-brand-text[data-v-16af9732]{display:flex;flex-direction:column;gap:7px}.login-hero h1[data-v-16af9732]{font-size:25px;margin:0;letter-spacing:-.4px;line-height:1.1}.login-brand-sub[data-v-16af9732]{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;font-size:12.5px;font-weight:700;color:#10502f;letter-spacing:.3px;background:linear-gradient(135deg,#b6f2cf,#7fe6b0);border:1px solid rgba(255,255,255,.4);border-radius:20px;padding:4px 12px 4px 10px;box-shadow:0 4px 12px -3px #4fdc9b8c}.login-brand-sub svg[data-v-16af9732]{color:#0e7a45}.hero-tagline[data-v-16af9732]{margin:24px 0 4px;font-size:16px;line-height:1.55;color:#eef1ff;max-width:30ch}.hero-tagline strong[data-v-16af9732]{color:#fff;font-weight:700}.hero-features[data-v-16af9732]{list-style:none;margin:8px 0 12px;padding:0;display:flex;flex-direction:column;gap:15px;flex:1 0 auto;justify-content:space-evenly}.hero-features li[data-v-16af9732]{display:flex;gap:12px;font-size:12.5px;line-height:1.5;color:#d3dbfb}.hero-features strong[data-v-16af9732]{display:block;color:#fff;font-size:13.5px;margin-bottom:2px}.feat-icon[data-v-16af9732]{flex-shrink:0;width:34px;height:34px;border-radius:11px;background:linear-gradient(150deg,#ffffff47,#ffffff14);border:1px solid rgba(255,255,255,.25);box-shadow:inset 0 1px 1px #ffffff4d;display:flex;align-items:center;justify-content:center;margin-top:1px}.hero-trust[data-v-16af9732]{margin-top:10px;display:flex;gap:12px;align-items:flex-start;padding:13px 15px;border-radius:14px;background:linear-gradient(150deg,#ffffff29,#ffffff12);border:1px solid rgba(255,255,255,.28);box-shadow:inset 0 1px 1px #ffffff40}.hero-trust p[data-v-16af9732]{margin:0;font-size:12.5px;line-height:1.5;color:#dce2fc}.hero-trust strong[data-v-16af9732]{display:block;color:#fff;font-size:13px;margin-bottom:2px}.trust-icon[data-v-16af9732]{flex-shrink:0;width:36px;height:36px;border-radius:12px;background:linear-gradient(135deg,#ffb27a,#ff8f6b);color:#5c2410;box-shadow:0 5px 14px -4px #ff8f6ba6,inset 0 1px 1px #ffffff73;display:flex;align-items:center;justify-content:center;margin-top:1px}.hero-foot[data-v-16af9732]{margin:0;padding-top:20px;font-size:11.5px;color:#b6c0f0;display:flex;align-items:center;gap:6px}.login-form[data-v-16af9732]{background:transparent;border:none;border-radius:0;box-shadow:none;padding:34px 34px 26px;display:flex;flex-direction:column;justify-content:center}.login-form h2[data-v-16af9732]{font-size:19px;margin:0 0 4px;letter-spacing:-.3px}.form-intro[data-v-16af9732]{margin:0 0 16px}.login-tabs[data-v-16af9732]{display:flex;gap:3px;background:#eceff5d9;border-radius:12px;padding:4px;margin:0 0 20px}.login-tabs button[data-v-16af9732]{flex:1;border:none;background:transparent;border-radius:9px;padding:8px 10px;color:var(--muted);font-weight:600;transition:color .15s,background .15s,box-shadow .15s}.login-tabs button.active[data-v-16af9732]{background:#fff;color:var(--accent);box-shadow:0 2px 6px #141e3724}.center-note[data-v-16af9732]{text-align:center;padding:18px 0}.field[data-v-16af9732]{display:flex;flex-direction:column;gap:5px;margin-bottom:14px;font-weight:600;font-size:13px}.field small[data-v-16af9732]{color:var(--muted);font-weight:400}.field input[data-v-16af9732],.field select[data-v-16af9732]{font-weight:400;padding:10px 12px;border-radius:10px;background:#ffffffd9}.login-submit[data-v-16af9732]{width:100%;padding:12px 14px;font-size:14px;font-weight:700;border-radius:11px;margin-top:6px;background:linear-gradient(135deg,#5768e0,#4059c7 55%,#6c4fd0);border:none;box-shadow:0 6px 18px -4px #4059c799;transition:transform .14s ease,box-shadow .14s ease,filter .14s ease}.login-submit[data-v-16af9732]:hover:not(:disabled){transform:translateY(-1px);filter:brightness(1.05);box-shadow:0 10px 24px -6px #4059c7b3}.login-submit[data-v-16af9732]:active:not(:disabled){transform:translateY(0)}.error[data-v-16af9732]{color:var(--hard);background:#fdf1f1;border:1px solid #f0cfcf;border-radius:9px;padding:8px 11px;font-size:12.5px;margin-bottom:10px}.ok-note[data-v-16af9732]{color:var(--ok);background:#f0f9f1;border:1px solid #cfe8d2;border-radius:9px;padding:8px 11px;font-size:12.5px;margin-bottom:10px}.forgot-link[data-v-16af9732]{display:block;width:100%;border:none;background:transparent;color:var(--accent);font-size:12.5px;padding:10px 0 0;text-align:center}.forgot-link[data-v-16af9732]:hover{text-decoration:underline;background:transparent}.back-link[data-v-16af9732]{display:block;width:100%;border:none;background:transparent;color:var(--muted);font-size:12.5px;padding:10px 0 0;text-align:center}.back-link[data-v-16af9732]:hover{color:var(--accent);background:transparent;text-decoration:underline}.register-note[data-v-16af9732]{margin:10px 0 0;text-align:center;font-size:12px}.adopt-note[data-v-16af9732]{background:var(--accent-soft);border-radius:9px;padding:8px 11px;margin:0 0 12px}.local-note[data-v-16af9732]{margin-top:18px;border-top:1px solid var(--border-soft);padding-top:14px}.insecure-note[data-v-16af9732]{background:#fdf6ec;border:1px solid #ecd9b4;border-radius:9px;padding:8px 11px;color:#8a6116;margin:0 0 12px}.admin-link[data-v-16af9732]{border:none;background:transparent;color:var(--accent);text-decoration:underline;padding:0;font-size:inherit}.dev-login[data-v-16af9732]{margin-top:14px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 12px;border:1px dashed #c9b6ec;border-radius:10px;background:repeating-linear-gradient(-45deg,#8b5cf00f,#8b5cf00f 8px,#8b5cf01c 8px,#8b5cf01c 16px);color:#6b45c0;font-weight:600;font-size:12.5px}.dev-login small[data-v-16af9732]{color:#9878c9;font-weight:400}.dev-login[data-v-16af9732]:hover{border-color:#8b5cf0;color:#5a34a8;background:#8b5cf01f}@media(max-width:720px){.login-wrap[data-v-16af9732]{padding:14px;align-items:flex-start}.login-card[data-v-16af9732]{grid-template-columns:1fr;border-radius:20px}.login-hero[data-v-16af9732]{padding:24px 24px 20px}.hero-features[data-v-16af9732],.hero-foot[data-v-16af9732]{display:none}.hero-tagline[data-v-16af9732]{margin:16px 0 0;font-size:14.5px}.hero-trust[data-v-16af9732]{margin-top:16px}.login-form[data-v-16af9732]{padding:24px 24px 20px}.login-trust-chips[data-v-16af9732]{margin-top:14px;gap:8px}.login-trust-chips li[data-v-16af9732]{padding:6px 11px;font-size:11.5px}}@media(prefers-reduced-motion:reduce){.login-wrap[data-v-16af9732]:before,.login-wrap[data-v-16af9732]:after,.login-logo-glow[data-v-16af9732],.login-card[data-v-16af9732],.login-trust-chips[data-v-16af9732],.login-preview[data-v-16af9732]{animation:none}}.school-layout[data-v-87747a4e]{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.card-title[data-v-87747a4e]{margin:0 0 8px;font-size:15px}.sub-title[data-v-87747a4e]{margin:16px 0 6px;font-size:13px}.rename-row[data-v-87747a4e]{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13px}.rename-row input[data-v-87747a4e]{flex:1;max-width:320px;font-weight:400}.inline-form[data-v-87747a4e]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.inline-form input[data-v-87747a4e]{min-width:210px}.row-actions[data-v-87747a4e]{display:flex;gap:6px;justify-content:flex-end}.row-actions button[data-v-87747a4e]{padding:3px 10px;font-size:12.5px}.pw-edit-row td[data-v-87747a4e]{background:#f7f8fc}.email-input[data-v-87747a4e]{width:100%;font-weight:400;font-size:12.5px;padding:4px 7px}.you-badge[data-v-87747a4e]{background:var(--accent-soft);color:var(--accent);border-radius:9px;font-size:11px;font-weight:700;padding:0 7px;margin-left:6px}.role-badge[data-v-87747a4e]{display:inline-block;border-radius:9px;font-size:11.5px;font-weight:600;padding:1px 9px;background:#eceff5;color:var(--muted)}.role-badge.lead[data-v-87747a4e]{background:var(--accent-soft);color:var(--accent)}.pw-form[data-v-87747a4e]{max-width:340px}.field[data-v-87747a4e]{display:flex;flex-direction:column;gap:4px;margin-bottom:10px;font-weight:600;font-size:13px}.field small[data-v-87747a4e]{color:var(--muted);font-weight:400}.field input[data-v-87747a4e]{font-weight:400}.error[data-v-87747a4e]{color:var(--hard);background:#fdf1f1;border:1px solid #f0cfcf;border-radius:7px;padding:7px 10px;font-size:12.5px;margin:8px 0}.error-inline[data-v-87747a4e]{color:var(--hard);font-size:12.5px}.danger-zone[data-v-87747a4e]{border-left:4px solid var(--hard)}.delete-row[data-v-87747a4e]{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.delete-row input[data-v-87747a4e]{min-width:220px}.onb-overlay[data-v-1389f1ab]{position:fixed;top:0;right:0;bottom:0;left:0;background:#181e308c;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:60}.onb-card[data-v-1389f1ab]{width:min(680px,100%);padding:22px 26px 18px;max-height:calc(100vh - 80px);overflow-y:auto}.onb-card h2[data-v-1389f1ab]{display:flex;align-items:center;gap:8px;margin:4px 0 10px;font-size:19px}.onb-steps[data-v-1389f1ab]{display:flex;flex-wrap:wrap;gap:4px 14px;margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border-soft);font-size:12.5px;color:var(--muted)}.onb-step[data-v-1389f1ab]{display:inline-flex;align-items:center;gap:5px}.onb-step .dot[data-v-1389f1ab]{width:19px;height:19px;border-radius:50%;background:#eceff5;display:inline-flex;align-items:center;justify-content:center;font-size:11px;font-weight:700}.onb-step.active[data-v-1389f1ab]{color:var(--accent);font-weight:700}.onb-step.active .dot[data-v-1389f1ab]{background:var(--accent);color:#fff}.onb-step.done .dot[data-v-1389f1ab]{background:var(--ok);color:#fff}.onb-choices[data-v-1389f1ab]{display:flex;flex-direction:column;gap:8px;margin:14px 0 10px}.onb-choice[data-v-1389f1ab]{text-align:left;padding:12px 14px;border-radius:10px;display:flex;flex-direction:column;gap:3px}.onb-choice strong[data-v-1389f1ab]{display:inline-flex;align-items:center;gap:7px;font-size:14.5px}.onb-choice small[data-v-1389f1ab]{color:var(--muted);font-weight:400}.onb-choice.primary-choice[data-v-1389f1ab]{border-color:var(--accent);background:var(--accent-soft)}.onb-choice.primary-choice strong[data-v-1389f1ab]{color:var(--accent)}.onb-skip[data-v-1389f1ab]{border:none;background:transparent;color:var(--muted);text-decoration:underline;padding:4px 0;font-size:12.5px}.onb-generator[data-v-1389f1ab]{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:12px;font-weight:600;font-size:13px}.onb-list[data-v-1389f1ab]{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.onb-add-form[data-v-1389f1ab]{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.onb-add-form input[data-v-1389f1ab]:not(.narrow){flex:1;min-width:180px}.soll-label[data-v-1389f1ab]{display:inline-flex;align-items:center;gap:5px;font-size:13px;font-weight:600}.onb-next[data-v-1389f1ab]{padding-left:20px;display:flex;flex-direction:column;gap:8px}.onb-finish[data-v-1389f1ab]{width:100%;padding:9px;font-weight:600;margin-top:14px}.onb-nav[data-v-1389f1ab]{display:flex;align-items:center;gap:10px;margin-top:16px;padding-top:12px;border-top:1px solid var(--border-soft)}.onb-hint-inline[data-v-1389f1ab]{flex:1;text-align:right;color:var(--muted);font-size:12.5px}.error[data-v-1389f1ab]{color:var(--hard);background:#fdf1f1;border:1px solid #f0cfcf;border-radius:7px;padding:7px 10px;font-size:12.5px;margin:8px 0}.paste-list[data-v-1389f1ab]{margin:8px 0}.paste-list summary[data-v-1389f1ab]{cursor:pointer;color:var(--accent);font-weight:600;font-size:12.5px}.paste-list textarea[data-v-1389f1ab]{width:100%;font-family:inherit;font-size:13px;margin-top:6px}.paste-msg[data-v-1389f1ab]{margin-left:8px;font-size:12.5px;color:var(--ok);font-weight:600}.help-overlay[data-v-2b6d9af5]{position:fixed;top:0;right:0;bottom:0;left:0;background:#181e308c;display:flex;align-items:flex-start;justify-content:center;padding:40px 16px;overflow-y:auto;z-index:70}.help-card[data-v-2b6d9af5]{position:relative;width:min(680px,100%);padding:22px 26px 18px;max-height:calc(100vh - 80px);overflow-y:auto}.help-close[data-v-2b6d9af5]{position:absolute;top:12px;right:12px;padding:5px 7px;line-height:1}.help-card h2[data-v-2b6d9af5]{margin:0 0 12px;font-size:18px;padding-right:30px}.help-card h3[data-v-2b6d9af5]{display:flex;align-items:center;gap:7px;margin:16px 0 6px;font-size:14px}.help-card h3 svg[data-v-2b6d9af5]{color:var(--accent)}.help-steps[data-v-2b6d9af5]{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:7px;font-size:13px;line-height:1.5}.help-steps strong[data-v-2b6d9af5]{display:inline-flex;align-items:center;gap:4px}.help-list[data-v-2b6d9af5]{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:5px;font-size:13px;line-height:1.5}.help-ok[data-v-2b6d9af5]{width:100%;margin-top:16px;padding:9px;font-weight:600}.modal-overlay[data-v-7893c17f]{position:fixed;top:0;right:0;bottom:0;left:0;background:#181e308c;display:flex;align-items:flex-start;justify-content:center;padding:60px 16px 40px;overflow-y:auto;z-index:70}.modal-card[data-v-7893c17f]{width:min(560px,100%);padding:20px 24px 16px;max-height:calc(100vh - 100px);overflow-y:auto}.modal-title[data-v-7893c17f]{display:flex;align-items:center;gap:8px;margin:0 0 8px;font-size:16px}.modal-title svg[data-v-7893c17f]{color:var(--hard);flex-shrink:0}.modal-message[data-v-7893c17f]{margin:0 0 8px;font-size:13.5px}.modal-sub[data-v-7893c17f]{margin:10px 0 4px;font-size:13px;font-weight:600}.finding-list[data-v-7893c17f]{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:6px}.finding-list li[data-v-7893c17f]{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45;border-radius:8px;padding:7px 10px}.finding-list li svg[data-v-7893c17f]{flex-shrink:0;margin-top:2px}.finding-list li.error[data-v-7893c17f]{background:#fdf1f1;border:1px solid #f0cfcf;color:#7c2d2d}.finding-list li.error svg[data-v-7893c17f]{color:var(--hard)}.finding-list li.warn[data-v-7893c17f]{background:#fdf6ec;border:1px solid #ecd9b4;color:#8a6116}.finding-list li.warn svg[data-v-7893c17f]{color:#c08a1d}.modal-actions[data-v-7893c17f]{display:flex;justify-content:flex-end;gap:8px;margin-top:14px;padding-top:12px;border-top:1px solid var(--border-soft)}:root{--bg: #f3f5f9;--panel: #ffffff;--border: #dde2ea;--border-soft: #e8ecf2;--text: #232b36;--muted: #69758a;--accent: #4059c7;--accent-hover: #34489f;--accent-soft: #e8ecfb;--hard: #d33c3c;--soft: #d99a2b;--ok: #2c7a3b;--shadow: 0 1px 2px rgba(20, 30, 55, .05), 0 6px 22px rgba(20, 30, 55, .06);--shadow-sm: 0 1px 2px rgba(20, 30, 55, .08);--radius: 14px;--radius-sm: 9px;--control-h: 36px;font-family:Segoe UI,system-ui,-apple-system,Helvetica Neue,sans-serif}*{box-sizing:border-box}body{margin:0;background:radial-gradient(1100px 300px at 15% -100px,#e3e9f9 0%,transparent 70%),radial-gradient(900px 260px at 85% -120px,#ede7f7 0%,transparent 70%),var(--bg);color:var(--text);font-size:14px;min-height:100vh}button{font:inherit;font-weight:500;border:1px solid var(--border);background:var(--panel);border-radius:var(--radius-sm);padding:0 15px;min-height:var(--control-h);display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;color:var(--text);transition:border-color .12s,color .12s,background .12s,box-shadow .12s}button:hover{border-color:var(--accent);color:var(--accent);background:#fbfcff}button.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 1px 3px #4059c759}button.primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}button.danger:hover{border-color:var(--hard);color:var(--hard);background:#fff7f7}button:disabled{opacity:.55;cursor:default;box-shadow:none}button.icon{padding:0;min-width:var(--control-h);border-color:transparent;background:transparent;color:var(--muted)}button.icon:hover{color:var(--hard);background:#fdf0f0}.opt-chip,.strip-chip,.event-select-chip{min-height:28px}input,select,textarea{font:inherit;border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 11px;min-height:var(--control-h);background:#fff;color:var(--text);transition:border-color .12s,box-shadow .12s}textarea{min-height:0}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px #4059c726}input[type=color]{padding:1px 3px;min-height:0;height:32px;width:46px;cursor:pointer}svg.lucide{vertical-align:-2px;flex-shrink:0}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.app-header{display:flex;align-items:center;gap:18px;padding:13px 22px 12px;background:#fffffff0;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20;flex-wrap:wrap;box-shadow:0 1px 8px #141e370d}.app-header:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#5b76e8,#8a63b8 45%,#3aa0a8)}.brand{display:flex;align-items:center;gap:13px;padding-right:4px}.brand .logo{width:41px;height:41px;display:block;filter:drop-shadow(0 3px 7px rgba(51,64,159,.32));transition:transform .18s ease,filter .18s ease}.brand:hover .logo{transform:translateY(-1px) rotate(-2deg);filter:drop-shadow(0 5px 11px rgba(51,64,159,.4))}.brand-text{display:flex;flex-direction:column;gap:3px}.app-header h1{font-size:17px;margin:0;letter-spacing:-.2px;white-space:nowrap;line-height:1.1}.brand-sub{display:inline-flex;align-items:center;gap:4px;font-size:11px;color:var(--muted);letter-spacing:.25px;white-space:nowrap}.app-header .tabs{display:flex;gap:3px;background:#eceff5;border-radius:var(--radius-sm);padding:4px}.app-header .tabs button{display:inline-flex;align-items:center;gap:6px;min-height:32px;border:none;background:transparent;border-radius:7px;padding:6px 13px;color:var(--muted);font-weight:500}.app-header .tabs button:hover{color:var(--text);background:#ffffffb3}.app-header .tabs button.active{background:#fff;color:var(--accent);box-shadow:0 1px 3px #141e371f;font-weight:600}.tab-badge{display:inline-block;background:var(--accent-soft);color:var(--accent);border-radius:9px;font-size:11px;font-weight:700;padding:0 6px;margin-left:5px;vertical-align:1px}.app-header .spacer{flex:1}.app-header .actions{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.app-header .actions button{display:inline-flex;align-items:center;gap:6px}.app-header .actions .menu-dropdown button{display:block}.school-badge{background:var(--accent-soft);color:var(--accent);border-radius:9px;font-size:12px;font-weight:700;padding:3px 10px;white-space:nowrap;max-width:220px;overflow:hidden;text-overflow:ellipsis}.logout-btn{color:var(--muted)}.app-loading{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:8px;color:var(--muted);font-size:15px}.main{padding:20px 24px 64px}.panel{background:var(--panel);border:1px solid var(--border-soft);border-radius:var(--radius);padding:18px;box-shadow:var(--shadow)}.board-layout{display:flex;gap:16px;align-items:flex-start}.board-scroll{overflow-x:auto;flex:1;--z: 1}.board-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.board-toolbar .toolbar-spacer{flex:1}.day-filter{display:flex;gap:3px;background:#eceff5;border-radius:var(--radius-sm);padding:4px}.day-filter button{border:none;background:transparent;border-radius:7px;min-height:32px;padding:6px 13px;color:var(--muted);font-weight:500}.day-filter button:hover{color:var(--text);background:#ffffffb3}.day-filter button.active{background:#fff;color:var(--accent);box-shadow:0 1px 3px #141e371f;font-weight:600}.zoom-controls{display:flex;align-items:center;gap:4px}.zoom-controls button{min-width:36px;padding:0;font-weight:700;font-size:16px;line-height:1}.zoom-controls .zoom-value{min-width:46px;text-align:center;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;cursor:default}table.board{border-collapse:separate;border-spacing:0;width:100%}table.board th,table.board td{border-bottom:1px solid var(--border-soft);border-right:1px solid var(--border-soft);padding:2px;text-align:center;min-width:calc(108px * var(--z, 1));font-size:calc(14px * var(--z, 1))}table.board th.slot-label{min-width:calc(52px * var(--z, 1));width:calc(52px * var(--z, 1));font-weight:600;color:var(--muted);background:#f7f8fb}table.board thead th{background:#f0f2f7;padding:8px 4px;position:sticky;top:0;z-index:5;font-weight:600}table.board tr.day-sep td,table.board tr.day-sep th{background:linear-gradient(180deg,#e6eaf2,#edf0f6);font-weight:700;padding:4px 6px;text-align:left;color:#3c485c;border-bottom:1px solid #ccd3df}.cell{height:calc(46px * var(--z, 1));border-radius:7px;position:relative;transition:background .1s}.cell:hover{background:#f4f6fa}.cell.violation{outline:2px solid var(--hard);outline-offset:-2px}.cell.violation-soft{outline:2px solid var(--soft);outline-offset:-2px}.cell.highlight-teacher{box-shadow:inset 0 0 0 3px #7c4dc7}.cell.highlight-teacher .chip{outline:3px solid #7c4dc7;outline-offset:-3px;box-shadow:inset 0 -14px 18px #00000014,0 0 0 2px #7c4dc759,0 2px 8px #7c4dc780}.chip .who .tt{cursor:pointer;border-radius:3px;padding:0 1px}.chip .who .tt:hover{background:#ffffff47}.chip .who .tt.on{background:#ffffff73;color:#3a1d68;font-weight:700}.cell.drop-free{outline:2px dashed #58a15e;outline-offset:-2px;background:#eef8ef}.cell.drop-exchange{outline:2px dashed var(--accent);outline-offset:-2px;background:#eef1fc}.cell.drop-swap{outline:2px dashed var(--soft);outline-offset:-2px;background:#fdf6e7}.cell.drop-conflict{outline:2px dashed var(--hard);outline-offset:-2px;background:#fdf0f0}.cell.drop-blocked{opacity:.45}.cell.drop-source{outline:2px solid var(--accent);outline-offset:-2px}.cell.drop-ok{outline:2px solid var(--accent);outline-offset:-2px;background:var(--accent-soft)}.chip{height:100%;border-radius:6px;color:#fff;display:flex;flex-direction:column;justify-content:center;cursor:grab;padding:2px 4px;-webkit-user-select:none;user-select:none;line-height:1.15;box-shadow:inset 0 -14px 18px #00000014,0 1px 2px #141e372e}.chip:active{cursor:grabbing}.chip.selected,.pool-chip.selected{box-shadow:0 0 0 3px var(--accent),0 2px 8px #4059c766}.chip .subj{font-weight:700;font-size:calc(13px * var(--z, 1));text-shadow:0 1px 1px rgba(0,0,0,.15)}.chip .who{font-size:calc(11px * var(--z, 1));opacity:.92}.chip .remove{position:absolute;top:1px;right:3px;color:#ffffffe6;cursor:pointer;font-size:12px;display:none}.cell:hover .remove{display:block}.pool{width:256px;flex-shrink:0;max-height:calc(100vh - 140px);overflow-y:auto;position:sticky;top:74px}.pool h3{margin:0 0 10px;font-size:15.5px;font-weight:700;letter-spacing:-.2px}.pool .class-group{margin-bottom:10px}.pool .class-group h4{margin:8px 0 4px;font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}.pool-chip{display:inline-flex;align-items:center;gap:5px;border-radius:6px;color:#fff;padding:3px 8px;margin:2px;cursor:grab;font-size:12px;-webkit-user-select:none;user-select:none;box-shadow:inset 0 -10px 14px #00000014,0 1px 2px #141e372e}.pool-chip .count{background:#ffffff52;border-radius:8px;padding:0 6px;font-weight:700}.pool .done{color:var(--ok);font-size:12px}.pool-return{border:2px dashed var(--hard);border-radius:8px;background:#fdf1f1;color:var(--hard);padding:10px 12px;margin-bottom:8px;font-size:12.5px;font-weight:600;text-align:center;cursor:pointer}.pool-return:hover{background:#fbe4e4}.legend{display:inline-block;border-radius:5px;padding:0 6px;font-size:11px;font-weight:600;margin:0 1px;border:1px dashed transparent}.legend-free{background:#eef8ef;border-color:#58a15e;color:#2c7a3b}.legend-exchange{background:#eef1fc;border-color:var(--accent);color:var(--accent)}.legend-swap{background:#fdf6e7;border-color:var(--soft);color:#a8761a}.legend-conflict{background:#fdf0f0;border-color:var(--hard);color:var(--hard)}.empty-plan-note{display:flex;gap:10px;align-items:flex-start;background:var(--accent-soft);border:1px dashed var(--accent);color:var(--accent-hover);border-radius:10px;padding:12px 14px;margin-bottom:10px;font-size:13px;line-height:1.55}.empty-plan-note svg{margin-top:2px}.empty-plan-note strong{display:block}.violations{margin:4px 0 14px}.violations h3{margin:0 0 8px;font-size:14px}.violations h3.violations-head{display:flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none;width:fit-content}.violations h3.violations-head .caret{font-size:12px;color:var(--muted)}.violations h3.violations-head .expand-hint{font-weight:400;font-size:12px;color:var(--muted)}.violations h3.violations-head:hover{color:var(--accent)}.violation-item{display:flex;gap:8px;padding:6px 10px;border-radius:7px;margin-bottom:5px;background:#fdf1f1;border:1px solid #f0cfcf}.violation-item.soft{background:#fdf7ea;border-color:#eeddb8}.violation-item .badge{font-size:11px;font-weight:700;padding:1px 8px;border-radius:9px;color:#fff;background:var(--hard);align-self:flex-start;white-space:nowrap;margin-top:1px}.violation-item.soft .badge{background:var(--soft)}.violation-group{border:1px solid #f0cfcf;background:#fdf1f1;border-left:4px solid var(--hard);border-radius:7px;padding:8px 12px;margin-bottom:8px}.violation-group.soft{background:#fdf7ea;border-color:#eeddb8;border-left-color:var(--soft)}.violation-group .group-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.violation-group .group-head .badge{font-size:11px;font-weight:700;padding:1px 8px;border-radius:9px;color:#fff;background:var(--hard)}.violation-group .group-head .badge.soft{background:var(--soft)}.violation-group .count{color:var(--muted);font-size:12px}.violation-group .group-actions{margin-left:auto;display:flex;gap:6px}.violation-group .group-actions button{padding:2px 10px;font-size:12px;background:#fff}.violation-group ul{margin:6px 0 2px;padding-left:20px}.violation-group li{margin:2px 0}.ok-note{display:flex;align-items:center;gap:7px;padding:9px 12px;background:#ecf7ee;border:1px solid #c4e3ca;border-radius:7px;color:var(--ok);font-weight:500}table.data{border-collapse:collapse;width:100%}table.data th,table.data td{border-bottom:1px solid var(--border-soft);padding:5px 8px;text-align:left}table.data th{background:none;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.4px;font-weight:600}table.data tbody tr:hover{background:#f8f9fc}table.data input,table.data select{width:100%;min-width:40px}table.data input.narrow{width:64px}table.teacher-board{border-collapse:collapse}table.teacher-board th,table.teacher-board td{border:1px solid var(--border-soft);padding:2px 5px;text-align:center;font-size:12px;min-width:44px}table.teacher-board thead th{background:#f0f2f7;font-weight:600}table.teacher-board td.busy{color:#fff;font-weight:600;text-shadow:0 1px 1px rgba(0,0,0,.2)}table.teacher-board td.free-day{background:#f1f2f5;color:#b9bfca}table.teacher-board th.tname{text-align:left;cursor:pointer;padding:3px 8px}table.teacher-board th.tname:hover{color:var(--accent)}.rule-card{border:1px solid var(--border-soft);border-radius:var(--radius);padding:12px 14px;margin-bottom:10px;background:var(--panel);box-shadow:var(--shadow);border-left:4px solid var(--accent)}.rule-card.soft-rule{border-left-color:var(--soft)}.rule-card.disabled{opacity:.55;border-left-color:#c3c9d4}.rule-card .head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.rule-card .head input[type=text]{flex:1;min-width:220px;font-weight:600}.rule-card .desc{color:var(--muted);font-size:12px;margin:7px 0 5px}.rule-card textarea{width:100%;font-family:ui-monospace,Cascadia Code,Consolas,monospace;font-size:12px;min-height:38px;background:#f8f9fc}.rule-card .error{color:var(--hard);font-size:12px}.rule-blocks{display:flex;flex-wrap:wrap;gap:8px 12px;margin-top:4px;align-items:stretch}.rule-block{display:flex;flex-direction:column;gap:4px;padding:6px 9px 7px;background:#f7f8fc;border:1px solid var(--border-soft);border-radius:8px;min-width:70px}.rule-block .block-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:700}.rule-block select,.rule-block input.num{align-self:flex-start}.rule-block input.num{width:66px}.rule-block .block-bool{display:flex;align-items:center;gap:5px;padding:3px 0}.block-chips{display:flex;flex-wrap:wrap;gap:3px;align-items:center;max-width:460px}.opt-chip{padding:2px 9px;font-size:12px;border-radius:20px;background:#fff;line-height:1.4}.opt-chip.on{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}.opt-chip.on:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:#fff}.all-note{font-size:11.5px;color:var(--muted);font-style:italic;padding:0 4px}.rule-json{margin-top:8px}.rule-json summary{font-size:11.5px;color:var(--muted);cursor:pointer;-webkit-user-select:none;user-select:none}.rule-json summary:hover{color:var(--accent)}.rule-json textarea{margin-top:5px}.add-rule{display:flex;gap:8px;align-items:center;margin-top:14px;flex-wrap:wrap}.section-title{font-size:16.5px;font-weight:700;letter-spacing:-.2px;margin:22px 0 10px}.hint{color:var(--muted);font-size:12.5px;line-height:1.55}code{background:#eef0f6;border-radius:4px;padding:0 4px;font-size:12px}.toast{position:fixed;bottom:18px;left:50%;transform:translate(-50%);background:#262f3d;color:#fff;padding:10px 20px;border-radius:9px;z-index:50;box-shadow:0 6px 20px #0000004d;max-width:min(640px,90vw)}.budget-pick{display:inline-flex;align-items:center;gap:4px;color:var(--muted);font-size:12.5px}.solve-progress{position:fixed;bottom:18px;left:50%;transform:translate(-50%);width:min(460px,92vw);background:#fff;border:1px solid var(--border);border-radius:10px;padding:12px 16px;z-index:55;box-shadow:0 10px 30px #141e3740}.solve-progress .row{display:flex;align-items:center;gap:10px;margin-bottom:8px}.solve-progress .row .time{margin-left:auto;color:var(--muted);font-variant-numeric:tabular-nums}.solve-progress .bar{height:10px;background:#edf0f6;border-radius:6px;overflow:hidden}.solve-progress .fill{height:100%;background:linear-gradient(90deg,var(--accent),#6b83e0);border-radius:6px;transition:width .3s ease}.solve-progress .fill.found{background:linear-gradient(90deg,var(--ok),#55a866)}.solve-progress .status{margin-top:7px;font-size:12px;color:var(--muted)}.plan-split{position:relative}.menu-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:300px;background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:0 8px 26px #141e372e;z-index:40;overflow:hidden;display:flex;flex-direction:column}.menu-dropdown.menu-right{left:auto;right:0}.menu-dropdown button{border:none;border-radius:0;text-align:left;padding:10px 14px;line-height:1.35}.menu-dropdown button+button{border-top:1px solid var(--border-soft)}.menu-dropdown small{color:var(--muted)}.menu-dropdown strong{display:inline-flex;align-items:center;gap:7px}.menu-dropdown .menu-danger strong{color:var(--hard)}@media(max-width:1380px){.app-header{gap:12px;padding:10px 16px 9px}.app-header .tabs button{padding:5px 9px}.main{padding:12px 14px 60px}}@media(max-width:1100px){.brand-sub{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block}.board-layout{flex-direction:column}.pool{width:100%;position:static;max-height:none;order:2}}@media(max-width:767px){.app-header{gap:8px;padding:8px 10px 7px}.brand{gap:8px}.brand .logo{width:32px;height:32px}.app-header h1{font-size:14px}.brand-sub{max-width:130px}.tabs{order:3;width:100%;overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tabs button{white-space:nowrap;flex-shrink:0;padding:5px 10px}.actions{flex-wrap:wrap;gap:6px;margin-left:auto}.spacer{display:none}.main{padding:8px 8px 40px}.panel{padding:10px}.board-scroll,.panel{max-width:100%}.sync-banner{margin:8px 8px 0}}.slot-time{display:block;font-weight:400;font-size:9.5px;color:var(--muted);white-space:nowrap;line-height:1.2}.sync-chip{display:inline-flex;align-items:center;gap:4px;font-size:11.5px;color:var(--muted);border:1px solid var(--border-soft);border-radius:20px;padding:2px 9px;white-space:nowrap;cursor:default}.sync-chip.pending{color:var(--accent);border-color:var(--accent-soft)}.sync-chip.error,.sync-chip.conflict{color:var(--hard);border-color:#f0cfcf;background:#fdf1f1}.sync-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:10px 14px 0;padding:9px 14px;border-radius:9px;background:#fdf6ec;border:1px solid #ecd9b4;color:#6d4f14;font-size:13px}.sync-banner.conflict{background:#fdf1f1;border-color:#f0cfcf;color:#7c2d2d}.sync-banner .banner-actions{margin-left:auto;display:inline-flex;gap:8px}@media print{.app-header,.main,.toast,.sync-banner{display:none!important}}@page{size:A4 landscape;margin:12mm}
