:root{font-family:Noto Sans Thai,Tahoma,sans-serif;font-synthesis:none;color-scheme:light;--page-bg: #edf3ff;--surface: #ffffff;--surface-soft: #f4f7ff;--surface-row: #f8faff;--text: #20385b;--muted: #536985;--subtle: #5c7290;--border: #cad9ee;--button-top: #ffffff;--button-bottom: #edf4ff;--button-edge: #c1d2ec;--shadow: #23477a14;--accent: #2563eb;--accent-end: #1d4ed8;--accent-edge: #173fa8;--on-accent: #ffffff;--focus: #2563eb;--tab-bg: #dae7ff;--badge-bg: #e2eeff;--badge-text: #285392;--hero-start: #add3ff;--hero-middle: #d9c4ff;--hero-end: #ffb5d7;--hero-text: #243c6a;--hero-muted: #3e4e79;--lesson-blue: #d7e9ff;--lesson-blue-text: #173e73;--lesson-blue-edge: #2775e9;--lesson-pink: #ffdbeb;--lesson-pink-text: #782748;--lesson-pink-edge: #dc347a;--lesson-mint: #c9f0e3;--lesson-mint-text: #155842;--lesson-mint-edge: #138364;--lesson-purple: #e5d9ff;--lesson-purple-text: #543184;--lesson-purple-edge: #8450d4;--danger-bg: #ffe3ed;--danger-text: #9c2350;--warning-bg: #ffedbd;--warning-text: #785313;--success: #128468;--lunch-icon: #5b7194;color:var(--text);background:var(--page-bg)}:root[data-theme=dark]{color-scheme:dark;--page-bg: #111b2e;--surface: #1b2941;--surface-soft: #22334f;--surface-row: #1e2e49;--text: #edf3ff;--muted: #bdcce5;--subtle: #a8bddb;--border: #3c5274;--button-top: #304769;--button-bottom: #263a58;--button-edge: #142238;--shadow: #00000038;--accent: #5994ff;--accent-end: #8ab4ff;--accent-edge: #285497;--on-accent: #102345;--focus: #9dc3ff;--tab-bg: #233755;--badge-bg: #294268;--badge-text: #c7ddff;--hero-start: #254d8c;--hero-middle: #514184;--hero-end: #843f70;--hero-text: #ffffff;--hero-muted: #f0e8ff;--lesson-blue: #244b78;--lesson-blue-text: #edf5ff;--lesson-blue-edge: #6ca9ff;--lesson-pink: #6b304f;--lesson-pink-text: #fff0f7;--lesson-pink-edge: #ff87bc;--lesson-mint: #20594e;--lesson-mint-text: #e6fff4;--lesson-mint-edge: #55d4b4;--lesson-purple: #4b3972;--lesson-purple-text: #f6efff;--lesson-purple-edge: #bf9aff;--danger-bg: #5a2944;--danger-text: #ffccdf;--warning-bg: #594621;--warning-text: #ffe8ab;--success: #63ddbc;--lunch-icon: #a7bddd}*{box-sizing:border-box}body{margin:0;background:var(--page-bg);color:var(--text)}button,input,select,textarea{font:inherit}button,.button{cursor:pointer;border:1px solid var(--border);background:linear-gradient(var(--button-top),var(--button-bottom));color:var(--text);padding:10px 17px;border-radius:12px;box-shadow:0 3px 0 var(--button-edge),0 5px 12px var(--shadow);transition:transform .18s,box-shadow .18s;text-decoration:none;display:inline-block}button:hover,.button:hover{transform:translateY(-2px);box-shadow:0 5px 0 var(--button-edge),0 8px 18px var(--shadow)}button:active{transform:translateY(2px)}button:disabled{opacity:.5;cursor:default;transform:none}button:focus-visible,.button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--focus);outline-offset:3px}.primary{background:linear-gradient(var(--accent),var(--accent-end));border-color:var(--accent);color:var(--on-accent);box-shadow:0 3px 0 var(--accent-edge),0 6px 15px var(--shadow)}.primary:hover{box-shadow:0 5px 0 var(--accent-edge),0 8px 18px var(--shadow)}.app{display:flex;min-height:100vh}aside{width:235px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);padding:35px 23px;display:flex;align-items:center;flex-direction:column;position:sticky;top:0;height:100vh}.logo{width:65px;height:65px;border-radius:23px;background:linear-gradient(140deg,#4389f6,#eb4b9b);font-size:40px;font-weight:700;text-align:center;color:#fff;box-shadow:0 7px 20px var(--shadow);margin-bottom:17px;position:relative}.logo span{font-size:24px;position:absolute;right:-7px;top:-10px;color:#e6388c}aside>b{letter-spacing:2px;font-size:16px}small{display:block;font-size:11px;color:var(--muted)}aside>small{margin-top:8px;font-size:10px}nav{width:100%;margin-top:45px;display:grid;gap:14px}nav button{border:0;box-shadow:none;text-align:left;background:transparent;padding:14px;color:var(--muted)}nav .active{background:var(--badge-bg);color:var(--badge-text);box-shadow:0 3px 0 var(--button-edge)}.aside-bottom{margin-top:auto;font-size:12px;color:var(--muted)}.aside-bottom small{margin-top:9px}main{padding:30px 42px;max-width:1700px;flex:1;min-width:0}header{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:27px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:var(--subtle)}h1{font-size:25px;margin:6px 0;font-weight:600}.header-tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.badge{background:var(--badge-bg);padding:10px 17px;border:1px solid var(--border);border-radius:25px;font-size:12px;font-weight:500;color:var(--badge-text)}.theme-toggle{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-size:12px;min-height:42px}.theme-toggle svg{width:19px;height:19px;flex-shrink:0;color:var(--accent)}.hero{background:linear-gradient(110deg,var(--hero-start),var(--hero-middle) 55%,var(--hero-end));border:1px solid var(--border);border-radius:23px;padding:27px 32px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 8px 25px var(--shadow);margin-bottom:29px}.hero .eyebrow,.hero p{color:var(--hero-muted)}.hero h2{font-size:26px;margin:10px 0;color:var(--hero-text)}.hero p{font-size:12px;margin:0}.hero-art{font-size:78px;color:#fff;line-height:1;transform:rotate(-10deg);text-shadow:0 5px 0 #31487a22;position:relative;margin-right:35px}.hero-art span{position:absolute;right:-30px;top:-5px;font-size:35px;color:#fff3b9}.toolbar,.actions,.filters{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.toolbar{justify-content:space-between;margin-bottom:22px}.tabs{display:flex;gap:5px;padding:5px;background:var(--tab-bg);border-radius:14px}.tabs button{background:transparent;box-shadow:none;border:0;padding:8px 24px;color:var(--muted)}.tabs .active{background:var(--accent);box-shadow:0 2px 7px var(--shadow);color:var(--on-accent)}.filters{margin-bottom:20px}input,select{border:1px solid var(--border);border-radius:11px;background:var(--surface);padding:11px 15px;color:var(--text)}input{min-width:180px}input::placeholder,textarea::placeholder{color:var(--subtle);opacity:1}input[type=checkbox]{accent-color:var(--accent)}.filters select{min-width:170px}.table-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;overflow:hidden;box-shadow:0 7px 25px var(--shadow)}.table-title{display:flex;justify-content:space-between;padding:10px 23px;align-items:center}.table-title h3{font-size:16px;font-weight:600;margin-bottom:5px}.table-title>span{font-size:11px;color:var(--muted)}.dot{display:inline-block;width:7px;height:7px;background:var(--success);border-radius:50%;margin:0 6px}.table-scroll{overflow:auto}table{border-collapse:collapse;width:100%;min-width:990px;table-layout:fixed}th,td{border:1px solid var(--border)}thead th{height:65px;background:var(--surface-soft);font-size:12px;font-weight:600;color:var(--text)}thead small{font-size:10px;margin-top:4px}th:first-child{width:90px}tbody th{font-size:12px;font-weight:600;color:var(--muted);background:var(--surface-row)}td{height:112px;padding:5px;vertical-align:top}.timetable-grid th:first-child{width:auto}.timetable-grid th.break,.timetable-grid td.break{background:var(--page-bg);color:var(--muted)}.timetable-grid th.break{font-size:10px;overflow-wrap:anywhere}.timetable-grid th.break small{font-size:9px;white-space:normal}.timetable-grid td.break{vertical-align:middle}.timetable-grid .lunch{display:flex;align-items:center;justify-content:center;width:28px;height:28px;margin:auto;color:var(--lunch-icon)}.lunch svg{width:26px;height:26px}.public-app .lunch svg{width:13px;height:13px}.lesson{--lesson-text: var(--lesson-blue-text);position:relative;background:var(--lesson-blue);border:1px solid var(--lesson-blue-edge);border-left-width:3px;border-radius:10px;padding:11px 8px;height:100%;min-height:98px;font-size:11px;cursor:grab;color:var(--lesson-text)}.lesson b{font-weight:600;display:block;margin-bottom:8px;line-height:1.6}.lesson small{font-size:9px;line-height:1.8;color:var(--lesson-text);opacity:.9}.color1{--lesson-text: var(--lesson-pink-text);background:var(--lesson-pink);border-color:var(--lesson-pink-edge)}.color2{--lesson-text: var(--lesson-mint-text);background:var(--lesson-mint);border-color:var(--lesson-mint-edge)}.color3{--lesson-text: var(--lesson-purple-text);background:var(--lesson-purple);border-color:var(--lesson-purple-edge)}.current{box-shadow:inset 0 0 0 2px var(--accent)}.lock{padding:0 4px;position:absolute;right:3px;bottom:3px;box-shadow:none;background:transparent;border:0;font-size:11px;color:var(--lesson-text)}.panel{background:var(--surface);padding:25px;border:1px solid var(--border);border-radius:18px}.panel form{display:grid;gap:16px;max-width:380px}.panel textarea{width:100%;min-height:400px;font-family:Consolas,monospace;font-size:13px;padding:20px;background:var(--surface-soft);color:var(--text);border:1px solid var(--border);border-radius:12px;margin-bottom:20px}.version{display:flex;gap:15px;align-items:center;border-bottom:1px solid var(--border);padding:20px 0;flex-wrap:wrap}.version>div{flex:1}.version>span{font-size:12px;color:var(--muted)}.unscheduled{padding:20px 0;display:flex;gap:10px;flex-wrap:wrap;align-items:center;font-size:12px}.errors{margin-top:20px;background:var(--danger-bg);color:var(--danger-text);padding:18px;border-radius:13px;font-size:12px}.errors div{margin-top:7px}.empty{padding:70px;text-align:center;color:var(--muted)}footer{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:var(--subtle);margin-top:30px}.public-app footer{flex-wrap:wrap;gap:8px 16px}.public-app .support-contact{flex-basis:100%;font-size:12px;line-height:1.7;letter-spacing:0}.toast{position:fixed;bottom:27px;left:50%;transform:translate(-50%);border-radius:15px;background:var(--surface);color:var(--text);box-shadow:0 12px 45px var(--shadow);border:1px solid var(--border);padding:15px 22px;z-index:10;max-width:90vw;animation:arrive .25s ease-out}.toast button{box-shadow:none;border:0;margin-left:20px;padding:0 5px;background:transparent}.data-row{display:flex;flex-wrap:wrap;gap:10px;padding:18px 0;border-bottom:1px solid var(--border)}.data-row input{width:160px;min-width:100px}.data-grid{margin-bottom:25px}details summary{cursor:pointer;padding:15px 0;color:var(--muted)}.data-row select{max-width:230px;min-width:150px}.data-row input[type=checkbox]{min-width:0;width:22px;height:22px}.availability{width:100%;overflow:auto}.availability-grid{min-width:700px}.availability-grid>div{display:flex;gap:6px;margin:6px 0;align-items:center}.availability-grid small{width:70px}.availability-grid button{font-size:11px;padding:7px 12px}.availability .blocked{background:var(--danger-bg);color:var(--danger-text)}.availability .unwanted{background:var(--warning-bg);color:var(--warning-text)}.public-app main{width:100%;max-width:none;padding:28px 4vw}.public-app header>div:first-child{flex:1}.revision-caption{margin-bottom:12px;color:var(--muted);font-size:12px}.revision-fields{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0}.revision-fields label{display:grid;gap:7px;color:var(--muted);font-size:12px}.revision-actions{margin-bottom:22px}.local-revisions{margin-bottom:25px}.public-app .filters select[aria-label=เวอร์ชันตาราง]{max-width:100%;flex:1}.version input{max-width:100%}@keyframes arrive{0%{opacity:0;bottom:0}to{opacity:1;bottom:27px}}@media(max-width:900px){aside{width:85px;padding:25px 10px}aside>b,aside>small,.aside-bottom{display:none}.logo{width:50px;height:50px;font-size:30px}nav button{font-size:11px;padding:10px 5px}main{padding:22px 17px}.hero{padding:20px}.hero-art{display:none}h1{font-size:20px}.badge{font-size:10px;padding:8px}.filters>*{flex:1;min-width:120px!important}footer span{display:none}.tabs button{padding:8px 17px}}@media(max-width:600px){.public-app main{padding:16px 12px}.public-app h1{font-size:19px}.public-app .header-tools{width:100%;justify-content:space-between}.public-app .hero{padding:18px;margin-bottom:20px}.public-app .hero h2{font-size:22px}.public-app .hero p{line-height:1.8}.public-app .filters{gap:10px}.public-app .filters>*{width:100%;min-width:0!important;flex:1 1 calc(50% - 10px)}.public-app .filters input,.public-app .filters select[aria-label=เวอร์ชันตาราง]{flex-basis:100%}.public-app .table-title{padding:10px 14px;gap:10px;align-items:flex-start}.revision-caption{font-size:11px;line-height:1.7}.public-app .table-title>span{white-space:nowrap;margin-top:14px}.revision-fields label{min-width:0;flex:1 1 150px}.revision-fields input{min-width:0;width:100%}.public-app .panel{padding:16px}.version{gap:10px}.version>div{flex-basis:100%}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}@media print{:root,:root[data-theme=dark]{color-scheme:light;--page-bg: #fff;--surface: #fff;--surface-soft: #f4f7ff;--surface-row: #f8faff;--text: #111827;--muted: #475569;--subtle: #475569;--border: #cbd5e1;--accent: #2563eb;--lunch-icon: #475569;--lesson-blue: #d7e9ff;--lesson-blue-text: #173e73;--lesson-blue-edge: #2775e9;--lesson-pink: #ffdbeb;--lesson-pink-text: #782748;--lesson-pink-edge: #dc347a;--lesson-mint: #c9f0e3;--lesson-mint-text: #155842;--lesson-mint-edge: #138364;--lesson-purple: #e5d9ff;--lesson-purple-text: #543184;--lesson-purple-edge: #8450d4}aside,.toolbar,.filters,.hero,.toast,.unscheduled,footer,header,.lock,.errors{display:none!important}main,.public-app main{padding:0}.table-card{box-shadow:none;border:0}.table-scroll{overflow:visible}table,.timetable-grid{min-width:0!important}td{height:90px}.lesson{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:9px}thead th{font-size:9px}th:first-child{width:65px}.revision-caption{font-size:10px;margin-bottom:8px}@page{size:A4 landscape;margin:8mm}}.public-app .bilingual{display:inline-flex;flex-direction:column;gap:3px;vertical-align:middle}.public-app .bilingual .en{display:block;font-size:.72em;font-weight:500;line-height:1.3;letter-spacing:.01em}.public-app h1 .bilingual .en{font-size:13px}.public-app .hero h2 .bilingual .en{font-size:14px}.public-app .hero .english-days{margin-top:5px;font-size:11px}.public-app .tabs .bilingual{gap:2px}.public-app .tabs .en{font-size:10px}.public-app .filters{align-items:flex-end}.public-app .filter-labeled{display:flex;flex-direction:column;gap:6px;flex:1 1 150px;min-width:150px;max-width:100%}.public-app .filter-labeled>span{color:var(--muted);font-size:11px}.public-app .filter-labeled select{width:100%;min-width:0}.public-app .filters .version-filter{flex:1 1 260px}.public-app .timetable-grid .bilingual .en{font-size:9px}.public-app .timetable-grid th.break .en{font-size:8px}.public-app .timetable-grid thead th{height:76px}.public-app .revision-caption{overflow-wrap:anywhere}@media(max-width:600px){.public-app .filter-labeled{flex:1 1 calc(50% - 10px)}.public-app .filters .version-filter{flex-basis:100%}.public-app .hero h2{font-size:22px}.public-app .tabs button{padding:8px 14px}}.web-print-area{position:fixed;left:0;top:0;visibility:hidden;pointer-events:none;width:0;height:0;overflow:hidden;contain:layout paint}.web-print-sheet{position:absolute;left:0;top:0;transform-origin:top left;width:280mm;margin:0;background:#fff;color:#172c47;font:8pt/1.28 Tahoma,sans-serif}.print-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:6mm;padding:0 0 3mm;border-bottom:.5mm solid #3765a1}.print-heading h1{font-size:13pt;margin:0 0 1mm;color:#172c47;font-weight:700}.print-brand{font-size:8pt;color:#395574;letter-spacing:.4pt}.print-resource{max-width:46%;text-align:right;font-size:9pt;overflow-wrap:anywhere}.print-resource strong{display:block;margin-bottom:1mm}.print-metadata{display:flex;flex-wrap:wrap;gap:2mm 6mm;padding:3mm 0;font-size:8pt}.print-metadata span{max-width:100%;overflow-wrap:anywhere}.web-print-grid{width:100%;min-width:0;border-collapse:collapse;table-layout:fixed;font-size:8pt}.web-print-grid th,.web-print-grid td{border:.2mm solid #9aa9bb;padding:1.2mm;white-space:normal;overflow-wrap:anywhere;background:#fff;color:#172c47}.web-print-grid th:first-child{width:auto}.web-print-grid thead th{height:16mm;font-size:8pt;line-height:1.2;text-align:center;vertical-align:middle;background:#eaf1fc}.web-print-grid thead small{font-size:7pt;line-height:1.2;color:#395574;margin-top:1mm}.web-print-grid tbody th{font-size:8pt;text-align:center;vertical-align:middle;background:#f3f6fc}.web-print-grid tbody th span{display:block;font-size:7pt;margin-top:1mm}.web-print-grid tbody td{height:20mm;vertical-align:top}.web-print-grid .print-break{background:#f5f7fb;color:#526885;text-align:center;vertical-align:middle}.print-break svg{width:3mm;height:3mm}.print-lesson{padding:1.2mm;border-left:.6mm solid #4f85d7;background:#edf5ff;border-radius:1mm}.print-lesson strong{display:block;font-size:8.5pt;margin-bottom:.7mm}.print-lesson div{margin-top:.5mm}.print-lesson b{font-size:7pt}.print-footer{font-size:7pt;color:#395574;padding-top:2mm;text-align:right;overflow-wrap:anywhere}.print-support{margin-top:1mm}@media print{.public-app.has-web-print{display:block!important;min-height:0!important;width:auto;margin:0;padding:0}.public-app.has-web-print>main,.public-app.has-web-print>.toast{display:none!important}.public-app.has-web-print>.web-print-area{position:relative;display:block;visibility:visible;width:280mm;height:192mm;margin:0 auto;pointer-events:auto}.web-print-sheet{break-inside:avoid;page-break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.web-print-grid tr,.web-print-grid td{break-inside:avoid;page-break-inside:avoid}.web-print-grid thead{display:table-header-group}}
