.timetable-app{--timetable-bg: #f7f8f8;--timetable-surface: #ffffff;--timetable-surface-soft: #f1f5f4;--timetable-border: #d6ddda;--timetable-border-strong: #8b9a95;--timetable-text: #202826;--timetable-muted: #5c6a66;--timetable-accent: #0f766e;--timetable-accent-strong: #0b5d56;--timetable-danger: #b42318;min-height:100vh;background:var(--timetable-bg);color:var(--timetable-text);font-family:var(--tool-shell-font);-webkit-tap-highlight-color:rgba(15,118,110,.14)}.timetable-cell-category-none{--category-bg: #ffffff;--category-border: #c6d1cd;--category-text: #34403c}.timetable-cell-category-red{--category-bg: #fde8e8;--category-border: #ef9a9a;--category-text: #7f1d1d}.timetable-cell-category-blue{--category-bg: #e7f0ff;--category-border: #9db9ef;--category-text: #1d4e89}.timetable-cell-category-yellow{--category-bg: #fff6c8;--category-border: #dfc451;--category-text: #5b4a06}.timetable-cell-category-green{--category-bg: #e4f7df;--category-border: #91c985;--category-text: #245d1f}.timetable-workspace{width:min(100%,72rem);margin:0 auto;padding:1.5rem 1rem 3rem}.timetable-heading{display:flex;min-width:0;flex-direction:column;gap:.35rem;margin-bottom:1rem}.timetable-heading p,.timetable-section-head p,.timetable-help{margin:0;color:var(--timetable-muted)}.timetable-heading p{font-size:.82rem;font-weight:700;letter-spacing:0}.timetable-heading h1{margin:0;font-size:2rem;line-height:1.2;letter-spacing:0;overflow-wrap:anywhere;text-wrap:balance}.timetable-action-bar,.timetable-settings,.timetable-editor,.timetable-preview{border:1px solid var(--timetable-border);border-radius:8px;background:var(--timetable-surface)}.timetable-action-bar{position:sticky;top:4.5rem;z-index:10;display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;margin-bottom:.75rem;padding:.65rem}.timetable-button{touch-action:manipulation;min-height:2.75rem;border:1px solid var(--timetable-border-strong);border-radius:8px;background:#fff;color:var(--timetable-text);padding:0 .9rem;font:inherit;font-size:.92rem;font-weight:700;cursor:pointer;transition:background-color .16s ease,border-color .16s ease,color .16s ease}.timetable-button:hover{border-color:var(--timetable-accent);color:var(--timetable-accent-strong)}.timetable-button-primary{border-color:var(--timetable-accent);background:var(--timetable-accent);color:#fff}.timetable-button-primary:hover{background:var(--timetable-accent-strong);color:#fff}.timetable-button-danger{color:var(--timetable-danger)}.timetable-save-status{min-width:0;margin-left:auto;color:var(--timetable-muted);font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.timetable-export-status{min-width:0;color:var(--timetable-danger);font-size:.82rem;font-weight:700;overflow-wrap:anywhere}.timetable-save-status-failed{color:var(--timetable-danger)}.timetable-settings{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;align-items:stretch;margin-bottom:1rem;padding:1rem}.timetable-settings-group{display:flex;min-width:0;flex-direction:column;gap:.75rem;border-left:3px solid var(--timetable-border);padding-left:.75rem}.timetable-settings-group h2{margin:0;color:var(--timetable-muted);font-size:.78rem;font-weight:800;letter-spacing:0}.timetable-settings-group-body{display:grid;min-width:0;grid-template-columns:minmax(0,1fr);gap:.75rem}.timetable-settings-group-wide{grid-column:span 2}.timetable-field{display:flex;min-width:0;flex-direction:column;gap:.4rem}.timetable-field:has(.timetable-input-note){grid-column:1 / -1}.timetable-toggle-field{grid-column:span 2}.timetable-label{min-width:0;color:var(--timetable-text);font-size:.88rem;font-weight:700;letter-spacing:0;overflow-wrap:anywhere}.timetable-help{font-size:.78rem;line-height:1.45;overflow-wrap:anywhere}.timetable-input,.timetable-select,.timetable-period-input,.timetable-time-input,.timetable-cell-input{touch-action:manipulation;min-width:0;width:100%;box-sizing:border-box;border:1px solid var(--timetable-border-strong);border-radius:8px;background:#fff;color:var(--timetable-text);font:inherit;letter-spacing:0}.timetable-input,.timetable-select{min-height:2.75rem;padding:.65rem .75rem}.timetable-input-note{min-height:4.75rem;resize:vertical}.timetable-check{touch-action:manipulation;display:flex;flex:1 1 6rem;min-height:2.75rem;align-items:center;justify-content:center;gap:.55rem;border:1px solid var(--timetable-border);border-radius:8px;background:var(--timetable-surface-soft);padding:.65rem .75rem;color:var(--timetable-text);font-size:.92rem;font-weight:700}.timetable-check-group{display:flex;min-width:0;flex-wrap:wrap;gap:.5rem}.timetable-check span{min-width:0;overflow-wrap:anywhere}.timetable-check input{width:1.1rem;height:1.1rem;accent-color:var(--timetable-accent)}.timetable-input:focus,.timetable-select:focus,.timetable-period-input:focus,.timetable-time-input:focus,.timetable-cell-input:focus,.timetable-button:focus-visible,.timetable-category-choice:focus-visible,.timetable-cell-category-button:focus-visible,.timetable-check input:focus-visible{outline:3px solid rgba(15,118,110,.24);outline-offset:2px}.timetable-editor{min-width:0;margin-bottom:1rem;overflow:hidden}.timetable-section-head{display:flex;align-items:end;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--timetable-border);padding:.85rem 1rem}.timetable-section-head h2{min-width:0;margin:0;font-size:1.2rem;line-height:1.2;letter-spacing:0}.timetable-section-head p{min-width:0;font-size:.86rem;overflow-wrap:anywhere}.timetable-color-toolbar{display:grid;min-width:0;grid-template-columns:minmax(12rem,.7fr) minmax(0,1.3fr);gap:.75rem;align-items:center;border-bottom:1px solid var(--timetable-border);background:#fbfcfc;padding:.85rem 1rem}.timetable-color-toolbar-text{display:grid;min-width:0;gap:.25rem}.timetable-color-toolbar-text p{margin:0;color:var(--timetable-muted);font-size:.82rem;line-height:1.45;overflow-wrap:anywhere}.timetable-category-options{display:flex;min-width:0;flex-wrap:wrap;gap:.45rem}.timetable-category-choice,.timetable-cell-category-button{touch-action:manipulation;border:1px solid var(--category-border);border-radius:8px;background:var(--category-bg);color:var(--category-text);font:inherit;letter-spacing:0;cursor:pointer}.timetable-category-choice{display:inline-flex;min-height:2.75rem;align-items:center;gap:.4rem;padding:0 .7rem;font-size:.84rem;font-weight:800}.timetable-category-choice-active{border-color:currentColor;box-shadow:inset 0 0 0 2px currentColor}.timetable-category-dot{display:inline-block;flex:0 0 auto;width:.78rem;height:.78rem;border:1px solid var(--category-border);border-radius:999px;background:var(--category-bg)}.timetable-category-choice .timetable-category-dot{box-shadow:inset 0 0 0 1px #ffffffa6}.timetable-editor-scroll{overflow-x:auto}.timetable-editor-table{width:100%;min-width:64rem;border-collapse:collapse;table-layout:fixed}.timetable-editor-table th,.timetable-editor-table td{border-right:1px solid var(--timetable-border);border-bottom:1px solid var(--timetable-border);padding:.45rem;vertical-align:top}.timetable-editor-table th:last-child,.timetable-editor-table td:last-child{border-right:none}.timetable-editor-table th:first-child,.timetable-print-table th:first-child{position:sticky;left:0;z-index:2;box-shadow:1px 0 0 var(--timetable-border)}.timetable-editor-cell{background:var(--category-bg);transition:background-color .16s ease}.timetable-editor-table tr:last-child th,.timetable-editor-table tr:last-child td{border-bottom:none}.timetable-editor-table thead th{background:var(--timetable-surface-soft);color:var(--timetable-text);font-size:.9rem;font-weight:800}.timetable-editor-table thead th:first-child,.timetable-print-table thead th:first-child{z-index:3}.timetable-editor-table th:first-child{width:14rem}.timetable-editor-table tbody th{background:#fbfcfc}.timetable-period-input,.timetable-cell-input{display:block;min-height:3.25rem;padding:.55rem;border-color:#c6d1cd;font-size:.92rem}.timetable-period-input{min-height:2.75rem;font-weight:700}.timetable-cell-editor{display:flex;min-width:0;flex-direction:column;align-items:flex-start;gap:.4rem}.timetable-cell-category-button{display:inline-flex;min-height:2.75rem;min-width:4rem;max-width:100%;align-items:center;gap:.35rem;padding:.35rem .6rem;font-size:.74rem;font-weight:800;line-height:1.2;text-align:center}.timetable-cell-category-button span{min-width:0;overflow-wrap:anywhere}.timetable-period-editor{display:flex;flex-direction:column;gap:.45rem}.timetable-period-label{display:flex;min-height:2.75rem;align-items:center;justify-content:center;border:1px solid transparent;color:var(--timetable-text);font-size:.95rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.timetable-time-fields{display:grid;grid-template-columns:minmax(4.8rem,1fr) auto minmax(4.8rem,1fr);gap:.3rem;align-items:center;color:var(--timetable-muted);font-size:.8rem}.timetable-time-input{min-width:0;min-height:2.25rem;border-color:#c6d1cd;padding:.3rem;font-size:.82rem}.timetable-cell-input{width:100%;background:#ffffffe6;resize:vertical}.timetable-preview{min-width:0;padding:1rem}.timetable-sheet{min-width:0;background:#fff;border:1px solid #202826;border-radius:8px;padding:1rem}.timetable-sheet-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(12rem,.8fr);gap:1rem;align-items:end;margin-bottom:.75rem}.timetable-sheet-head h2{min-width:0;margin:0;color:#111614;font-size:1.7rem;line-height:1.2;letter-spacing:0;overflow-wrap:anywhere;text-wrap:balance}.timetable-sheet-head p{min-width:0;margin:.25rem 0 0;color:#34403c;font-size:.95rem;overflow-wrap:anywhere}.timetable-sheet-note{min-width:0;justify-self:end;max-width:24rem;text-align:right}.timetable-print-table-wrap{overflow-x:auto}.timetable-print-table{width:100%;min-width:46rem;border-collapse:collapse;table-layout:fixed}.timetable-print-table th,.timetable-print-table td{height:4.9rem;border:1px solid #202826;padding:.45rem;color:#111614;text-align:center;vertical-align:middle}.timetable-print-table thead th{height:2.35rem;background:#e9efed;font-size:.92rem;font-weight:800}.timetable-print-table th:first-child{width:7.8rem}.timetable-print-table tbody th{background:#f5f7f6;font-size:.92rem;font-weight:800;line-height:1.25;overflow-wrap:anywhere}.timetable-print-cell{background:var(--category-bg)}.timetable-print-cell-content{display:flex;min-width:0;min-height:100%;flex-direction:column;align-items:center;justify-content:center;gap:.25rem}.timetable-category-badge{display:inline-flex;max-width:100%;min-height:1.35rem;align-items:center;justify-content:center;border:1px solid var(--category-border);border-radius:8px;background:#ffffffc7;color:var(--category-text);padding:0 .45rem;font-size:.74rem;font-weight:800;line-height:1.1;overflow-wrap:anywhere}.timetable-print-cell-text{display:block;min-height:1.4rem;white-space:pre-wrap;overflow-wrap:anywhere;font-size:1rem;font-weight:700;line-height:1.35}@media(max-width:900px){.timetable-settings{grid-template-columns:1fr 1fr}.timetable-color-toolbar{grid-template-columns:1fr}.timetable-settings-group,.timetable-settings-group-wide{grid-column:auto}.timetable-action-bar{top:4rem}.timetable-sheet-head{grid-template-columns:1fr}.timetable-sheet-note{justify-self:start;text-align:left}}@media(max-width:640px){.timetable-workspace{padding:1rem .75rem 2.5rem}.timetable-heading h1{font-size:1.65rem}.timetable-settings{grid-template-columns:1fr;padding:.75rem}.timetable-settings-group{border-left:none;border-top:3px solid var(--timetable-border);padding-top:.75rem;padding-left:0}.timetable-toggle-field{grid-column:auto}.timetable-action-bar{position:static}.timetable-button{flex:1 1 8rem}.timetable-save-status,.timetable-export-status{flex:1 1 100%;margin-left:0}.timetable-section-head{align-items:start;flex-direction:column}.timetable-preview,.timetable-sheet{padding:.75rem}}@media print{@page{size:A4 landscape;margin:8mm}html,body{background:#fff!important}body>header,body>footer,.timetable-screen-support,.timetable-heading,.timetable-action-bar,.timetable-settings,.timetable-editor{display:none!important}#main-content{display:block!important}.timetable-app{min-height:auto!important;background:#fff!important;color:#000!important}.timetable-workspace{width:100%!important;margin:0!important;padding:0!important}.timetable-preview{display:block!important;border:none!important;border-radius:0!important;padding:0!important;background:#fff!important}.timetable-sheet{min-height:183mm;border:none!important;border-radius:0!important;padding:0!important}.timetable-sheet-head{grid-template-columns:minmax(0,1fr) minmax(70mm,.8fr);margin-bottom:3mm}.timetable-sheet-head h2{font-size:8mm!important}.timetable-sheet-head p{font-size:3.2mm!important}.timetable-print-table-wrap{overflow:visible!important}.timetable-print-table{min-width:0!important;page-break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.timetable-print-table th,.timetable-print-table td{height:15mm!important;border:.35mm solid #000000!important;padding:1.2mm!important}.timetable-print-cell{background:var(--category-bg)!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.timetable-print-table thead th{height:7mm!important;background:#eee!important;font-size:3.4mm!important}.timetable-print-table th:first-child{width:32mm!important;position:static!important;box-shadow:none!important}.timetable-print-table tbody th{background:#f5f5f5!important;font-size:2.9mm!important;line-height:1.12!important}.timetable-print-cell-content{min-height:12mm!important;gap:.7mm!important}.timetable-category-badge{min-height:3.2mm!important;border-color:var(--category-border)!important;background:#ffffffd1!important;color:var(--category-text)!important;padding:0 1.1mm!important;font-size:2.35mm!important;line-height:1!important;print-color-adjust:exact;-webkit-print-color-adjust:exact}.timetable-print-cell-text{max-height:8.5mm!important;overflow:hidden!important;font-size:3.8mm!important;line-height:1.18!important}}
