.cards strong[data-v-8499d447]{display:block;margin-top:8px;font-size:28px;color:var(--ink)}.system-panel[data-v-8499d447]{margin-bottom:18px}.system-panel-head[data-v-8499d447]{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.system-panel h2[data-v-8499d447],.panel h2[data-v-8499d447],.system-card h3[data-v-8499d447]{margin:0}.system-panel p[data-v-8499d447],.system-card p[data-v-8499d447]{margin:8px 0 0;color:var(--muted);line-height:1.7}.system-grid[data-v-8499d447]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.backup-actions[data-v-8499d447]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.engine-options[data-v-8499d447]{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.engine-card[data-v-8499d447]{display:flex;align-items:flex-start;gap:12px;padding:16px;border:2px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s,background .15s;background:var(--surface, #fff)}.engine-card input[type=radio][data-v-8499d447]{margin-top:3px;flex-shrink:0;accent-color:var(--accent, #3b82f6)}.engine-card.selected[data-v-8499d447]{border-color:var(--accent, #3b82f6);background:color-mix(in srgb,var(--accent, #3b82f6) 6%,transparent)}.engine-card-body[data-v-8499d447]{flex:1}.engine-title[data-v-8499d447]{display:flex;align-items:center;gap:8px;font-weight:600;font-size:15px;color:var(--ink);margin-bottom:6px}.engine-badge[data-v-8499d447]{font-size:11px;font-weight:600;padding:2px 7px;border-radius:10px;letter-spacing:.02em}.engine-badge.recommended[data-v-8499d447]{background:#dcfce7;color:#15803d}.engine-card p[data-v-8499d447]{margin:0 0 8px;font-size:13px;color:var(--muted);line-height:1.6}.engine-stats[data-v-8499d447]{display:flex;flex-wrap:wrap;gap:6px}.engine-stats span[data-v-8499d447]{font-size:12px;background:var(--surface-alt, #f4f4f5);padding:2px 8px;border-radius:10px;color:var(--ink)}.engine-hint[data-v-8499d447]{margin:0;font-size:13px;padding:8px 12px;border-radius:6px;border-left:3px solid}.engine-hint.success[data-v-8499d447]{background:#f0fdf4;border-color:#22c55e;color:#15803d}.engine-hint.warning[data-v-8499d447]{background:#fffbeb;border-color:#f59e0b;color:#92400e}.backup-actions article[data-v-8499d447]{min-height:88px;border:1px solid var(--line);border-radius:8px;padding:14px;display:grid;grid-template-columns:1fr auto;align-items:center;gap:8px 16px;background:#fff}.backup-actions h3[data-v-8499d447],.backup-actions p[data-v-8499d447]{margin:0}.backup-actions p[data-v-8499d447]{color:var(--muted);line-height:1.5}.compact-danger[data-v-8499d447]{border-color:var(--danger-border);background:var(--danger-bg)}.maintenance-layout[data-v-8499d447]{display:grid;gap:16px}.maintenance-list[data-v-8499d447]{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.list-title-row[data-v-8499d447]{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.list-title-row h3[data-v-8499d447]{margin:0}.list-title-row span[data-v-8499d447]{color:var(--muted);font-weight:650}.system-card[data-v-8499d447]{border:1px solid var(--line);border-radius:8px;padding:16px;display:grid;gap:14px;align-content:start}.mode-options[data-v-8499d447]{display:flex;flex-wrap:wrap;gap:10px}.mode-options label[data-v-8499d447],.check-line[data-v-8499d447]{display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-weight:650}.target-form[data-v-8499d447]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.target-form label[data-v-8499d447]{display:grid;gap:6px;color:var(--muted);font-weight:650}.target-form .check-line[data-v-8499d447]{grid-template-columns:auto 1fr;align-content:center;color:var(--ink)}.system-card:first-child .target-form label[data-v-8499d447]:nth-child(6),.system-card .target-form label[data-v-8499d447]:last-child{grid-column:span 2}.danger-zone[data-v-8499d447]{border-color:var(--danger-border);background:linear-gradient(180deg,#fff,var(--danger-bg))}.file-picker[data-v-8499d447]{display:block}.file-picker input[data-v-8499d447]{position:absolute;opacity:0;pointer-events:none}.file-picker span[data-v-8499d447],.system-card input[type=text][data-v-8499d447],.system-card input[type=date][data-v-8499d447],.system-card input[type=number][data-v-8499d447],.system-card select[data-v-8499d447],.maintenance-modal input[type=text][data-v-8499d447],.maintenance-modal input[type=date][data-v-8499d447],.maintenance-modal input[type=number][data-v-8499d447],.maintenance-modal select[data-v-8499d447]{display:block;width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:6px;background:#fff;padding:11px 12px;color:var(--ink)}.table-wrap[data-v-8499d447]{overflow:auto}table[data-v-8499d447]{width:100%;border-collapse:collapse;margin-top:14px}th[data-v-8499d447],td[data-v-8499d447]{border:1px solid var(--line);padding:12px;text-align:left}th[data-v-8499d447]{background:#eaf5f9}tbody tr.selected[data-v-8499d447]{background:#f0f8fb}.row-actions[data-v-8499d447]{display:flex;flex-wrap:wrap;gap:8px}.row-actions button[data-v-8499d447]{min-height:34px;padding:7px 10px}.danger-text[data-v-8499d447]{color:#b4232f;border-color:#f2b8bf;background:#fff7f8}.danger-text[data-v-8499d447]:disabled{color:var(--muted);border-color:var(--line);background:#f7fafc}.status-pill[data-v-8499d447]{display:inline-flex;align-items:center;min-height:24px;border:1px solid var(--line);border-radius:999px;padding:0 9px;font-size:12px;font-weight:700;color:var(--muted);background:#f7fafc}.status-pill.active[data-v-8499d447],.status-pill.confirmed[data-v-8499d447]{color:#047857;border-color:#a7f3d0;background:#ecfdf5}.status-pill.draft[data-v-8499d447]{color:#7c5a00;border-color:#fde68a;background:#fffbeb}.status-pill.closed[data-v-8499d447],.status-pill.archived[data-v-8499d447]{color:#64748b;border-color:#cbd5e1;background:#f8fafc}.empty-cell[data-v-8499d447]{color:var(--muted);text-align:center}.modal-backdrop[data-v-8499d447]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;display:grid;place-items:center;padding:24px;background:#0f172a52}.modal-card[data-v-8499d447]{width:min(820px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 24px 80px #0f172a3d}.maintenance-modal[data-v-8499d447]{padding:18px}.maintenance-modal p[data-v-8499d447]{margin:0 0 14px;color:var(--muted);line-height:1.7}.modal-head[data-v-8499d447]{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.modal-head h2[data-v-8499d447]{margin:0}.modal-head span[data-v-8499d447]{display:block;margin-top:4px;color:var(--muted);font-weight:650}.modal-actions[data-v-8499d447]{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.status-message[data-v-8499d447]{position:fixed;right:28px;bottom:24px;max-width:420px;border:1px solid var(--info-border);border-radius:8px;background:var(--info-bg);color:var(--info);padding:12px 14px;box-shadow:0 14px 30px #18303f24}.status-message.success[data-v-8499d447]{border-color:var(--success-border);background:var(--success-bg);color:var(--success)}.status-message.error[data-v-8499d447]{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}@media (max-width: 960px){.system-panel-head[data-v-8499d447],.system-grid[data-v-8499d447]{grid-template-columns:1fr;display:grid}.target-form[data-v-8499d447],.target-form label[data-v-8499d447]:nth-child(6){grid-template-columns:1fr;grid-column:auto}}:root{font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif;color:#18303f;background:radial-gradient(circle at 100% 0%,rgba(35,134,164,.12),transparent 34rem),linear-gradient(180deg,#f8fbfd,#eef5f8);--ink: #18303f;--muted: #607280;--line: #d9e5ec;--panel: #ffffff;--soft-blue: #e9f7fb;--brand: #167d99;--brand-dark: #12374b;--success: #15834f;--success-bg: #eaf8f0;--success-border: #a9ddbf;--warning: #a76105;--warning-bg: #fff6df;--warning-border: #f0cc80;--danger: #b3333b;--danger-bg: #fff0f1;--danger-border: #efb8bd;--info: #1d6ca1;--info-bg: #edf7ff;--info-border: #b8d9ef}body{margin:0}.login-page{min-height:100vh;display:grid;place-items:center;padding:24px;box-sizing:border-box}.login-panel{width:min(420px,100%);background:#fffffff7;border:1px solid var(--line);border-radius:8px;padding:30px;box-shadow:0 18px 40px #1a40561f;display:grid;gap:20px}.login-panel span{color:var(--muted)}.login-form{display:grid;gap:14px}.login-form label{display:grid;gap:7px;color:var(--muted);font-weight:650}.login-form input{box-sizing:border-box;width:100%;border:1px solid #ccdce5;border-radius:6px;padding:11px 12px;color:var(--ink);background:#fff;font:inherit}.app-shell{min-height:100vh;display:grid;grid-template-columns:232px 1fr}.sidebar{background:linear-gradient(180deg,#1e6781f7,#154e69fa),#1e6781;color:#fff;padding:24px 16px;display:grid;align-content:start;gap:18px;box-shadow:12px 0 32px #16527021}.brand{display:flex;align-items:center;gap:10px;font-size:21px;font-weight:800;letter-spacing:0;padding:4px 8px 12px}.brand-icon{color:#bdeef8;flex:0 0 auto}.nav-list{display:grid;gap:7px}.sidebar a{display:flex;align-items:center;gap:11px;color:#ffffffe0;text-decoration:none;padding:11px 12px;border-radius:6px;border:1px solid transparent;font-weight:650;line-height:1.2}.sidebar a.router-link-active,.sidebar a:hover{background:#ffffff2e;border-color:#ffffff2e;color:#fff}.sidebar a svg{color:#c6edf6;flex:0 0 auto}.sidebar a.router-link-active svg,.sidebar a:hover svg{color:#fff}.main{padding:28px 32px;min-width:0}.work-context-bar{position:sticky;top:0;z-index:20;display:flex;justify-content:flex-end;align-items:center;gap:8px;margin:-12px 0 14px;padding:8px 0;background:linear-gradient(180deg,#f8fbfd,#f8fbfddb);color:var(--muted);font-size:13px}.work-context-bar select{min-width:150px;max-width:240px;height:32px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);padding:4px 9px;font-weight:650}.work-context-bar select:last-child{min-width:210px}.activity-center{position:relative}.activity-center-button{position:relative;height:32px;display:inline-flex;align-items:center;gap:5px;white-space:nowrap}.activity-unread-badge{min-width:17px;height:17px;display:inline-grid;place-items:center;border-radius:999px;padding:0 4px;background:#d64545;color:#fff;font-size:10px;font-weight:800}.activity-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:60;width:min(420px,calc(100vw - 48px));overflow:hidden;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 18px 52px #0f26352e}.activity-popover-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;border-bottom:1px solid var(--line)}.activity-popover-head div,.activity-feed-item>span:last-child{display:grid;gap:3px;min-width:0}.activity-popover-head small,.activity-feed-item small,.activity-feed-item em{color:var(--muted);font-size:12px;font-style:normal}.activity-feed-list{max-height:min(520px,calc(100vh - 170px));overflow:auto}.activity-feed-item{width:100%;display:grid;grid-template-columns:8px minmax(0,1fr);gap:10px;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:12px 14px;background:#fff;text-align:left}.activity-feed-item:hover{background:#f5fafc}.activity-feed-status{width:7px;height:7px;margin-top:5px;border-radius:50%;background:var(--success)}.activity-feed-status.danger{background:var(--danger)}.activity-empty{margin:0;padding:28px 14px;color:var(--muted);text-align:center}.activity-history-link{width:100%;border:0;border-radius:0;padding:11px 14px;color:var(--brand);background:#f5fafc}.context-edit-button{height:32px;padding:4px 10px;white-space:nowrap}.context-editor-modal{width:min(860px,calc(100vw - 56px));display:grid;gap:16px}.modal-title-row{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.modal-title-row h2{margin:0 0 4px}.modal-title-row p{margin:0;color:var(--muted)}.context-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.context-editor-section{display:grid;gap:10px;align-content:start;padding:14px;border:1px solid var(--line);border-radius:8px;background:#fbfdfe}.context-editor-section h3{margin:0}.context-editor-section.muted{opacity:.72}.account-menu{position:relative}.account-menu>button{min-height:32px;display:inline-flex;align-items:center;gap:6px;padding:6px 9px}.account-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:30;width:190px;background:#fff;border:1px solid var(--line);border-radius:8px;box-shadow:0 16px 34px #18303f24;padding:12px;display:grid;gap:8px}.account-popover strong,.account-popover small{display:block}.account-popover small{color:var(--muted);line-height:1.4}.page-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.page-head span{color:var(--muted)}.page-head-actions{display:flex;align-items:center;gap:10px}.page-head-actions select{min-width:180px}h1{margin:4px 0 0;color:var(--ink)}button{border:1px solid var(--line);background:#fff;padding:10px 14px;border-radius:6px;cursor:pointer;color:var(--ink);font-weight:650;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease,background .15s ease}button:hover{border-color:#a9c8d7;box-shadow:0 6px 16px #18303f14;transform:translateY(-1px)}button.primary{background:linear-gradient(180deg,#1889a8,var(--brand));border-color:var(--brand);color:#fff}button.danger{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger)}button:disabled{cursor:not-allowed;opacity:.55}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:14px}.cards article,.panel{background:#fffffff5;border:1px solid var(--line);border-radius:8px;padding:18px;box-shadow:0 10px 28px #1a40560f;min-width:0}.cards article{position:relative;overflow:hidden}.cards article:before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--brand)}.cards article:nth-child(2):before{background:var(--success)}.cards article:nth-child(3):before{background:var(--warning)}.cards article:nth-child(4):before{background:var(--danger)}.clickable-panel{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.clickable-panel:hover,.clickable-panel:focus-visible{border-color:#9fc2d1;box-shadow:0 10px 24px #17344714;outline:none;transform:translateY(-1px)}.cards span,.cards strong{display:block}.cards strong{font-size:30px;color:var(--ink)}.todo{border-top:1px solid var(--line);padding-top:14px;display:grid;gap:6px}.detail-todo{gap:10px}.todo span,.todo small,.muted{color:var(--muted)}.schedule-change-detail{border:1px solid var(--info-border);border-radius:8px;padding:18px;margin-bottom:16px;background:var(--info-bg)}.schedule-change-detail .panel-head{margin-bottom:12px}.schedule-change-detail .panel-head span,.schedule-change-detail p{color:var(--muted)}.schedule-change-meta,.schedule-change-moves{display:grid;gap:10px}.schedule-change-meta{grid-template-columns:repeat(4,minmax(0,1fr));margin-bottom:14px}.schedule-change-meta span,.schedule-change-moves article{display:grid;gap:5px;padding:10px;border:1px solid var(--line);border-radius:6px;background:#fff}.schedule-change-meta strong,.schedule-change-moves span,.schedule-change-moves small{color:var(--muted)}.schedule-change-moves{grid-template-columns:repeat(2,minmax(0,1fr))}tr[role=button]{cursor:pointer}tr.selected-record td{background:var(--info-bg)}.panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:14px}.panel-head h2{margin:0}.panel-head span{color:var(--muted)}.panel-actions{display:flex;align-items:center;gap:10px}.list-filter{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:13px;font-weight:650}.list-filter input{box-sizing:border-box;width:180px;border:1px solid #ccdce5;border-radius:6px;padding:8px 10px;color:var(--ink);background:#fff;font:inherit}.list-filter input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #167d9924;outline:none}.file-action-button{align-items:center;background:#f7fcfe;border:1px solid #ccdce5;border-radius:6px;color:var(--ink);cursor:pointer;display:inline-flex;font-size:13px;font-weight:750;min-height:38px;padding:0 14px}.file-action-button input{display:none}.primary-file-action{background:var(--brand);border-color:var(--brand);color:#fff}.tabs{display:flex;gap:8px;margin-bottom:14px}.tabs button{min-width:84px}.tabs button.active{background:var(--ink);border-color:var(--ink);color:#fff}.workspace{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:14px;align-items:start}.editor{background:#fffffffa;border:1px solid var(--line);border-radius:8px;padding:18px;display:grid;gap:14px;box-shadow:0 10px 28px #1a40560f}.editor h2{margin:0;font-size:18px}.editor label{display:grid;gap:7px;color:var(--muted);font-size:14px}.editor input,.editor select,.editor textarea,.toolbar input,.toolbar select{box-sizing:border-box;width:100%;border:1px solid #ccdce5;border-radius:6px;padding:10px 11px;color:var(--ink);background:#fff;font:inherit}.editor input:focus,.editor select:focus,.editor textarea:focus,.toolbar input:focus,.toolbar select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #167d9924;outline:none}.editor textarea{resize:vertical}.teacher-combobox-field{position:relative;display:grid;align-content:start;gap:7px;color:var(--muted);font-size:14px}.teacher-combobox{position:relative}.teacher-options{position:absolute;z-index:20;top:calc(100% + 5px);left:0;right:0;max-height:280px;overflow-y:auto;padding:5px;border:1px solid #ccdce5;border-radius:6px;background:#fff;box-shadow:0 14px 30px #1a40562e}.teacher-options button{width:100%;display:grid;gap:2px;padding:9px 10px;border:0;background:#fff;text-align:left}.teacher-options button:hover,.teacher-options button.selected{background:var(--soft-blue)}.teacher-options button strong{color:var(--ink)}.teacher-options button small,.teacher-selection-hint{color:var(--muted)}.teacher-options p{margin:0;padding:12px 10px;color:var(--muted)}.editor .check-row{grid-template-columns:18px 1fr;align-items:center}.editor .check-row input{width:16px}.option-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px}.option-chip{border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--ink);display:flex;align-items:center;gap:7px;padding:9px 10px;cursor:pointer}.option-chip input{width:15px}.option-chip.selected{background:var(--info-bg);border-color:var(--info-border);color:var(--info)}.permission-picker{display:grid;gap:12px}.permission-picker section{border:1px solid var(--line);border-radius:6px;background:#fbfdfe;padding:12px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.permission-picker strong{grid-column:1 / -1;color:var(--ink)}.temp-password{border:1px solid var(--warning-border);border-radius:8px;background:var(--warning-bg);padding:12px;display:grid;gap:8px}.temp-password span{color:var(--warning);font-weight:700}.temp-password strong{font-size:20px;letter-spacing:0}.temp-password p{margin:0;color:var(--ink);line-height:1.6;white-space:pre-line}.temp-password small{color:var(--success);font-weight:700}.password-modal{width:min(420px,calc(100vw - 56px))}.modal-card.user-admin-modal{width:min(760px,calc(100vw - 56px))}.modal-card.user-admin-small-modal{width:min(560px,calc(100vw - 56px))}.rule-template-layout{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);gap:20px;align-items:start}.rule-template-list,.rule-template-editor{display:grid;gap:14px}.template-items{display:grid;gap:10px;max-height:calc(100vh - 320px);overflow:auto;padding-right:4px}.template-item{display:grid;gap:5px;width:100%;padding:13px 14px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);text-align:left;cursor:pointer}.template-item:hover,.template-item.selected{border-color:var(--brand);background:var(--soft-blue)}.template-item strong{font-size:15px}.template-item-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.template-enabled-check{display:inline-flex;align-items:center;gap:5px;color:var(--muted);font-size:13px;cursor:pointer}.template-enabled-check input{width:14px}.template-item span,.template-item small{color:var(--muted);line-height:1.45}.rule-template-form{display:grid;gap:14px}.rule-template-form textarea{min-height:430px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,Liberation Mono,monospace;line-height:1.55}.personnel-settings-modal{width:min(1080px,calc(100vw - 56px));max-height:calc(100vh - 56px);overflow:auto}.personnel-settings-actions{justify-content:flex-end}.personnel-editor-modal{width:min(860px,calc(100vw - 56px));max-height:calc(100vh - 56px);overflow:auto}.full-span{grid-column:1 / -1}.modal-actions{display:flex;justify-content:flex-end;gap:10px}.form-block{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:8px}.form-block strong{color:var(--ink)}.form-block small{color:var(--muted);line-height:1.45}.section-title-row{display:flex;justify-content:space-between;gap:12px;align-items:start}.section-title-row div{display:grid;gap:5px}.grade-period-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 10px}.grade-period-grid label{color:var(--muted)}.teacher-option-grid{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:6px;padding:10px;background:#fbfdfe}.subject-workspace{display:block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0c22303d;display:grid;place-items:center;padding:28px}.modal-card{width:min(1040px,calc(100vw - 56px));max-height:calc(100vh - 64px);overflow:auto}.subject-modal{gap:16px}.subject-modal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.subject-modal-grid.one-col{grid-template-columns:1fr}.subject-modal-grid .check-row{align-content:center}.inline-section{display:grid;gap:8px}.subject-modal-grid .inline-section{grid-column:1 / -1}.compact-section .option-grid{grid-template-columns:repeat(auto-fit,minmax(76px,1fr))}.section-title{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:baseline}.section-title span{color:var(--muted);font-size:13px}.subject-modal-grid small{color:var(--muted);font-size:12px;line-height:1.5}.fusion-rule-guide{display:grid;gap:12px;border:1px solid var(--line);border-radius:6px;background:#f8fbfc;padding:12px}.guide-head{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:baseline;justify-content:space-between}.guide-head span,.advanced-rule-editor p{color:var(--muted);font-size:13px}.formula-visual{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.formula-visual div{display:grid;gap:4px;border:1px solid #d9e7ee;border-radius:6px;background:#fff;padding:9px 10px}.formula-visual code{color:var(--ink);font-size:13px;font-weight:800}.formula-visual span{color:var(--muted);font-size:12px;line-height:1.5}.advanced-rule-editor{border-top:1px solid var(--line);padding-top:10px}.advanced-rule-editor summary{cursor:pointer;color:var(--brand);font-weight:800}.inline-input-action{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.inline-input-action button{white-space:nowrap}.subject-component-list{display:grid;gap:8px}.subject-component-row{display:grid;grid-template-columns:minmax(180px,1fr) minmax(130px,160px) auto;gap:10px;align-items:end}.subject-component-row label{gap:4px}.modal-grade-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.free-period-modal{width:min(1120px,calc(100vw - 56px))}.teacher-unavailable-layout{display:grid;gap:20px}.teacher-unavailable-layout h3{margin:0 0 10px;color:var(--ink);font-size:15px}.teacher-unavailable-scope,.teacher-unavailable-slots,.teacher-unavailable-picker{min-width:0}.teacher-unavailable-picker{border-top:1px solid var(--line);padding-top:16px}.teacher-unavailable-filters{display:grid;grid-template-columns:minmax(200px,320px) minmax(150px,200px) minmax(150px,200px) auto minmax(360px,1fr);gap:12px;align-items:end}.teacher-unavailable-filters label{display:grid;gap:6px;color:var(--muted);font-size:14px}.teacher-unavailable-enabled{min-height:42px;align-content:center}.teacher-unavailable-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;min-height:42px;white-space:nowrap}.teacher-unavailable-options{grid-template-columns:repeat(4,minmax(180px,1fr));max-height:420px;overflow:auto}.modal-card.rules-modal.free-period-modal:has(.teacher-unavailable-layout){width:min(1420px,calc(100vw - 40px))}.free-period-layout{display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr);gap:18px;align-items:start}.free-period-layout h3{margin:0 0 10px;color:var(--ink);font-size:15px}.slot-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.slot-head .action-row{margin-top:0}.free-slot-grid{display:grid;grid-template-columns:96px repeat(5,minmax(86px,1fr));border:1px solid var(--line);border-radius:6px;overflow:hidden}.slot-corner,.slot-day,.slot-period,.slot-cell{min-height:42px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;place-items:center;background:#fff}.slot-corner,.slot-day,.slot-period{color:#234152;font-weight:800;background:linear-gradient(180deg,#edf6fa,#e4f0f6)}.slot-cell{color:var(--muted);border-radius:0;box-shadow:none;min-width:0}.slot-cell:hover{background:#f4fbfe;transform:none}.slot-cell.selected{background:var(--warning-bg);color:var(--warning);font-weight:800}.teacher-picker{margin-top:16px}.quick-filter{width:100%;margin-bottom:10px}.teacher-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:10px}.compact-options{max-height:300px;overflow:auto}.object-options{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));max-height:220px}.period-options{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}.inline-tag{display:inline-flex;align-items:center;min-height:26px;margin:2px 6px 2px 0;padding:4px 8px;border:1px solid var(--line);border-radius:6px;background:#f5fbfd;color:#315063;font-size:12px;font-weight:700}.modal-actions{position:sticky;bottom:0;z-index:2;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);margin:0 -2px -2px;padding:14px 2px 2px;background:#fffffff5;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.editor .inline-check{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:7px;color:var(--ink)}.class-subject-block{gap:12px}.class-subject-grid{display:grid;grid-template-columns:minmax(180px,1.2fr) repeat(3,minmax(120px,.8fr)) minmax(130px,.8fr);gap:12px}.pending-subject-strip{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border:1px dashed #b8d9ef;border-radius:6px;background:#f7fcfe;padding:9px 10px}.teacher-picker{display:grid;gap:8px}.teacher-picker-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,320px);gap:12px;align-items:end}.teacher-picker-caption,.selected-teacher-strip{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px}.selected-teacher-strip.compact{justify-content:flex-start;align-items:center}.selected-count{color:var(--ink);font-weight:800}.teacher-search{display:grid;gap:6px;color:var(--muted);font-size:13px}.teacher-search input{box-sizing:border-box;width:100%;border:1px solid #ccdce5;border-radius:6px;padding:9px 10px;color:var(--ink);background:#fff;font:inherit}.teacher-search input:focus{border-color:var(--brand);box-shadow:0 0 0 3px #167d9924;outline:none}.quick-filter-bar{display:grid;gap:8px}.quick-letter-row{display:flex;flex-wrap:wrap;gap:6px}.quick-letter-row button{min-width:38px;min-height:30px;padding:5px 8px;display:inline-flex;align-items:center;justify-content:center;gap:4px;font-size:13px;line-height:1}.quick-letter-row button.active{background:var(--ink);border-color:var(--ink);color:#fff}.quick-letter-row button small{color:currentColor;font-size:10px;opacity:.72}.class-teacher-grid{grid-template-columns:repeat(3,minmax(0,1fr));max-height:220px}.teacher-choice span{display:grid;gap:2px}.teacher-choice strong{color:var(--ink)}.teacher-choice em{color:var(--brand);font-style:normal;font-size:12px}.teacher-choice small{color:var(--muted);font-size:12px}.teacher-chip{display:inline-flex;align-items:center;gap:6px;margin:2px 5px 2px 0;border:1px solid var(--info-border);border-radius:999px;background:var(--info-bg);color:var(--info);padding:5px 9px;font-size:12px;font-weight:750;white-space:nowrap}.teacher-chip.removable button{border:0;background:transparent;box-shadow:none;color:var(--danger);padding:0;font-size:12px;transform:none}.teacher-chip.removable span{color:var(--danger);font-weight:750}.teacher-chip.removable:hover{border-color:var(--danger-border);background:var(--danger-bg);color:var(--danger);box-shadow:none;transform:none}.class-assignment-list{display:grid;gap:8px}.compact-table th,.compact-table td{padding:9px 10px}.empty-inline{margin:0;color:var(--muted)}.data-panel{overflow-x:auto}.import-panel{display:grid;grid-template-columns:minmax(260px,1fr) minmax(520px,1.6fr);gap:18px;align-items:center;margin-bottom:14px}.import-panel h2,.import-panel p{margin:0}.import-panel p{margin-top:6px;color:var(--muted);line-height:1.6}.import-form{display:grid;grid-template-columns:minmax(160px,1fr) minmax(180px,1.1fr) minmax(190px,1fr) minmax(220px,1.2fr);gap:10px;align-items:center}.import-form select{box-sizing:border-box;width:100%;border:1px solid #ccdce5;border-radius:6px;padding:10px 11px;color:var(--ink);background:#fff;font:inherit}.matrix-head-actions{position:relative}.matrix-head-actions .primary{display:inline-flex;align-items:center;gap:6px}.advanced-tool-menu{position:relative}.advanced-tool-popover{position:absolute;right:0;top:calc(100% + 8px);z-index:15;width:220px;display:grid;gap:8px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:0 14px 40px #0f172a24}.advanced-tool-popover button{width:100%;justify-content:flex-start}.matrix-import-modal{width:min(920px,calc(100vw - 48px))}.matrix-import-modal>p{margin:0 0 14px;color:var(--muted);line-height:1.7}.operation-result-dialog{position:fixed;z-index:55;top:50%;left:50%;width:min(1120px,calc(100vw - 64px));max-height:calc(100vh - 80px);margin:0;overflow:auto;transform:translate(-50%,-50%);box-shadow:0 0 0 100vmax #0c223047,0 20px 60px #0f263538}.import-rule-summary{grid-column:1 / -1;display:grid;gap:4px;margin-top:4px;padding:10px 12px;border:1px solid var(--line);border-radius:6px;background:#f7fbfd}.import-rule-summary span{color:var(--muted);line-height:1.5}.import-rule-editor{margin-bottom:14px}.rule-editor-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:12px}.rule-editor-grid label{display:grid;gap:6px;color:var(--muted);font-size:14px}.rule-editor-grid input,.rule-editor-grid select,.rule-editor-grid textarea{box-sizing:border-box;width:100%;border:1px solid #ccdce5;border-radius:6px;padding:10px 11px;color:var(--ink);background:#fff;font:inherit}.rule-editor-grid .inline-check{grid-template-columns:18px 1fr;align-items:center;color:var(--ink)}.rule-editor-grid .inline-check input{width:16px}.rule-editor-note,.rule-editor-grid .modal-actions{grid-column:1 / -1}.file-picker{border:1px dashed #a7c7d7;background:#f7fcfe;border-radius:6px;color:var(--ink);display:flex;align-items:center;gap:8px;padding:10px 11px;cursor:pointer}.file-picker input{display:none}.matrix-check{display:grid;grid-template-columns:18px 1fr;align-items:center;gap:7px;color:var(--muted);font-size:14px}.matrix-check input{width:16px}.import-result{margin-bottom:14px}.result-grid{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:10px}.result-grid span{background:#f7fbfd;border:1px solid var(--line);border-radius:6px;color:var(--muted);padding:10px}.result-grid strong{color:var(--ink);display:block;font-size:22px;margin-top:2px}.warning-list{color:var(--warning);margin:12px 0 0;padding-left:20px}.fusion-confirm-list{display:grid;gap:10px}.fusion-confirm-card{border:1px solid var(--info-border);border-radius:6px;background:var(--info-bg);padding:12px}.fusion-confirm-card p{margin:8px 0;color:var(--ink)}.fusion-confirm-card small{color:var(--muted)}.split-confirm-list{display:grid;gap:10px;margin-top:12px}.split-confirm-card{background:#fbfdff;border:1px solid var(--line);border-radius:6px;padding:12px}.split-confirm-title{align-items:center;display:flex;gap:12px;justify-content:space-between;margin-bottom:8px}.split-confirm-title strong{color:var(--ink);display:block}.split-confirm-title small{color:var(--muted)}.split-total-pill{border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:13px;padding:5px 9px;white-space:nowrap}.split-total-pill.ok{background:#eefbf3;border-color:#bee9cd;color:#237347}.split-total-pill.warn{background:#fff8e8;border-color:#f4d38b;color:#9a6a00}.split-confirm-card p,.split-warning{color:var(--muted);margin:8px 0}.split-warning{color:var(--warning);font-size:13px}.split-table-wrap{border:1px solid var(--line);border-radius:6px;overflow:auto}.split-confirm-table th,.split-confirm-table td{white-space:nowrap}.split-confirm-table input{border:1px solid #ccdce5;border-radius:6px;color:var(--ink);font:inherit;padding:7px 9px;width:92px}.matrix-audit-panel{margin-bottom:14px}.matrix-audit-panel .panel-head button{display:inline-flex;align-items:center;gap:7px}.audit-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:10px;margin-bottom:12px}.audit-card{border:1px solid var(--line);border-radius:6px;padding:12px;background:#f9fcfd}.audit-card span,.audit-card small{color:var(--muted);display:block}.audit-card strong{display:block;font-size:25px;margin:3px 0}.audit-card.danger{background:var(--danger-bg);border-color:var(--danger-border)}.audit-card.danger strong{color:var(--danger)}.audit-card.warning{background:var(--warning-bg);border-color:var(--warning-border)}.audit-card.warning strong{color:var(--warning)}.audit-card.info{background:var(--info-bg);border-color:var(--info-border)}.audit-card.info strong{color:var(--info)}.audit-card.success{background:var(--success-bg);border-color:var(--success-border)}.audit-card.success strong{color:var(--success)}.audit-metrics{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}.audit-metrics span{border:1px solid var(--line);border-radius:999px;color:var(--muted);background:#fff;padding:6px 10px;font-size:13px}.audit-empty{display:flex;align-items:center;gap:8px;color:var(--success);background:var(--success-bg);border:1px solid var(--success-border);border-radius:6px;padding:12px}.audit-issue-list{display:grid;gap:10px}.audit-issue{border:1px solid var(--line);border-radius:6px;background:#fff;padding:12px}.audit-issue.hard{border-color:var(--danger-border);background:var(--danger-bg)}.audit-issue.warning{border-color:var(--warning-border);background:var(--warning-bg)}.audit-issue.soft{border-color:var(--info-border);background:var(--info-bg)}.audit-issue-title{display:flex;align-items:flex-start;gap:9px;color:var(--ink)}.audit-issue-title strong,.audit-issue-title span{display:block}.audit-issue-title span{color:var(--muted);font-size:13px;margin-top:2px}.audit-issue p{margin:9px 0;color:var(--muted)}.audit-suggestion{border-left:3px solid rgba(22,125,153,.35);color:var(--ink);padding-left:10px}.audit-examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.audit-examples span{background:#ffffffb8;border:1px solid rgba(96,114,128,.22);border-radius:6px;color:#455967;font-size:13px;padding:5px 8px}.matrix-panel{padding:0;overflow:hidden;max-width:100%}.matrix-panel .panel-head{padding:14px 16px 0;margin-bottom:10px}.matrix-panel .panel-head h2{font-size:22px}.matrix-scroll{width:100%;max-width:100%;max-height:calc(100vh - 300px);overflow:auto;border-top:1px solid var(--line)}.matrix-table{--matrix-class-col: 98px;--matrix-head-teacher-col: 90px;--matrix-total-periods-col: 70px;--matrix-subject-col: 94px;width:max-content;min-width:100%;table-layout:fixed;font-size:13px}.matrix-table th,.matrix-table td{box-sizing:border-box;min-width:var(--matrix-subject-col);width:var(--matrix-subject-col);max-width:var(--matrix-subject-col);padding:5px 7px;line-height:1.3;word-break:keep-all;overflow-wrap:normal;white-space:normal}.matrix-table thead th{position:sticky;top:0;z-index:3;vertical-align:middle}.matrix-table .class-col{left:0;min-width:var(--matrix-class-col);width:var(--matrix-class-col);max-width:var(--matrix-class-col);z-index:4}.matrix-table .head-teacher-col{left:var(--matrix-class-col);min-width:var(--matrix-head-teacher-col);width:var(--matrix-head-teacher-col);max-width:var(--matrix-head-teacher-col);z-index:4}.matrix-table .total-periods-col{left:calc(var(--matrix-class-col) + var(--matrix-head-teacher-col));min-width:var(--matrix-total-periods-col);width:var(--matrix-total-periods-col);max-width:var(--matrix-total-periods-col);text-align:center;z-index:4}.matrix-table .class-col strong{display:block;font-size:14px;line-height:1.25}.matrix-table .class-col small{display:block;margin-top:3px;font-size:12px;line-height:1.2}.matrix-table tbody .sticky-col{position:sticky;background:#fff}.matrix-table thead .sticky-col{z-index:5}.subject-head{padding:0}.subject-head button{width:100%;height:100%;min-height:36px;padding:5px 7px;border:0;border-radius:0;background:transparent;color:inherit;box-shadow:none;white-space:normal;line-height:1.25;font-size:13px}.subject-head button:hover,.subject-head.selected button{background:#d9eef7;box-shadow:none;transform:none}.matrix-cell-line{display:block;min-width:0;white-space:normal}.matrix-cell-line+.matrix-cell-line{border-top:1px dashed var(--line);margin-top:3px;padding-top:3px}.matrix-cell-line strong{color:var(--brand);margin-right:3px}.matrix-cell-line small{color:var(--muted);font-size:12px}.matrix-detail-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:20;background:#0c223038;display:grid;place-items:center;padding:28px}.matrix-detail{width:min(980px,calc(100vw - 56px));max-height:calc(100vh - 70px);display:grid;grid-template-rows:auto minmax(0,1fr)}.matrix-detail .panel-head{margin-bottom:10px}.matrix-fullscreen-backdrop{z-index:24;padding:0;place-items:stretch}.matrix-fullscreen{width:100vw;height:100vh;max-height:100vh;border-radius:0;display:grid;grid-template-rows:auto minmax(0,1fr);padding:0}.matrix-fullscreen .panel-head{padding:14px 18px;margin-bottom:0;border-bottom:1px solid var(--line)}.matrix-fullscreen .matrix-scroll{max-height:none;height:100%;border-top:0}.detail-table-wrap{overflow:auto;border:1px solid var(--line)}.detail-edit-table th,.detail-edit-table td{white-space:nowrap}.detail-edit-table input{width:86px;border:1px solid #ccdce5;border-radius:6px;padding:8px 10px;color:var(--ink);font:inherit}table{border-collapse:collapse;width:100%}th,td{border:1px solid var(--line);padding:12px;text-align:left;vertical-align:top}th{background:linear-gradient(180deg,#edf6fa,#e4f0f6);color:#234152;font-weight:800}tr.selected td{background:var(--soft-blue)}tbody tr:hover td{background:#fbfdfe}td small{display:block;color:var(--muted);margin-top:4px}.grade-period-summary{line-height:1.6}.grade-period-item{display:block;white-space:nowrap}.period-number{color:var(--brand);font-weight:800}.message{position:fixed;right:22px;bottom:22px;margin:0;border:1px solid var(--success-border);background:var(--success-bg);color:var(--success);border-radius:8px;padding:12px 14px}.issue-panel{margin-top:14px}.issue{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:14px 0}.issue p,.issue small{margin:0;color:var(--muted)}.issue .related-lesson{grid-column:1 / -1;color:var(--brand);font-weight:700}.issue .link-button{justify-self:start;width:auto;padding:6px 10px}.toolbar{display:grid;grid-template-columns:minmax(220px,320px) 120px;gap:8px;align-items:center}.table-actions{white-space:nowrap}.select-col{width:54px;text-align:center}.bulk-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px 12px;border:1px solid var(--line);border-radius:6px;background:#f8fbfd;padding:10px 12px;margin-bottom:12px}.bulk-toolbar>span,.bulk-role-options>span,.bulk-position-options>span{color:var(--muted);font-weight:750}.bulk-toolbar button.role-action{border-color:#087844;background:linear-gradient(180deg,#20a966,#087844);box-shadow:0 5px 14px #08784438;color:#fff}.bulk-toolbar button.role-action:hover:not(:disabled){border-color:#056337;background:linear-gradient(180deg,#25b970,#056b3b);box-shadow:0 7px 18px #0878444d}.bulk-toolbar button.role-action:disabled{border-color:#55b784;background:#dff5e9;box-shadow:0 3px 10px #0878441f;color:#087844;opacity:1}.bulk-role-options,.bulk-position-options{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.bulk-role-options .option-chip{padding:7px 9px}.bulk-position-options select{min-width:120px;border:1px solid #ccdce5;border-radius:6px;padding:9px 10px;color:var(--ink);background:#fff;font:inherit}.table-actions button+button{margin-left:8px}.action-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}.status-pill{display:inline-block;border-radius:999px;padding:5px 9px;font-size:12px;border:1px solid transparent;font-weight:750;line-height:1;white-space:nowrap}.status-pill.success{background:var(--success-bg);border-color:var(--success-border);color:var(--success)}.status-pill.warning{background:var(--warning-bg);border-color:var(--warning-border);color:var(--warning)}.status-pill.danger{background:var(--danger-bg);border-color:var(--danger-border);color:var(--danger)}.status-pill.info{background:var(--info-bg);border-color:var(--info-border);color:var(--info)}.status-pill.muted-pill{background:#f4f7f9;border-color:var(--line);color:var(--muted)}.dingtalk-workspace{grid-template-columns:minmax(280px,360px) minmax(0,1fr)}.issue span{border-radius:999px;padding:4px 8px;font-size:12px}.issue span.hard{background:var(--danger-bg);color:var(--danger);border:1px solid var(--danger-border)}.issue span.soft{background:var(--warning-bg);color:var(--warning);border:1px solid var(--warning-border)}.empty{border-top:1px solid var(--line);color:var(--muted);padding-top:14px}.scheduling-workspace{grid-template-columns:minmax(0,1fr)}.schedule-panel-head{align-items:end;flex-wrap:wrap}.schedule-panel-actions{align-items:end;margin-top:0}.compact-field{display:grid;gap:6px;min-width:220px;color:var(--muted);font-size:13px}.compact-field select{box-sizing:border-box;width:100%;border:1px solid #ccdce5;border-radius:6px;padding:9px 10px;color:var(--ink);background:#fff;font:inherit}.compact-field select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #167d9924;outline:none}.schedule-editor-modal{width:min(620px,calc(100vw - 56px))}.timetable-workspace{grid-template-columns:minmax(220px,280px) minmax(0,1fr)}.substitution-workspace{grid-template-columns:minmax(300px,360px) minmax(0,1fr)}.substitution-tabs{margin-bottom:18px}.visual-adjustment-layout{display:grid;grid-template-columns:1fr;align-items:start;gap:18px}.visual-schedule-panel{overflow:auto}.adjust-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#14283773;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;display:flex;align-items:center;justify-content:center;padding:20px}.adjust-modal{width:min(680px,calc(100vw - 40px));max-height:calc(100vh - 60px);display:flex;flex-direction:column;overflow:hidden;box-shadow:0 24px 64px #0f233247}.adjust-modal-head{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;padding-bottom:14px;margin-bottom:0;border-bottom:1px solid var(--line)}.adjust-modal-body{flex:1;overflow-y:auto;padding-top:16px;display:grid;gap:14px;align-content:start}.adjust-modal-close{width:32px;height:32px;padding:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0}.adjust-modal-hint{margin:0;padding:10px 12px;background:var(--info-bg);border-left:3px solid var(--info);color:var(--muted);border-radius:0 6px 6px 0}.adjust-modal-enter-active,.adjust-modal-leave-active{transition:opacity .2s ease}.adjust-modal-enter-active .adjust-modal,.adjust-modal-leave-active .adjust-modal{transition:transform .22s cubic-bezier(.34,1.56,.64,1),opacity .2s ease}.adjust-modal-enter-from,.adjust-modal-leave-to{opacity:0}.adjust-modal-enter-from .adjust-modal{transform:translateY(16px) scale(.97)}.adjust-modal-leave-to .adjust-modal{transform:translateY(8px) scale(.98);opacity:0}.cell-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90}.cell-menu{position:absolute;z-index:91;width:268px;background:#fff;border:1px solid var(--line);border-radius:12px;box-shadow:0 12px 40px #0f23322e;overflow:hidden;animation:cellMenuIn .15s cubic-bezier(.34,1.56,.64,1)}@keyframes cellMenuIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cell-menu-title{padding:10px 14px 8px;font-size:12px;font-weight:800;color:var(--muted);border-bottom:1px solid var(--line);letter-spacing:.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-menu-item{width:100%;display:flex;align-items:center;gap:12px;padding:12px 14px;border:none;border-radius:0;background:transparent;text-align:left;cursor:pointer;transition:background .12s ease;box-shadow:none}.cell-menu-item:not(:last-child){border-bottom:1px solid #f0f5f8}.cell-menu-item:hover{background:var(--soft-blue);transform:none;box-shadow:none}.cell-menu-item:active{background:#dbeef7}.cell-menu-icon{width:36px;height:36px;border-radius:8px;background:linear-gradient(135deg,#e8f5fb,#d4edf7);display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0;color:var(--brand);font-style:normal}.cell-menu-item:nth-child(3) .cell-menu-icon{background:linear-gradient(135deg,#e8f8f0,#d4f0e4);color:var(--success)}.cell-menu-item span:not(.cell-menu-icon){display:grid;gap:2px}.cell-menu-item strong{font-size:14px;color:var(--ink)}.cell-menu-item small{font-size:12px;color:var(--muted);font-weight:400}.visual-stepbar{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-bottom:12px}.visual-stepbar span{border:1px solid var(--line);border-radius:999px;padding:7px 11px;color:var(--muted);background:#fff;font-size:13px;font-weight:700}.visual-stepbar span.active{border-color:var(--brand);color:var(--brand);background:var(--soft-blue)}.visual-stepbar button{margin-left:auto}.visual-cross-class-hint{margin:0 0 12px;border-left:3px solid var(--info);padding:8px 10px;color:var(--muted);background:var(--info-bg)}.visual-adjustment-cell{cursor:pointer;transition:background .15s ease,outline-color .15s ease,transform .15s ease}.visual-adjustment-cell:hover{background:var(--soft-blue);transform:translateY(-1px)}.visual-adjustment-cell.available{outline:1px dashed #9cc9d7;outline-offset:-5px}.visual-adjustment-cell.target{outline:3px solid var(--warning);outline-offset:-3px}.visual-adjustment-cell.executable{outline-color:var(--success);background:var(--success-bg)}.visual-adjustment-cell.conflict{outline-color:var(--danger);background:var(--danger-bg)}.visual-source-card,.visual-move-list article,.visual-candidate-picker{border:1px solid var(--line);border-radius:8px;padding:13px;background:#fff}.visual-source-card,.visual-move-list,.visual-move-list article,.visual-candidate-picker{display:grid;gap:7px}.visual-source-card span,.visual-move-list span,.visual-move-list small{color:var(--muted)}.visual-candidate-picker select{width:100%}.visual-target-card{border-color:var(--brand);background:var(--soft-blue)}.visual-target-card>span:first-child{color:var(--brand);font-weight:700}.visual-target-card strong em{font-style:normal;font-weight:400;color:var(--muted)}.source-card-date{display:flex;align-items:center;gap:6px;margin-top:4px;padding:6px 10px;border-radius:6px;background:#167d9914;border:1px solid rgba(22,125,153,.2);font-size:13px;color:var(--brand)}.source-card-date span{font-weight:600}.source-card-date em{font-style:normal;color:var(--muted);font-size:12px}.source-card-date.permanent{background:#d9770614;border-color:#d9770640;color:#b45309}.source-card-date.permanent em{color:#92400e}.label-with-hint{display:flex;align-items:baseline;gap:6px}.label-hint{font-size:11px;color:var(--muted);font-weight:400;font-style:normal}.target-placeholder{font-size:13px;color:var(--muted);font-style:italic}.target-slot-select{width:100%;border:1px solid #ccdce5;border-radius:6px;padding:9px 10px;color:var(--ink);background:#fff;font:inherit;font-size:13px;margin-top:2px}.target-slot-select:focus{border-color:var(--brand);box-shadow:0 0 0 3px #167d9924;outline:none}.candidate-order-note{color:var(--muted);margin:0}.candidate-teacher-picker{display:grid;grid-template-columns:minmax(160px,.8fr) minmax(250px,1.2fr);gap:10px;align-items:start}.candidate-teacher-list{max-height:240px;overflow:auto;display:grid;gap:5px;padding:6px;border:1px solid var(--line);border-radius:8px;background:#fff}.candidate-teacher-list button{text-align:left;border-color:transparent;background:transparent}.candidate-teacher-list button:hover,.candidate-teacher-list button:focus,.candidate-teacher-list button.selected{border-color:var(--brand);background:var(--brand-soft)}.candidate-teacher-empty{color:var(--muted);padding:8px}.candidate-day-schedule{border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow);padding:10px;display:grid;gap:8px}.candidate-day-schedule>div{display:flex;justify-content:space-between;gap:8px}.candidate-day-schedule>div span,.candidate-day-schedule li span{color:var(--muted)}.candidate-day-schedule ol{list-style:none;display:grid;gap:4px;margin:0;padding:0}.candidate-day-schedule li{display:grid;grid-template-columns:68px 1fr;gap:8px;padding:6px 8px;border-radius:6px;background:var(--success-bg)}.candidate-day-schedule li.occupied{background:var(--warning-bg)}.visual-issue-list{display:grid;gap:8px}.visual-issue-list article{display:grid;gap:5px;border:1px solid var(--warning-border);border-radius:8px;padding:11px;background:var(--warning-bg)}.visual-issue-list article.hard{border-color:var(--danger-border);background:var(--danger-bg)}.visual-issue-list span{color:var(--muted)}.visual-execute{width:100%}.audit-log-head{align-items:end;flex-wrap:wrap}.audit-log-filters{display:flex;flex-wrap:wrap;gap:8px}.audit-log-filters input,.audit-log-filters select{min-height:38px;border:1px solid var(--line);border-radius:6px;padding:7px 10px;background:#fff;color:var(--ink)}.audit-log-table small{display:block;margin-top:4px;color:var(--muted)}.audit-log-table details{max-width:240px}.audit-log-table summary{cursor:pointer;color:var(--info);font-weight:700}.audit-log-table code{display:block;margin-top:6px;white-space:normal;word-break:break-all;color:var(--muted)}.audit-time{min-width:150px}.audit-pagination{display:flex;justify-content:flex-end;align-items:center;gap:10px;margin-top:14px;color:var(--muted)}.report-context-controls,.report-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.workload-note{margin-bottom:16px;border-left:4px solid #3d91ad}.workload-note p{margin:6px 0 0;color:#607483}.report-filter-head{align-items:flex-end}.workload-report-table{min-width:1180px}.workload-report-table td small{display:block;margin-top:4px;color:#7a8d99}.period-positive{color:#168253;font-weight:700}.period-negative{color:#bb3e47;font-weight:700}.adjustment-scope-fields{display:grid;gap:10px;margin:12px 0;padding:12px;border:1px solid #d8e5eb;border-radius:10px;background:#f7fbfd}.adjustment-scope-fields label{display:grid;gap:5px;color:#526a78;font-size:13px}.effective-date-control{display:flex;align-items:center;gap:6px;color:#607483;font-size:13px}.adjustment-workspace{display:grid;grid-template-columns:minmax(280px,360px) minmax(0,1fr);align-items:start;gap:18px}.adjustment-form{grid-row:span 8;position:sticky;top:18px}.adjustment-form h2,.adjustment-form p{margin:4px 0 0}.eyebrow{color:var(--brand);font-size:12px;font-weight:800;letter-spacing:.08em}.adjustment-empty,.adjustment-ready{border:1px dashed var(--line);border-radius:8px;padding:24px;display:grid;gap:8px;color:var(--muted);background:#fff}.adjustment-empty strong,.adjustment-ready{color:var(--ink)}.adjustment-moves{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.adjustment-moves article,.candidate-picker{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}.adjustment-moves article{display:grid;gap:7px}.adjustment-moves span,.adjustment-moves small,.candidate-picker span{color:var(--muted)}.candidate-picker{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(300px,1.2fr);align-items:center;gap:16px}.candidate-picker div{display:grid;gap:5px}.candidate-picker select{width:100%}.adjustment-issues{display:grid;gap:10px}.adjustment-issues article{display:grid;grid-template-columns:auto 1fr;gap:12px;border:1px solid var(--warning-border);border-radius:8px;padding:13px;background:var(--warning-bg)}.adjustment-issues article.hard{border-color:var(--danger-border);background:var(--danger-bg)}.adjustment-issues article>span{font-weight:800;color:var(--warning)}.adjustment-issues article.hard>span{color:var(--danger)}.adjustment-issues p{margin:5px 0;color:var(--muted)}.adjustment-actions{display:flex;justify-content:flex-end;gap:10px}.schedule-grid{display:grid;grid-template-columns:76px repeat(5,minmax(118px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);min-width:720px}.office-grid{grid-template-columns:76px repeat(5,minmax(180px,1fr))}.grid-head,.period-label,.lesson-cell{border:0;border-radius:0;background:#fff;min-height:62px;padding:10px;text-align:left}.grid-head{min-height:auto;background:#e4f0f6;color:#234152;font-weight:700}.period-label{color:var(--muted);font-weight:700}.lesson-cell{display:grid;align-content:start;gap:5px}.lesson-cell strong,.lesson-cell span{display:block}.lesson-cell.selected{outline:2px solid var(--brand);outline-offset:-2px;background:var(--soft-blue)}@media (max-width: 920px){.app-shell{grid-template-columns:1fr}.sidebar{position:sticky;top:0;z-index:5;grid-template-columns:1fr}.brand{padding-bottom:4px}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.workspace,.import-panel,.cards,.adjustment-workspace,.adjustment-moves,.candidate-picker,.candidate-teacher-picker{grid-template-columns:1fr}.adjustment-form{position:static}.visual-adjustment-layout,.schedule-change-meta,.schedule-change-moves,.import-form,.result-grid,.formula-visual{grid-template-columns:1fr}}
