:root{font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{background:#f5f6f8;margin:0}.app-shell,.app-shell.layout-three{grid-template-columns:var(--left-w,260px) 1fr var(--right-w,720px);color:#1a1a1a;background:#f5f6f8;grid-template-rows:auto 1fr;grid-template-areas:"header header header""sidebar main right";height:100vh;display:grid}.app-shell.layout-full{grid-template-columns:1fr;grid-template-areas:"header""main"}body.resizing{cursor:col-resize;-webkit-user-select:none;user-select:none}body.resizing *{cursor:col-resize!important}body.resizing-v{cursor:row-resize;-webkit-user-select:none;user-select:none}body.resizing-v *{cursor:row-resize!important}.app-header{color:#fff;background:#1a2540;flex-wrap:wrap;grid-area:header;align-items:center;gap:10px;padding:5px 12px;display:flex}.app-header h1{white-space:nowrap;margin:0;font-size:.92rem}.date-nav{align-items:center;gap:6px;display:flex}.date-nav button{color:#fff;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:6px;justify-content:center;align-items:center;width:26px;height:26px;display:inline-flex}.date-nav button:hover{background:#ffffff26}.date-nav .date-nav-month{width:auto;padding:0 8px;font-size:.76rem;font-weight:600}.date-nav-month+button:not(.date-nav-month),button:not(.date-nav-month)+.date-nav-month{margin-left:8px}.date-label{text-align:center;white-space:nowrap;min-width:150px;font-size:.85rem;font-weight:600}.today-btn{color:#fff;white-space:nowrap;cursor:pointer;background:0 0;border:1px solid #ffffff4d;border-radius:6px;padding:4px 10px;font-size:.78rem}.today-btn:hover{background:#ffffff26}.slot-finder-btn{border-color:#ffffffa6;margin-left:4px}.sync-badge{white-space:nowrap;cursor:help;background:#ffffff1a;border-radius:999px;margin-left:auto;padding:4px 10px;font-size:.78rem}.sync-badge-error{background:#c0392b}.sync-badge-offline{background:#7f8c8d}.app-tabs{flex-wrap:wrap;gap:4px;display:flex}.app-tabs button{cursor:pointer;color:#ffffffd9;white-space:nowrap;background:0 0;border:1px solid #ffffff40;border-radius:999px;padding:4px 11px;font-size:.79rem}.app-tabs button.active{color:#1a2540;background:#fff;border-color:#fff;font-weight:700}.app-sidebar{background:#fff;border-right:1px solid #e0e0e0;flex-direction:column;grid-area:sidebar;gap:6px;min-height:0;padding:8px 8px 0;display:flex;position:relative;overflow:hidden}.sidebar-split{flex-direction:column;flex:auto;min-height:0;display:flex}.sidebar-split-top{flex:none;min-height:60px;padding-bottom:4px;overflow-y:auto}.sidebar-split-handle{cursor:row-resize;border-top:1px dashed #e5e7eb;flex:none;justify-content:center;align-items:center;height:10px;margin:2px 0;display:flex}.sidebar-split-handle:hover .resize-grip-h{background:#2d5be3}.sidebar-split-bottom{flex:auto;min-height:0;padding-top:4px;padding-bottom:14px;overflow-y:auto}.teacher-subgroup+.teacher-subgroup{margin-top:10px}.teacher-subgroup-label{color:#9ca3af;text-transform:uppercase;letter-spacing:.03em;margin-bottom:4px;font-size:.68rem;font-weight:700}.mini-chip-grid{grid-template-columns:repeat(auto-fill,minmax(48px,1fr));gap:3px;display:grid}.mini-chip{text-align:center;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#fff;border:1px solid #e0e0e0;border-radius:5px;padding:2px 3px;font-size:.74rem;line-height:1.35;overflow:hidden}.mini-chip.selected{color:#fff;background:#2d5be3;border-color:#2d5be3}.app-right-panel{background:#fff;border-left:1px solid #e0e0e0;flex-direction:column;grid-area:right;gap:10px;min-height:0;padding:10px;display:flex;position:relative;overflow-y:auto}.panel{flex-direction:column;gap:5px;display:flex}.panel+.panel{border-top:1px solid #e5e7eb;padding-top:10px}.panel-title-row{justify-content:space-between;align-items:center;display:flex}.panel-toggle{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:inline-flex}.panel-toggle .caret{color:#9ca3af;width:12px;font-size:10px}.panel-title{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.76rem;font-weight:700}.panel-count{color:#6b7280;background:#f1f5f9;border-radius:10px;padding:0 7px;font-size:11px;line-height:18px}.panel.collapsed .panel-title-row{margin-bottom:0}.dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.teacher-dot{background:#10b981}.grade-badge{color:#2d5be3;background:#eef2fb;border-radius:4px;padding:2px 6px;font-size:.68rem;font-weight:700;display:inline-block}.list{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.list-item{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:6px 8px;font-size:.82rem;display:flex}.list-item:hover{background:#f3f4f6}.list-item.selected{outline-offset:-2px;outline:2px solid #2d5be3}.list-item .name{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.empty{color:#9ca3af;padding:8px;font-size:.8rem}.student-search{border:1px solid #e5e7eb;border-radius:6px;width:100%;margin-bottom:8px;padding:4px 8px;font-size:.78rem}.student-schooltype-group{flex-direction:column;gap:4px;display:flex}.student-group-header{color:#334155;cursor:pointer;text-align:left;background:#eef2f6;border:none;border-radius:5px;align-items:center;gap:5px;width:100%;padding:5px 8px;font-size:.76rem;font-weight:700;display:flex}.student-group-header:hover{background:#e2e8f0}.student-group-header{padding:2px 6px;font-size:.72rem}.student-groups{gap:6px}.caret-mini{color:#94a3b8;font-size:9px}.student-group-count{color:#94a3b8;margin-left:auto;font-weight:400}.student-group{flex-direction:column;gap:2px;padding-left:6px;display:flex}.student-group-subheader{color:#9ca3af;padding:2px;font-size:.68rem;font-weight:700}.student-chip-grid{grid-template-columns:repeat(auto-fill,minmax(58px,1fr));gap:3px;margin-bottom:5px;display:grid}.student-chip{text-align:center;cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:#fff;border:1px solid #e5e7eb;border-radius:5px;padding:2px 4px;font-size:.73rem;line-height:1.35;overflow:hidden}.student-chip.selected{color:#fff;background:#2d5be3;border-color:#2d5be3}.regular-tab-layout{align-items:flex-start;gap:16px;display:flex}.regular-tab-sidebar{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:0 0 240px;height:calc(100vh - 150px);transition:flex-basis .15s ease-out;position:sticky;top:0;overflow:hidden}.regular-tab-center{flex:auto;min-width:0}.regular-tab-info{flex:0 0 var(--regular-right-w,320px);background:#fff;border:1px solid #e0e0e0;border-radius:8px;max-height:calc(100vh - 130px);padding:16px;transition:flex-basis .15s ease-out;position:relative;overflow-y:auto}.info-panel{max-width:380px}.regular-tab-layout.is-idle .regular-tab-sidebar{flex-basis:160px}.regular-tab-layout.is-idle .regular-tab-info{flex-basis:190px}.assign-tab-wrap{flex-direction:column;gap:10px;display:flex}.assign-pattern-banner{color:#1f2937;background:#eef2fb;border-radius:6px;align-items:center;gap:10px;padding:6px 12px;font-size:.8rem;display:flex}.assign-pattern-banner.draft{background:#fffbeb}.assign-pattern-banner-link{cursor:pointer;color:#2d5be3;background:#fff;border:1px solid #d1d5db;border-radius:6px;margin-left:auto;padding:3px 8px;font-size:.76rem}.assign-pattern-banner-link:hover{background:#f5f6f8}.assign-tab-layout{align-items:flex-start;gap:16px;display:flex}.assign-student-side,.assign-teacher-side{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex:0 0 240px;height:calc(100vh - 190px);padding:8px;position:sticky;top:0;overflow-y:auto}.assign-teacher-list-scroll{max-height:38vh;margin-bottom:8px;overflow-y:auto}.assign-suggest-scroll{border-top:1px solid #f1f5f9;padding-top:8px}.assign-tab-center{flex:auto;min-width:0}.assign-placeholder-note{color:#6b7280;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px;font-size:.86rem}.assign-student-column{padding:0}.assign-grid-view{flex-direction:column;gap:8px;display:flex}.assign-current-kind{color:#374151;margin:0;font-size:.78rem}.regular-warning-slot{min-height:26px}.assign-legend{color:#6b7280;flex-wrap:wrap;gap:10px;margin:0;font-size:.74rem;display:flex}.assign-legend .legend-item{white-space:nowrap;align-items:center;gap:3px;display:inline-flex}.assign-chip-sample{background:#fff;border:2px solid #6b7280;border-radius:3px;width:12px;height:12px;display:inline-block}.assign-chip-sample.fit-caution{background:linear-gradient(#fff 55%,#fde68a 55%)}.assign-chip-sample.fit-ng{background-image:repeating-linear-gradient(45deg,#64748b4d,#64748b4d 2px,#0000 2px 5px)}.assign-chip-sample.fit-unknown{border-style:dashed}.assign-chip-sample.no-avail{border-style:dotted}.assign-chip-sample.placed{background:#6b7280}.assign-hint{color:#1f2937;background:#eef2fb;border-radius:6px;padding:8px 12px;font-size:.82rem;line-height:1.6}.assign-hint-chip{padding:0 3px;font-weight:700;display:inline-block}.assign-hint-chip+.assign-hint-chip:before{content:"・";color:#9ca3af}.assign-cell-empty{text-align:center}.assign-star-hint{color:#5b21b6;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:6px;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0;padding:6px 10px;font-size:.78rem;line-height:1.6;display:flex}.assign-star-clear-btn{color:#7c3aed;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #7c3aed;border-radius:999px;margin-left:auto;padding:3px 10px;font-size:.74rem;font-weight:700}.assign-star-clear-btn:hover{background:#f5f3ff}.assign-count-grid.regular-grid{table-layout:fixed}.assign-count-grid .regular-cell{min-width:0}.assign-count-cell{text-align:center}.assign-count-empty{color:#6b7280;font-size:11px}.assign-count-badge{color:#6b7280;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:999px;align-items:center;gap:2px;min-width:34px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.assign-count-badge.has-open{color:#15803d;background:#eef7ee;border-color:#16a34a}.assign-count-badge.has-placed{border-color:#2d5be3}.assign-count-placed{color:#2d5be3}.assign-count-ok{color:#15803d}.assign-count-caution{color:#b45309}.assign-count-zero,.assign-count-total{color:#9ca3af;font-weight:400}.star-placed-badge{color:#fff;z-index:1;background:#2d5be3;border-radius:3px;padding:0 3px;font-size:10px;font-weight:800;position:absolute;top:3px;right:6px}.assign-existing-row{border-bottom:1px dashed #e5e7eb;flex-direction:column;gap:2px;margin-top:2px;padding-bottom:2px;display:flex}.assign-existing-chip{color:#1f2937;border:1px solid #e2e8f0;border-radius:3px;align-items:center;gap:2px;padding:1px 4px;font-size:.7rem;display:inline-flex}.assign-existing-block{color:#6b7280;background:#e5e7eb}.assign-chip-row{flex-wrap:wrap;gap:3px;margin-top:3px;display:flex}.assign-chip{cursor:pointer;background:#fff;border:2px solid #d1d5db;border-radius:5px;width:22px;min-width:22px;height:22px;padding:0;font-size:11px;font-weight:700;line-height:1}.assign-chip:hover{filter:brightness(.96)}.assign-chip.fit-caution{background:linear-gradient(#fff 55%,#fde68a 55%)}.assign-chip.fit-ng{background-image:repeating-linear-gradient(45deg,#64748b2e,#64748b2e 2px,#0000 2px 5px)}.assign-chip.fit-full{opacity:.55;cursor:not-allowed}.assign-chip.fit-unknown{border-style:dashed}.assign-chip.no-avail{border-style:dotted}.assign-chip.placed{border-style:solid}.assign-grid .regular-lane-remove{padding:2px 6px;font-size:1rem}.assign-mode-toggle{gap:6px;display:flex}.assign-mode-toggle button{cursor:pointer;color:#374151;background:#fff;border:1px solid #d1d5db;border-radius:999px;padding:5px 14px;font-size:.82rem}.assign-mode-toggle button.active{color:#fff;background:#2d5be3;border-color:#2d5be3;font-weight:700}.assign-mode-toggle button:hover:not(.active){background:#f5f6f8}.assign-avail-target-picker{flex-wrap:wrap;gap:6px;margin-bottom:8px;display:flex}.assign-avail-target-btn{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:4px 10px;font-size:.8rem}.assign-avail-target-btn:hover{background:#f5f6f8}.assign-avail-target-btn.active{color:#fff;background:#2d5be3;border-color:#2d5be3}.assign-avail-target-hint{color:#9ca3af;font-size:.8rem}.avail-edit-grid-view{flex-direction:column;gap:8px;display:flex}.avail-edit-cell{cursor:pointer;color:#374151;background:#fff;border:1px solid #e5e7eb;border-radius:4px;width:100%;min-height:34px;font-size:1rem;font-weight:700}.avail-edit-cell:hover{background:#f5f6f8}.avail-edit-cell.avail-◯{color:#16a34a;background:#eef7ee;border-color:#16a34a}.avail-edit-cell.avail-△{color:#b45309;background:#fef7e0;border-color:#d97706}.avail-edit-cell.avail-×{color:#64748b;background:#f1f2f4;border-color:#94a3b8}.avail-edit-cell.avail-？{color:#b45309;background:#fef7e0;border-color:#d97706}.avail-edit-cell.unsurveyed{background:repeating-linear-gradient(45deg,#fafafa,#fafafa 6px,#f3f4f6 6px 12px);border-style:dashed}.resize-handle{cursor:col-resize;z-index:50;background:0 0;justify-content:center;align-items:center;width:10px;height:100%;display:flex;position:absolute;top:0;left:-5px}.resize-handle:hover{background:#2d5be31f}.resize-grip{background:#d5dae3;border-radius:3px;width:4px;height:40px;transition:background-color .1s}.resize-handle:hover .resize-grip{background:#2d5be3}.resize-grip-h{background:#d5dae3;border-radius:3px;width:40px;height:4px;transition:background-color .1s}.resize-handle-sidebar{left:auto;right:-5px}.app-main{grid-area:main;width:100%;max-width:1100px;min-height:0;margin:0 auto;padding:10px 12px 24px;overflow-y:auto}.app-main-flex{max-width:none;margin:0;padding:10px 12px}@media (width<=900px){.app-shell,.app-shell.layout-three{grid-template-columns:1fr;grid-template-areas:"header""main"}.app-sidebar,.app-right-panel,.reschedule-list-btn,.regular-tab-sidebar,.regular-tab-info{display:none}}.data-tab{flex-direction:column;gap:20px;max-width:640px;display:flex}.data-section{background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:16px 18px}.data-section-title{margin:0 0 6px;font-size:1rem}.data-section-note{color:#666;margin:0 0 14px;font-size:.85rem}.data-link-row{flex-wrap:wrap;gap:10px;display:flex}.data-link-btn{color:#2d5be3;background:#eef2fb;border:1px solid #2d5be3;border-radius:8px;align-items:center;gap:6px;padding:10px 16px;font-size:.88rem;font-weight:600;text-decoration:none;display:inline-flex}.data-link-btn:hover{background:#dbe4f7}.import-panel{background:#fff;border:1px solid #e0e0e0;border-radius:8px;margin-bottom:20px;padding:14px 18px}.import-panel-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.import-panel-updated{color:#666;font-size:.85rem}.import-panel-note{color:#666;margin:8px 0 0;font-size:.85rem}.import-panel-confirm{border-top:1px dashed #ddd;margin-top:12px;padding-top:12px}.import-panel-added{color:#1b7a3d;font-size:.9rem}.import-panel-removed{color:#b23c17;font-size:.9rem}.import-panel-actions{gap:8px;margin-top:10px;display:flex}button{cursor:pointer;background:#fff;border:1px solid #c9cfdb;border-radius:6px;padding:8px 14px;font-size:.9rem}button.primary{color:#fff;background:#2d5be3;border-color:#2d5be3}button:disabled{opacity:.6;cursor:default}.table-wrap{background:#fff;border:1px solid #e0e0e0;border-radius:8px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.9rem}th,td{text-align:left;white-space:nowrap;border-bottom:1px solid #eee;padding:8px 12px}thead th{background:#f0f2f6;font-weight:700;position:sticky;top:0}tr.row-inactive{color:#999}.muted{color:#888}.table-footer{color:#666;margin:0;padding:6px 2px;font-size:.74rem}.empty-note{color:#888;text-align:center;padding:24px}.regular-view{flex-direction:column;gap:12px;height:100%;display:flex}.regular-hint{color:#475569;z-index:30;background:#eef2fb;border:1px solid #dbe4f7;border-radius:8px;margin:0;padding:8px 12px;font-size:.82rem;position:sticky;top:0}.regular-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:0;padding:8px 12px;font-size:.82rem}.regular-grid-wrap{max-height:none}.schedule-grid th,.schedule-grid td{vertical-align:top;min-width:150px}.regular-cell{min-width:150px}.regular-grid-weekly{table-layout:fixed}.regular-grid-weekly thead th:first-child{width:84px}.regular-lane{background:#fafafa;border:2px solid #e5e7eb;border-radius:8px;margin-bottom:4px;padding:4px 5px;transition:background-color .1s,border-color .1s;position:relative}.regular-lane.lane-room-active{box-shadow:inset 0 0 0 2px #7c3aed}.regular-lane.lane-available{cursor:pointer;background:#eef7ee;border-color:#9ad3a4}.regular-lane.lane-available:hover{background:#ddf1de}.regular-lane.lane-full{opacity:.7;background:#f1f2f4;border-color:#d8dbe0}.regular-lane.lane-placed{cursor:pointer;background:#fff;box-shadow:inset 0 0 0 2px #2d5be3}.regular-lane-head{justify-content:space-between;align-items:center;gap:4px;margin-bottom:3px;display:flex}.regular-lane-head:has(.regular-lane-teacher-btn){flex-wrap:wrap;justify-content:flex-start}.regular-lane-teacher-btn{cursor:pointer;background:0 0;border:none;min-width:0;max-width:100%;margin-right:auto;padding:0;display:inline-flex}.regular-lane-teacher-btn:hover .regular-lane-teacher{color:#2d5be3;text-decoration:underline}.regular-lane-teacher{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:700;overflow:hidden}.regular-lane-room-chip{color:#92400e;cursor:pointer;white-space:nowrap;background:#fffbeb;border:1px solid #e7c98a;border-radius:4px;align-items:center;gap:2px;padding:0 4px;font-size:10px;font-weight:700;line-height:1.5;display:inline-flex}.regular-lane-room-chip:hover{background:#fef3c7}.regular-lane-capacity{color:#6b7280;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:999px;padding:0 4px;font-size:11px;line-height:1.4}.regular-lane-capacity.over{color:#fff;background:#dc2626;border-color:#dc2626}.regular-lane-capacity.full{color:#334155;background:#fff;border:1px solid #334155}.regular-lane-capacity.half{color:#b45309;background:#fffbeb;border:1.5px solid #b45309;font-weight:800}.legend-cap-sample{pointer-events:none;cursor:default}.capacity-input{border:1px solid #2d5be3;border-radius:4px;width:32px;padding:0 2px;font-size:.68rem}.regular-lane-remove{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.85rem;line-height:1}.regular-lane-remove:hover{color:#ef4444}.regular-lane-remove.confirming{color:#fff;background:#dc2626;border-radius:4px;padding:0 4px;font-size:.68rem}.regular-lane-chips{flex-flow:wrap;gap:2px;display:flex}.regular-chip{color:#1f2937;border:1px solid #e2e8f0;border-radius:4px;justify-content:space-between;align-items:center;gap:4px;padding:2px 5px;font-size:.8rem;display:flex}.subject-badge{background:#fff;border:1.3px solid;border-radius:3px;flex-shrink:0;justify-content:center;align-items:center;min-width:17px;height:17px;padding:0 2px;font-size:12px;font-weight:800;line-height:1;display:inline-flex}.subsubject-badge{opacity:.75;white-space:nowrap;flex-shrink:0;font-size:11px;font-weight:700}.subsubject-ng-list{flex-direction:column;gap:8px;margin:6px 0 10px;display:flex}.subsubject-ng-group-label{color:#6b7280;margin-bottom:3px;font-size:11px;font-weight:700}.subsubject-ng-row{flex-wrap:wrap;gap:6px;display:flex}.subsubject-ng-item{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:8px;align-items:center;gap:4px;padding:3px 8px;font-size:12px;display:inline-flex}.subsubject-ng-item.checked{color:#92400e;background:#fef3c7;border-color:#f59e0b;font-weight:700}.subsubject-ng-item input{margin:0}.regular-chip.regular-chip-ng,.assign-existing-chip.assign-existing-chip-ng,.day-student-card.day-student-card-ng{box-shadow:inset 0 0 0 1.5px #d97706}.chip-ng-warn{color:#b45309;margin-right:1px;font-weight:700}.regular-kind-legend{color:#6b7280;flex-wrap:wrap;align-items:center;gap:3px 10px;margin:4px 0 0;font-size:12px;display:flex}.kind-swatch{vertical-align:-2px;border:1px solid #cbd5e1;border-radius:3px;width:12px;height:12px;margin-right:3px;display:inline-block}.regular-kind-legend .legend-item{white-space:nowrap;align-items:center;display:inline-flex}.regular-chip-remove{color:#6b7280;cursor:pointer;background:0 0;border:none;margin:-4px;padding:4px;font-size:.75rem;line-height:1}.regular-chip-remove:hover{color:#ef4444}.regular-add-lane-btn{color:#2d5be3;background:#fff;border:1px dashed #2d5be3;border-radius:6px;width:100%;margin-top:2px;padding:4px;font-size:.72rem}.regular-add-lane-btn:hover{background:#eef2fb}.regular-sidebar{flex-direction:column;gap:12px;height:100%;min-height:0;padding:8px;display:flex}.sidebar-panel{flex-direction:column;gap:8px;display:flex}.sidebar-panel-head{align-items:baseline;gap:6px;display:flex}.sidebar-panel-head h2{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;margin:0;font-size:.78rem;font-weight:700}.sidebar-panel-count{color:#9ca3af;font-size:.75rem}.sidebar-empty{color:#9ca3af;padding:4px 0;font-size:.78rem}.sidebar-search{border:1px solid #e0e0e0;border-radius:6px;width:100%;padding:6px 10px;font-size:.82rem}.teacher-chip-list{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:4px;display:grid}.teacher-chip-btn{text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:5px 4px;font-size:.76rem;overflow:hidden}.teacher-chip-btn.selected{color:#fff;background:#2d5be3;border-color:#2d5be3}.teacher-chip-btn.filtered{background:#7c3aed;border-color:#7c3aed}.teacher-chip-filter-mark{margin-right:2px;font-size:.7em}.student-groups{flex-direction:column;gap:8px;display:flex}.student-group{flex-direction:column;gap:3px;display:flex}.student-group-label{color:#9ca3af;font-size:.7rem;font-weight:700}.student-chip-grid{grid-template-columns:repeat(auto-fill,minmax(68px,1fr));gap:4px;display:grid}.student-chip-btn{text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:4px 5px;font-size:.76rem;overflow:hidden}.student-chip-btn.selected{color:#fff;background:#2d5be3;border-color:#2d5be3}.regular-lane-room-panel{background:#fffbeb;border:1px solid #e7c98a;border-radius:8px;margin-bottom:12px;padding:10px}.regular-lane-room-panel-head{justify-content:space-between;align-items:center;display:flex}.regular-lane-room-panel-head .info-panel-section{margin:0}.regular-lane-room-panel .info-panel-sub{margin:2px 0 8px}.info-panel{flex-direction:column;gap:10px;display:flex}.info-panel-empty{color:#9ca3af;padding:12px 0;font-size:.85rem}.info-panel-title{margin:0;font-size:.92rem}.info-panel-sub{color:#666;margin:0;font-size:.82rem}.info-panel-section{color:#6b7280;text-transform:uppercase;letter-spacing:.03em;margin:6px 0 0;font-size:.75rem;font-weight:700}.info-panel-empty-note{color:#475569;margin:0;font-size:.82rem}.subject-chip-row{flex-wrap:wrap;gap:6px;display:flex}.subject-chip-btn{background:#fff;border:1px solid #e0e0e0;border-radius:999px;padding:5px 10px;font-size:.78rem}.subject-chip-btn.selected{color:#fff;background:#2d5be3;border-color:#2d5be3}.subject-chip-btn.filled{border-color:#9ad3a4}.subject-chip-btn.selected.filled{border-color:#2d5be3}.info-assignment-list,.info-lane-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.info-assignment-list li{background:#f7f8fa;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px;font-size:.8rem;display:flex}.link-btn{color:#2d5be3;white-space:nowrap;background:0 0;border:none;padding:0;font-size:.78rem}.link-btn:hover{text-decoration:underline}.link-btn.danger{color:#b23c17}.link-btn.danger.confirming{color:#dc2626;font-weight:700;text-decoration:underline}.room-status-badge{border-radius:999px;margin-right:8px;padding:1px 8px;font-size:.7rem;font-weight:700;display:inline-block}.room-status-badge.active{color:#166534;background:#dcfce7}.room-status-badge.inactive{color:#6b7280;background:#f1f5f9}.info-lane-list li{background:#f7f8fa;border-radius:6px;padding:6px 8px}.info-lane-head{justify-content:space-between;align-items:center;font-size:.82rem;font-weight:600;display:flex}.info-lane-students{color:#555;margin:4px 0 0;font-size:.76rem}.stock-panel{background:#fff;border:1px solid #e0e0e0;border-radius:6px;max-width:720px;padding:7px 9px}.stock-header{border-bottom:1px solid #f1f5f9;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:6px;margin-bottom:5px;padding-bottom:4px;display:flex}.stock-title{align-items:center;gap:6px;font-size:.85rem;display:flex}.stock-title b{font-size:.92rem}.stock-hint{color:#475569;margin-left:6px;font-size:12px;font-weight:400}.stock-legend{vertical-align:middle;gap:8px;margin-left:8px;display:inline-flex}.stock-legend .lg{color:#475569;font-size:11px;font-weight:600;line-height:1.5}.lg-dot{margin-right:2px;font-size:.72rem}.lg-dot-stock{color:#15803d}.stock-matrix{border-collapse:collapse;width:auto;margin-bottom:8px}.stock-matrix th,.stock-matrix td{border:1px solid #eef1f5}.sm-corner{background:#f8fafc;width:44px}.sm-kind-head{color:#475569;text-align:center;background:#f8fafc;padding:3px 2px;font-size:.68rem;font-weight:600}.sm-row-head{text-align:left;white-space:nowrap;color:#475569;background:#fafbfc;padding:2px 5px;font-size:.68rem}.sm-fmt-label{color:#334155;font-weight:700}.sm-fmt-first>td{border-top:2px solid #dbe2ea}.sm-td{min-width:96px;padding:1px}.sm-perweek{color:#94a3b8;font-size:11px;font-weight:600}.sm-cell{border-radius:4px;flex-direction:column;justify-content:center;align-items:flex-start;gap:1px;min-height:32px;padding:2px 18px 2px 4px;display:flex;position:relative}.sm-cell.empty{cursor:pointer}.sm-cell.empty:hover{background:#f8fafc}.sm-cell:not(.empty){cursor:pointer}.sm-cell:not(.empty):hover{background:#f8fafc}.sm-cell.active{background:#eef2fb;box-shadow:inset 0 0 0 2px #2d5be3}.sm-row{align-items:center;gap:4px;display:flex}.sm-total{color:#1e293b;font-size:.88rem;font-weight:700;line-height:1.05}.sm-total.over{color:#dc2626}.sm-squares{flex-wrap:wrap;align-items:center;gap:1px;line-height:1;display:flex}.sm-sq{font-size:.66rem;line-height:1}.sm-sq-stock{color:#22c55e}.sm-sq-placed,.lg-dot-placed{color:#6b7280}.sm-dash{color:#d1d5db;font-size:.7rem}.sm-add{color:#64748b;background:0 0;border:none;border-radius:3px;width:15px;height:15px;padding:0;font-size:.72rem;line-height:1;position:absolute;top:0;right:1px}.sm-cell:hover .sm-add{color:#334155}.sm-add:hover{color:#0284c7;background:#e0f2fe}.sm-sub{color:#64748b;background:0 0;border:none;border-radius:3px;width:15px;height:15px;padding:0;font-size:.8rem;line-height:1;position:absolute;top:0;right:17px}.sm-cell:hover .sm-sub{color:#334155}.sm-sub:hover{color:#dc2626;background:#fee2e2}.stock-blocks{border-top:1px solid #e5e7eb;padding-top:8px}.sb-head{color:#6b7280;margin-bottom:5px;font-size:12px;font-weight:600}.sb-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.sb-label{color:#475569;min-width:44px;font-size:.7rem;font-weight:600}.sb-chips{flex-wrap:wrap;gap:4px;display:flex}.sb-chip{color:#475569;background:#fff;border:1px solid #e0e0e0;border-radius:6px;align-items:center;gap:3px;padding:2px 8px;font-size:.7rem;display:inline-flex}.sb-chip:hover{background:#f1f5f9}.sb-chip b{color:#1e40af}.sb-plus{color:#94a3b8}.sb-minus{color:#94a3b8;border-radius:3px;padding:0 2px}.sb-minus:hover{color:#dc2626;background:#fee2e2}.stock-empty{color:#9ca3af;margin:8px 0 12px;font-size:.76rem}.stock-add-more{border-top:1px dashed #e5e7eb;margin-top:10px;padding-top:8px}.stock-add-more summary{cursor:pointer;color:#2d5be3;font-size:.74rem;font-weight:700;list-style:none}.stock-add-more summary::-webkit-details-marker{display:none}.stock-add-more summary:hover{text-decoration:underline}.stock-add-more-body{margin-top:8px}.passcode-gate{text-align:center;max-width:360px;margin:15vh auto;padding:24px}.passcode-gate form{gap:8px;margin-top:16px;display:flex}.passcode-gate input{border:1px solid #ccc;border-radius:6px;flex:1;padding:8px 10px;font-size:1rem}.day-view{flex-direction:column;gap:7px;display:flex}.day-view-header{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.day-sticky-top{z-index:31;background:#f5f6f8;padding-bottom:2px;position:sticky;top:0}.day-view-title{white-space:nowrap;margin:0;font-size:.95rem}.day-week-badge{color:#1a2540;white-space:nowrap;background:#eef2fb;border:1px solid #c9cfdb;border-radius:999px;padding:3px 12px;font-size:.78rem;font-weight:700}.day-week-badge-muted{color:#9ca3af;background:#f5f6f8;border-color:#e0e0e0;font-weight:500}.day-no-class{text-align:center;color:#6b7280;background:#fff;border:1px solid #e0e0e0;border-radius:8px;padding:32px 20px;font-size:.92rem}.selection-banner{background:#eef2fb;border:1px solid #c9cfdb;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 10px;display:flex;position:static}.selection-label{color:#1a2540;align-items:center;gap:6px;font-size:.79rem;display:flex}.clear-btn{cursor:pointer;background:#fff;border:1px solid #c9cfdb;border-radius:6px;padding:4px 10px;font-size:.78rem}.clear-btn:hover{background:#f5f6f8}.add-mode-switch{background:#fff;border:1px solid #c9cfdb;border-radius:6px;flex:none;margin-left:auto;display:inline-flex;overflow:hidden}.add-mode-btn{color:#47506b;cursor:pointer;white-space:nowrap;background:#fff;border:none;padding:4px 9px;font-size:11px;font-weight:700;line-height:1}.add-mode-btn+.add-mode-btn{border-left:1px solid #c9cfdb}.add-mode-btn:hover{background:#f1f5f9}.add-mode-btn.active{color:#fff;background:#2d5be3}.add-mode-warning{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;margin:0;padding:4px 10px;font-size:11px;line-height:1.5}.day-blocks{flex-direction:column;gap:5px;display:flex}.day-block{background:#fff;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden}.day-block-time{background:#4a5568;border-bottom:none;align-items:baseline;gap:8px;padding:2px 10px;display:flex}.day-block-label{color:#fff;font-size:.78rem;font-weight:700}.day-block-time-text,.day-block-dow{color:#ffffffc7;font-size:.72rem}.day-block-rows{flex-direction:column;gap:2px;padding:3px 5px;display:flex}.day-row-empty{color:#9ca3af;margin:0;padding:1px 2px;font-size:.72rem}.day-row{background:#fafafa;border:1px solid #e5e7eb;border-radius:5px;align-items:stretch;gap:6px;padding:2px 4px;display:flex}.day-row-own-teacher{background:#fff;border-color:#2d5be3;box-shadow:inset 0 0 0 1px #2d5be3}.day-row-teacher{border-right:1px solid #e8eaee;flex-direction:column;flex:0 152px;justify-content:center;align-items:flex-start;gap:1px;min-width:112px;max-width:152px;margin-bottom:0;padding:1px 3px;display:flex}.day-row-teacher>.day-row-teacher-main{flex:none}.day-row-teacher .day-row-room{align-items:center;gap:2px;width:100%;min-width:0;display:flex}.day-row-teacher-line1{align-items:center;gap:4px;width:100%;min-width:0;display:flex}.day-row-teacher-line1 .regular-lane-capacity{margin-left:auto}.day-row-teacher-line1 .asobi-badge{flex:none}.day-row-teacher-main{cursor:pointer;color:inherit;background:0 0;border:none;align-items:center;gap:6px;padding:0;display:flex}.day-row-teacher-main:hover .day-row-teacher-name{color:#2d5be3}.day-row-teacher-name{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;max-width:100px;font-size:.76rem;font-weight:700;overflow:hidden}.day-row-students{flex-wrap:wrap;flex:auto;align-items:center;gap:3px;min-width:0;display:flex}.day-row-chips{flex-wrap:wrap;gap:5px;display:flex}.day-row-empty-chip{color:#b6bcc6;font-size:.72rem}.day-student-card{border:1px solid #e5e7eb;border-radius:4px;flex-direction:column;gap:0;min-width:84px;padding:2px 5px;font-size:.76rem;line-height:1.3;display:flex}.day-student-card.format-1{min-width:168px}.day-student-top{align-items:center;gap:3px;display:flex}.day-student-name{color:#1a2540;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:700;overflow:hidden}.day-student-meta{flex-wrap:wrap;align-items:center;gap:3px;display:inline-flex}.day-student-grade{color:#475569;background:#eef2f7;border-radius:3px;padding:0 3px;font-size:11px;font-weight:700;line-height:1.45}.add-format-badge{color:#334155;background:#fff;border:1px solid #c9cfdb;border-radius:4px;margin-left:4px;padding:0 4px;font-size:11px;font-weight:700;display:inline-block}.add-format-badge.solo{color:#fff;background:#6d28d9;border-color:#6d28d9}.day-student-subject{color:#1f2937;font-size:.7rem;font-weight:700}.placed-coma-pair,.placed-coma-kind{color:#fff;border-radius:3px;justify-content:center;align-items:center;min-width:11px;padding:0 2px;font-size:.7rem;font-weight:700;line-height:1.35;display:inline-flex}.placed-coma-pair{background:#7c2d12}.placed-coma-kind{background:#6b7280}.placed-coma-solo{background:#4338ca}.regular-chip-static{padding:3px 8px}.mini-cal{flex-direction:column;gap:6px;display:flex}.mini-cal-months{scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:#c9cfdb #f0f2f6;align-items:start;gap:10px;padding-bottom:4px;display:flex;overflow-x:auto}.mini-cal-month.is-current .mini-cal-month-title{color:#1d4ed8;border-bottom:2px solid #2d5be3}.mini-cal-months::-webkit-scrollbar{height:8px}.mini-cal-months::-webkit-scrollbar-track{background:#f0f2f6;border-radius:4px}.mini-cal-months::-webkit-scrollbar-thumb{background:#c9cfdb;border-radius:4px}.mini-cal-months::-webkit-scrollbar-thumb:hover{background:#a9b2c4}.mini-cal-month{scroll-snap-align:start;flex-direction:column;flex:0 0 248px;gap:3px;min-width:230px;display:flex}.mini-cal-month-title{color:#1a2540;text-align:center;background:#f0f2f6;border-radius:4px;padding:1px 0;font-size:.78rem;font-weight:700}.mini-cal-header{justify-content:center;align-items:center;gap:12px;display:flex}.mini-cal-title{color:#1a2540;font-size:.84rem;font-weight:700}.mini-cal-nav{cursor:pointer;background:#fff;border:1px solid #c9cfdb;border-radius:6px;padding:4px 10px;font-size:.8rem}.mini-cal-nav:hover{background:#eef2fb}.mini-cal-hint{color:#9ca3af;margin:0;font-size:.76rem}.mini-cal-dow-row{grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;display:grid}.mini-cal-dow{text-align:center;color:#6b7280;padding:0;font-size:.68rem;font-weight:700}.mini-cal-dow.sat{color:#2563eb}.mini-cal-weeks{flex-direction:column;gap:4px;display:flex}.mini-cal-month-divider{color:#6b7280;border-top:1px dashed #d5dae3;margin-top:4px;padding-top:8px;font-size:.8rem;font-weight:700}.mini-cal-week-block{background:0 0;border:none;border-radius:0;padding:0}.mini-cal-week-heading{align-items:center;gap:5px;margin-bottom:1px;display:flex}.mini-cal-week-heading-label{color:#6b7280;font-size:.7rem;font-weight:700}.mini-cal-week-heading.fifth .mini-cal-week-heading-label{color:#b45309}.mini-cal-deadline-banner{color:#fff;white-space:nowrap;background:#b45309;border-radius:3px;padding:0 5px;font-size:11px;font-weight:700}.mini-cal-week-table{grid-template-columns:30px repeat(6,minmax(0,1fr));align-items:stretch;gap:1px;display:grid}.mcw-corner{color:#6b7280;text-align:center;white-space:nowrap;min-height:18px;font-size:11px;font-weight:700;line-height:18px}.mcw-rowlabel{color:#1a2540;text-align:center;white-space:nowrap;background:#eef2fb;border-radius:3px;font-size:13px;font-weight:800;line-height:22px;overflow:hidden}.mcw-dayhead{color:#1f2937;cursor:pointer;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;gap:2px;padding:0;font-size:11.5px;font-weight:700;line-height:18px;display:flex;position:relative}.mini-cal-week-table.headonly .mcw-dayhead{flex-direction:column;gap:0;padding:1px 0;line-height:1.15}.mcw-dayhead:hover{background:#eef2fb}.mcw-dayhead.sat{color:#2563eb}.mcw-dayhead.today{box-shadow:inset 0 0 0 1px #2d5be3}.mcw-dayhead.selected{color:#fff;background:#2d5be3}.mcw-dayhead.selected.sat{color:#fff}.mcw-dayhead-total{color:#6b7280;font-size:11px;font-weight:700}.mcw-dayhead.selected .mcw-dayhead-total{color:inherit}.mcw-dayhead.closed{color:#6b7280;background:#e5e7eb}.mcw-dayhead.closed.selected{color:#fff;background:#9ca3af}.mcw-dayhead-closed{color:#6b7280;font-size:10px;font-weight:800}.mcw-dayhead.closed.selected .mcw-dayhead-closed{color:#fff}.mcw-cell{cursor:pointer;background:#fff;border:1px solid #e9edf3;border-radius:3px;flex-wrap:wrap;align-items:stretch;gap:1px;min-height:22px;padding:0;display:flex;overflow:hidden}.mcw-cell:hover{background:#eef2fb}.mcw-cell.col-selected{background:#f5f8ff;border-color:#b9c8ef}.mcw-cell.closed{background:#f1f5f9}.mini-chip-slot-closed{color:#6b7280;background:#e5e7eb;border:1px dashed #9ca3af;width:100%}.mcw-cell .mini-chip-slot{border-radius:2px;flex:auto;min-width:16px;height:auto;min-height:18px;overflow:hidden}.mini-cal-chip-row{flex-wrap:wrap;gap:1px;width:100%;display:flex}.mini-chip-slot{white-space:nowrap;box-sizing:border-box;border:1px solid #e5e7eb;border-radius:3px;justify-content:center;align-items:center;height:15px;padding:0 2px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.mini-chip-slot-absent{text-decoration:line-through}.mini-chip-slot-extra{box-shadow:inset 0 0 0 1.5px #16a34a}.mini-chip-slot-reschedule{box-shadow:inset 0 0 0 1.5px #b45309}.mini-chip-teacher-open{color:#166534;background:#fff;border:1px solid #9ad3a4}.mini-chip-teacher-half{color:#b45309;background:#fffbeb;border:1.5px solid #b45309;font-weight:800}.mini-chip-teacher-full{color:#334155;background:#fff;border:1.5px solid #334155;font-weight:800}.mini-chip-teacher-over{color:#fff;background:#dc2626}.mini-chip-teacher-empty{color:#6b7280;background:#fff;border:1px dashed #cbd5e1}.mini-cal-total-badge{color:#6b7280;font-size:11px;font-weight:700;position:absolute;bottom:1px;right:3px}.mini-cal-total-badge-sample{position:static}.mcw-dayhead-half{color:#fff;text-align:center;background:#b45309;border-radius:999px;min-width:12px;padding:0 2px;font-size:11px;font-weight:800;line-height:14px;position:absolute;bottom:0;right:0}.legend-half-sample{margin-left:4px;position:static}.mini-cal-legend{color:#6b7280;flex-wrap:wrap;align-items:center;gap:3px;margin:4px 0 0;font-size:.7rem;display:flex}.mini-cal-legend .mini-chip-slot{margin-right:2px}.lane-add-btn{color:#6b7280;cursor:pointer;background:#fff;border:1px dashed #9ca3af;border-radius:5px;width:17px;height:17px;padding:0;font-size:.78rem;line-height:1}.lane-add-btn:hover:not(:disabled){color:#2d5be3;background:#eef2fb;border-color:#2d5be3}.lane-add-btn:disabled{opacity:.4;cursor:not-allowed}.regular-chip-block,.day-block-chip{color:#6b7280;background:#e5e7eb;font-style:italic}.day-block-chip{border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:.72rem;display:inline-flex}.day-block-chip-remove{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:0;font-size:.8rem;line-height:1}.day-block-chip-remove:hover{color:#ef4444}.day-add-teacher-zone{border-radius:5px;margin:0;padding:2px 8px;font-size:.72rem}.day-add-teacher-zone.actionable{color:#2d5be3;cursor:pointer;text-align:left;background:#fff;border:1px dashed #2d5be3;width:100%}.day-add-teacher-zone.actionable:hover{background:#eef2fb}.day-add-teacher-zone.muted{color:#9ca3af;background:#f8fafc;border:1px dashed #e0e0e0}.badge-absent,.badge-extra{color:#fff;border-radius:3px;justify-content:center;align-items:center;min-width:12px;padding:0 3px;font-size:.7rem;font-weight:700;line-height:1.4;display:inline-flex}.badge-absent{background:#dc2626}.badge-extra{background:#16a34a}.day-student-card.absent{opacity:.6}.day-student-card.extra{outline-offset:-2px;outline:2px solid #16a34a}.reschedule-pending-note{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:0;padding:8px 12px;font-size:.8rem}.lg-dot-pending{color:#a16207}.lg-dot-deleted{color:#b91c1c}.sm-sq-pending{color:#eab308}.modal-backdrop{z-index:100;background:#14182466;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-card{background:#fff;border-radius:12px;flex-direction:column;gap:10px;width:320px;max-width:90vw;padding:16px;display:flex;box-shadow:0 12px 32px #1418243d}.modal-header{flex-direction:column;gap:4px;display:flex}.modal-title{align-items:baseline;gap:8px;font-size:1rem;display:flex}.modal-meta{color:#6b7280;font-size:.78rem}.modal-note{color:#9ca3af;margin:0;font-size:.72rem}.modal-actions{flex-direction:column;gap:4px;display:flex}.modal-btn{text-align:left;cursor:pointer;color:#1f2937;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:8px 10px;font-size:.84rem}.modal-btn:hover{background:#f5f6f8}.modal-btn.warn{color:#92400e;background:#fffbeb;border-color:#fde68a}.modal-btn.warn:hover{background:#fef3c7}.modal-btn.danger{color:#991b1b;background:#fef2f2;border-color:#fecaca}.modal-btn.danger:hover{background:#fee2e2}.modal-divider{border-top:1px solid #f1f5f9;margin:2px 0}.modal-cancel{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:4px;font-size:.8rem}.modal-cancel:hover{color:#1f2937}.regular-tab-wrap{flex-direction:column;gap:10px;display:flex}.pattern-bar{background:#fff;border:1px solid #e0e0e0;border-radius:8px;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 12px;display:flex}.pattern-bar-select-wrap{align-items:center;gap:6px;display:flex}.pattern-bar-label{color:#6b7280;font-size:12px;font-weight:700}.pattern-bar-select{background:#fff;border:1px solid #d1d5db;border-radius:6px;max-width:340px;padding:4px 6px;font-size:.84rem}.pattern-bar-btn{cursor:pointer;color:#1f2937;background:#fff;border:1px solid #d1d5db;border-radius:6px;padding:5px 10px;font-size:.8rem}.pattern-bar-btn:hover{background:#f5f6f8}.pattern-bar-btn:disabled{opacity:.5;cursor:not-allowed}.pattern-bar-status{color:#6b7280;margin-left:auto;font-size:.76rem}.pattern-bar.pattern-bar-draft{background:#fffbeb;border-color:#fde68a}.pattern-bar-draft-badge{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:6px;padding:3px 8px;font-size:.78rem;font-weight:700}.dialog-backdrop{z-index:200;background:#14182466;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.dialog-card{background:#fff;border-radius:12px;flex-direction:column;gap:10px;width:420px;max-width:92vw;max-height:86vh;padding:18px;display:flex;overflow-y:auto;box-shadow:0 12px 32px #1418243d}.dialog-title{margin:0;font-size:1rem}.dialog-note{color:#6b7280;margin:0;font-size:.78rem}.dialog-field{color:#374151;flex-direction:column;gap:4px;font-size:.8rem;display:flex}.dialog-field input[type=text],.dialog-field input[type=date]{border:1px solid #d1d5db;border-radius:6px;padding:6px 8px;font-size:.86rem}.dialog-field-row{gap:10px;display:flex}.dialog-field-row .dialog-field{flex:1 1 0}.dialog-radio-group{flex-direction:column;gap:6px;display:flex}.dialog-radio{cursor:pointer;border:1px solid #e5e7eb;border-radius:8px;align-items:flex-start;gap:8px;padding:8px;font-size:.82rem;display:flex}.dialog-radio input{margin-top:2px}.dialog-radio small{color:#9ca3af;margin-top:2px;font-size:.7rem;display:block}.dialog-checkbox{color:#374151;align-items:center;gap:8px;font-size:.82rem;display:flex}.dialog-suggest{background:#fffbeb;border:1px solid #fde68a;border-radius:8px;flex-direction:column;gap:6px;padding:8px 10px;display:flex}.dialog-suggest p{color:#92400e;margin:0 0 2px;font-size:.76rem}.dialog-actions{align-items:center;gap:8px;margin-top:4px;display:flex}.dialog-actions-spacer{flex:auto}.dialog-btn-ghost{color:#6b7280;cursor:pointer;background:0 0;border:none;padding:6px 10px;font-size:.82rem}.dialog-btn-ghost:hover{color:#1f2937}.dialog-btn-primary{color:#fff;cursor:pointer;background:#2d5be3;border:1px solid #2d5be3;border-radius:8px;padding:7px 14px;font-size:.84rem;font-weight:600}.dialog-btn-primary:hover{background:#244aba}.dialog-btn-primary:disabled{opacity:.5;cursor:not-allowed}.dialog-btn-danger{color:#991b1b;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:6px 12px;font-size:.82rem}.dialog-btn-danger:hover{background:#fee2e2}.dialog-btn-danger:disabled{opacity:.4;cursor:not-allowed;color:#9ca3af;background:#fff;border-color:#e5e7eb}.dialog-btn-danger.confirming{color:#fff;background:#dc2626;border-color:#dc2626}@media (width<=560px){.dialog-card{width:100%}.dialog-actions{flex-direction:column;align-items:stretch}.dialog-actions-spacer{display:none}.dialog-btn-ghost,.dialog-btn-primary,.dialog-btn-danger,.dialog-btn-outline{text-align:center;width:100%}}.coma-action-panel{background:#fff;border:1px solid #2d5be3;border-radius:6px;flex-direction:column;gap:6px;max-width:420px;padding:8px 9px;display:flex}.cap-head{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.cap-title{color:#2d5be3;letter-spacing:.04em;white-space:nowrap;font-size:.72rem;font-weight:700}.cap-student{font-size:.86rem}.cap-head{padding-right:26px;position:relative}.cap-head .cap-close{color:#6b7280;padding:2px 6px;font-size:.9rem;position:absolute;top:0;right:0}.cap-chip.solo{color:#1d4ed8;background:#dbeafe}.cap-btn.small{padding:2px 7px;font-size:11px}.cap-btn.danger.confirming{color:#fff;background:#dc2626;border-color:#dc2626;font-weight:700}.cap-actions-block{background:#f7f8fb;border:1px solid #e5e9f2;border-radius:6px;flex-direction:column;gap:4px;padding:5px 6px 6px;display:flex}.cap-actions-label{color:#475569;font-size:11px;font-weight:700}.cap-actions-block .cap-actions{grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:4px;display:grid}.cap-actions-block .cap-actions .cap-btn{text-align:center}.cap-btn.is-open{background:#fde68a}.cap-reason-confirm{justify-content:flex-end;gap:4px;margin-top:4px;display:flex}.cap-note-row{align-items:center;gap:6px;display:flex}.cap-note-row .cap-note-label{white-space:nowrap}.cap-note-row input{border:1px solid #d5dae3;border-radius:6px;flex:auto;min-width:0;padding:4px 8px;font-size:.8rem}.cap-note-row input:focus{outline-offset:-1px;outline:2px solid #2d5be3}.cap-hint{color:#6b7280;min-height:31px;margin:0;font-size:11px;line-height:1.4}.cap-hint.is-active{color:#1e3a8a}.cap-close{color:#9ca3af;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.8rem}.cap-close:hover{color:#1f2937}.cap-body{flex-direction:column;gap:2px;display:flex}.cap-line{flex-wrap:wrap;align-items:center;gap:5px;font-size:.82rem;display:flex}.cap-sub{color:#6b7280;font-size:12px}.cap-chip{color:#1f2937;background:#eef2fb;border-radius:4px;padding:1px 6px;font-size:.74rem;font-weight:700}.cap-chip.muted{color:#6b7280;background:#f1f5f9}.cap-actions{flex-wrap:wrap;gap:4px;display:flex}.cap-actions-spacer{flex:auto;min-width:4px}.cap-btn{background:#fff;border:1px solid #c9cfdb;border-radius:6px;padding:4px 8px;font-size:.76rem}.cap-btn:hover{background:#f5f6f8}.cap-btn.warn{color:#92400e;background:#fffbeb;border-color:#fde68a}.cap-btn.warn:hover{background:#fef3c7}.cap-btn.danger{color:#991b1b;background:#fef2f2;border-color:#fecaca}.cap-btn.danger:hover{background:#fee2e2}.cap-btn:disabled,.cap-btn.warn:disabled{color:#9ca3af;cursor:not-allowed;opacity:1;background:#f8fafc;border-color:#e5e9f0}.cap-btn:disabled:hover{background:#f8fafc}.cap-note{color:#9ca3af;margin:0;font-size:11px;line-height:1.45}.day-student-card.focused{box-shadow:0 0 0 2px #2d5be3}.cap-note-field{flex-direction:column;gap:2px;display:flex}.cap-note-label{color:#6b7280;font-size:11px;font-weight:700}.cap-note-field input{border:1px solid #c9cfdb;border-radius:6px;width:100%;padding:4px 7px;font-size:.8rem}.cap-note-field input:focus{outline-offset:-1px;outline:2px solid #2d5be3}.badge-note{cursor:help;font-size:.7rem;line-height:1.35}.stock-list{flex-direction:column;gap:2px;margin-bottom:8px;display:flex}.sl-row{cursor:pointer;background:#fff;border:1px solid #eef1f5;border-radius:5px;align-items:center;gap:6px;padding:3px 5px;display:flex}.sl-row:hover{background:#f8fafc}.sl-row.active{background:#eef2fb;box-shadow:inset 0 0 0 2px #2d5be3}.sl-kind{color:#475569;text-align:center;background:#f1f5f9;border-radius:3px;min-width:36px;padding:1px 5px;font-size:11px;font-weight:700}.sl-fmt{color:#334155;min-width:22px;font-size:11px;font-weight:700}.sl-subject{color:#1f2937;min-width:15px;font-size:.82rem;font-weight:700}.sl-total{color:#1e293b;text-align:right;min-width:20px;font-size:.9rem;font-weight:700}.sl-total.over{color:#dc2626}.sl-perweek{color:#94a3b8;font-size:11px;font-weight:600}.sl-row .sm-squares{flex:auto}.sl-actions{gap:2px;margin-left:auto;display:flex}.sl-label{border-right:1px solid #eef1f5;flex-direction:column;flex:0 0 52px;justify-content:center;align-self:stretch;align-items:center;gap:1px;width:52px;padding-right:4px;display:flex}.sl-label .sl-kind{box-sizing:border-box;width:100%;min-width:0;padding:1px 2px}.sl-label .sl-fmt{min-width:0}.sl-label-main{align-items:baseline;gap:3px;display:flex}.sl-label .sl-subject{min-width:0}.sl-label .sl-total{text-align:left;min-width:0}.sl-label .sl-perweek{line-height:1}.sl-row .sl-actions{flex-direction:column;gap:6px;margin-left:2px}.sl-btn{color:#64748b;background:#fff;border:1px solid #e5e7eb;border-radius:4px;width:22px;height:22px;padding:0;font-size:.74rem;line-height:1}.sl-btn:hover{color:#2d5be3;background:#eef2fb;border-color:#2d5be3}.day-period-badge{color:#0f766e;white-space:nowrap;cursor:help;background:#ccfbf1;border:1px solid #99e6da;border-radius:999px;padding:2px 10px;font-size:.74rem;font-weight:700}.regular-period-note{color:#0f766e;background:#f0fdfa;border:1px solid #99e6da;border-radius:6px;margin:0;padding:4px 10px;font-size:.76rem}.data-tab{max-width:900px}.ts-periods{flex-direction:column;gap:10px;margin-bottom:12px;display:flex}.ts-period{background:#fafbfc;border:1px solid #e0e0e0;border-radius:8px;padding:10px 12px}.ts-period.default{background:#f0fdfa;border-color:#99e6da}.ts-period-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:8px;display:flex}.ts-name{border:1px solid #c9cfdb;border-radius:6px;min-width:180px;padding:4px 8px;font-size:.9rem;font-weight:700}.ts-dates{color:#475569;align-items:center;gap:6px;font-size:.8rem;display:inline-flex}.ts-dates input{border:1px solid #c9cfdb;border-radius:6px;padding:3px 6px;font-size:.8rem}.ts-default-badge{color:#0f766e;font-size:.74rem;font-weight:700}.ts-slot-toggles{flex-wrap:wrap;gap:5px;display:flex}.ts-toggle{cursor:pointer;border:1px solid #0000;border-radius:6px;flex-direction:column;align-items:center;gap:1px;min-width:76px;padding:4px 8px;line-height:1.2;display:inline-flex}.ts-toggle.on{color:#fff;background:#2d5be3}.ts-toggle.on:hover{background:#234ac0}.ts-toggle.off{color:#94a3b8;background:#eceef2}.ts-toggle.off:hover{background:#e2e6ec}.ts-toggle-label{font-size:.74rem;font-weight:700}.ts-toggle-state{opacity:.9;font-size:11px;font-weight:700}.ts-slot-editor{border-top:1px dashed #e0e0e0;margin-top:12px;padding-top:12px}.ts-slot-table{border-collapse:collapse;width:auto;margin-bottom:8px}.ts-slot-table th{color:#6b7280;text-align:left;padding:2px 8px;font-size:.74rem}.ts-slot-table td{border-bottom:1px solid #f1f5f9;padding:2px 8px}.ts-slot-table input{border:1px solid #c9cfdb;border-radius:6px;padding:3px 6px;font-size:.82rem}.ts-move{gap:2px;display:flex}.sl-row .sm-squares{gap:2px}.sl-row .sm-sq{color:#fff;cursor:help;border-radius:3px;justify-content:center;align-items:center;min-width:44px;height:17px;padding:0 3px;font-size:11px;font-weight:700;line-height:1;display:inline-flex}.sl-row .sm-sq-jump{cursor:pointer;border:1px solid #0000;flex-direction:column;justify-content:center;align-items:stretch;gap:0;min-width:58px;height:30px;padding:1px 4px;font-family:inherit}.sl-row .sm-sq-jump:hover{filter:brightness(1.1);border-color:#111827}.sl-row .sm-sq-jump .sq-l1{justify-content:center;align-items:baseline;gap:3px;line-height:1.1;display:flex}.sl-row .sm-sq-jump .sq-date{font-size:11px;font-weight:700}.sl-row .sm-sq-jump .sq-period{background:#ffffff47;border-radius:3px;padding:0 3px;font-size:11px;font-weight:700}.sl-row .sm-sq-jump .sq-l2{text-align:center;text-overflow:ellipsis;white-space:nowrap;opacity:.95;font-size:11px;font-weight:600;line-height:1.15;overflow:hidden}.sl-row.solo{background:#f5f3ff}.sl-row.solo:hover{background:#ede9fe}.sl-fmt.solo{color:#6d28d9;background:#ede9fe;border-radius:3px;padding:0 3px}.sl-row .sm-sq-placed{background:#6b7280}.sl-row .sm-sq-stock{color:#15803d;background:#f0fdf4;border:1px dashed #16a34a;min-width:58px;height:30px}.sl-row .sm-sq-pending{background:#b45309;min-width:58px;height:30px}.sl-row .sm-sq-deleted{background:#b91c1c;min-width:58px;height:30px}.sl-row .sm-sq-closed{color:#6b7280;background:#f1f5f9;border:1px dashed #9ca3af;min-width:58px;height:30px}.day-student-card.own-student{box-shadow:0 0 0 2px #dc2626}.day-student-card.own-student.focused{box-shadow:0 0 0 2px #dc2626,inset 0 0 0 2px #2d5be3}.regular-lane.fit-ok{cursor:pointer;background:#eef7ee;border-color:#16a34a}.regular-lane.fit-ok:hover{background:#ddf1de}.regular-lane.fit-caution{cursor:pointer;background:#fef7e0;border-color:#d97706}.regular-lane.fit-caution:hover{background:#fdefc8}.regular-lane.fit-full{background:#f1f2f4;border-color:#d8dbe0}.regular-lane.fit-full .regular-lane-teacher{color:#64748b}.regular-lane.fit-ng{background:repeating-linear-gradient(135deg,#fff,#fff 5px,#eceff3 5px 10px);border-color:#cbd5e1}.regular-lane.fit-ng .regular-lane-teacher{color:#64748b}.regular-lane.fit-unknown{cursor:pointer;background:#fff;border-style:dashed;border-color:#94a3b8}.regular-lane.fit-placed{cursor:pointer;background:#fff;box-shadow:inset 0 0 0 2px #2d5be3}.regular-lane.lane-own-teacher{box-shadow:inset 0 0 0 2px #2d5be3}.lane-prior{color:#b45309;font-size:11px}.lane-ng-warn{color:#b45309;font-size:11px;font-weight:700}.lane-pinned-fit{white-space:nowrap;border-radius:4px;padding:0 4px;font-size:11px;font-weight:700}.lane-pinned-fit.ok{color:#fff;background:#15803d}.lane-pinned-fit.caution{color:#fff;background:#b45309}.regular-add-lane-btn.caution{color:#92400e;border-color:#d97706}.regular-add-lane-btn.ng{color:#991b1b;border-color:#dc2626}.regular-hint-legend{flex-wrap:wrap;align-items:center;gap:2px 10px;margin-top:4px;font-size:11px;display:flex}.regular-hint-legend .legend-item{white-space:nowrap;align-items:center;display:inline-flex}.regular-hint-legend .fit-key{border:2px solid;border-radius:3px;flex:none;width:18px;height:14px;margin-right:3px;display:inline-block}.regular-hint-legend .fit-key.fit-ok{background:#eef7ee;border-color:#16a34a}.regular-hint-legend .fit-key.fit-caution{background:#fef7e0;border-color:#d97706}.regular-hint-legend .fit-key.fit-ng{background:repeating-linear-gradient(135deg,#fff,#fff 3px,#eceff3 3px 6px);border-color:#cbd5e1}.regular-hint-legend .fit-key.fit-full{background:#f1f2f4;border-color:#d8dbe0}.regular-hint-legend .fit-key.fit-placed{background:#fff;border-color:#2d5be3}.regular-hint-legend .fit-key.fit-unknown{background:#fff;border-style:dashed;border-color:#94a3b8}.avail-missing-badge,.suggest-pin-badge{color:#92400e;background:#fef3c7;border:1px solid #fcd34d;border-radius:4px;margin-left:6px;padding:0 5px;font-size:11px;font-weight:700;display:inline-block}.sidebar-pin-hint{color:#1f3a8a;background:#eef2fb;border-radius:6px;margin:0 0 6px;padding:5px 7px;font-size:11px;line-height:1.4}.student-chip-btn.pinned{color:#92400e;background:#fef3c7;border-color:#d97706;font-weight:700;box-shadow:inset 3px 0 #d97706}.student-chip-item{min-width:0;position:relative}.student-star-btn{z-index:1;color:#c4c4d6;cursor:pointer;background:#fff;border:1px solid #d8d8e8;border-radius:50%;width:15px;height:15px;padding:0;font-size:9px;line-height:1;position:absolute;top:50%;left:2px;transform:translateY(-50%)}.student-star-btn:hover{color:#7c3aed;border-color:#7c3aed}.student-star-btn.active{color:#fff;background:#7c3aed;border-color:#7c3aed}.assign-student-column .student-chip-grid{grid-template-columns:repeat(auto-fill,minmax(96px,1fr))}.assign-student-column .student-chip-btn{width:100%;padding-left:17px}.student-chip-btn.is-star{box-shadow:inset 0 0 0 1.5px #7c3aed}.student-chip-btn.pinned.is-star{box-shadow:inset 3px 0 #d97706,inset 0 0 0 1.5px #7c3aed}.assign-student-column .student-chip-btn.unplaced,.assign-student-column .student-chip-btn.no-avail{padding-left:17px;padding-right:13px}.assign-student-column .student-chip-btn.unplaced:before,.assign-student-column .student-chip-btn.no-avail:before{left:auto;right:3px}.student-chip-btn.unplaced,.student-chip-btn.no-avail{padding-left:13px;position:relative}.student-chip-btn.unplaced:before,.student-chip-btn.no-avail:before{font-size:11px;font-weight:700;line-height:1;position:absolute;top:50%;left:3px;transform:translateY(-50%)}.student-chip-btn.unplaced:before{content:"！";color:#b91c1c}.student-chip-btn.no-avail:before{content:"？";color:#b45309}.student-chip-btn.unplaced.no-avail:before{content:"！";color:#b91c1c}.sidebar-legend{color:#475569;flex-wrap:wrap;gap:4px 10px;margin:0 0 6px;font-size:11px;display:flex}.chip-mark{margin-right:2px;font-weight:700}.unplaced-mark{color:#b91c1c}.noavail-mark{color:#b45309}.suggest-panel .info-panel-section{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.suggest-over{color:#dc2626;font-weight:700}.suggest-condition{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:6px 8px;font-size:.76rem;line-height:1.5}.suggest-condition p{margin:0}.suggest-avoid{color:#b91c1c}.suggest-pin-row{flex-wrap:wrap;gap:4px;display:flex}.suggest-pin{color:#92400e;background:#fef3c7;border:1px solid #d97706;border-radius:6px;align-items:center;gap:2px;padding:2px 4px 2px 6px;font-size:.76rem;display:inline-flex}.suggest-pin.no-avail{background:#fff}.suggest-impossible{color:#991b1b;background:#fef2f2;border:1px solid #fca5a5;border-radius:6px;margin:0;padding:6px 8px;font-size:.76rem;line-height:1.5}.suggest-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.suggest-item-btn{text-align:left;cursor:pointer;background:#eef7ee;border:2px solid #16a34a;border-radius:8px;flex-direction:column;gap:2px;width:100%;padding:6px 8px;display:flex}.suggest-item-btn:hover{background:#ddf1de}.suggest-item.caution .suggest-item-btn{background:#fef7e0;border-color:#d97706}.suggest-item.caution .suggest-item-btn:hover{background:#fdefc8}.suggest-item-head{flex-wrap:wrap;align-items:center;gap:6px;font-size:.8rem;display:flex}.suggest-item-where{color:#334155}.suggest-item-subject{background:#fff;border:1px solid #cbd5e1;border-radius:4px;padding:0 5px;font-size:11px}.suggest-star{color:#b45309}.suggest-item-reason{color:#475569;font-size:11px;line-height:1.4}.suggest-item-warn{color:#b91c1c;font-size:11px;line-height:1.4}.info-lane-student-list{margin:2px 0 0;padding:0;font-size:.76rem;list-style:none}.info-lane-student-list li{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.regular-tab-layout{align-items:flex-start}.regular-tab-info{max-height:calc(100vh - 150px);position:sticky;top:0;overflow:auto}.regular-grid-wrap{max-height:calc(100vh - 260px);overflow:auto}.regular-grid thead th{z-index:2;background:#f0f2f6;height:34px;position:sticky;top:0}.regular-grid tbody th.regular-grid-th-cell{z-index:1;vertical-align:top;background:#fff;padding:0;position:sticky;left:0}.regular-grid-th-sticky{padding:8px;position:sticky;top:34px}.regular-grid thead th:first-child{z-index:3;left:0}.regular-warning{z-index:29;position:sticky;top:77px}.regular-hint-clear{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:999px;margin-left:8px;padding:1px 8px;font-size:11px}.regular-hint-clear:hover{background:#f1f5f9}.student-note,.suggest-item-note{color:#78350f;background:#fffbeb;border:1px solid #fcd34d;border-radius:6px;margin:0;padding:4px 7px;font-size:.76rem;line-height:1.5}.suggest-item-note{font-size:11px;display:block}.suggest-pin-note{font-size:11px}.student-prior{color:#78350f;margin:0;font-size:.76rem;line-height:1.5}.suggest-impossible ul{margin:4px 0 0;padding-left:18px}.suggest-impossible li{line-height:1.5}.suggest-condition .muted{color:#475569}.teacher-subgroup-label{font-size:11px}.badge-moved{color:#fff;background:#7c3aed;border-radius:3px;justify-content:center;align-items:center;min-width:12px;padding:0 3px;font-size:.7rem;font-weight:700;display:inline-flex}.day-student-card.moved{outline-offset:-2px;outline:2px solid #7c3aed}.move-mode-banner{z-index:31;color:#5b21b6;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:8px;flex-wrap:wrap;align-items:center;gap:8px;margin:0;padding:6px 10px;font-size:.8rem;line-height:1.5;display:flex;position:sticky;top:0}.day-move-here{color:#fff;cursor:pointer;background:#7c3aed;border:1px solid #7c3aed;border-radius:6px;padding:2px 8px;font-size:11px;font-weight:700}.day-move-here:hover{background:#6d28d9}.day-move-here:disabled{color:#9ca3af;cursor:not-allowed;background:#e5e7eb;border-color:#d1d5db}.cap-btn.active{color:#fff;background:#7c3aed;border-color:#7c3aed}.cap-moved-from{color:#5b21b6;margin:2px 0 0;font-size:11px}.cap-moving-hint{color:#5b21b6;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:6px;margin:0;padding:6px 8px;font-size:11px;line-height:1.5}.asobi-badge{color:#0e7490;white-space:nowrap;background:#ecfeff;border:1px solid #a5f3fc;border-radius:4px;align-items:center;gap:2px;padding:0 4px;font-size:11px;font-weight:700;display:inline-flex}.day-row-asobi,.regular-lane.lane-asobi{background:#f0fdff}.asobi-lane{color:#0e7490;background:#cffafe;border:1px solid #67e8f9;border-left:4px solid #0891b2;border-radius:6px;flex-wrap:wrap;align-items:baseline;gap:6px;margin-bottom:3px;padding:5px 8px;line-height:1.25;display:flex}.asobi-lane-cont{border-top-color:#cffafe;border-top-left-radius:0;border-top-right-radius:0;margin-top:-4px}.asobi-lane-teacher{font-size:12px;font-weight:700}.asobi-lane-title{letter-spacing:.04em;font-size:15px;font-weight:800}.asobi-lane-time{font-size:11px}.regular-add-lane-btn.muted{opacity:.45}.regular-add-lane-btn.muted:hover{opacity:1}.reschedule-cancel-btn{color:#92400e;cursor:pointer;background:#fff;border:1px solid #fcd34d;border-radius:6px;margin-left:8px;padding:2px 8px;font-size:11px;font-weight:700}.reschedule-cancel-btn:hover{background:#fef3c7}.badge-reschedule{color:#fff;background:#b45309;border-radius:3px;justify-content:center;align-items:center;min-width:12px;padding:0 3px;font-size:.7rem;font-weight:700;line-height:1.4;display:inline-flex}.day-student-card.reschedule-target{outline-offset:-2px;outline:2px solid #b45309}.cap-reason-section{background:#f8fafc;border:1px solid #e5e9f0;border-radius:6px;flex-direction:column;gap:4px;padding:6px 7px;display:flex}.cap-reason-chips{flex-wrap:wrap;gap:4px;display:flex}.cap-reason-chip{color:#475569;cursor:pointer;background:#fff;border:1px solid #c9cfdb;border-radius:999px;padding:3px 8px;font-size:.74rem;font-weight:700}.cap-reason-chip:hover{background:#eef2fb}.cap-reason-chip.active{color:#fff;background:#2d5be3;border-color:#2d5be3}.cap-reason-warn{color:#92400e;margin:0;font-size:11px}.cap-approval-field{align-items:center;gap:6px;display:flex}.cap-approval-field .cap-note-label{white-space:nowrap}.cap-approval-field select{background:#fff;border:1px solid #c9cfdb;border-radius:6px;padding:3px 6px;font-size:.78rem}.cap-reschedule-limit{color:#475569;margin:2px 0 0;font-size:11px}.cap-reschedule-limit-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;margin:2px 0 0;padding:4px 6px;font-size:11px}.cap-reason-section.over-limit{background:#fef2f2;border-color:#fca5a5;box-shadow:inset 0 0 0 1px #fca5a5}.cap-reason-section.over-limit .cap-note-label{color:#b91c1c}.cap-reschedule-limit.over{color:#b91c1c;font-weight:700}.cap-reason-section.over-limit .cap-reschedule-limit-warn{color:#991b1b;background:#fff;border-color:#ef4444}.cap-reason-head{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.cap-reason-head .cap-note-label{flex:none}.cap-reason-head .cap-reason-chips{flex:auto;gap:3px}.cap-reason-head .cap-reason-chip{padding:2px 6px;font-size:11px}.cap-reason-foot{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cap-reason-foot .cap-reschedule-limit{margin:0}.cap-approval-check{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c9cfdb;border-radius:6px;flex:none;align-items:center;gap:4px;padding:2px 6px;font-size:11px;font-weight:700;display:inline-flex}.cap-approval-check:hover{color:#2d5be3;border-color:#2d5be3}.cap-approval-check input{cursor:pointer;margin:0}.cap-approval-check:has(input:checked){color:#15803d;background:#e8f5e9;border-color:#16a34a}.reschedule-list-btn.active{color:#fff;background:#b45309;border-color:#b45309}.reschedule-list-panel{background:#fff;border:1px solid #2d5be3;border-radius:6px;flex-direction:column;gap:8px;padding:8px 9px;display:flex}.reschedule-list-month{color:#475569;justify-content:space-between;align-items:center;font-size:.78rem;display:flex}.reschedule-list-month select{border:1px solid #c9cfdb;border-radius:6px;margin-left:4px;padding:2px 5px;font-size:.78rem}.reschedule-list-count{color:#6b7280;font-size:11px}.reschedule-list-table-wrap{max-height:60vh;overflow-y:auto}.reschedule-list-table{border-collapse:collapse;width:100%;font-size:12px}.reschedule-list-table th,.reschedule-list-table td{text-align:left;white-space:nowrap;border-bottom:1px solid #eef1f5;padding:4px 6px}.reschedule-list-table .reschedule-list-note{white-space:normal;max-width:140px}.reschedule-list-table .muted{color:#6b7280}.reschedule-list-row{cursor:pointer}.reschedule-list-row:hover{background:#f8fafc}.reschedule-status-badge{border-radius:999px;padding:1px 6px;font-size:11px;font-weight:700;display:inline-block}.reschedule-status-badge.pending{color:#92400e;background:#fef3c7}.reschedule-status-badge.placed{color:#166534;background:#dcfce7}.room-badge{color:#6b7280;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:4px;align-items:center;gap:2px;min-width:0;max-width:100%;padding:0 4px;font-size:11px;line-height:1.5;display:inline-flex}.room-badge:hover{color:#2d5be3;border-color:#2d5be3}.room-badge-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.room-badge-seat{flex:none}.room-badge.unset{color:#6b7280;text-align:center;min-width:16px;padding:0 3px;font-style:normal;font-weight:700}.room-badge.dup{color:#b45309;background:#fffbeb;border-color:#b45309;font-weight:700}.day-row-room{min-width:0;max-width:100%;margin:1px 0}.regular-lane-room-row{min-width:0;max-width:100%;margin:0 0 3px}.room-inline{flex-wrap:wrap;align-items:center;gap:2px;min-width:0;display:flex}.room-inline-select,.room-inline-seat{color:#334155;cursor:pointer;background:#fff;border:1px solid #c9cfdb;border-radius:4px;max-width:100%;height:20px;padding:1px 2px;font-family:inherit;font-size:11px;font-weight:700}.room-inline-select{min-width:52px}.room-inline-seat{min-width:34px}.room-inline-select:hover,.room-inline-seat:hover{border-color:#2d5be3}.room-inline-select.unset{color:#6b7280;border-style:dashed}.room-inline-seat.dup{color:#b91c1c;border-color:#dc2626}.room-inline-speech{color:#6b7280;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:4px;height:20px;padding:3px;font-family:inherit;font-size:11px;font-weight:700;line-height:1}.room-inline-speech:hover{color:#6d28d9;border-color:#7c3aed}.room-inline-speech.active{color:#fff;background:#7c3aed;border-color:#6d28d9}.room-inline-speech{margin-left:auto}.room-inline-seat:disabled{opacity:.5;cursor:not-allowed}.room-inline-clear{color:#b45309;cursor:pointer;background:#fffbeb;border:1px solid #fde68a;border-radius:4px;height:20px;padding:3px 4px;font-family:inherit;font-size:11px;line-height:1}.room-inline-clear.confirming{color:#fff;background:#dc2626;border-color:#dc2626}.room-inline-dup{color:#b91c1c;font-size:11px}.day-row.lane-speech,.regular-lane.lane-speech{box-shadow:inset 3px 0 #7c3aed}.room-inline.to-weekly{background:#fffbeb;border-radius:5px;padding:1px 2px;box-shadow:0 0 0 1px #f59e0b}.room-inline.to-weekly:before{content:"毎";color:#fff;background:#b45309;border-radius:3px;flex:none;padding:1px 3px;font-size:11px;font-weight:700}.room-target-switch{align-items:center;gap:4px;margin-left:auto;display:inline-flex}.room-target-label{color:#475569;font-size:12px;font-weight:600}.room-mode-btn{border-color:#e7c98a}.room-mode-btn.active{background:#b45309;border-color:#b45309}.room-edit-mode-btn{border:1px solid #e7c98a;border-radius:6px}.room-edit-mode-btn.active{color:#fff;background:#b45309;border-color:#b45309}.day-room-chip-inline{color:#94a3b8;cursor:pointer;background:#fff;border:1px dashed #cbd5e1;border-radius:4px;flex:none;padding:0 4px;font-size:10px;font-weight:700;line-height:1.4}.day-room-chip-inline:hover{color:#b45309;border-color:#e7c98a}.day-room-chip{color:#92400e;cursor:pointer;background:#fffbeb;border:1px solid #e7c98a;border-radius:4px;align-items:center;gap:2px;padding:0 4px;font-size:10px;font-weight:700;line-height:1.5;display:inline-flex}.day-room-chip:hover{background:#fef3c7}.day-room-chip-speech{color:#6d28d9}.day-room-collapse{color:#94a3b8;cursor:pointer;background:0 0;border:none;flex:none;padding:0 2px;font-size:10px}.day-room-collapse:hover{color:#475569}.room-target-warn{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:700}.print-group{border:1px solid #ffffff73;border-radius:8px;align-items:center;gap:4px;margin-left:8px;padding:2px 6px;display:inline-flex}.print-group-label{color:#fff;opacity:.9;font-size:11px;font-weight:700}.print-group-btn{color:#1f2937;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #fff;border-radius:6px;padding:3px 7px;font-family:inherit;font-size:11px;font-weight:700}.print-group-btn:hover{background:#e8eefc}.list-print-hint{color:#6b7280;font-size:11px}.print-a3-speech{color:#5b21b6;border:.3mm solid #7c3aed;border-radius:1mm;margin-bottom:.4mm;padding:0 .8mm;font-weight:900;display:inline-block}.seat-grid{flex-wrap:wrap;gap:4px;display:flex}.seat-btn{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:6px;min-width:30px;height:30px;font-size:.82rem;font-weight:600}.seat-btn:hover{color:#2d5be3;border-color:#2d5be3}.seat-btn.active{color:#fff;background:#2d5be3;border-color:#2d5be3}.seat-btn.occupied{color:#9ca3af;background:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 4px,#e5e7eb 4px 8px);border-color:#d1d5db}.seat-btn.occupied.active{color:#fff;background:#2d5be3;border-color:#2d5be3}.add-mode-switch-row{align-items:center;gap:8px;margin-bottom:4px;display:flex}.add-mode-switch-label{color:#6b7280;font-size:.78rem;font-weight:600}.dialog-note-muted{color:#6b7280;margin:0 0 4px;font-size:.74rem}.dialog-warning-note{color:#b45309;margin:0 0 4px;font-size:.76rem;font-weight:600}.dialog-btn-outline{color:#b45309;cursor:pointer;background:#fff;border:1px solid #b45309;border-radius:8px;padding:7px 14px;font-size:.84rem;font-weight:600}.dialog-btn-outline:hover{background:#fffbeb}.ng-confirm-list{flex-direction:column;gap:6px;display:flex}.ng-confirm-list p{color:#7c2d12;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;margin:0;padding:8px 10px;font-size:.82rem}.ng-rule-manager{flex-direction:column;gap:8px;margin-top:6px;display:flex}.ng-rule-table td,.ng-rule-table th{white-space:normal}.ng-rule-table td:first-child,.ng-rule-table th:first-child{white-space:nowrap}.dialog-subtitle{color:#1f2937;margin:4px 0 2px;font-size:.86rem}tr.row-clickable{cursor:pointer}tr.row-clickable:hover{background:#f8fafc}.row-detail-arrow{color:#9ca3af;white-space:nowrap;text-align:right;font-size:.76rem}tr.row-clickable:hover .row-detail-arrow{color:#2d5be3}.list-search-input{border:1px solid #d1d5db;border-radius:8px;width:100%;max-width:320px;padding:6px 10px;font-size:.84rem}.save-flash{color:#166534;font-size:.76rem;font-weight:700}.day-print-btn{color:#2d5be3;cursor:pointer;white-space:nowrap;background:#eef2fb;border:1px solid #2d5be3;border-radius:999px;align-items:center;gap:4px;padding:3px 10px;font-size:.76rem;font-weight:600;display:inline-flex}.day-print-btn:hover{background:#dbe4f7}.print-select-dialog{width:480px;max-width:92vw}.print-select-toolbar{align-items:center;gap:8px;margin:4px 0 8px;display:flex}.print-select-toolbar .list-search-input{flex:auto;max-width:none}.print-select-list{border:1px solid #e2e8f0;border-radius:8px;flex-direction:column;gap:2px;max-height:320px;padding:4px;display:flex;overflow-y:auto}.print-select-grade-head{color:#475569;margin-top:2px;padding:5px 8px 1px;font-size:.7rem;font-weight:700}.print-select-row{cursor:pointer;border-radius:6px;align-items:center;gap:8px;padding:5px 8px;font-size:.84rem;display:flex}.print-select-row:hover{background:#f5f6f8}.print-select-count{color:#6b7280;white-space:nowrap;font-size:.78rem}.print-overlay{display:none}.print-overlay.active{z-index:200;background:#64748b;padding:20px 0 40px;display:block;position:fixed;inset:0;overflow:auto}.print-controls{justify-content:center;gap:10px;padding-bottom:14px;display:flex;position:sticky;top:0}.print-close-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #fff;border-radius:8px;padding:6px 14px;font-size:.84rem;font-weight:700}.print-close-btn:hover{background:#f1f5f9}.print-page{color:#111827;box-sizing:border-box;background:#fff;margin:0 auto 20px;box-shadow:0 4px 16px #00000047}.print-page-a3{width:297mm;padding:8mm}.print-page-a4{width:210mm;padding:10mm}@media print{.app-shell{display:none!important}.print-overlay{display:block!important}.print-overlay.active{background:0 0;padding:0;position:static;overflow:visible}.print-overlay,.print-overlay *{-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact}.print-controls{display:none!important}.print-page{box-shadow:none;margin:0}.print-page-a4:not(:last-child){page-break-after:always;break-after:page}}.print-a3-title{flex-wrap:wrap;align-items:baseline;gap:1mm;margin:0 0 4mm;font-size:5mm;font-weight:900;display:flex}.print-a3-date-big{font-size:2em}.print-a3-week{color:#475569;font-size:.6em;font-weight:600}.print-a3-printed-at{color:#6b7280;margin-left:auto;font-size:3mm;font-weight:600}.print-a3-empty{color:#6b7280;font-size:4mm}.print-a3-legend{color:#475569;border-top:.25mm solid #cbd5e1;flex-wrap:wrap;gap:3mm;margin:3mm 0 0;padding-top:2mm;font-size:3mm;display:flex}.print-a3-legend-item{white-space:nowrap;align-items:center;gap:1mm;display:inline-flex}.print-a3-legend-item .print-a3-subject{margin-right:.5mm}.print-a3-grid{border-collapse:collapse;table-layout:fixed;width:100%}.print-a3-grid th,.print-a3-grid td{vertical-align:top;border:.3mm solid #94a3b8}.print-a3-grid thead th{color:#111827;text-align:center;background:#fff;border-bottom:.6mm solid #111827;padding:1.5mm 1mm;font-weight:900}.print-a3-th-label{font-weight:700;display:block}.print-a3-th-time{opacity:.85;font-size:max(.85em,2.4mm);display:block}.print-a3-rowhead{text-align:left;white-space:nowrap;background:#eef2fb;width:22mm;padding:1.5mm 2mm;font-weight:700}.print-a3-cell{padding:1mm}.print-a3-cell-empty{background:#f8fafc}.print-a3-room{color:#111827;border:.3mm solid #111827;border-radius:1mm;margin-bottom:.5mm;padding:0 .8mm;font-size:3mm;font-weight:900;display:inline-block}.print-a3-block{color:#9ca3af;font-size:2.4mm;font-style:italic;display:block}.print-a3-item{border:.25mm solid #cbd5e1;border-radius:1mm;flex-wrap:wrap;align-items:center;gap:.8mm;margin-bottom:.5mm;padding:.5mm 1mm;display:flex}.print-a3-item.is-absent{opacity:.7;text-decoration:line-through}.print-a3-subject{border:.25mm solid;border-radius:.6mm;padding:0 .6mm;font-size:.9em;font-weight:900}.print-a3-name{white-space:nowrap;font-weight:600}.print-a3-badge{background:#fff;border:.25mm solid;border-radius:.6mm;padding:0 .8mm;font-size:2.5mm;font-weight:900}.print-a3-badge-absent{color:#dc2626}.print-a3-badge-extra{color:#16a34a}.print-a3-badge-reschedule{color:#b45309}.print-a3-badge-moved{color:#7c3aed}.print-density-xl .print-a3-item,.print-density-xl .print-a3-rowhead,.print-density-xl .print-a3-grid thead th{font-size:4.4mm}.print-density-xl .print-a3-cell,.print-density-xl .print-a3-rowhead{padding:1.4mm}.print-density-xl .print-a3-item{margin-bottom:.6mm;padding:.6mm 1.2mm}.print-density-xl .print-a3-room,.print-density-xl .print-a3-block{font-size:3.4mm}.print-density-lg .print-a3-item,.print-density-lg .print-a3-rowhead,.print-density-lg .print-a3-grid thead th{font-size:3.6mm}.print-density-lg .print-a3-room,.print-density-lg .print-a3-block{font-size:2.6mm}.print-density-md .print-a3-item,.print-density-md .print-a3-rowhead,.print-density-md .print-a3-grid thead th{font-size:3.1mm}.print-density-md .print-a3-cell,.print-density-md .print-a3-rowhead{padding:.7mm 1mm}.print-density-md .print-a3-item{margin-bottom:.3mm;padding:.3mm .8mm}.print-density-md .print-a3-room,.print-density-md .print-a3-block{font-size:2.2mm}.print-density-sm .print-a3-item,.print-density-sm .print-a3-rowhead,.print-density-sm .print-a3-grid thead th{font-size:2.7mm}.print-density-sm .print-a3-cell,.print-density-sm .print-a3-rowhead{padding:.5mm .8mm}.print-density-sm .print-a3-item{margin-bottom:.2mm;padding:.2mm .6mm}.print-density-sm .print-a3-room,.print-density-sm .print-a3-block{font-size:1.9mm}.print-density-sm .print-a3-badge{font-size:2.3mm}.print-a4-title{margin:0 0 3mm;font-size:6mm;font-weight:900}.print-a4-grade{color:#6b7280;font-size:.6em;font-weight:600}.print-cal-legend{color:#475569;flex-wrap:wrap;gap:0 4mm;margin:0 0 4mm;font-size:2.6mm;display:flex}.print-cal-legend-item{white-space:nowrap}.print-cal-month{margin-bottom:6mm}.print-cal-month-title{margin:0 0 2mm;font-size:4.4mm;font-weight:800}.print-cal-month-weekrange{color:#6b7280;font-size:.55em;font-weight:600}.print-cal-empty{color:#6b7280;font-size:3.4mm}.print-cal-table{border-collapse:collapse;table-layout:fixed;width:100%}.print-cal-table th,.print-cal-table td{vertical-align:top;border:.25mm solid #cbd5e1;height:34mm;padding:1mm}.print-cal-table thead th{color:#111827;text-align:center;background:#fff;border-bottom:.6mm solid #111827;height:auto;padding:1mm;font-size:3mm;font-weight:900}.print-cal-daynum{color:#475569;margin-bottom:.5mm;font-size:3mm;font-weight:700}.print-cal-gap-row td{text-align:center;color:#9ca3af;background:#f8fafc;padding:2mm;font-size:2.6mm;font-style:italic}.print-cal-closed{background:#f1f5f9}.print-cal-closed-label{color:#6b7280;font-size:2.6mm;font-weight:700}.print-cal-chip{border-radius:1mm;flex-wrap:wrap;align-items:center;gap:.6mm;margin-bottom:.5mm;padding:.4mm 1mm;font-size:2.6mm;display:flex}.print-cal-chip-slot{font-weight:900}.print-cal-chip-mark{background:#0000001a;border-radius:.6mm;padding:0 .6mm;font-size:max(.85em,2.3mm);font-weight:700}.print-cal-chip-mark-resched{color:#b45309;background:#fff;border:.2mm solid}.print-cal-chip-strike{text-decoration:line-through}.print-cal-footer{border-top:.3mm solid #cbd5e1;margin-top:4mm;padding-top:3mm}.print-cal-footer-line{justify-content:space-between;align-items:baseline;margin:0 0 2mm;display:flex}.print-cal-footer-juku{font-size:4mm;font-weight:900}.print-cal-footer-issued{color:#6b7280;font-size:2.8mm}.print-cal-footer-contact{color:#475569;margin:0 0 3mm;font-size:2.8mm}.print-cal-footer-memo{border:.25mm solid #cbd5e1;border-radius:1mm;min-height:24mm;padding:1.5mm 2mm}.print-cal-footer-memo-label{color:#6b7280;font-size:2.8mm;font-weight:700}.print-cal-double .print-cal-table td{height:15mm}.print-cal-double .print-cal-chip{font-size:2.1mm}.print-cal-double .print-cal-month-title{font-size:3.8mm}.print-cal-double .print-cal-footer-memo{min-height:14mm}.finder-overlay{z-index:210;background:#0f172a8c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.finder-card{background:#fff;border-radius:12px;flex-direction:column;gap:10px;width:min(1320px,100%);max-height:min(920px,96vh);padding:16px 20px 20px;display:flex;position:relative;overflow-y:auto;box-shadow:0 12px 40px #0000004d}.finder-header{flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding-right:90px;display:flex}.finder-header h2{margin:0;font-size:1.05rem}.finder-header-sub{color:#6b7280;margin:0;font-size:.78rem}.finder-close-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:5px 12px;font-size:.8rem;font-weight:700;position:absolute;top:14px;right:16px}.finder-close-btn:hover{background:#f1f5f9}.finder-controls{flex-wrap:wrap;align-items:flex-start;gap:16px;display:flex}.finder-picker{flex-direction:column;flex:380px;gap:6px;min-width:300px;display:flex}.finder-picker-head{align-items:center;gap:8px;display:flex}.finder-picker-label{color:#334155;white-space:nowrap;font-size:.8rem;font-weight:700}.finder-picker-input{border:1px solid #d0d0d0;border-radius:6px;flex:1;min-width:0;padding:5px 8px;font-size:.82rem}.finder-picker-list{background:#fff;border:1px solid #e5e9f0;border-radius:8px;max-height:300px;padding:6px;overflow-y:auto}.finder-picker-group+.finder-picker-group{margin-top:6px}.finder-picker-group-label{z-index:1;color:#475569;background:#fff;margin-bottom:2px;padding:2px 0;font-size:11px;font-weight:700;position:sticky;top:-6px}.finder-picker-chips{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:3px;display:grid}.finder-picker-empty{color:#6b7280;margin:0;font-size:.8rem}.finder-picker-result{text-align:left;color:#1f2937;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:#fff;border:1px solid #e5e9f0;border-radius:5px;width:100%;padding:3px 6px;font-size:12px;font-weight:600;display:block;overflow:hidden}.finder-picker-result:hover{background:#eef2fb;border-color:#2d5be3}.finder-lane-count{color:#475569;font-size:11px;font-weight:700}.finder-lane-count.zero{color:#9ca3af}.finder-picker-chip{color:#1f3a8a;background:#eef2fb;border-radius:999px;align-items:center;gap:6px;padding:4px 6px 4px 10px;font-size:.82rem;font-weight:700;display:inline-flex}.finder-picker-chip button{color:#1f3a8a;cursor:pointer;background:0 0;border:none;padding:0 2px;font-size:.8rem}.finder-empty-note{color:#6b7280;background:#f8fafc;border-radius:8px;margin:0;padding:10px 12px;font-size:.82rem}.finder-condition{margin:0}.finder-pending-banner{color:#92400e;background:#fffbeb;border:1px solid #fcd34d;border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;font-size:.78rem;display:flex}.finder-pending-label{font-weight:700}.finder-pending-chip{background:#fff;border:1px solid #d97706;border-radius:999px;padding:1px 8px;font-size:.76rem}.finder-pending-note{color:#92400e;font-size:.72rem}.finder-week-nav{align-items:center;gap:8px;font-size:.82rem;display:flex}.finder-week-nav button{cursor:pointer;background:#fff;border:1px solid #d0d0d0;border-radius:6px;padding:3px 10px;font-size:.78rem}.finder-week-nav button:hover{background:#f1f5f9}.finder-week-label{color:#1f2937;font-weight:700}.finder-week-today{color:#2d5be3;margin-left:auto;border-color:#2d5be3!important}.finder-legend{margin:0}.finder-noweek-banner{color:#475569;background:#f1f5f9;border:1px solid #cbd5e1;border-radius:6px;margin:0;padding:6px 10px;font-size:.78rem}.finder-grid-noweek{opacity:.55}.finder-grid-noweek .finder-cell{pointer-events:none}.finder-grid-wrap{overflow-x:auto}.finder-table{border-collapse:separate;border-spacing:4px;table-layout:fixed;width:100%}.finder-table th{color:#6b7280;vertical-align:top;padding:2px;font-size:11px;font-weight:700}.finder-th-corner{width:64px}.finder-th-date{color:#6b7280;font-weight:400}.finder-th-slot{text-align:left;color:#1f2937;width:64px;font-size:12px}.finder-td{min-width:108px}.finder-cell{width:100%;min-height:48px;font:inherit;text-align:left;flex-direction:column;align-items:flex-start;gap:2px;display:flex}.finder-cell:disabled{cursor:default;opacity:.5}.finder-cell.selected{outline-offset:1px;outline:2px solid #2563eb}.finder-cell-resched{box-shadow:inset 0 0 0 2px #b45309}.finder-cell-empty{color:#6b7280;font-size:12px}.regular-lane.finder-cell-noslot{background:#f8fafc;border-style:dashed;border-color:#cbd5e1}.finder-cell-noslot-key{background:#f8fafc;border:2px dashed #cbd5e1;border-radius:3px;width:18px;height:14px;margin-right:3px;display:inline-block}.finder-noslot-label{color:#94a3b8;font-size:10px;font-weight:700}.regular-lane.finder-cell-closed{background:#e5e7eb;border-style:dashed;border-color:#9ca3af}.finder-cell-closed-label{color:#6b7280;font-size:12px;font-weight:800}.finder-cell-levels{align-items:center;gap:4px;font-size:13px;font-weight:800;line-height:1;display:flex}.finder-level-student{color:#1d4ed8}.finder-level-teacher{color:#166534}.finder-existing{flex-wrap:wrap;gap:2px;display:flex}.finder-existing-chip{color:#475569;white-space:nowrap;background:#fff;border:1px solid #e5e7eb;border-radius:4px;padding:0 3px;font-size:11px}.finder-existing-more{color:#6b7280;font-size:11px}.finder-asobi-badge{color:#0e7490;background:#ecfeff;border:1px solid #06b6d4;border-radius:4px;padding:0 3px;font-size:11px}.finder-resched-badge{color:#b45309;background:#fffbeb;border:1px solid #b45309;border-radius:4px;padding:0 3px;font-size:11px;font-weight:800;display:inline-block}.finder-jump-bar{background:#eef2fb;border-top:1px solid #dbe4fb;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:4px -20px -20px;padding:10px 20px;display:flex;position:sticky;bottom:-20px}.finder-jump-label{color:#1f2937;font-size:.84rem}.finder-jump-actions{gap:8px;display:flex}@media (width<=640px){.finder-overlay{padding:0}.finder-card{border-radius:0;width:100%;max-height:100vh}.finder-controls{flex-direction:column;gap:8px}}.right-top{flex-wrap:wrap;align-items:flex-start;gap:10px;display:flex}.right-top>.coma-action-panel{flex:280px;max-width:none}.right-top>.stock-panel{flex:270px;max-width:720px}.right-top>.info-panel,.right-top>.info-panel-empty{flex:100%;max-width:none}.right-top>.info-panel-empty{padding:4px 0}.teacher-week-grid{border-collapse:collapse;table-layout:fixed;width:100%;font-size:.78rem}.teacher-week-grid th,.teacher-week-grid td{vertical-align:top;white-space:normal;overflow-wrap:anywhere;border:1px solid #e5e7eb;padding:3px 4px}.teacher-week-grid td{overflow:hidden}.teacher-week-grid thead th{z-index:2;color:#374151;text-align:center;background:#f0f2f6;padding:2px 4px;font-size:11.5px;font-weight:700;position:sticky;top:0}.teacher-week-grid thead th.sat{color:#2563eb}.teacher-week-grid .twg-corner{width:44px}.twg-rowhead{text-align:center;background:#eef2fb;width:44px}.twg-rowhead-mark{color:#1a2540;font-size:14px;font-weight:800;line-height:1.1;display:block}.twg-rowhead-time{color:#6b7280;font-size:11px;font-weight:600;line-height:1.1;display:block}.twg-cell-empty{background:#fafbfc}.twg-lane{flex-direction:column;gap:2px;display:flex}.twg-lane+.twg-lane{border-top:1px dashed #e5e7eb;margin-top:4px;padding-top:4px}.twg-lane .regular-lane-capacity{align-self:flex-start}.twg-students{margin:0;padding:0;list-style:none}.twg-students li{color:#1f2937;line-height:1.3}.twg-subject{color:#6b7280;margin-left:2px}.twg-subject:before{content:"｜"}.twg-block{color:#9ca3af;font-style:italic}.print-layout-switch{color:#334155;background:#fff;border-radius:8px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.print-layout-btn{color:#334155;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:6px;padding:4px 10px;font-size:.8rem;font-weight:600}.print-layout-btn:hover{background:#f1f5f9}.print-layout-btn.is-active{color:#fff;background:#2d5be3}.print-a3-lanes-block{margin-bottom:3mm}.print-a3-lanes-head{border-bottom:.6mm solid #111827;align-items:baseline;gap:2mm;margin:0 0 1mm;padding:.5mm 1mm;font-weight:900;display:flex}.print-a3-lanes-head-time{color:#475569;font-size:.7em;font-weight:600}.print-a3-lanes-head-count{color:#6b7280;margin-left:auto;font-size:.6em;font-weight:600}.print-a3-lanes{border-collapse:collapse;table-layout:fixed;width:100%}.print-a3-lanes th,.print-a3-lanes td{vertical-align:middle;border:.3mm solid #94a3b8}.print-a3-lanes .print-a3-rowhead{width:26mm}.print-a3-lane-cap{text-align:center;width:12mm;padding:.5mm;font-weight:700}.print-a3-lane-cap.is-over{color:#dc2626}.print-a3-lane-room{width:22mm;padding:.5mm 1mm}.print-a3-lane-items{flex-wrap:wrap;align-items:center;gap:1mm;display:flex}.print-a3-lane-items .print-a3-item{margin-bottom:0}.print-a3-lane-empty{color:#9ca3af;font-size:.85em;font-style:italic}.print-density-xl .print-a3-lanes-head{font-size:4.4mm}.print-density-lg .print-a3-lanes-head{font-size:3.6mm}.print-density-md .print-a3-lanes-head{font-size:3.1mm}.print-density-sm .print-a3-lanes-head{font-size:2.7mm}.print-density-xl .print-a3-lane-cap,.print-density-xl .print-a3-lane-room{font-size:3.4mm}.print-density-lg .print-a3-lane-cap,.print-density-lg .print-a3-lane-room{font-size:2.8mm}.print-density-md .print-a3-lane-cap,.print-density-md .print-a3-lane-room{font-size:2.4mm}.print-density-sm .print-a3-lane-cap,.print-density-sm .print-a3-lane-room{font-size:2.1mm}.print-cal-weeks-grid{flex-direction:column;gap:2mm;display:flex}.print-cal-week-label{color:#6b7280;margin:0 0 .3mm;font-size:2.6mm;font-weight:700}.print-cal-week-label-deadline{color:#b45309;margin-left:2mm;font-weight:700}.print-cal-grid{border-collapse:collapse;table-layout:fixed;width:100%}.print-cal-grid th,.print-cal-grid td{vertical-align:top;border:.25mm solid #cbd5e1;padding:.6mm .8mm}.print-cal-grid thead th{color:#111827;text-align:center;background:#fff;border-bottom:.6mm solid #111827;padding:.6mm;font-size:3mm;font-weight:900}.print-cal-grid thead th.sat{color:#2563eb}.print-cal-grid thead th.print-cal-closed{color:#6b7280;background:#f1f5f9}.print-cal-grid-corner{width:18mm}.print-cal-grid-rowhead{text-align:center;vertical-align:middle;white-space:nowrap;background:#f1f5f9;width:18mm;font-size:3.2mm;font-weight:900}.print-cal-grid-rowhead-time{color:#6b7280;margin-left:.8mm;font-size:2.3mm;font-weight:600;display:inline}.print-cal-grid td{height:5.5mm}.print-cal-grid td.print-cal-closed{background:#f1f5f9}.print-cal-grid .print-cal-chip{margin-bottom:.4mm;padding:.2mm .8mm;font-size:3mm}.print-a4-layout-grid .print-cal-footer-memo{min-height:14mm}.print-cal-grid .print-cal-chip:last-child{margin-bottom:0}.print-cal-grid-gap{text-align:center;color:#9ca3af;background:#f8fafc;padding:1.5mm;font-size:2.6mm;font-style:italic}.print-cal-grid-dayhead-closed{color:#6b7280;font-size:2.1mm;font-weight:700;display:block}.print-cal-months-row{align-items:flex-start;gap:4mm;display:flex}.print-cal-months-row>.print-cal-month{flex:1 1 0;min-width:0;margin-bottom:3mm}.print-cal-months-row .print-cal-grid-corner,.print-cal-months-row .print-cal-grid-rowhead{width:11mm}.print-cal-months-row .print-cal-grid-rowhead{font-size:2.6mm}.print-cal-months-row .print-cal-grid-rowhead-time{display:none}.print-cal-months-row .print-cal-grid td{height:5mm}.print-cal-months-row .print-cal-chip{font-size:2.6mm}.print-cal-density-compact .print-cal-grid td{height:4.6mm}.print-cal-density-compact .print-cal-weeks-grid{gap:1.2mm}.print-cal-density-compact .print-cal-week-label{font-size:2.4mm}.print-cal-density-compact .print-cal-footer-memo{min-height:8mm}.print-cal-density-compact .print-cal-months-row .print-cal-grid td{height:4.2mm}.print-cal-density-compact .print-cal-table td{height:28mm}.print-cal-density-compact.print-cal-double .print-cal-table td{height:13mm}.print-cal-density-tight .print-cal-grid td{height:4mm}.print-cal-density-tight .print-cal-grid .print-cal-chip{margin-bottom:.2mm;padding:.1mm .6mm;font-size:2.6mm}.print-cal-density-tight .print-cal-weeks-grid{gap:1mm}.print-cal-density-tight .print-cal-week-label{margin:0;font-size:2.2mm}.print-cal-density-tight .print-cal-grid thead th{padding:.3mm;font-size:2.6mm}.print-cal-density-tight .print-cal-grid-rowhead{font-size:2.8mm}.print-cal-density-tight .print-cal-month-title{margin-bottom:1mm;font-size:3.8mm}.print-cal-density-tight .print-cal-footer{margin-top:2mm;padding-top:1.5mm}.print-cal-density-tight .print-cal-footer-memo{min-height:5mm}.print-cal-density-tight .print-cal-months-row .print-cal-grid td{height:3.8mm}.print-cal-density-tight .print-cal-months-row .print-cal-chip{font-size:2.3mm}.print-cal-density-tight .print-cal-table td{height:24mm}.print-cal-density-tight.print-cal-double .print-cal-table td{height:11mm}.print-cal-months-row .print-cal-grid thead th{font-size:2.6mm}.help-overlay{z-index:210;background:#475569;padding:14px 0 40px;position:fixed;inset:0;overflow:auto}.help-controls{z-index:2;background:#475569;justify-content:center;align-items:center;gap:10px;padding:0 14px 12px;display:flex;position:sticky;top:0}.help-controls-title{color:#fff;margin-right:auto;padding-left:8px;font-size:.95rem;font-weight:800}.help-print-btn,.help-close-btn{cursor:pointer;border-radius:8px;padding:6px 14px;font-size:.85rem;font-weight:700}.help-print-btn{color:#fff;background:#2d5be3;border:1px solid #1e40af}.help-print-btn:hover{background:#1e40af}.help-close-btn{color:#fff;background:0 0;border:1px solid #fff}.help-close-btn:hover{background:#ffffff26}.help-card{background:#fff;border-radius:10px;align-items:flex-start;gap:0;max-width:1040px;margin:0 auto;display:flex;overflow:visible;box-shadow:0 10px 30px #0f172a4d}.help-toc{background:#f8fafc;border-right:1px solid #e5e7eb;border-radius:10px 0 0 10px;flex:0 0 238px;align-self:flex-start;max-height:calc(100vh - 86px);padding:22px 14px 22px 20px;position:sticky;top:52px;overflow:auto}.help-toc-title{color:#64748b;letter-spacing:.08em;margin:0 0 8px;font-size:.72rem;font-weight:800}.help-toc ol{flex-direction:column;gap:2px;margin:0;padding-left:18px;display:flex}.help-toc li{color:#475569;font-size:.82rem}.help-toc button{color:#1f2937;text-align:left;cursor:pointer;background:0 0;border:none;padding:3px 0;font-size:.82rem;line-height:1.5}.help-toc button:hover{color:#2d5be3;text-decoration:underline}.help-body{flex:auto;min-width:0;padding:22px 30px 34px}.help-title{letter-spacing:.02em;margin:0 0 6px;font-size:1.5rem;font-weight:900}.help-section{margin-top:26px;scroll-margin-top:64px}.help-section:first-of-type{margin-top:14px}.help-section-title{border-left:5px solid #2d5be3;margin:0 0 10px;padding-left:10px;font-size:1.05rem;font-weight:800;line-height:1.3}.help-body h4{color:#1f2937;margin:16px 0 6px;font-size:.92rem;font-weight:800}.help-body p{color:#1f2937;margin:0 0 8px;font-size:.88rem;line-height:1.8}.help-body ul,.help-body ol{margin:0 0 10px;padding-left:22px}.help-body li{color:#1f2937;font-size:.88rem;line-height:1.8}.help-body b{font-weight:800}.help-note{background:#f8fafc;border-left:3px solid #cbd5e1;padding:6px 0 6px 10px;color:#475569!important}.help-warn{background:#fffbeb;border-left:3px solid #f59e0b;padding:7px 0 7px 10px;font-weight:600}.help-table{table-layout:fixed;border-collapse:collapse;width:100%;margin:6px 0 12px}.help-table th,.help-table td{text-align:left;vertical-align:top;white-space:normal;overflow-wrap:anywhere;border:1px solid #e5e7eb;padding:7px 10px;font-size:.85rem;line-height:1.7}.help-table th{color:#1f2937;background:#f8fafc;width:170px;font-weight:800}.help-legend-row{flex-wrap:wrap;gap:6px 16px;display:flex;margin:6px 0 12px!important}.help-legend-row .legend-item{color:#1f2937;white-space:nowrap;align-items:center;font-size:.84rem;display:inline-flex}.help-legend-row .kind-swatch{vertical-align:-4px;width:18px;height:18px;margin-right:6px}.help-legend-row .fit-key{width:26px;height:18px;margin-right:6px}.help-legend-row .lg-dot,.help-legend-row .lane-prior{margin-right:4px;font-size:1rem}.help-care-list li{margin-bottom:5px}.help-foot{border-top:1px solid #e5e7eb;padding-top:12px;color:#64748b!important;margin-top:26px!important;font-size:.82rem!important}@media print{.help-overlay{background:0 0;padding:0;position:static;overflow:visible;display:block!important}.help-controls{display:none!important}.help-card{box-shadow:none;border-radius:0;max-width:none;display:block}.help-toc{display:none}.help-body{padding:0}.help-table,.help-body h4{page-break-inside:avoid;break-inside:avoid}.help-legend-row .fit-ng{background-color:#e5e7eb!important;background-image:none!important}.help-overlay,.help-overlay *{-webkit-print-color-adjust:exact;print-color-adjust:exact;color-adjust:exact}}.finder-cell-cols{grid-template-columns:minmax(30px,34px) 1fr;align-items:stretch;gap:3px;width:100%;display:grid}.finder-cell-col{flex-direction:column;align-items:flex-start;gap:2px;min-width:0;display:flex}.finder-cell-col:first-child{background:#2563eb12;border-radius:3px;justify-content:center;align-self:stretch;align-items:center;padding:1px 2px}.finder-cell-col+.finder-cell-col{border-left:2px solid #94a3b8;margin-left:4px;padding-left:6px}.finder-busy-row{flex-wrap:wrap;gap:3px;width:100%;display:flex}.finder-busy-chip{color:#1f2937;text-overflow:ellipsis;white-space:nowrap;background:#eef2fb;border:1px solid #c7d2fe;border-radius:3px;max-width:100%;padding:0 3px;font-size:11px;line-height:1.3;overflow:hidden}.finder-open-teachers{flex-wrap:wrap;gap:2px;max-width:100%;display:flex}.finder-open-chip,.finder-solo-chip,.finder-existing-chip{text-overflow:ellipsis;max-width:100%;overflow:hidden}.finder-open-chip{color:#166534;white-space:nowrap;background:#eef7ee;border:1px solid #16a34a;border-radius:3px;padding:0 3px;font-size:11px;font-weight:700;line-height:1.4}.finder-open-chip.caution{color:#92400e;background:#fef7e0;border-color:#d97706}.finder-open-more{color:#475569;font-size:11px;font-weight:700}.finder-open-none{color:#64748b;font-size:11px;font-weight:700}.finder-solo-row{flex-wrap:wrap;align-items:center;gap:3px;margin-top:1px;display:flex}.finder-solo-mark{color:#fff;background:#7c3aed;border-radius:3px;padding:0 3px;font-size:11px;font-weight:800}.finder-solo-chip{color:#5b21b6;white-space:nowrap;font-size:11px;font-weight:700}.finder-cell-solo{box-shadow:inset 0 0 0 2px #7c3aed}.finder-cell-solo.finder-cell-resched{box-shadow:inset 0 0 0 2px #7c3aed,inset 0 0 0 4px #b45309}.finder-solo-toggle-wrap{flex-direction:column;align-self:flex-start;gap:4px;display:flex}.finder-solo-toggle{color:#5b21b6;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #c4b5fd;border-radius:8px;padding:5px 12px;font-size:.82rem;font-weight:700}.finder-solo-toggle:hover{background:#f5f3ff}.finder-solo-toggle.active{color:#fff;background:#7c3aed;border-color:#7c3aed}.finder-th-corner-sub{color:#6b7280;font-size:10px;font-weight:600;line-height:1.3}.help-open-btn{color:#475569;border-color:#d8dbe0;margin-left:10px}.editlock-bar{border-radius:6px;flex-wrap:wrap;flex-basis:100%;align-items:center;gap:8px;margin-top:4px;padding:4px 10px;font-size:.76rem;line-height:1.5;display:flex}.editlock-free{color:#40506b;background:#eef1f6}.editlock-self{color:#17427c;background:#e3f0ff}.editlock-locked{color:#b3261e;background:#fdecea}.editlock-flash{animation:.5s ease-in-out 3 editlock-flash}@keyframes editlock-flash{50%{background:#ffd6d1}}.editlock-msg{flex:1;min-width:12em}.editlock-btn,.editlock-take{color:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid;border-radius:5px;padding:2px 8px;font-size:.76rem;font-weight:700}.editlock-btn.ghost{border-color:#0003;font-weight:500}.editlock-take{color:#fff;background:#b3261e;border-color:#b3261e}.editlock-name-edit{align-items:center;gap:6px;display:inline-flex}.editlock-name-edit input{border:1px solid #00000040;border-radius:5px;padding:2px 6px;font-size:.76rem}.editlock-scope-toggle{white-space:nowrap}.editlock-scope{color:#1a1a1a;background:#fff;border:1px solid #d7dce6;border-radius:6px;flex-basis:100%;margin-top:6px;padding:10px 12px}.editlock-scope-lead{margin:0 0 8px}.editlock-scope-table{border-collapse:collapse;width:100%;font-size:.74rem}.editlock-scope-table th,.editlock-scope-table td{text-align:left;vertical-align:top;border:1px solid #e3e7ef;padding:4px 8px}.editlock-scope-table thead th{white-space:nowrap;background:#f5f6f8}.editlock-scope-table tbody th{white-space:nowrap;background:#fafbfd}.editlock-scope-note{color:#5a647a;margin:8px 0 0;font-size:.72rem}@media print{.editlock-bar{display:none!important}}@media (width<=768px){.editlock-msg{flex:1 0 100%}.editlock-scope-table,.editlock-scope-table tbody,.editlock-scope-table tr,.editlock-scope-table th,.editlock-scope-table td{width:100%;display:block}.editlock-scope-table thead{display:none}.editlock-scope-table tr{margin-bottom:6px}}
