@font-face{font-family:Sarabun;src:url('../fonts/Sarabun/Sarabun-Regular.ttf')}@font-face{font-family:Sarabun;src:url('../fonts/Sarabun/Sarabun-Medium.ttf');font-weight:500}@font-face{font-family:Sarabun;src:url('../fonts/Sarabun/Sarabun-SemiBold.ttf');font-weight:600}@font-face{font-family:Sarabun;src:url('../fonts/Sarabun/Sarabun-Bold.ttf');font-weight:700}
:root{--ink:#292b2d;--muted:#74777a;--line:#e8e9eb;--canvas:#f5f6f7;--surface:#fff;--orange:#f28c1b;--orange-dark:#bc5b1d;--orange-soft:#fff2e5;--gray:#777;--gray-soft:#f0f0f0;--shadow:0 3px 14px #2021240a}*{box-sizing:border-box}body{margin:0;background:var(--canvas);color:var(--ink);font-family:Sarabun,sans-serif;font-size:14px}.sidebar{position:fixed;inset:0 auto 0 0;width:272px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:5}.brand{height:84px;display:flex;align-items:center;gap:12px;padding:0 22px;color:inherit;text-decoration:none;border-bottom:1px solid var(--line)}.brand img{width:42px;height:42px;object-fit:contain}.brand-copy{display:grid;line-height:1.2}.brand-copy strong{font-size:19px;font-weight:700;letter-spacing:.06em}.brand-copy small{font-size:9px;color:#87898b;letter-spacing:.1em;margin-top:4px}.nav-heading{font-size:11px;font-weight:600;color:#9a9c9e;padding:20px 22px 8px}.navigation{padding:0 12px 16px;overflow:auto;flex:1}.nav-group{margin:5px 0}.nav-group-title{display:flex;width:100%;align-items:center;gap:11px;padding:10px 10px;border:0;background:transparent;color:#575a5c;text-align:left;font:500 12px Sarabun,sans-serif;cursor:pointer;border-radius:9px}.nav-group-title:hover{background:#f6f6f6}.nav-group-title .material-symbols-rounded{font-size:19px;color:#818385}.nav-group-title .chevron{margin-left:auto;font-size:18px;transition:transform .15s}.nav-group.collapsed .chevron{transform:rotate(-90deg)}.nav-group.collapsed .nav-links{display:none}.nav-links{display:grid;gap:2px;padding:2px 0 4px}.nav-link{display:flex;align-items:center;gap:10px;min-height:38px;margin-left:15px;padding:8px 10px 8px 13px;border-radius:8px;color:#626568;text-decoration:none;font-size:11px;line-height:1.45}.nav-link .material-symbols-rounded{font-size:17px;color:#96989a}.nav-link:hover{background:#f7f7f7;color:var(--ink)}.nav-link.active{background:var(--orange-soft);color:#a94b10;font-weight:600}.nav-link.active .material-symbols-rounded{color:var(--orange-dark)}.nav-link.nav-group-single{margin-left:0}.sidebar-footer{display:flex;align-items:center;gap:9px;padding:14px 20px;border-top:1px solid var(--line);font-size:10px;color:#85888b}.api-status-dot{width:8px;height:8px;border-radius:50%;background:#c6c9cb}.api-status-dot.ok{background:#328a5b;box-shadow:0 0 0 3px #328a5b1b}.api-status-dot.error{background:#c94b3c;box-shadow:0 0 0 3px #c94b3c1b}.main-area{min-height:100vh;margin-left:272px}.topbar{height:68px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:3}.breadcrumb{display:flex;align-items:center;gap:10px;font-size:11px;color:#85888b}.breadcrumb i{font-style:normal;color:#c1c3c4}.breadcrumb strong{font-weight:600;color:#414446}.topbar-actions{display:flex;align-items:center;gap:17px}.docs-link{display:flex;align-items:center;gap:5px;color:#6a6d70;text-decoration:none;font-size:10px}.docs-link:hover{color:var(--orange-dark)}.docs-link .material-symbols-rounded{font-size:17px}.user-chip{display:flex;align-items:center;gap:8px;border-left:1px solid var(--line);padding-left:16px;font-size:11px;color:#585b5d}.user-initial{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--gray-soft);color:#555;font-weight:600}.icon-button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:#65686a;cursor:pointer}.icon-button:hover{background:#f1f2f2}.icon-button .material-symbols-rounded{font-size:20px}.topbar form{margin:0}.mobile-menu,.scrim{display:none}.page-shell{max-width:1500px;margin:auto;padding:30px 34px 48px}.page-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.page-heading h1{font-size:25px;line-height:1.3;margin:4px 0 5px;font-weight:600;letter-spacing:-.02em}.page-heading p{margin:0;color:#777b7d;font-size:12px}.eyebrow{display:flex;align-items:center;gap:6px;color:#a5571b;font-size:10px;font-weight:600;letter-spacing:.02em}.eyebrow .material-symbols-rounded{font-size:16px}.heading-actions{display:flex;align-items:center;gap:8px}.button{height:38px;border:1px solid #dedfe0;border-radius:9px;background:#fff;color:#55595b;padding:0 13px;display:inline-flex;align-items:center;gap:7px;font:500 11px Sarabun,sans-serif;cursor:pointer;text-decoration:none}.button:hover{background:#f8f8f8;border-color:#c8cacc}.button.primary{background:var(--orange);border-color:var(--orange);color:#fff}.button.primary:hover{background:#df7914}.button .material-symbols-rounded{font-size:18px}.card{background:#fff;border:1px solid #ebeced;border-radius:14px;box-shadow:var(--shadow)}.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:20px}.stat-card{min-height:112px;padding:17px 18px;display:flex;align-items:center;gap:13px}.stat-icon{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--orange-soft);color:var(--orange-dark)}.stat-icon.gray{background:var(--gray-soft);color:#666}.stat-icon.green{background:#e8f5ee;color:#36875b}.stat-icon .material-symbols-rounded{font-size:20px}.stat-copy{display:grid;gap:4px}.stat-copy span{font-size:10px;color:#777b7d}.stat-copy strong{font-size:22px;line-height:1.1;font-weight:600}.stat-copy small{font-size:10px;font-weight:400;color:#7a7d7f}.panel{padding:20px 22px;margin-bottom:18px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:15px}.panel-heading h2{margin:0;font-size:14px;font-weight:600}.panel-heading p{margin:4px 0 0;font-size:10px;color:#85888a}.data-toolbar{display:flex;align-items:center;gap:9px;margin-bottom:14px}.search-box{position:relative;flex:1;max-width:340px}.search-box .material-symbols-rounded{position:absolute;left:11px;top:9px;color:#898c8e;font-size:18px}.search-box input{width:100%;height:36px;border:1px solid #e1e2e3;border-radius:8px;padding:0 12px 0 36px;font:11px Sarabun,sans-serif;outline:none}.search-box input:focus,.filter-select:focus{border-color:#e3a05e;box-shadow:0 0 0 3px #f28c1b1c}.filter-select{min-width:180px;height:36px;border:1px solid #e1e2e3;border-radius:8px;background:white;padding:0 10px;font:11px Sarabun,sans-serif;color:#4c5052;outline:none}.table-wrap{overflow:auto;border:1px solid #edeeee;border-radius:10px}.data-table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:10px}.data-table th{text-align:left;padding:11px 13px;background:#f8f8f8;color:#777b7e;font-size:9px;font-weight:600;border-bottom:1px solid #e9eaeb}.data-table td{padding:11px 13px;border-bottom:1px solid #f0f1f1;color:#44484a;max-width:260px;overflow:hidden;text-overflow:ellipsis}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fffaf5}.empty-state,.loading-state,.error-state{padding:38px 20px;text-align:center;color:#777b7d}.state-icon{width:46px;height:46px;border-radius:14px;background:#f3f3f3;color:#888;display:grid;place-items:center;margin:0 auto 12px}.state-icon .material-symbols-rounded{font-size:23px}.empty-state strong,.loading-state strong,.error-state strong{display:block;font-size:12px;color:#45494b;margin-bottom:5px}.empty-state p,.loading-state p,.error-state p{margin:0;font-size:10px;line-height:1.7}.error-state .state-icon{background:#fff0ee;color:#b84637}.status-pill{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:99px;font-size:9px;background:#f0f1f1;color:#626668}.status-pill.good{background:#e9f5ee;color:#2d7a50}.status-pill.warn{background:#fff2e4;color:#a35a1a}.status-pill.bad{background:#ffefed;color:#b34839}.notice{display:flex;gap:11px;padding:13px 15px;border-radius:10px;background:#fff7eb;border:1px solid #f6e0c6;color:#6b4b2e;font-size:10px;line-height:1.7;margin-bottom:17px}.notice .material-symbols-rounded{font-size:18px;color:#bd6a21;flex:0 0 auto}.notice.info{background:#f1f5f8;border-color:#e0e8ed;color:#50606b}.notice.info .material-symbols-rounded{color:#657b8a}.selector-row{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin-bottom:16px;padding:14px;background:#fafafa;border:1px solid #eeeeef;border-radius:10px}.selector-field{display:grid;gap:5px;min-width:200px}.selector-field label{font-size:9px;color:#717577;font-weight:600}.selector-field select{height:35px;border:1px solid #dddfe0;border-radius:8px;padding:0 9px;background:#fff;font:10px Sarabun,sans-serif;max-width:290px}.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:16px}.quick-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.quick-link{display:flex;align-items:center;gap:10px;padding:12px;border:1px solid #ececed;border-radius:10px;color:#474b4d;text-decoration:none;font-size:10px}.quick-link:hover{border-color:#efc99f;background:#fffaf4}.quick-link .material-symbols-rounded{font-size:19px;color:#b75a16}.quick-link span:last-child{margin-left:auto;color:#a0a2a3}.report-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}.report-card{padding:15px 16px}.report-card span{display:block;color:#777b7d;font-size:9px;margin-bottom:5px}.report-card strong{font-size:20px;font-weight:600}.page-footnote{color:#909395;font-size:9px;margin:11px 2px 0}.scrim{position:fixed;inset:0;background:#17181966;border:0;z-index:4}
@media(max-width:1100px){.sidebar{width:245px}.main-area{margin-left:245px}.page-shell{padding:26px 22px}.stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topbar{padding:0 22px}}
@media(max-width:760px){.sidebar{width:min(300px,85vw);transform:translateX(-102%);transition:transform .2s ease;box-shadow:12px 0 35px #0002}.sidebar.open{transform:translateX(0)}.scrim.show{display:block}.main-area{margin-left:0}.mobile-menu{display:grid}.topbar{height:60px;padding:0 14px;gap:8px}.breadcrumb{margin-right:auto;gap:6px;font-size:9px}.topbar-actions{gap:7px}.docs-link span:last-child,.user-name{display:none}.user-chip{padding-left:8px}.page-shell{padding:22px 14px 36px}.page-heading{gap:12px}.page-heading h1{font-size:21px}.page-heading p{font-size:10px}.heading-actions{flex-wrap:wrap;justify-content:flex-end}.button{height:35px;padding:0 10px;font-size:10px}.stat-grid{gap:9px}.stat-card{min-height:90px;padding:12px}.stat-icon{width:35px;height:35px}.stat-copy strong{font-size:19px}.panel{padding:15px 13px}.panel-heading h2{font-size:12px}.dashboard-grid{grid-template-columns:1fr}.quick-links{grid-template-columns:1fr 1fr}.report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.data-toolbar{flex-wrap:wrap}.search-box{max-width:none;flex-basis:100%}.filter-select{flex:1;min-width:120px}}
@media(max-width:420px){.stat-grid{grid-template-columns:1fr 1fr}.stat-card{gap:8px;padding:10px}.stat-copy span{font-size:9px}.heading-actions .button .button-label{display:none}.quick-links{grid-template-columns:1fr}.report-grid{grid-template-columns:1fr 1fr}}
.role-select{height:31px;border:1px solid #e1e2e3;border-radius:7px;padding:0 8px;background:#fff;color:#4c5052;font:10px Sarabun,sans-serif}.managed-actions-cell{min-width:280px;max-width:none!important;overflow:visible!important}.row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0}.row-actions .button{flex:0 0 auto}.row-actions .button{height:30px;padding:0 9px;font-size:9px}.user-dialog{width:min(470px,calc(100% - 28px));max-height:90vh;padding:0;border:0;border-radius:16px;box-shadow:0 20px 70px #1d1d1d35;color:var(--ink)}.user-dialog::backdrop{background:#17181966;backdrop-filter:blur(2px)}.dialog-card{position:relative;padding:25px}.dialog-card h2{font-size:18px;margin:8px 0 4px}.dialog-card>p{color:var(--muted);font-size:10px;margin:0 0 18px}.dialog-close{position:absolute;right:13px;top:13px}.form-label{display:block;margin:14px 0 6px;color:#65696b;font-size:10px;font-weight:600}.form-input{width:100%;height:39px;border:1px solid #dfe1e2;border-radius:8px;padding:0 11px;outline:none;font:11px Sarabun,sans-serif;background:#fff}.form-input:focus{border-color:#e3a05e;box-shadow:0 0 0 3px #f28c1b1c}.autocomplete-list{position:relative;z-index:2;max-height:180px;overflow:auto}.suggestion{display:flex;width:100%;justify-content:space-between;gap:10px;border:1px solid #ededed;border-top:0;background:white;padding:10px;text-align:left;cursor:pointer;font:10px Sarabun,sans-serif}.suggestion:hover{background:#fff8ef}.suggestion strong{font-weight:500;color:#3e4244}.suggestion span{color:#888;font-size:9px}.suggestion-empty{padding:10px;color:#898c8e;font-size:10px;border:1px solid #eee;border-top:0}.selected-person{padding:9px 10px;background:#f7f7f7;border-radius:7px;color:#676a6c;font-size:10px;margin-top:7px}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.form-message{min-height:16px!important;color:#ad4436!important;margin:8px 0 0!important}.toast{position:fixed;right:22px;bottom:22px;z-index:20;max-width:min(420px,calc(100vw - 32px));padding:12px 16px;background:#303436;color:#fff;border-radius:10px;box-shadow:0 6px 20px #0002;font-size:10px;opacity:0;transform:translateY(10px);pointer-events:none;transition:all .18s ease}.toast.show{opacity:1;transform:translateY(0)}.toast.error{background:#a53e31}
.user-dialog{width:min(560px,calc(100% - 28px))}.manage-field[type=checkbox]{width:17px;height:17px;vertical-align:middle;accent-color:var(--orange)}textarea.form-input{height:auto;min-height:82px;padding:9px 11px;resize:vertical}.record-edit,.record-delete{height:29px;padding:0 9px;margin:1px 3px 1px 0;font-size:9px}
.font-size-controls{display:inline-flex;align-items:center;gap:2px;padding:3px;border:1px solid var(--line);border-radius:9px;background:#fafafa}.font-size-button{min-width:31px;height:29px;border:0;border-radius:6px;background:transparent;color:#55595b;font:600 12px Sarabun,sans-serif;cursor:pointer}.font-size-button:hover{background:var(--orange-soft);color:var(--orange-dark)}.font-size-button.font-reset{font-size:11px;color:#85888b}@media(max-width:760px){.topbar-actions{gap:5px}.font-size-controls{gap:0;padding:2px}.font-size-button{min-width:27px;height:27px}}
.user-name small{color:#85888b;font-size:.9em;font-weight:400}
.form-hint{display:block;margin-top:5px;color:var(--muted);font-size:10px}
.details-dialog{width:min(620px,calc(100% - 28px))}.details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.detail-item{min-width:0;padding:10px 12px;background:#f8f8f8;border:1px solid #ededed;border-radius:8px}.detail-item span,.detail-item strong{display:block;overflow-wrap:anywhere}.detail-item span{font-size:9px;color:var(--muted);margin-bottom:4px}.detail-item strong{font-size:11px;font-weight:500}.details-dialog h3{font-size:12px;margin:16px 0 8px}@media(max-width:520px){.details-grid{grid-template-columns:1fr}}
.data-table tfoot{background:#fff7eb}.data-table tfoot th,.data-table tfoot td{padding:12px 13px;border-top:1px solid #f0d7ba;color:#744318;font-weight:600}.category-total-label{text-align:left}
.plan-progress-panel{margin-top:18px}.plan-progress-summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:15px 17px;margin:8px 0 16px;border:1px solid #f0dfc8;border-radius:10px;background:#fffaf3}.plan-progress-summary strong{font-size:13px}.plan-progress-summary span{color:var(--muted);font-size:10px}.plan-stage-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plan-stage{display:flex;flex-direction:column;gap:13px;padding:15px;border:1px solid var(--line);border-radius:10px;background:#fff;text-align:left;cursor:pointer;color:var(--ink)}.plan-stage:hover,.plan-stage.selected{border-color:#e9a159;box-shadow:0 0 0 2px #f28c1b13}.plan-stage-heading{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px}.plan-stage-heading strong{font-size:12px}.plan-semesters{display:grid;gap:6px}.plan-semester{padding:7px 8px;border-radius:6px;background:#f5f5f5;color:#74787a;font-size:10px}.plan-semester.has-items{background:#edf6f0;color:#26734b}.plan-stage-action{display:flex;align-items:center;justify-content:space-between;color:var(--orange-dark);font-size:10px;font-weight:600}.plan-stage-action .material-symbols-rounded{font-size:16px}.plan-detail{margin-top:22px;padding-top:20px;border-top:1px solid var(--line)}.plan-section-title{margin:18px 0 8px;font-size:12px}.plan-completeness-messages{margin:12px 0;padding:10px 14px;border-radius:8px;background:#f5f8fa}.plan-completeness-messages p{display:flex;align-items:flex-start;gap:7px;margin:4px 0;color:#60686d;font-size:10px}.plan-completeness-messages .material-symbols-rounded{font-size:16px;color:#7d8f9a}.plan-hint{display:block;margin-top:4px;color:#a85c20;font-size:9px}.plan-hint.error{color:#a33e32}.plan-item-form{margin:18px 0;padding:16px;border:1px solid var(--line);border-radius:10px;background:#fafafa}.plan-item-form h3{margin:0 0 12px;font-size:13px}.plan-item-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 12px}.plan-grade-fieldset{margin:12px 0 0;border:1px solid var(--line);border-radius:8px}.plan-grade-fieldset legend{padding:0 6px;color:var(--muted);font-size:10px}.plan-grade-fieldset>div{display:flex;gap:12px;flex-wrap:wrap;padding:4px 8px 10px}.plan-grade-check{display:flex;align-items:center;gap:6px;font-size:10px}.plan-empty{margin-top:16px}.plan-item-delete{height:28px;padding:0 9px;color:#a33e32;border-color:#efd3d0}@media(max-width:850px){.plan-stage-grid{grid-template-columns:1fr}.plan-item-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.plan-progress-summary{align-items:flex-start;flex-direction:column}}@media(max-width:520px){.plan-item-fields{grid-template-columns:1fr}}
.plan-detail-page{margin-top:14px}.plan-context-bar{display:flex;align-items:center;flex-wrap:wrap;gap:4px 7px;padding:0 0 12px;margin:0 0 18px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px}.plan-context-bar .material-symbols-rounded{font-size:15px;color:#aaa}.plan-context-bar strong{color:var(--ink);font-weight:600}.plan-back-button{height:32px;padding:0 10px;font-size:10px}.plan-detail-page .panel-heading h2{font-size:16px}
.plan-item-dialog{width:min(760px,calc(100% - 28px));max-height:90vh;overflow:auto}.plan-item-dialog .dialog-card{padding:28px}.plan-item-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 16px}.plan-item-fields>.form-label{margin:10px 0 4px}.plan-item-fields .course-autocomplete-field{position:relative}.course-autocomplete{position:relative}.course-search-results{position:absolute;left:0;right:0;top:calc(100% + 3px);max-height:240px;overflow:auto;background:#fff;border:1px solid #e4e4e4;border-radius:8px;box-shadow:0 8px 22px #0002;z-index:10}.course-search-results:empty{display:none}.course-search-results .course-suggestion{display:flex;flex-direction:column;align-items:flex-start;gap:3px;border:0;border-bottom:1px solid #eee;padding:10px 12px}.course-search-results .course-suggestion:last-child{border-bottom:0}.course-search-results .course-suggestion strong{font-size:11px}.course-search-results .course-suggestion span{font-size:10px}.course-search-results .suggestion-empty{border:0}.form-hint{display:block;margin-top:5px;color:var(--muted);font-size:10px;font-weight:400}.plan-detail-actions{display:flex;align-items:center;gap:10px}@media(max-width:700px){.plan-item-fields{grid-template-columns:1fr}.plan-item-dialog .dialog-card{padding:23px 18px}}
.plan-semester-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:8px 0 20px}.plan-semester-card{min-width:0;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fff}.plan-semester-card-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}.plan-semester-card-heading h3{margin:0;font-size:13px}.plan-semester-card-heading p{margin:4px 0 0;color:var(--muted);font-size:10px}.plan-semester-card .table-wrap{max-width:100%}.plan-semester-card .data-table{min-width:560px}.plan-semester-card .data-table td:last-child{white-space:nowrap}.plan-semester-card .button{height:32px;padding:0 9px}@media(max-width:1000px){.plan-semester-grid{grid-template-columns:1fr}}
.plan-item-groups{display:grid;gap:14px}.plan-item-group h4{margin:0 0 7px;padding-left:9px;border-left:3px solid var(--orange);font-size:11px;font-weight:600}.plan-item-group .data-table{min-width:520px}.plan-item-group .data-table td:last-child{white-space:nowrap}.plan-item-group .data-table td[colspan]{padding:9px 12px;color:var(--muted);text-align:center;font-size:10px}
.plan-item-group-empty{margin:0;padding:9px 12px;border:1px dashed var(--line);border-radius:7px;color:var(--muted);font-size:10px;text-align:center}
.plan-course-group{margin:8px 0 0;padding:10px;border:1px solid #eee;border-radius:8px;background:#fcfcfc}.plan-course-group h4{display:flex;align-items:center;gap:7px;flex-wrap:wrap;border:0;padding:0;margin:0 0 8px}.plan-course-group h4 small{color:var(--muted);font-size:9px;font-weight:400}.plan-group-actions{display:flex;gap:5px;margin-left:auto}.plan-group-actions .button{height:27px;font-size:9px}.plan-group-create{justify-self:start;height:30px;margin-top:5px;font-size:10px}
.item-type-fieldset{min-width:0;margin:10px 0 4px;padding:0;border:0}.item-type-fieldset legend{margin-bottom:7px;color:#65696b;font-size:10px;font-weight:600}.item-type-fieldset label{display:inline-flex;align-items:center;gap:5px;margin:0 12px 0 0;color:var(--ink);font-size:11px;font-weight:400;cursor:pointer}.item-type-fieldset input{accent-color:var(--orange)}
.plan-item-dialog [hidden]{display:none!important}
.plan-activities-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.plan-activities-heading h4{margin:0}.plan-activities-heading .button{height:30px;padding:0 10px;font-size:10px}.plan-legacy-activities{margin-top:8px}.plan-legacy-activities>small{display:block;margin-bottom:5px;color:var(--muted);font-size:9px}
.course-record-dialog{width:min(780px,calc(100% - 28px));max-height:92vh;overflow:auto}.record-form-fields.two-column{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px}.record-form-fields.two-column>.form-label{margin:10px 0 4px}@media(max-width:620px){.record-form-fields.two-column{grid-template-columns:1fr}}
.course-record-dialog .record-form-fields.two-column>.course-form-field{display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;margin:10px 0 4px}.course-record-dialog .course-form-field>.form-label{margin:0}.required-mark{color:#bd4a3b;font-weight:700}.required-fields-note{margin:-8px 0 8px;color:var(--muted)}
.grade-project-plan-field{grid-column:1/-1;min-width:0;margin:0;padding:10px;border:1px solid var(--line);border-radius:9px}.grade-project-plan-field legend{padding:0 5px;color:var(--muted);font-size:11px;font-weight:600}.grade-project-plan-options{display:flex;flex-wrap:wrap;gap:8px 14px}.grade-project-plan-options label{display:inline-flex;align-items:center;gap:5px;margin:0;font-size:11px;cursor:pointer}.grade-project-plan-options input{accent-color:var(--orange)}
.activity-usage-line{font:inherit;line-height:inherit}.activity-usage-line+.activity-usage-line{margin-top:3px}
.activity-assignment-section{margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.activity-assignment-section h3{margin:0 0 10px;font-size:13px}.activity-assignment-editor{display:grid;grid-template-columns:repeat(3,minmax(100px,1fr)) auto;align-items:end;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.activity-assignment-editor .form-label{margin:0}.activity-assignment-editor .form-message{grid-column:1/-1;margin:0}.activity-assignment-editor .button{height:36px;white-space:nowrap}@media(max-width:620px){.activity-assignment-editor{grid-template-columns:1fr 1fr}.activity-assignment-editor .button{grid-column:1/-1}}
.term-overview-section { margin-top: 20px; }
.schedule-structure-content { margin-top: 18px; }
.schedule-management-content { margin-top:18px; }
.schedule-management-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.schedule-management-heading h2 { margin:0; font-size:18px; }
.schedule-management-heading p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.schedule-management-heading .schedule-period-context { flex:0 0 auto; margin:0; }
.schedule-area-tabs { display:flex; gap:7px; max-width:100%; margin:0 0 16px; padding:5px; overflow-x:auto; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.schedule-version-tabs { display:flex; width:max-content; max-width:100%; gap:5px; margin:0 0 14px; padding:4px; border:1px solid var(--line); border-radius:11px; background:var(--surface); }
.schedule-version-tabs[hidden] { display:none; }
.schedule-version-tabs [role="tab"] { min-height:36px; padding:0 16px; border:0; border-radius:8px; background:transparent; color:var(--muted); font:600 12px Sarabun,sans-serif; cursor:pointer; }
.schedule-version-tabs [role="tab"][aria-selected="true"] { background:var(--orange-soft); color:var(--orange-dark); }
.schedule-teacher-filter { display:flex; align-items:center; gap:10px; margin:0 0 14px; }
.schedule-teacher-filter label { color:var(--muted); font-size:12px; font-weight:600; }
.schedule-teacher-filter .form-input { width:min(360px, 100%); }
.schedule-area-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.schedule-area-actions .schedule-teacher-filter { flex:1; margin:0; }
.schedule-export-pdf { flex:0 0 auto; }
.print-approval-mark { position:absolute; z-index:30; top:calc(50% - 5mm); left:var(--approval-mark-left,50%); display:block; width:42.4mm; height:38.4mm; transform:translate(calc(-68.7% + 5mm),-50%); object-fit:contain; pointer-events:none; }
.print-approval-mark.teacher-approval-mark { position:absolute; top:auto; right:1.5mm; bottom:0; left:auto; width:42.4mm; height:38.4mm; transform:none; }
.print-teacher-page { position:relative; }
.approval-stamp-cell { position:relative; z-index:10; overflow:visible!important; }
.print-timetable .approval-stamp-table-wrap { position:relative; overflow:visible!important; }
.grade-print-footer span:last-child { position:relative; left:-5%; top:5%; }
.schedule-export-pdf-mark { display:inline-grid; min-width:27px; height:19px; place-items:center; padding:0 4px; border:1px solid #ef8b36; border-radius:4px; background:#fff2e5; color:#a94b10; font:700 9px/1 Sarabun,sans-serif; letter-spacing:.02em; }
.schedule-area-tab { display:grid; flex:0 0 auto; gap:1px; min-height:48px; min-width:110px; padding:5px 13px; border:0; border-radius:9px; background:transparent; color:var(--muted); font:500 12px Sarabun,sans-serif; text-align:left; cursor:pointer; }
.schedule-area-tab span { white-space:nowrap; }
.schedule-area-tab small { color:var(--muted); font-size:10px; }
.schedule-area-tab:hover { background:#fff2e3; color:var(--ink); }
.schedule-area-tab.active { background:var(--orange-soft); color:var(--orange-dark); font-weight:700; }
.schedule-area-tab.active small { color:var(--orange-dark); }
.schedule-area-panel { min-height:180px; }
.schedule-teacher-list { border-top:1px solid var(--line); }
.schedule-teacher-row { padding:15px 10px 20px; border-bottom:1px solid var(--line); }
.schedule-teacher-heading { display:grid; grid-template-columns:minmax(200px, .8fr) minmax(0, 2fr); gap:18px; margin-bottom:10px; }
.schedule-teacher-title-row { display:flex; align-items:center; align-content:flex-start; flex-wrap:wrap; gap:8px; }
.schedule-teacher-title-row>strong { font-size:13px; font-weight:600; }
.schedule-add-guidance { margin-left:auto; padding:5px 10px; font-size:12px; }
.schedule-teacher-version-tabs { display:inline-flex; gap:3px; padding:2px; border:1px solid var(--line); border-radius:9px; background:var(--surface); }
.schedule-teacher-version-tabs [role="tab"] { min-height:25px; padding:0 8px; border:0; border-radius:6px; background:transparent; color:var(--muted); font:600 10px Sarabun,sans-serif; cursor:pointer; }
.schedule-teacher-version-tabs [role="tab"][aria-selected="true"] { background:var(--orange-soft); color:var(--orange-dark); }
.schedule-half-semester-marker { display:inline-block; margin-left:7px; padding:2px 7px; border:1px solid #d9d0ef; border-radius:999px; background:#f2effa; color:#5a4788; font-size:9px; font-weight:600; line-height:1.4; vertical-align:middle; white-space:nowrap; }
.schedule-wmw-badge { display:inline-flex; align-items:center; margin-left:auto; padding:3px 9px; border:1px solid #c4dfcf; border-radius:999px; background:#eaf5ee; color:#276541; font-size:10px; font-weight:700; line-height:1.25; white-space:nowrap; }
.schedule-teacher-courses { display:grid; gap:5px; color:var(--muted); font-size:12px; }
.schedule-teacher-courses span { line-height:1.5; }
.schedule-course-version-link { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px; width:100%; min-width:0; max-width:100%; padding:0; border:0; background:none; color:inherit; font:inherit; line-height:1.5; text-align:left; cursor:pointer; }
.schedule-course-version-link:hover { color:var(--orange-dark); text-decoration:underline; }
.schedule-course-version-link small { margin-left:5px; color:var(--orange-dark); font-size:10px; }
.schedule-elective-allocation-note { margin-left:5px; color:var(--orange-dark); font-size:10px; white-space:nowrap; }
.schedule-course-pack-section { margin:0 0 12px; padding:0 0 12px; border-bottom:1px dashed var(--line); }
.schedule-course-pack-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 8px; }
.schedule-course-pack-heading>div { display:grid; gap:2px; }
.schedule-course-pack-heading strong { font-size:12px; }
.schedule-course-pack-heading small { color:var(--muted); font-size:10px; }
.schedule-course-pack-heading>span { color:var(--muted); font-size:11px; white-space:nowrap; }
.schedule-course-packs { display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:8px; }
.schedule-course-pack { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:5px 10px; min-width:0; padding:9px 11px; border:1px solid #f0d5b8; border-radius:10px; background:#fff8f1; }
.schedule-course-pack[data-schedule-pack-target] { transition:border-color .12s ease,background-color .12s ease,box-shadow .12s ease; }
.schedule-course-pack.is-return-target { border-color:#58a77a; background:#eef8f2; box-shadow:0 0 0 3px #58a77a26; }
.schedule-course-pack.is-saving { position:relative; pointer-events:none; }
.schedule-course-pack.is-saving::after { position:absolute; z-index:4; inset:0; border-radius:inherit; background:rgb(90 96 102 / 14%); content:""; }
.schedule-course-pack.is-saving::before { position:absolute; z-index:5; top:50%; left:50%; width:22px; height:22px; margin:-11px 0 0 -11px; border:3px solid #ffffffd9; border-top-color:var(--orange-dark); border-radius:50%; content:""; animation:schedule-save-spin .7s linear infinite; }
.schedule-course-pack-topline { grid-column:1/-1; display:flex; align-items:flex-start; justify-content:space-between; gap:6px; min-width:0; }
.schedule-course-pack-room { min-width:0; overflow:hidden; color:var(--orange-dark); font-size:10px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.schedule-course-type-badge { flex:none; padding:2px 7px; border:1px solid #d8e8de; border-radius:999px; background:#e8f4ec; color:#286a43; font-size:9px; font-weight:700; line-height:1.4; white-space:nowrap; }
.schedule-course-type-badge.mandatory { border-color:#f3d3ad; background:#fff0df; color:#8b4a08; }
.schedule-course-type-badge.free-elective { border-color:#ddd5f3; background:#f1edfb; color:#59448c; }
.schedule-course-pack>strong { overflow:hidden; color:var(--ink); font-size:11px; font-weight:600; text-overflow:ellipsis; white-space:nowrap; }
.schedule-course-pack>small { color:#28734a; font-size:10px; font-weight:600; white-space:nowrap; }
.schedule-pack-labels { grid-column:1/-1; display:flex; flex-wrap:wrap; justify-content:center; gap:5px; margin-top:3px; text-align:center; }
.schedule-pack-label { display:inline-flex; min-width:48px; min-height:27px; flex-direction:column; align-items:center; justify-content:center; gap:1px; padding:2px 8px; border:1px solid #edc99f; border-radius:7px; background:#fff; color:var(--orange-dark); font:600 11px Sarabun,sans-serif; line-height:1.1; text-align:center; cursor:grab; transition:background-color .12s ease,border-color .12s ease,box-shadow .12s ease,opacity .12s ease; }
.schedule-pack-label small { color:var(--muted); font-size:9px; font-weight:500; line-height:1; }
.schedule-pack-label:hover,.schedule-pack-label.is-selected { border-color:var(--orange); background:#fff2e3; color:var(--orange-dark); text-decoration:none; box-shadow:0 0 0 2px #f28c1b1a; }
.schedule-pack-label:disabled,.schedule-pack-label.is-unassigned { border-color:#ddd8d1; background:#f1efec; color:#8d8983; cursor:not-allowed; box-shadow:none; opacity:.75; }
.schedule-pack-label.is-placed { border-color:#b9dfc8; background:#eaf5ee; color:#286a43; cursor:pointer; }
.schedule-pack-label.is-co-taught { border-color:#d8d3cc; background:#f0eeeb; color:#716c65; cursor:not-allowed; }
.schedule-pack-label.is-co-taught small { color:#716c65; }
.schedule-pack-label.is-placed:hover { border-color:#58a77a; background:#dff0e5; }
.schedule-timetable td.is-placement-disabled { background:#f0efec!important; cursor:not-allowed; pointer-events:none; }
.schedule-timetable td.is-elective-slot-reference { background:#eaf5ee!important; box-shadow:inset 0 0 0 2px #7ab68b; }
.schedule-timetable td.is-conflict-disabled { background:#fff0ed!important; box-shadow:inset 0 0 0 2px #d97868; cursor:not-allowed; pointer-events:none; }
.schedule-timetable td .schedule-conflict-note { display:block; padding:4px 6px; border:1px solid #e9a49a; border-radius:5px; background:#fff7f5; color:#973e32; font-size:9px; font-weight:700; line-height:1.25; overflow-wrap:anywhere; }
.schedule-timetable td.is-placement-available { background:#eef8f1!important; box-shadow:inset 0 0 0 1px #7ab68b; }
.schedule-timetable td.is-pair-drop-target,.schedule-timetable td.is-pair-drop-companion { background:#fff0df!important; box-shadow:inset 0 0 0 2px #f28c1b; cursor:pointer; }
.schedule-pack-label[draggable="true"] { cursor:grab; }
.schedule-pack-label.is-dragging { opacity:.5; cursor:grabbing; }
.schedule-pack-label.is-placed { border-color:#cfe7d8; background:#edf7f1; color:#28734a; cursor:default; }
button.schedule-pack-label.is-placed { cursor:pointer; }
.schedule-pack-label.is-pending { border:2px solid #e47716; background:#fff0d9; color:#8a3f00; box-shadow:0 2px 8px #b9572026; font-weight:700; }
.schedule-pack-label.is-pending small { color:#8a3f00; font-size:9px; font-weight:700; }
.schedule-pack-label.is-pending:hover,.schedule-pack-label.is-pending.is-selected { border-color:#bd4e08; background:#ffe2b8; box-shadow:0 0 0 3px #e4771633; }
.schedule-placement-message { min-height:17px; margin:7px 0 0; color:var(--muted); font-size:10px; }
.schedule-course-pack.is-unassigned { border-color:#e4e4e4; background:#f6f6f6; }
.schedule-course-pack.is-unassigned .schedule-course-pack-room,.schedule-course-pack.is-unassigned>small { color:var(--muted); }
.schedule-no-packs { margin:0 0 12px; color:var(--muted); font-size:11px; }
.schedule-teacher-row .schedule-table-wrap { margin-top:8px; }
.schedule-room-timetable-heading { padding:8px 10px; border-bottom:1px solid var(--line); background:#f7f5f2; color:var(--ink); font-size:12px; font-weight:600; }
@media(max-width:700px) { .schedule-management-heading { align-items:flex-start; flex-direction:column; } .schedule-management-heading .schedule-period-context { white-space:normal; } .schedule-teacher-heading { grid-template-columns:1fr; gap:6px; } .schedule-teacher-row { padding:13px 5px 16px; } .schedule-teacher-filter { align-items:stretch; flex-direction:column; gap:5px; } .schedule-teacher-filter .form-input { width:100%; } .schedule-area-actions { align-items:stretch; flex-direction:column; } }
.schedule-structure-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:18px; }
.schedule-structure-heading-actions { display:flex; align-items:center; gap:10px; }
.schedule-structure-heading h2 { margin:0; font-size:18px; }
.schedule-structure-heading p { margin:4px 0 0; color:var(--muted); font-size:12px; }
.schedule-period-context { display:inline-flex; align-items:center; min-height:38px; margin:0 0 16px; padding:7px 13px; border:1px solid var(--line); border-radius:10px; background:var(--surface); color:var(--muted); font-size:13px; font-weight:600; }
.schedule-period-context.is-set { border-color:#cfe7d8; background:#edf7f1; color:#28734a; }
.schedule-period-context.is-unset { border-color:#f1d8c0; background:#fff6ee; color:#9b571d; }
.schedule-grade-tabs { display:flex; flex-wrap:wrap; gap:7px; margin:0 0 16px; padding:5px; width:max-content; max-width:100%; border:1px solid var(--line); border-radius:12px; background:var(--surface); }
.schedule-grade-tab { min-width:58px; min-height:40px; padding:0 16px; border:0; border-radius:9px; background:transparent; color:var(--muted); font:500 13px Sarabun,sans-serif; cursor:pointer; }
.schedule-grade-tab:hover { background:var(--orange-soft); color:var(--ink); }
.schedule-grade-tab.active { background:var(--orange-soft); color:var(--orange-dark); font-weight:700; }
.schedule-grade-panel { min-height:0; padding:0; }
.schedule-room-section { padding:0 0 22px; margin:0 0 22px; border-bottom:2px solid var(--line); }
.schedule-room-section:last-child { margin-bottom:0; }
.schedule-curriculum-plan { margin:0 0 22px; padding:12px 14px 0; border:1px solid var(--line); border-radius:12px; background:#fff; }
.schedule-curriculum-plan:last-child { margin-bottom:0; }
.schedule-curriculum-plan-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 14px; padding:0 0 9px; border-bottom:1px solid var(--line); }
.schedule-curriculum-plan-heading strong { color:var(--ink); font-size:13px; }
.schedule-curriculum-plan-heading span { color:var(--muted); font-size:11px; white-space:nowrap; }
.schedule-room-heading { display:flex; align-items:center; gap:10px; margin:0 0 10px; padding:0 0 8px; border-bottom:1px solid var(--line); }
.schedule-room-heading>div { min-width:0; }
.schedule-room-heading h3 { margin:0; font-size:15px; font-weight:700; }
.schedule-room-location { display:block; margin-top:2px; color:var(--muted); font-size:11px; }
.schedule-room-heading span { max-width:100%; padding:3px 9px; border-radius:999px; background:var(--gray-soft); color:var(--muted); font-size:11px; white-space:normal; }
.schedule-room-heading .self-access-room-button { margin-left:auto; flex:0 0 auto; }
.schedule-table-wrap { width:100%; overflow-x:auto; border:1px solid var(--line); border-radius:10px; background:var(--surface); }
.schedule-timetable { --schedule-break-width:30px; width:100%; min-width:1180px; table-layout:fixed; border-collapse:collapse; font-size:11px; text-align:center; }
.schedule-timetable col.schedule-day-column { width:86px; }
.schedule-timetable col.schedule-break-column { width:var(--schedule-break-width); }
.schedule-timetable th,.schedule-timetable td { border:1px solid var(--line); }
.schedule-timetable thead th { height:38px; padding:5px 4px; background:#f4f5f6; color:var(--ink); font-weight:600; }
.schedule-timetable thead tr+tr th { height:32px; background:#fafafa; color:var(--muted); font-size:10px; font-weight:500; white-space:nowrap; }
.schedule-timetable thead th:first-child,.schedule-timetable tbody th { width:86px; }
.schedule-timetable tbody th { padding:8px 5px; background:#f8f8f8; font-weight:600; }
.schedule-timetable tbody td { height:68px; padding:5px; vertical-align:middle; }
.schedule-timetable tbody td:not(.schedule-break-cell) { transition:background-color .12s ease, box-shadow .12s ease; }
.schedule-timetable tbody td:not(.schedule-break-cell):hover { background:#fff2e3; box-shadow:inset 0 0 0 2px #f3c18f; }
.schedule-timetable tbody td.schedule-empty-late-cell,.print-timetable .schedule-timetable tbody td.schedule-empty-late-cell,.schedule-timetable tbody td.schedule-shaded-cell,.print-timetable .schedule-timetable tbody td.schedule-shaded-cell { background:#e8e8e8; }
.schedule-timetable tbody td[data-schedule-slot-cell] { cursor:crosshair; }
.schedule-timetable tbody td[data-schedule-slot-cell]:empty::after { content:'วางคาบ'; display:inline-block; margin-top:18px; color:transparent; font-size:10px; }
.schedule-teacher-row:has(.schedule-pack-label.is-selected) .schedule-timetable tbody td[data-schedule-slot-cell]:empty::after,.schedule-teacher-row:has(.schedule-pack-label.is-dragging) .schedule-timetable tbody td[data-schedule-slot-cell]:empty::after { color:#bc5b1d; }
.schedule-timetable tbody td[data-schedule-slot-cell].is-drop-target { background:#fff0dc; box-shadow:inset 0 0 0 3px var(--orange); }
.schedule-timetable tbody td[data-schedule-slot-cell].is-saving { pointer-events:none; cursor:wait; }
.schedule-timetable tbody td[data-schedule-slot-cell].is-saving::before { position:absolute; z-index:4; inset:0; border-radius:2px; background:rgb(90 96 102 / 14%); content:""; }
.schedule-timetable tbody td[data-schedule-slot-cell].is-saving::after { position:absolute; z-index:5; top:50%; left:50%; width:22px; height:22px; margin:-11px 0 0 -11px; border:3px solid #ffffffd9; border-top-color:var(--orange-dark); border-radius:50%; content:""; animation:schedule-save-spin .7s linear infinite; }
@keyframes schedule-save-spin { to { transform:rotate(360deg); } }
.schedule-timetable tbody td[data-schedule-slot-cell] { position:relative; }
.schedule-entry { position:relative; display:grid; grid-template-columns:minmax(0,1fr); width:100%; max-width:100%; box-sizing:border-box; justify-items:stretch; gap:3px; min-width:0; padding:0 20px; border:0; border-radius:0; background:transparent; color:var(--ink); text-align:center; }
.schedule-entry-wmw-badge { position:absolute; z-index:1; top:0; right:2px; padding:1px 6px; border:1px solid #c4dfcf; border-radius:999px; background:#eaf5ee; color:#276541; font-size:10px; font-weight:700; line-height:1.25; white-space:nowrap; }
.print-timetable .schedule-entry-wmw-badge { font-size:9px; }
.schedule-entry.is-locked-allocation { cursor:not-allowed; background:#fff8ef; }
.schedule-entry[draggable="true"] { cursor:grab; }
.schedule-entry.is-dragging { opacity:.45; cursor:grabbing; }
.schedule-entry-code,.schedule-entry-name { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.schedule-entry-code { color:var(--ink); font-size:10px; font-weight:700; line-height:1.35; }
.print-timetable .schedule-entry-code { font-size:15px !important; line-height:1.1; }
.schedule-entry-code.is-grade-meeting { white-space:normal; text-overflow:clip; overflow-wrap:anywhere; }
.schedule-entry-name { width:100%; font-size:10px; font-weight:600; line-height:1.35; }
.schedule-timetable .schedule-entry-name { overflow:hidden; overflow-wrap:normal; text-overflow:ellipsis; white-space:nowrap; }
.schedule-entry-room { display:block; max-width:100%; overflow:hidden; color:#626b73; font-size:9px; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.schedule-pack-label.is-locked-allocation { cursor:not-allowed; border-color:#e5c49d; background:#fff8ef; }
.schedule-entry-teacher { display:block; width:100%; min-width:0; max-width:100%; box-sizing:border-box; overflow:hidden; color:#626b73; font-size:9px; font-weight:400; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.schedule-entry-version { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:center; column-gap:3px; color:#626b73; font-size:9px; font-weight:600; line-height:1.25; }
.schedule-entry-version-label { display:inline; flex:none; }
.schedule-entry-version .schedule-entry-teacher { display:inline-block; flex:0 1 auto; width:auto; max-width:100%; color:#626b73; font-size:inherit; line-height:inherit; vertical-align:baseline; }
.schedule-entry-version .schedule-entry-room { flex:0 0 100%; text-align:center; }
.schedule-entry-remove { position:absolute; z-index:2; top:-3px; right:-3px; display:grid; width:20px; height:20px; place-items:center; padding:0; border:1px solid #edcfc9; border-radius:50%; background:#fffdf9ef; color:#a13f31; box-shadow:0 1px 4px #20212424; cursor:pointer; opacity:0; pointer-events:none; transition:opacity .12s ease, transform .12s ease, background-color .12s ease; }
.schedule-entry-remove .material-symbols-rounded { font-size:14px; line-height:1; }
.schedule-timetable td[data-schedule-slot-cell]:hover .schedule-entry-remove,.schedule-entry-remove:focus-visible { opacity:1; pointer-events:auto; }
.schedule-entry-remove:hover,.schedule-entry-remove:focus-visible { background:#a13f31; color:#fff; transform:scale(1.08); }
@media(hover:none) { .schedule-entry-remove { opacity:1; pointer-events:auto; } }
.schedule-timetable .schedule-break-heading { box-sizing:border-box; width:var(--schedule-break-width); min-width:var(--schedule-break-width); max-width:var(--schedule-break-width); overflow:hidden; padding:0 !important; background:#f6f2ed; color:#806b55; font-size:9px; text-align:center !important; vertical-align:middle; }
.schedule-timetable .schedule-break-heading span,.schedule-timetable .schedule-break-heading small { display:block; width:100%; margin:0 auto; text-align:center; }
.schedule-timetable .schedule-break-cell { box-sizing:border-box; width:var(--schedule-break-width); min-width:var(--schedule-break-width); max-width:var(--schedule-break-width); padding:0; background:repeating-linear-gradient(135deg,#f7f4f0,#f7f4f0 5px,#eee8e0 5px,#eee8e0 10px); border-left:1px solid var(--line); border-right:1px solid var(--line); }
@media(max-width:620px) { .schedule-structure-heading { align-items:flex-start; flex-direction:column; } .schedule-structure-heading-actions { width:100%; justify-content:space-between; flex-wrap:wrap; } .schedule-grade-tabs { width:100%; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); } .schedule-grade-tab { min-width:0; padding:0 6px; } .schedule-room-section { padding-bottom:16px; margin-bottom:16px; } }
.class-grade-card { margin-top: 14px; padding: 16px; }
.class-grade-card .panel-heading { margin-bottom: 12px; }
.class-grade-card .panel-heading h3 { margin: 0; }
.class-grade-card .panel-heading h3 small { color: var(--muted); font-size: .75em; font-weight: 400; }
.class-grade-card .panel-heading p { margin: 4px 0 0; color: var(--muted); font-size: 11px; }
.classroom-grade-tabs { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0 10px; padding:5px; width:max-content; max-width:100%; border:1px solid var(--line); border-radius:10px; background:#fff; }
.classroom-grade-tab { min-height:35px; padding:0 14px; border:0; border-radius:7px; background:transparent; color:var(--muted); font:500 11px Sarabun,sans-serif; cursor:pointer; }
.classroom-grade-tab:hover { background:#fff7ee; color:var(--ink); }
.classroom-grade-tab.active { background:var(--orange-soft); color:var(--orange-dark); font-weight:600; }
.class-grade-card[hidden] { display:none; }
.classroom-count-control { display: grid; grid-template-columns: repeat(2,minmax(120px,1fr)) auto; align-items: end; gap: 10px; max-width: 680px; }
.classroom-count-control .selector-field { flex: 1; }
.classroom-count-control .selector-field span { display: block; margin-bottom: 5px; color: var(--muted); font-size: 11px; font-weight: 500; }
.classroom-count-control .form-input { min-height: 38px; font-family: Sarabun,sans-serif; font-size: 12px; }
.classroom-room-list { margin-top: 12px; }
.classroom-room-row { display: flex; align-items: end; gap: 10px; min-height: 54px; padding: 8px; border-top: 1px solid var(--line); font-family: Sarabun,sans-serif; }
.classroom-room-name-field { display:grid; gap:4px; flex:1; min-width:140px; color:var(--muted); font-size:10px; font-weight:500; }
.classroom-room-name-field .form-input { height:35px; min-height:35px; font:400 12px Sarabun,sans-serif; }
.classroom-room-code { align-self:center; color:var(--muted); font-size:10px; white-space:nowrap; }
.classroom-room-row .button { height: 30px; }
.classroom-page-panel { padding:22px; }
.classroom-page-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding-bottom:18px; border-bottom:1px solid var(--line); }
.classroom-page-heading h2 { margin:3px 0 4px; font-size:20px; }
.classroom-page-heading p,.classroom-section-heading p { margin:0; color:var(--muted); font-size:11px; }
.classroom-page-kicker,.class-grade-kicker { color:var(--orange-dark); font-size:10px; font-weight:600; letter-spacing:.03em; }
.classroom-overview { display:flex; gap:9px; }
.classroom-overview>div { display:grid; min-width:96px; gap:2px; padding:9px 12px; border:1px solid var(--line); border-radius:9px; background:#fafafa; }
.classroom-overview strong { color:var(--ink); font-size:17px; line-height:1.2; }
.classroom-overview span { color:var(--muted); font-size:9px; }
.classroom-curriculum-picker { display:flex; align-items:end; gap:12px; margin:16px 0 12px; }
.classroom-curriculum-picker .selector-field { width:min(440px,100%); }
.classroom-curriculum-picker .selector-field>span { display:block; margin-bottom:5px; color:var(--muted); font-size:10px; font-weight:600; }
.classroom-stage-chip { display:inline-flex; align-items:center; gap:5px; min-height:37px; padding:0 11px; border-radius:8px; background:#f5f6f7; color:#687177; font-size:10px; }
.classroom-stage-chip .material-symbols-rounded { font-size:15px; }
.classroom-help { margin:10px 0 14px; }
.classroom-grade-tabs { width:100%; gap:5px; margin:14px 0 12px; padding:4px; border-color:#e8e9eb; background:#f8f8f8; }
.classroom-grade-tab { display:inline-flex; align-items:center; gap:8px; padding:0 12px; }
.classroom-grade-tab small { padding:2px 6px; border-radius:999px; background:#f0f1f2; color:#777e82; font-size:9px; }
.classroom-grade-tab.active small { background:#fff; color:var(--orange-dark); }
.class-grade-card { padding:0; overflow:hidden; border-color:#e7e8ea; }
.class-grade-heading { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:17px 18px; border-bottom:1px solid var(--line); background:linear-gradient(110deg,#fffaf5,#fff 62%); }
.class-grade-heading h3 { display:flex; align-items:center; gap:8px; margin:3px 0 4px; font-size:16px; }
.class-grade-heading h3 small { padding:3px 7px; border-radius:5px; background:#f1f2f3; color:#777; font-size:9px; font-weight:500; }
.class-grade-heading p { margin:0; color:var(--muted); font-size:10px; }
.classroom-active-count { display:grid; justify-items:center; min-width:76px; padding:7px 10px; border:1px solid #dceee3; border-radius:9px; background:#f0f8f3; color:#24804e; }
.classroom-active-count strong { font-size:16px; line-height:1.2; }
.classroom-active-count small { font-size:9px; }
.classroom-settings,.classroom-list-section { padding:16px 18px; }
.classroom-settings { border-bottom:1px solid var(--line); background:#fafafa; }
.classroom-section-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:10px; }
.classroom-section-heading h4 { margin:0 0 3px; font-size:12px; }
.classroom-count-control { grid-template-columns:minmax(160px,220px) max-content; justify-content:start; max-width:460px; gap:12px; }
.classroom-count-control .selector-field>span { margin-bottom:4px; }
.classroom-count-control .button,.classroom-room-actions .button { display:inline-flex; align-items:center; justify-content:center; gap:5px; }
.classroom-count-control .button { justify-self:start; align-self:end; width:auto; min-width:152px; padding:0 14px; white-space:nowrap; }
.classroom-count-control .button .material-symbols-rounded,.classroom-room-actions .button .material-symbols-rounded { font-size:15px; }
.classroom-room-list { display:grid; gap:7px; margin-top:0; }
.classroom-total-count { padding:4px 8px; border-radius:999px; background:#f1f2f3; color:#697074; font-size:9px; white-space:nowrap; }
.classroom-room-row { display:grid; grid-template-columns:minmax(125px,.65fr) minmax(180px,1.5fr) auto; align-items:center; gap:14px; min-height:0; padding:9px 10px; border:1px solid #eceef0; border-radius:8px; background:white; }
.classroom-room-identity { display:flex; align-items:center; gap:7px; }
.classroom-room-code { align-self:auto; padding:4px 7px; border-radius:5px; background:#f4f5f6; color:#53595c; font-size:10px; font-weight:600; }
.classroom-room-identity .status-pill { font-size:9px; }
.classroom-room-name-field { display:grid; gap:3px; min-width:0; color:var(--muted); font-size:9px; }
.classroom-room-name-field .form-input { width:100%; height:34px; min-height:34px; font-size:11px; }
.classroom-room-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.classroom-room-actions .button { height:32px; padding:0 9px; font-size:9px; white-space:nowrap; }
.classroom-room-actions .classroom-deactivate { color:#8a5b45; }
.classroom-room-actions .classroom-activate { border-color:#cfe6d8; color:#24784a; }
.classroom-empty,.classroom-page-empty { display:grid; justify-items:center; gap:5px; padding:26px 15px; border:1px dashed #dfe2e4; border-radius:9px; color:var(--muted); text-align:center; }
.classroom-empty .material-symbols-rounded,.classroom-page-empty .material-symbols-rounded { color:#9aa0a4; font-size:25px; }
.classroom-empty strong,.classroom-page-empty strong { color:#4d5357; font-size:11px; }
.classroom-empty p,.classroom-page-empty p { margin:0; font-size:10px; }
.classroom-page-empty { margin-top:16px; padding:35px 15px; background:#fafafa; }
.classroom-number-settings { margin-top:12px; padding-top:10px; border-top:1px solid #e9eaec; }
.classroom-number-settings summary { display:flex; align-items:center; gap:8px; color:#646a6e; font-size:10px; font-weight:500; cursor:pointer; list-style:none; }
.classroom-number-settings summary::-webkit-details-marker { display:none; }
.classroom-number-settings summary::before { content:'＋'; display:grid; place-items:center; width:17px; height:17px; border:1px solid #dfe1e3; border-radius:50%; color:#747a7e; font-size:12px; }
.classroom-number-settings[open] summary::before { content:'−'; }
.classroom-number-settings summary small { color:#8a8f92; font-size:9px; font-weight:400; }
.classroom-number-settings .selector-field { display:grid; gap:4px; width:min(240px,100%); margin-top:10px; }
.classroom-number-settings .selector-field>span,.classroom-number-settings p { color:var(--muted); font-size:9px; }
.classroom-number-settings p { margin:5px 0 0; }
@media(max-width:760px){.classroom-page-heading{align-items:flex-start;flex-direction:column}.classroom-overview{width:100%}.classroom-overview>div{flex:1}.classroom-room-row{grid-template-columns:1fr 1.5fr}.classroom-room-actions{grid-column:1/-1;justify-content:flex-start}.classroom-count-control{grid-template-columns:minmax(130px,200px) max-content;max-width:100%}}
@media(max-width:520px){.classroom-page-panel{padding:15px}.classroom-page-heading h2{font-size:17px}.classroom-curriculum-picker{align-items:stretch;flex-direction:column}.classroom-curriculum-picker .selector-field{width:100%}.classroom-stage-chip{align-self:flex-start}.classroom-grade-tabs{overflow:auto;flex-wrap:nowrap}.classroom-grade-tab{flex:none}.class-grade-heading,.classroom-settings,.classroom-list-section{padding:13px}.classroom-room-row{grid-template-columns:1fr}.classroom-room-actions{grid-column:auto}.classroom-count-control{grid-template-columns:1fr 1fr}.classroom-count-control .form-input{min-width:0}}
.offering-course-type { display:inline-flex; width:max-content; max-width:100%; padding:5px 9px; border-radius:999px; background:var(--orange-soft); color:var(--orange-dark); font:500 11px Sarabun,sans-serif; }
.teacher-distribution { margin:16px 0 12px; padding:14px 0 2px; border-top:1px solid var(--line); }
.teacher-distribution h3 { margin:0 0 10px; font-size:14px; }
.teacher-distribution .form-input { height:38px; min-height:38px; font:400 12px Sarabun,sans-serif; }
.teacher-room-assignments,.teacher-half-assignments { display:grid; gap:8px; margin:10px 0; }
.teacher-room-assignment,.teacher-half-assignment { display:grid; grid-template-columns:minmax(120px,1fr) minmax(180px,1.2fr); align-items:center; gap:10px; padding:8px 10px; border:1px solid var(--line); border-radius:8px; font:500 11px Sarabun,sans-serif; }
.teacher-half-assignment { grid-template-columns:1fr; align-items:stretch; gap:8px; }
.teacher-half-heading { display:grid; grid-template-columns:minmax(140px,1fr) minmax(180px,1.2fr); align-items:center; gap:10px; }
.teacher-half-rooms { display:flex; flex-wrap:wrap; gap:6px 12px; margin:0; padding:8px 10px; border:1px solid var(--line); border-radius:7px; }
.teacher-half-rooms legend { padding:0 4px; color:var(--muted); font-size:11px; }
.teacher-half-room { display:inline-flex; align-items:center; gap:5px; font-size:11px; }
.teacher-half-room input { accent-color:var(--primary); }
.teacher-distribution #save-teacher-distribution { position:sticky; bottom:-12px; z-index:3; width:100%; min-height:42px; margin-top:8px; box-shadow:0 -5px 14px #f6f5f2,0 2px 8px #00000012; }
.teacher-distribution #save-teacher-distribution[hidden] { display:none!important; }
.teacher-distribution #save-teacher-distribution:disabled { cursor:wait; opacity:.72; }
.teacher-distribution #teacher-distribution-message { min-height:18px; margin:8px 0 0; }
.teacher-weekly-periods { display:grid; gap:8px; margin:10px 0; }
.teacher-weekly-period { display:grid; grid-template-columns:minmax(140px,1fr) minmax(120px,150px) minmax(220px,auto); align-items:center; gap:12px; padding:9px 10px; border:1px solid var(--line); border-radius:8px; font:500 12px Sarabun,sans-serif; }
.teacher-period-input { display:flex; align-items:center; gap:8px; }
.teacher-period-input .form-input { max-width:100px; }
.teacher-period-input small { color:var(--muted); white-space:nowrap; }
.teacher-elective-slot-options { display:flex; flex-wrap:wrap; gap:6px; }
.teacher-elective-slot-options label { display:inline-flex; align-items:center; gap:4px; padding:4px 8px; border:1px solid var(--line); border-radius:999px; cursor:pointer; white-space:nowrap; }
.teacher-elective-slot-options input { accent-color:var(--primary); }
.teacher-weekly-period.teacher-elective-assignment { grid-template-columns:repeat(12,minmax(0,1fr)); align-items:start; }
.teacher-elective-details { grid-column:span 6; display:grid; grid-template-columns:minmax(0,1fr) minmax(90px,120px); align-items:center; gap:8px; min-height:100%; }
.teacher-weekly-period.teacher-elective-assignment .teacher-elective-slot-options { grid-column:span 6; display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:5px; }
.teacher-weekly-period.teacher-elective-assignment .teacher-elective-slot-options label { justify-content:center; min-width:0; padding:5px 3px; }
@media(max-width:760px){.teacher-weekly-period.teacher-elective-assignment{grid-template-columns:minmax(0,1fr)}.teacher-elective-details,.teacher-weekly-period.teacher-elective-assignment .teacher-elective-slot-options{grid-column:1/-1}}
.teacher-period-total { margin:8px 0; color:#16834d; font-size:12px; font-weight:600; }
.teacher-period-total.over-limit { color:#b83b2b; }
.teaching-split-details { min-width:210px; font-size:11px; line-height:1.55; }
.teaching-split-details > div + div { margin-top:3px; padding-top:3px; border-top:1px solid var(--line); }
.data-table td .teaching-curriculum-label { display:block; margin:2px 0 0; font-size:8px; line-height:1.3; }
.data-table td.teaching-teacher-cell { min-width:190px; white-space:normal; }
.data-table td .teaching-course-subtype { display:block; margin-top:2px; color:var(--muted); font-size:9px; line-height:1.3; }
.teaching-teacher-list { margin:0; padding-left:18px; line-height:1.5; }
.teaching-teacher-list li { padding-left:2px; }
.data-table tbody tr:hover > td { background-color:#fff5e9; transition:background-color .12s ease; }
.data-table tbody tr:not(:last-child) > td { border-bottom:1px dashed #e1e2e3; }
#offering-teachers-dialog { width:min(1040px,calc(100% - 36px)); max-height:92vh; }
#offering-teachers-dialog .dialog-card { display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:0 14px; max-height:92vh; overflow:auto; padding:30px; }
#offering-teachers-dialog .dialog-card > .eyebrow,#offering-teachers-dialog .dialog-card > h2,#offering-teachers-dialog .dialog-card > .offering-course-type,#offering-teachers-dialog .dialog-card > #offering-teachers-list,#offering-teachers-dialog .dialog-card > #free-elective-teacher-note,#offering-teachers-dialog .dialog-card > #teacher-distribution,#offering-teachers-dialog .dialog-card > #pending-teacher-assignments,#offering-teachers-dialog .dialog-card > #offering-teachers-message,#offering-teachers-dialog .dialog-card > .dialog-actions { grid-column:1/-1; }
#offering-teachers-dialog .teacher-add-grid { grid-column:1/-1; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
#offering-teachers-dialog .teacher-add-grid .form-label { margin-top:8px; }
@media(max-width:760px){#offering-teachers-dialog{width:min(600px,calc(100% - 24px))}#offering-teachers-dialog .dialog-card{grid-template-columns:minmax(0,1fr);padding:24px 20px}#offering-teachers-dialog .teacher-add-grid{grid-template-columns:minmax(0,1fr);gap:0}}
.term-overview-section .open-all-planned-courses:disabled { background: #e8e9eb; border-color: #e8e9eb; color: #777; cursor: not-allowed; opacity: 1; }
.implementation-version-list { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:7px; }
.implementation-version-chip { display:inline-flex; align-items:center; gap:7px; max-width:100%; padding:5px 8px 5px 10px; border:1px solid #f0d8c2; border-radius:999px; background:#fff8f1; color:#624b38; font-size:10px; }
.implementation-version-chip button { flex:none; width:20px; height:20px; border:0; border-radius:50%; background:#f7e8da; color:#a34f17; font:600 15px Sarabun,sans-serif; line-height:1; cursor:pointer; }
.implementation-version-chip button:hover { background:#f1d5bf; }
.implementation-version { max-width:100%; min-width:240px; }
.version-classrooms-toggle { display:inline-flex; align-items:center; gap:4px; white-space:nowrap; }
.version-classrooms-toggle .material-symbols-rounded { font-size:16px; }
.version-classrooms-row>td { padding:0!important; background:#fafafa; }
.version-classrooms-panel { display:grid; gap:8px; padding:12px 16px; }
.version-classroom-grade { display:grid; grid-template-columns:minmax(140px,190px) minmax(0,1fr); align-items:start; gap:12px; padding:10px 12px; border:1px solid #e9eaec; border-radius:8px; background:#fff; }
.version-classroom-grade-heading { display:flex; align-items:center; justify-content:space-between; gap:8px; color:#4c5154; font-size:10px; }
.version-classroom-grade-heading span { color:var(--muted); font-size:9px; white-space:nowrap; }
.version-classroom-chips { display:flex; flex-wrap:wrap; gap:6px; }
.version-classroom-chip { display:inline-flex; align-items:center; gap:5px; padding:5px 8px; border:1px solid #dceee3; border-radius:6px; background:#f2f8f4; color:#33744d; font-size:9px; }
.version-classroom-chip .material-symbols-rounded { font-size:14px; }
.version-classroom-chip small { color:#568365; font-size:8px; }
.version-classroom-chip.inactive { border-color:#e5e6e7; background:#f5f5f5; color:#73787b; }
.version-classroom-empty,.version-classrooms-empty { margin:0; padding:8px; border:1px dashed #e2e4e6; border-radius:6px; color:var(--muted); font-size:9px; }
.version-classrooms-empty { display:flex; align-items:center; gap:7px; margin:10px; padding:13px; background:#fff; }
.version-classrooms-empty .material-symbols-rounded { font-size:16px; }
.version-classrooms-manage { display:inline-flex;align-items:center;gap:4px;white-space:nowrap }
.version-classrooms-manage .material-symbols-rounded { font-size:15px }
.version-classroom-dialog { width:min(680px,calc(100% - 28px));max-height:92vh;overflow:auto }
.version-classroom-dialog .dialog-card { padding:26px }
.version-classroom-dialog .eyebrow { display:flex;align-items:center;gap:6px }
.version-classroom-intro { max-width:560px;line-height:1.65 }
.version-classroom-grade-list { display:grid;gap:9px;max-height:min(48vh,440px);overflow:auto;padding:2px }
.version-classroom-editor { display:grid;grid-template-columns:minmax(150px,.75fr) minmax(240px,1.4fr);align-items:center;gap:16px;padding:12px 14px;border:1px solid #e7e8e9;border-radius:10px;background:#fff }
.version-classroom-editor>div { display:grid;gap:3px }
.version-classroom-editor>div strong { font-size:12px }
.version-classroom-editor>div small,.version-classroom-editor label small { color:var(--muted);font-size:9px }
.version-classroom-editor label { display:grid;gap:4px;color:#65696b;font-size:10px;font-weight:600 }
.version-classroom-editor .form-input { height:36px }
.version-classroom-note { margin:12px 0 0;font-size:10px }
.version-classroom-dialog .dialog-actions .button { min-height:36px }
@media(max-width:620px){.version-classroom-editor{grid-template-columns:1fr;gap:8px}.version-classroom-dialog .dialog-card{padding:22px 16px}.version-classroom-grade-list{max-height:44vh}}
@media(max-width:620px){.version-classroom-grade{grid-template-columns:1fr;gap:7px}.version-classrooms-panel{padding:9px}}
.term-year-controls { margin: 0 0 16px; }
.term-year-controls .selector-row { display:flex; align-items:end; width:100%; margin:0; padding:0 0 14px; border:0; border-bottom:1px solid var(--line); border-radius:0; background:transparent; }
.term-year-controls .page-footnote { margin:10px 0 0; }
.term-grade-list { display:grid; grid-template-columns:minmax(0,1fr); margin-top:4px; }
.term-grade-section { min-width:0; padding:20px 0; border-bottom:1px solid var(--line); }
.term-grade-section:last-child { border-bottom:0; }
.term-grade-section .panel-heading { align-items:center; margin-bottom:12px; }
.term-grade-section .panel-heading h3 { margin:0; }
.term-grade-section .panel-heading p { margin:4px 0 0; color:var(--muted,#6f7478); font-size:.9em; }
.term-grade-section .data-table { min-width:420px; }
.term-course-actions { display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.term-course-actions .button.danger { border-color:#efc5bf; color:#a53d32; }
.term-grade-section .empty-state { padding:16px 8px; }
.term-overview-section > .panel-heading { align-items:center; margin:0; padding:0 0 16px; border-bottom:1px solid var(--line); }
.term-overview-section > .panel-heading h2 { margin:0; }
.term-overview-section > .panel-heading p { margin:4px 0 0; color:var(--muted); }
.semester-tabs { display:flex; gap:8px; margin:0 0 14px; padding:5px; width:max-content; max-width:100%; border:1px solid var(--line); border-radius:11px; background:#fff; }
.semester-tab { min-height:36px; padding:0 16px; border:0; border-radius:8px; background:transparent; color:var(--muted); font:500 11px Sarabun,sans-serif; cursor:pointer; }
.semester-tab:hover { background:#fff7ee; color:var(--ink); }
.semester-tab.active { background:var(--orange-soft); color:var(--orange-dark); font-weight:600; }
.term-overview-section[hidden] { display:none; }
@media(max-width:620px){.term-overview-section>.panel-heading{align-items:flex-start;flex-direction:column}.term-overview-section>.panel-heading .heading-actions{width:100%;flex-wrap:wrap}.term-year-controls .selector-row{align-items:flex-start;flex-direction:column}.term-year-controls .selector-field{width:100%}.term-year-controls .selector-field select{max-width:none;width:100%}}
@media(max-width:620px){.classroom-count-control{align-items:stretch;grid-template-columns:minmax(0,1fr);max-width:340px}.classroom-count-control .button{grid-column:auto;justify-self:stretch;width:100%}.classroom-room-row{align-items:stretch;flex-wrap:wrap}.classroom-room-name-field{flex-basis:100%}.teacher-room-assignment,.teacher-half-assignment,.teacher-weekly-period,.teacher-half-heading{grid-template-columns:1fr}}
.current-period-hero{display:flex;align-items:center;gap:18px;margin:0 0 18px;padding:20px 22px;border-color:#f2d8bd;background:linear-gradient(105deg,#fff8f0 0%,#fff 75%)}.current-period-hero.is-unset{border-style:dashed;background:#fffaf5}.current-period-hero.has-error{border-color:#f0d3cf;background:#fff8f7}.current-period-icon{width:50px;height:50px;display:grid;place-items:center;flex:0 0 auto;border-radius:15px;background:#ffead7;color:#b95a12;font-size:27px}.current-period-copy{min-width:0;flex:1}.current-period-heading{display:flex;align-items:center;gap:9px;margin-bottom:4px;color:#6a6d6f;font-size:10px;font-weight:600}.current-period-copy>strong{display:block;color:var(--ink);font-size:22px;line-height:1.35;font-weight:600;letter-spacing:-.02em}.current-period-copy>p{margin:3px 0 0;color:#737779;font-size:11px}.current-period-action{flex:0 0 auto;white-space:nowrap}@media(max-width:620px){.current-period-hero{align-items:flex-start;flex-wrap:wrap;gap:12px;padding:16px}.current-period-icon{width:42px;height:42px;font-size:23px}.current-period-copy{flex-basis:calc(100% - 58px)}.current-period-copy>strong{font-size:18px}.current-period-copy>p{line-height:1.6}.current-period-action{margin-left:54px}}
.teaching-all-rooms{color:#367f54;font-weight:500}
.annual-room-panel { padding:24px; border:1px solid var(--line); border-radius:16px; background:var(--surface); box-shadow:0 2px 10px #20212408; }
.annual-room-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:24px; padding-bottom:20px; border-bottom:1px solid var(--line); }
.annual-room-intro h2,.annual-room-editor-heading h3 { margin:0; color:var(--ink); font-size:18px; }
.annual-room-intro p,.annual-room-editor-heading p { margin:4px 0 0; color:var(--muted); font-size:13px; }
.annual-room-year { display:grid; min-width:230px; gap:5px; color:var(--muted); font-size:12px; font-weight:600; }
.annual-room-year select,.annual-room-table input { width:100%; min-height:40px; padding:8px 11px; border:1px solid var(--line); border-radius:9px; background:var(--surface); color:var(--ink); font:400 14px Sarabun,sans-serif; }
.annual-room-year select:focus,.annual-room-table input:focus { border-color:var(--orange); outline:3px solid #f28c1b24; }
.annual-room-tabs { margin:18px 0 16px; }
.annual-room-message { min-height:20px; margin:0 0 10px; color:#28734a; font-size:13px; font-weight:600; }
.annual-room-editor-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:0 0 12px; }
.annual-room-count { display:inline-flex; min-height:28px; align-items:center; padding:3px 10px; border-radius:99px; background:#f1f2f3; color:var(--muted); font-size:12px; font-weight:600; }
.annual-room-table-wrap { overflow-x:auto; border:1px solid var(--line); border-radius:12px; }
.annual-room-table { width:100%; border-collapse:collapse; table-layout:fixed; }
.annual-room-table th { padding:11px 14px; background:#f7f7f7; color:var(--muted); font-size:12px; font-weight:700; text-align:left; }
.annual-room-table td { padding:10px 14px; border-top:1px solid var(--line); }
.annual-room-table td label { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; clip-path:inset(50%); }
.annual-room-curriculum-label { display:block; margin:0 0 4px 2px; color:var(--muted); font-size:10px; line-height:1.2; }
.annual-room-table th:first-child { width:24%; }
.annual-room-table th:last-child { width:120px; }
.annual-room-table .annual-room-empty { padding:28px; color:var(--muted); text-align:center; }
.annual-room-remove { min-height:36px; padding:4px 9px; color:#a33f35; }
.annual-room-actions { display:flex; align-items:center; gap:10px; margin-top:14px; }
.annual-room-actions [data-room-save] { margin-left:auto; }
.annual-room-actions .material-symbols-rounded { font-size:18px; }
.annual-room-save-status { color:var(--muted); font-size:12px; }
@media(max-width:700px) { .annual-room-panel { padding:16px; } .annual-room-intro { align-items:stretch; flex-direction:column; gap:14px; } .annual-room-year { min-width:0; } .annual-room-table { min-width:620px; } .annual-room-actions { flex-wrap:wrap; } }
.annual-lab-copy { display:flex; align-items:center; gap:10px; margin:18px 0; padding:14px 16px; border:1px solid var(--line); border-radius:12px; background:#fafafa; }
.annual-lab-copy>div { margin-right:auto; }
.annual-lab-copy strong { color:var(--ink); font-size:13px; }
.annual-lab-copy p { margin:3px 0 0; color:var(--muted); font-size:12px; }
.annual-lab-copy select { min-width:190px; min-height:38px; padding:7px 10px; border:1px solid var(--line); border-radius:9px; background:#fff; color:var(--ink); font:400 13px Sarabun,sans-serif; }
.annual-lab-copy select:focus { border-color:var(--orange); outline:3px solid #f28c1b24; }
.annual-lab-copy .material-symbols-rounded { font-size:18px; }
.annual-lab-copy [data-loading="1"] .material-symbols-rounded { animation:schedule-save-spin .8s linear infinite; }
.elective-comparison { margin-bottom:18px; }
.elective-comparison .panel-heading .button { flex-shrink:0; }
.elective-comparison .data-table { min-width:760px; }
.elective-comparison-details { min-width:150px; }
.elective-comparison-details summary { color:#a5571b; cursor:pointer; white-space:nowrap; }
.elective-comparison-details ul { position:absolute; z-index:2; width:min(420px,70vw); max-height:300px; overflow:auto; margin:7px 0 0; padding:10px 12px 10px 28px; border:1px solid var(--line); border-radius:9px; background:#fff; box-shadow:0 8px 24px #20212420; }
.elective-comparison-details li { padding:5px 0; white-space:normal; }
.elective-comparison-details li strong,.elective-comparison-details li span { display:block; }
.elective-comparison-details li strong { font-weight:600; }
.elective-comparison-details li span { color:var(--muted); font-size:10px; }
.elective-comparison-note { margin:12px 0 0; color:var(--muted); font-size:11px; }
@media(max-width:700px) { .annual-lab-copy { align-items:stretch; flex-direction:column; } .annual-lab-copy>div { margin-right:0; } .annual-lab-copy select { width:100%; } }
.grade-course-dialog { width:min(760px,calc(100vw - 32px)); max-height:min(82vh,850px); padding:22px; border:1px solid var(--line); border-radius:16px; background:var(--surface); color:var(--ink); box-shadow:0 20px 70px #20212435; }
.grade-course-dialog::backdrop { background:#20212470; }
.grade-course-dialog-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.grade-course-dialog-head h2 { margin:0; font-size:18px; }
.grade-course-dialog-head p { margin:5px 0 0; color:var(--muted); font-size:12px; }
.grade-course-form { display:grid; grid-template-columns:minmax(145px,1fr) minmax(220px,2fr) minmax(110px,.8fr) minmax(100px,.8fr) auto; align-items:end; gap:10px; margin:20px 0 8px; }
.grade-course-form [hidden] { display:none; }
.grade-course-form label,.grade-course-slot-row label { display:grid; gap:5px; color:var(--muted); font-size:11px; }
.grade-course-form .form-input,.grade-course-slot-row .form-input { width:100%; min-width:0; height:38px; padding:0 9px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:12px Sarabun,sans-serif; }
.grade-course-dialog .form-message { min-height:18px; margin:8px 0; color:var(--orange-dark); font-size:11px; }
.grade-course-slot-list { max-height:48vh; overflow:auto; border-top:1px solid var(--line); }
.grade-course-slot-list h3 { margin:13px 0 7px; font-size:13px; }
.grade-course-slot-row { display:grid; grid-template-columns:minmax(180px,1fr) 120px 105px auto auto; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid var(--line); }
.grade-course-slot-row>div { display:grid; gap:2px; min-width:0; }
.grade-course-slot-row>div strong { overflow:hidden; font-size:11px; text-overflow:ellipsis; white-space:nowrap; }
.grade-course-slot-row>div small { color:var(--muted); font-size:10px; }
.grade-course-slot-row .button { white-space:nowrap; }
.grade-course-slot-row .button.danger { border-color:#f0c9c5; color:#b3443b; }
.self-access-form { display:grid; grid-template-columns:1fr 1fr auto; align-items:end; gap:10px; margin:20px 0 8px; }
.free-elective-form { grid-template-columns:minmax(100px,.7fr) minmax(130px,1fr) minmax(170px,1.3fr) auto; }
.free-elective-form-grid { display:grid; grid-template-columns:minmax(190px,1.2fr) minmax(120px,.6fr); gap:10px; margin:14px 0; }
.free-elective-form-grid label,.free-elective-segment label { display:grid; gap:5px; color:var(--muted); font-size:11px; }
.free-elective-form-grid .form-input,.free-elective-segment .form-input { width:100%; min-width:0; height:38px; padding:0 9px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:12px Sarabun,sans-serif; }
.free-elective-segments { display:grid; gap:8px; }
.free-elective-segment { display:grid; grid-template-columns:minmax(130px,.8fr) minmax(150px,1fr) minmax(120px,.8fr) auto; align-items:end; gap:9px; padding:10px; border:1px solid var(--line); border-radius:9px; background:#fff; }
.free-elective-fixed-duration { align-self:center; color:var(--muted); font-size:11px; }
.free-elective-segment-actions { display:flex; align-items:center; gap:10px; margin:10px 0; }
.free-elective-segment-actions #freeElectiveTotal { flex:1; }
.free-elective-segment-actions #freeElectiveTotal.is-invalid { color:#b3443b; }
.free-elective-segment-actions #saveFreeElective { white-space:nowrap; }
.free-elective-slot-row { grid-template-columns:minmax(180px,1fr) auto auto; }
.free-elective-slot-row>div small { white-space:normal; }
.self-access-form label { display:grid; gap:5px; color:var(--muted); font-size:11px; }
.self-access-form .form-input { width:100%; min-width:0; height:38px; padding:0 9px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:12px Sarabun,sans-serif; }
.self-access-slot-list { max-height:48vh; overflow:auto; border-top:1px solid var(--line); }
.self-access-slot-list h3 { margin:13px 0 7px; font-size:13px; }
.self-access-slot-row { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 0; border-bottom:1px solid var(--line); }
.self-access-slot-row>span { display:grid; gap:2px; }
.self-access-slot-row strong { font-size:11px; }
.self-access-slot-row small { color:var(--muted); font-size:10px; }
.self-access-slot-row .button.danger { border-color:#f0c9c5; color:#b3443b; }
.schedule-timetable tbody td.schedule-lunch-cell { padding:4px 2px; border-color:#edc49d; background:#fff2e5; color:#a94b10; font-size:10px; font-weight:700; }
.schedule-timetable tbody td.schedule-lunch-cell span { display:inline-block; white-space:nowrap; writing-mode:vertical-rl; text-orientation:mixed; }
.lunch-default-form,.lunch-override-form { display:grid; align-items:end; gap:10px; padding:15px 0; border-bottom:1px solid var(--line); }
.lunch-default-form { grid-template-columns:minmax(200px,1fr) auto; }
.lunch-override-form { grid-template-columns:minmax(150px,1.2fr) minmax(110px,.8fr) minmax(180px,1fr) auto; }
.lunch-default-form label,.lunch-override-form label { display:grid; gap:5px; color:var(--muted); font-size:11px; }
.lunch-default-form .form-input,.lunch-override-form .form-input { width:100%; min-width:0; height:38px; padding:0 9px; border:1px solid var(--line); border-radius:8px; background:#fff; color:var(--ink); font:12px Sarabun,sans-serif; }
.lunch-override-title { margin:17px 0 0; font-size:13px; }
.lunch-override-list { max-height:28vh; overflow:auto; border-top:1px solid var(--line); }
.lunch-override-row { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 0; border-bottom:1px solid var(--line); }
.lunch-override-row>span { display:grid; gap:2px; }
.lunch-override-row strong { font-size:11px; }
.lunch-override-row small { color:var(--muted); font-size:10px; }
@media(max-width:760px) { .lunch-default-form,.lunch-override-form { grid-template-columns:1fr 1fr; } .lunch-override-form label:first-child { grid-column:1/-1; } .lunch-default-form .button,.lunch-override-form .button { grid-column:1/-1; justify-content:center; } }
@media(max-width:760px) { .page-heading:has(#manageGradeCourses) { flex-direction:column; } .page-heading:has(#manageGradeCourses) .heading-actions { width:100%; flex-wrap:wrap; } .grade-course-form { grid-template-columns:1fr 1fr; } .grade-course-form label:first-child { grid-column:1/-1; } .grade-course-slot-row { grid-template-columns:1fr 1fr; } .grade-course-slot-row>div { grid-column:1/-1; } .grade-course-slot-row .button { justify-content:center; } .schedule-room-heading { flex-wrap:wrap; } .schedule-room-heading .self-access-room-button { margin-left:0; } .self-access-form { grid-template-columns:1fr 1fr; } .self-access-form .button { grid-column:1/-1; justify-content:center; } }
@media(max-width:760px) { .free-elective-form { grid-template-columns:1fr 1fr; } .free-elective-form #saveFreeElective { grid-column:1/-1; justify-content:center; } .free-elective-form-grid,.free-elective-segment { grid-template-columns:1fr 1fr; } .free-elective-segment-actions { align-items:stretch; flex-wrap:wrap; } .free-elective-segment-actions #freeElectiveTotal { flex-basis:100%; } .free-elective-segment-actions #saveFreeElective { flex:1; justify-content:center; } .free-elective-slot-row { grid-template-columns:1fr auto; } .free-elective-slot-row>div { grid-column:1/-1; } }
.table-pagination{display:flex;align-items:center;justify-content:flex-end;gap:18px;padding:12px 2px;color:var(--muted);font-size:10px}.pagination-summary{margin-right:auto}.pagination-size{display:flex;align-items:center;gap:6px}.pagination-size select{height:30px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--text);font:10px Sarabun,sans-serif}.pagination-controls{display:flex;align-items:center;gap:8px}.pagination-controls .button{width:30px;height:30px;justify-content:center;padding:0;font-size:16px}.pagination-controls .button:disabled{opacity:.4;cursor:default}@media(max-width:600px){.table-pagination{justify-content:flex-start;flex-wrap:wrap;gap:10px}.pagination-summary{flex-basis:100%}}
.data-table th .column-filter{display:block;width:100%;min-width:72px;height:28px;margin-top:7px;padding:0 7px;border:1px solid #dedfe0;border-radius:6px;background:#fff;color:#414446;font:10px Sarabun,sans-serif;outline:none}.data-table th .column-filter:focus{border-color:#e3a05e;box-shadow:0 0 0 2px #f28c1b1c}.data-table th select.column-filter{min-width:90px;max-width:150px}
.table-body-progress td{text-align:center!important;padding:30px 16px!important;color:#777b7d!important;background:#fff}.table-body-progress-content{display:inline-flex;align-items:center;justify-content:center;gap:9px}.table-body-progress-content .material-symbols-rounded{font-size:19px;color:var(--orange-dark);animation:schedule-save-spin 1s linear infinite}
.schedule-room-dialog{width:min(520px,calc(100% - 28px))}.schedule-room-dialog .dialog-card{max-height:88vh;overflow:auto}.schedule-room-course{margin:0 0 16px!important;color:var(--ink)!important;font-size:13px!important;font-weight:600}.schedule-room-details{display:grid;gap:9px;padding:13px 14px;border:1px solid var(--line);border-radius:10px;background:#faf9f7}.schedule-room-details>div{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:start;gap:10px;font-size:11px}.schedule-room-details>div span{color:var(--muted)}.schedule-room-details>div strong{font-weight:600;overflow-wrap:anywhere}.schedule-entry[aria-haspopup="dialog"]{cursor:grab}.schedule-entry[aria-haspopup="dialog"]:hover .schedule-entry-room{color:var(--orange-dark)}
.free-elective-course-options{display:grid;gap:8px;max-height:min(48vh,440px);overflow:auto;margin:14px 0;padding:2px}.free-elective-course-option{display:flex;align-items:flex-start;gap:10px;padding:11px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;cursor:pointer}.free-elective-course-option:has(input:checked){border-color:#e9a159;background:#fff9f1}.free-elective-course-option input,.checkbox-row input{margin-top:3px;accent-color:#f28c1b}.free-elective-course-option span{display:grid;gap:3px}.free-elective-course-option strong{font-size:12px}.free-elective-course-option small{color:var(--muted);font-size:10px}.checkbox-row{display:flex;align-items:center;gap:8px;margin-top:14px;font-size:12px}.free-elective-offering-dialog{width:min(720px,calc(100% - 28px))}
.free-elective-search-label{display:grid;gap:6px;margin:16px 0 0;font-size:11px}.free-elective-search-label .form-input{width:100%;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;font:12px Sarabun,sans-serif}.free-elective-search-count{min-height:14px;margin:5px 0;color:var(--muted);font-size:10px}.free-elective-course-option[hidden]{display:none!important}
.free-elective-course-option.unavailable{opacity:.65;cursor:not-allowed}
.advisor-name-list{margin:0;padding-left:18px;white-space:normal;line-height:1.7}.advisor-name-list li{padding-left:2px}
.student-name-list{margin:0;padding-left:22px;white-space:normal;line-height:1.65;min-width:360px}.student-name-list li{padding:4px 0 4px 2px}.student-name-list small{display:block;margin-left:22px;color:var(--muted);font-size:9px}.student-number{display:inline-block;min-width:22px;color:var(--muted)}
.free-elective-student-search{display:grid;gap:5px;min-width:min(320px,100%);font-size:9px;font-weight:600;color:#717577}.free-elective-student-search input{height:35px;min-width:250px;border:1px solid #dddfe0;border-radius:8px;padding:0 10px;font:10px Sarabun,sans-serif}.free-elective-student-search input:focus{outline:0;border-color:#e3a05e;box-shadow:0 0 0 3px #f28c1b1c}
#studentClassroomTableBody > tr:nth-child(even) > td{background-color:#faf9f8}
#studentClassroomTableBody > tr.student-roster-noted > td{background-color:#fff1f4}
#studentClassroomTableBody > tr.student-roster-noted:hover > td{background-color:#ffe7ed}
.student-classroom-advisors{display:grid;gap:3px;min-width:220px;max-width:460px;margin-left:auto;padding:2px 4px;font-size:10px;line-height:1.5}
.student-classroom-advisor-label{color:var(--muted);font-size:9px}
.student-classroom-advisors strong{font-weight:600}
.elective-group-checkboxes{display:flex;flex-wrap:wrap;gap:8px;min-height:38px;padding:3px 0}.elective-group-checkbox{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font-size:11px;cursor:pointer}.elective-group-checkbox:has(input:checked){border-color:#e9a159;background:#fff5e9}.elective-group-checkbox input{accent-color:#f28c1b}
.elective-teacher-group-rows{display:grid;gap:10px;margin:16px 0}.elective-teacher-group-row{display:grid;grid-template-columns:minmax(180px,1fr) 112px minmax(280px,2fr);align-items:center;gap:14px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface-muted,#f7f5f2)}.elective-teacher-group-row>strong{font-weight:600}.elective-teacher-group-count{display:flex;align-items:center;gap:7px}.elective-teacher-group-count .form-input{width:76px;min-width:0}.elective-teacher-group-slots{display:flex;flex-wrap:wrap;gap:6px}.elective-teacher-group-slots .elective-group-checkbox{padding:6px 9px}@media(max-width:760px){.elective-teacher-group-row{grid-template-columns:minmax(0,1fr) auto}.elective-teacher-group-slots{grid-column:1/-1}}

.elective-slot-badges{display:flex;flex-wrap:wrap;gap:5px;white-space:normal}.elective-slot-badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;background:#fff2e5;color:#a5571b;font-size:10px;font-weight:600;line-height:1.4}

.allocation-progress{display:grid;gap:9px;margin:8px 0 14px;padding:12px 14px;border:1px solid var(--line);border-radius:9px;background:var(--surface-muted,#f7f5f2)}.allocation-progress-heading{display:flex;align-items:center;gap:9px}.allocation-progress-spinner{width:15px;height:15px;border:2px solid #e7d8c9;border-top-color:var(--orange,#f3921b);border-radius:50%;animation:allocation-publish-spin .8s linear infinite}.allocation-progress ol{display:grid;gap:5px;margin:0;padding:0;list-style:none}.allocation-progress li{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:11px}.allocation-progress li>span{display:inline-grid;place-items:center;width:19px;height:19px;border:1px solid var(--line);border-radius:50%;font-size:10px}.allocation-progress li.is-active{color:var(--text,#292522);font-weight:600}.allocation-progress li.is-active>span{border-color:var(--orange,#f3921b);color:var(--orange-dark,#a95a0a)}.allocation-progress li.is-passed>span{border-color:#b7d9c3;background:#edf7f0;color:#276541}.allocation-progress li.is-failed>span{border-color:#efc2bb;background:#fff0ee;color:#9e392e}.allocation-progress small{color:var(--muted);font-size:10px}.allocation-progress-result{background:#fff}
.elective-process-steps{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px!important}
.elective-process-steps li{align-items:flex-start;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:9px;background:var(--surface,#fff);font-size:12px;line-height:1.45}
.elective-process-steps li>span{flex:0 0 24px;width:24px;height:24px;font-size:11px}
.elective-process-steps li.is-active{border-color:var(--orange,#f3921b);background:#fff3e5;color:var(--text,#292522);box-shadow:0 0 0 1px color-mix(in srgb,var(--orange,#f3921b) 18%,transparent)}
.elective-process-steps li.is-active>span{background:var(--orange,#f3921b);border-color:var(--orange,#f3921b);color:#fff}
.elective-process-page [hidden]{display:none!important}
@media(max-width:1000px){.elective-process-steps{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.elective-process-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
.allocation-auto-option{display:flex;align-items:flex-start;gap:10px;margin:4px 0 12px;padding:11px 13px;border:1px solid var(--line);border-radius:8px;background:var(--surface-muted,#f7f5f2);cursor:pointer}.allocation-auto-option input{margin-top:3px;accent-color:var(--orange,#f3921b)}.allocation-auto-option span{display:grid;gap:3px}.allocation-auto-option strong{font-size:12px}.allocation-auto-option small{color:var(--muted);font-size:10px;line-height:1.5}
.allocation-student-conflict{display:grid;gap:8px;margin:10px 0;padding:10px;border:1px solid var(--line);border-radius:8px;background:var(--surface,#fff)}.allocation-slot-recommendations{display:grid;gap:6px}.allocation-slot-recommendation{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-muted,#f7f5f2)}.allocation-slot-recommendation>div{display:grid;gap:3px;min-width:0}.allocation-slot-recommendation strong{font-size:11px}.allocation-slot-recommendation span,.allocation-slot-recommendation small{color:var(--muted);font-size:10px}.allocation-slot-recommendation small{overflow-wrap:anywhere}.allocation-slot-recommendation .button{flex:0 0 auto;padding:6px 9px;font-size:10px}.allocation-preview-card [data-clear-elective-slot-choices]{margin-left:8px;padding:5px 9px;font-size:10px}
.allocation-move-student-course{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,auto);align-items:end;gap:6px 10px;margin:6px 0;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface-muted,#f7f5f2)}.allocation-move-student-course>strong,.allocation-move-student-course>small{grid-column:1/-1}.allocation-move-student-course>small{color:var(--muted)}.allocation-move-student-course label{display:grid;gap:4px}.allocation-move-student-course select{max-width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff}.allocation-move-student-course .button{white-space:nowrap}
.allocation-student-grid-conflict{min-width:0}.allocation-student-actions{display:flex;gap:10px;margin-top:10px}.allocation-student-actions>.button{flex:1;min-height:40px}.allocation-student-actions>.button:disabled{cursor:not-allowed;opacity:.55}.allocation-student-matrix-wrap{max-width:100%;overflow:auto;border:1px solid var(--line);border-radius:8px}.allocation-student-matrix{width:100%;min-width:720px;border-collapse:separate;border-spacing:0;background:#fff;font-size:10px}.allocation-student-matrix th,.allocation-student-matrix td{min-width:130px;padding:6px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-align:center;vertical-align:top}.allocation-student-matrix thead th{position:sticky;top:0;background:#f5f3f1;z-index:1}.allocation-student-matrix thead th.is-selected-slot{background:#ffead0;color:#8a4b00;box-shadow:inset 0 -2px #f28c18}.allocation-student-matrix th:first-child{position:sticky;left:0;z-index:2;min-width:190px;text-align:left;background:#faf8f5}.allocation-student-matrix tbody th{display:grid;gap:4px}.allocation-student-matrix tbody th small{color:var(--muted);font-weight:400}.allocation-student-matrix td{height:74px}.allocation-student-group-card{position:relative;display:grid;align-content:center;justify-items:center;gap:3px;min-height:64px;margin:2px;padding:8px 5px 5px 25px;border:1px solid #9bcba8;border-radius:8px;background:#e7f5e9;color:#285b36;cursor:pointer}.allocation-student-group-card input[type=checkbox]{position:absolute;top:5px;left:5px;width:15px;height:15px;margin:0;accent-color:#25844a;cursor:pointer}.allocation-student-group-card strong{font-size:10px;line-height:1.35}.allocation-student-group-card span,.allocation-student-group-card small{font-size:9px;line-height:1.35}.allocation-student-group-card.is-conflict{border-color:#df9a91;background:#fff0ee;color:#9e392e}.allocation-student-group-card.is-conflict input[type=checkbox]{accent-color:#c9493d}.allocation-student-group-card.is-unscheduled{border-color:#c9c5bf;background:#eeece9;color:#777;opacity:.44;cursor:not-allowed}.allocation-student-group-card input:disabled{cursor:not-allowed}.allocation-student-card-conflict{max-width:100%;overflow-wrap:anywhere}.allocation-student-unscheduled{background:#faf9f7}
.allocation-auto-all-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:14px 0}.allocation-auto-all-actions small{color:var(--muted);line-height:1.5}.allocation-auto-all-actions [data-auto-elective-all]:disabled{opacity:.6;cursor:wait}
.allocation-student-matrix{table-layout:fixed;min-width:980px}.allocation-student-matrix th,.allocation-student-matrix td{min-width:0;overflow-wrap:anywhere}.allocation-student-matrix th:first-child{min-width:0}.allocation-student-unscheduled-groups{display:grid;gap:3px;margin-top:4px}.allocation-student-unscheduled-groups .allocation-student-group-card{min-height:0;margin:0;padding:4px;border-style:dashed;font-weight:400;cursor:default}.allocation-student-unscheduled-groups .allocation-student-group-card strong{font-size:9px}
.allocation-student-matrix tbody th{display:table-cell;gap:0}.allocation-student-matrix tbody th>strong,.allocation-student-matrix tbody th>small{display:block}.allocation-student-matrix tbody th>small{margin-top:4px}.allocation-student-matrix tbody th .allocation-student-unscheduled-groups{display:grid}
.allocation-student-matrix tbody tr.is-target-course>th,.allocation-student-matrix tbody tr.is-target-course>td{background:#fff2df}.allocation-student-matrix tbody tr.is-target-course>th{border-left:4px solid #f7931e;color:#76420d}.allocation-student-matrix tbody tr.is-target-course>td .allocation-student-group-card{box-shadow:0 0 0 1px rgba(247,147,30,.12)}
.allocation-student-conflict.is-deferred{border-style:dashed;background:#fbfaf8}.allocation-deferred-note{padding:6px 9px;border-left:3px solid #a98547;background:#f5eee2;color:#76551d}

.panel-heading-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}#elective-allocation-dialog{width:min(960px,calc(100vw - 32px));max-width:calc(100vw - 32px);max-height:90vh;padding:0;overflow:hidden}#publish-elective-allocation[hidden]{display:none!important}.allocation-preview-card{display:flex;flex-direction:column;width:auto;max-height:90vh;overflow:hidden;padding:28px}.allocation-preview-card h2{font-size:20px}.allocation-preview-card>p{margin-bottom:12px}.allocation-preview-card #elective-allocation-result{min-height:64px;max-height:min(56vh,620px);overflow:auto;padding-right:4px}.allocation-preview-card .notice{display:block}.allocation-preview-card .notice ul{margin:7px 0 0;padding-left:20px}.allocation-preview-card .notice li{margin:2px 0}.allocation-preview-card .notice.success{background:#edf7f0;border-color:#cce6d5;color:#276541}.allocation-preview-card .notice.danger{background:#fff0ee;border-color:#f1cbc5;color:#9e392e}.allocation-preview-card .dialog-actions{flex:0 0 auto;margin-top:16px}.allocation-preview-groups{display:grid;gap:8px}.allocation-preview-group{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:11px 13px;border:1px solid var(--line);border-radius:9px;background:#fff}.allocation-preview-group strong{font-size:11px}.allocation-preview-group>span{color:var(--muted);font-size:10px}.allocation-preview-group details{grid-column:1/-1;margin-top:3px;font-size:10px}.allocation-preview-group details summary{cursor:pointer;color:#87501e}.allocation-preview-group details ol{max-height:180px;overflow:auto;margin:6px 0 0;padding:8px 8px 8px 28px;background:#faf9f7;border-radius:6px;line-height:1.8}.allocation-preview-group details li{overflow-wrap:anywhere}
@keyframes allocation-publish-spin{to{transform:rotate(360deg)}}.allocation-preview-card .dialog-actions button[disabled] .material-symbols-rounded{animation:allocation-publish-spin .9s linear infinite}
@media(max-width:700px){.panel-heading-actions{justify-content:flex-start}#elective-allocation-dialog{max-height:92vh}.allocation-preview-card{max-height:92vh;padding:24px 17px}.allocation-preview-card #elective-allocation-result{max-height:54vh}.allocation-preview-group{grid-template-columns:1fr}.allocation-preview-group>span{grid-column:1}}
.elective-process-page .notice{display:block}.elective-process-page .notice ul{margin:7px 0 0;padding-left:20px}.elective-process-page .notice li{margin:4px 0}.elective-process-page .notice.success{background:#edf7f0;border-color:#cce6d5;color:#276541}.elective-process-page .notice.danger{background:#fff0ee;border-color:#f1cbc5;color:#9e392e}
@media(max-width:700px){.allocation-slot-recommendation{align-items:flex-start;flex-direction:column}}
#breadcrumb a{color:inherit;text-decoration:none}#breadcrumb a:hover{color:var(--orange-dark);text-decoration:underline}

.schedule-project-context-menu{position:fixed;z-index:1200;min-width:190px;padding:5px;border:1px solid var(--line);border-radius:10px;background:#fff;box-shadow:0 8px 24px #2021242e}.schedule-project-context-menu[hidden]{display:none}.schedule-project-context-menu button{display:flex;width:100%;align-items:center;gap:8px;padding:9px 11px;border:0;border-radius:7px;background:transparent;color:var(--ink);text-align:left;cursor:pointer}.schedule-project-context-menu button:hover,.schedule-project-context-menu button:focus-visible{background:#fff1e2;color:var(--orange-dark)}.schedule-project-context-menu .material-symbols-rounded{font-size:18px}.schedule-project-dialog{width:min(680px,calc(100% - 28px))}.schedule-project-dialog .dialog-card{max-height:90vh;overflow:auto}.schedule-project-dialog .form-label{display:block;margin:13px 0 5px}.schedule-project-dialog .form-input{width:100%}.schedule-project-targets{margin:14px 0;padding:12px;border:1px solid var(--line);border-radius:10px}.schedule-project-targets legend{padding:0 6px;font-weight:600}.schedule-project-targets [data-project-target-list]{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}.schedule-project-targets label{display:flex;align-items:center;gap:7px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer}.schedule-project-targets input{accent-color:var(--orange)}


@media(min-width:761px){
  .topbar{justify-content:flex-start;gap:8px}
  .topbar-actions{margin-left:auto}
  .desktop-sidebar-toggle{display:grid;flex:0 0 36px}
  .sidebar,.main-area{transition:width .22s ease,margin-left .22s ease}
  body.sidebar-collapsed .sidebar{width:72px}
  body.sidebar-collapsed .main-area{margin-left:72px}
  body.sidebar-collapsed .page-shell{max-width:1920px;padding-inline:clamp(22px,2.4vw,48px)}
  body.sidebar-collapsed .brand{justify-content:center;padding-inline:8px}
  body.sidebar-collapsed .brand img{width:40px;height:40px}
  body.sidebar-collapsed .brand-copy,
  body.sidebar-collapsed .sidebar-footer>span:not(.api-status-dot){display:none}
  body.sidebar-collapsed .sidebar{height:100vh;height:100dvh}
  body.sidebar-collapsed .navigation{min-height:0;flex:1 1 auto;overflow-y:auto}
  body.sidebar-collapsed .nav-heading{display:block;visibility:hidden;flex:0 0 41px;height:41px;padding:0}
  body.sidebar-collapsed .navigation{display:flex;flex-direction:column;justify-content:flex-start;gap:5px;padding:0 8px 16px}
  body.sidebar-collapsed .nav-group{display:block;margin:0}
  body.sidebar-collapsed .nav-group-title{display:flex;justify-content:center;min-height:39px;height:39px;padding:8px 0}
  body.sidebar-collapsed .nav-group-title>span:not(.material-symbols-rounded){display:none}
  body.sidebar-collapsed .nav-group-title .chevron{display:none}
  body.sidebar-collapsed .nav-group .nav-links,
  body.sidebar-collapsed .nav-group.collapsed .nav-links{display:none;padding:0}
  body.sidebar-collapsed .nav-link{justify-content:center;min-height:39px;height:39px;margin:0;padding:8px 0}
  body.sidebar-collapsed .nav-link>span:not(.material-symbols-rounded){display:none}
  body.sidebar-collapsed .nav-link .material-symbols-rounded,
  body.sidebar-collapsed .nav-group-title .material-symbols-rounded{font-size:20px}
  body.sidebar-collapsed .nav-link.nav-group-single{margin:0}
  body.sidebar-collapsed .sidebar-footer{justify-content:center;padding:14px 8px}
  body.sidebar-collapsed .sidebar:hover,
  body.sidebar-collapsed .sidebar:focus-within{width:272px;z-index:6;box-shadow:8px 0 28px #20212424}
  body.sidebar-collapsed .sidebar:hover .brand,
  body.sidebar-collapsed .sidebar:focus-within .brand{justify-content:flex-start;padding-inline:22px}
  body.sidebar-collapsed .sidebar:hover .brand-copy,
  body.sidebar-collapsed .sidebar:focus-within .brand-copy{display:grid}
  body.sidebar-collapsed .sidebar:hover .nav-heading,
  body.sidebar-collapsed .sidebar:focus-within .nav-heading{display:block;visibility:visible;flex:0 0 41px;height:41px;padding:20px 22px 8px}
  body.sidebar-collapsed .sidebar:hover .sidebar-footer>span:not(.api-status-dot),
  body.sidebar-collapsed .sidebar:focus-within .sidebar-footer>span:not(.api-status-dot){display:inline}
  body.sidebar-collapsed .sidebar:hover .navigation,
  body.sidebar-collapsed .sidebar:focus-within .navigation{display:block;padding:0 12px 16px}
  body.sidebar-collapsed .sidebar:hover .nav-group,
  body.sidebar-collapsed .sidebar:focus-within .nav-group{display:block;margin:5px 0}
  body.sidebar-collapsed .sidebar:hover .nav-group-title,
  body.sidebar-collapsed .sidebar:focus-within .nav-group-title{display:flex}
  body.sidebar-collapsed .sidebar:hover .nav-group-title>span:not(.material-symbols-rounded),
  body.sidebar-collapsed .sidebar:focus-within .nav-group-title>span:not(.material-symbols-rounded){display:initial}
  body.sidebar-collapsed .sidebar:hover .nav-group-title .chevron,
  body.sidebar-collapsed .sidebar:focus-within .nav-group-title .chevron{display:block}
  body.sidebar-collapsed .sidebar:hover .nav-group .nav-links,
  body.sidebar-collapsed .sidebar:focus-within .nav-group .nav-links{display:grid;gap:2px;padding:2px 0 4px}
  body.sidebar-collapsed .sidebar:hover .nav-group.collapsed .nav-links,
  body.sidebar-collapsed .sidebar:focus-within .nav-group.collapsed .nav-links{display:none}
  body.sidebar-collapsed .sidebar:hover .nav-link,
  body.sidebar-collapsed .sidebar:focus-within .nav-link{justify-content:flex-start;margin-left:15px;padding:8px 10px 8px 13px}
  body.sidebar-collapsed .sidebar:hover .nav-link>span:not(.material-symbols-rounded),
  body.sidebar-collapsed .sidebar:focus-within .nav-link>span:not(.material-symbols-rounded){display:initial}
  body.sidebar-collapsed .sidebar:hover .nav-link.nav-group-single,
  body.sidebar-collapsed .sidebar:focus-within .nav-link.nav-group-single{margin-left:0}
  body.sidebar-collapsed .sidebar:hover .sidebar-footer,
  body.sidebar-collapsed .sidebar:focus-within .sidebar-footer{justify-content:flex-start;padding:14px 20px}
}
@media(max-width:760px){.desktop-sidebar-toggle{display:none}}
.nav-group:not(.collapsed)>.nav-group-title{background:#f6f6f6}
.nav-group.is-active>.nav-group-title{background:var(--orange-soft);color:#a94b10;font-weight:600}
.nav-group.is-active>.nav-group-title .material-symbols-rounded{color:var(--orange-dark)}
.schedule-teaching-load{display:grid;gap:7px;min-width:0}
.schedule-teaching-load-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.schedule-teaching-load-heading>strong{font-size:11px;color:var(--ink)}
.schedule-teaching-load-heading>span{padding:3px 9px;border:1px solid #f0d5b8;border-radius:999px;background:#fff4e8;color:var(--orange-dark);font-size:10px;font-weight:700;white-space:nowrap}
.schedule-teacher-courses{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:5px;color:var(--muted);font-size:11px}
.schedule-teacher-course-item{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0;padding:5px 8px;border:1px solid var(--line);border-radius:7px;background:#fff}
.schedule-teacher-course-item>span:first-child,.schedule-teacher-course-item>.schedule-course-version-link{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-teacher-course-periods{flex:none;color:#28734a;font-size:10px;font-weight:600;white-space:nowrap}
.schedule-teacher-course-item>.schedule-elective-allocation-note{flex:none;margin:0;color:var(--orange-dark);font-size:9px}
.schedule-teaching-load-note{color:var(--muted);font-size:9px}
.schedule-teacher-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,3fr);align-items:start;gap:10px 18px;padding:14px 10px 20px}
.schedule-teacher-heading{display:flex;flex-direction:column;gap:10px;min-width:0;margin:0}
.schedule-teacher-title-row{align-items:flex-start}
.schedule-teacher-title-row>strong{font-size:16px;font-weight:700}
.schedule-grade-meeting-settings{display:inline-flex;align-items:center;gap:5px;padding:4px 9px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px;white-space:nowrap}
.schedule-grade-meeting-settings .material-symbols-rounded{font-size:15px}
.grade-meeting-exclusion-dialog{width:min(620px,calc(100vw - 28px));max-height:min(82vh,760px);padding:20px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--ink);box-shadow:0 20px 70px #20212435}
.grade-meeting-exclusion-dialog::backdrop{background:#20212470}
.grade-meeting-exclusion-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.grade-meeting-exclusion-head h2{margin:2px 0;font-size:19px}
.grade-meeting-exclusion-head p{max-width:470px;margin:4px 0 0;color:var(--muted);font-size:12px}
.grade-meeting-exclusion-list{display:grid;gap:8px;max-height:52vh;overflow:auto;margin:18px 0;padding-right:3px}
.grade-meeting-exclusion-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,.8fr);align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer}
.grade-meeting-exclusion-main{display:flex;align-items:flex-start;gap:9px;min-width:0}
.grade-meeting-exclusion-main input{width:17px;height:17px;margin:2px 0 0;accent-color:var(--orange);flex:none}
.grade-meeting-exclusion-main>span{display:grid;gap:2px;min-width:0}
.grade-meeting-exclusion-main strong{font-size:12px}
.grade-meeting-exclusion-main small{color:var(--muted);font-size:10px}
.grade-meeting-exclusion-reason{height:34px;padding:0 9px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--ink);font:11px Sarabun,sans-serif}
.grade-meeting-exclusion-reason:disabled{background:#f5f3f1}
.grade-meeting-exclusion-dialog .form-message{min-height:18px;margin:6px 0;color:var(--orange-dark);font-size:11px}
.grade-meeting-exclusion-dialog .dialog-actions{display:flex;justify-content:flex-end;gap:8px}
.schedule-teaching-load{padding:10px;border:1px solid var(--line);border-radius:9px;background:#f7f5f2}
.schedule-teacher-row>.schedule-course-pack-section{grid-column:2;grid-row:1;margin:0;padding:0 0 10px;border:0}
.schedule-teacher-row>.schedule-table-wrap{grid-column:1/-1;margin-top:0}
.schedule-teacher-row>.schedule-course-pack-section+.schedule-table-wrap{grid-row:2}
.schedule-teacher-course-item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center}
.schedule-teacher-course-info{display:grid;gap:2px;min-width:0}
.schedule-teacher-course-name,.schedule-teacher-course-curriculum{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.schedule-teacher-course-info>span:first-child,.schedule-teacher-course-info>.schedule-course-version-link{min-width:0;overflow:hidden}
.schedule-teacher-course-type{color:var(--muted);font-size:9px;line-height:1.35}
.schedule-teacher-course-curriculum{color:var(--muted);font-size:9px;line-height:1.35}
.schedule-teacher-course-item>.schedule-elective-allocation-note{display:block}
@media(max-width:900px){.schedule-teacher-row{grid-template-columns:minmax(0,1fr)}.schedule-teacher-row>.schedule-course-pack-section{grid-column:1;grid-row:auto}.schedule-teacher-row>.schedule-table-wrap{grid-column:1;grid-row:auto}}
@media(max-width:600px){.grade-meeting-exclusion-item{grid-template-columns:1fr}.grade-meeting-exclusion-reason{margin-left:26px;width:calc(100% - 26px)}}
.allocation-pending-schedule{margin:12px 0;padding:12px;border:1px solid #f2d5af;border-radius:12px;background:#fff8ed;color:#76502b}
.allocation-pending-schedule>strong{display:block;margin-bottom:10px}
.allocation-pending-schedule .table-wrap{overflow:auto}
.allocation-pending-schedule .data-table{min-width:1100px;background:#fff}
.allocation-pending-schedule .data-table th,.allocation-pending-schedule .data-table td{min-width:92px;vertical-align:top}
.allocation-pending-schedule .data-table tbody th{min-width:190px;text-align:left}
.allocation-pending-schedule .data-table tbody th small,.allocation-conflict-slot small{display:block;margin-top:4px;font-weight:400;line-height:1.4;white-space:normal}
.allocation-conflict-slot{background:#fff0ed;color:#a33e32}
.allocation-conflict-slot>strong{display:inline-block;padding:1px 6px;border-radius:999px;background:#f9d8d2;font-size:10px}
.allocation-conflict-slot small{max-width:240px}
.allocation-unresolved-slot{background:#fff7e7;color:#936421}
.allocation-unavailable-slot{color:#aaa;text-align:center}
.individual-schedule-page{display:grid;gap:14px}.individual-schedule-page .schedule-structure-heading{margin-bottom:0}.individual-schedule-filters{position:relative;display:grid;grid-template-columns:1fr;gap:6px;max-width:620px}.individual-schedule-filters>label{font-size:11px;font-weight:600}.individual-schedule-filters .form-input{height:40px;padding:0 12px}.individual-search-results{position:absolute;z-index:12;top:calc(100% + 1px);left:0;right:0;max-height:340px;overflow:auto;border:1px solid var(--line);border-radius:9px;background:#fff;box-shadow:0 10px 28px #31271920}.individual-search-results:empty{display:none}.individual-search-result{display:flex;width:100%;flex-direction:column;align-items:flex-start;gap:3px;padding:9px 12px;border:0;border-bottom:1px solid #eee;background:#fff;text-align:left;cursor:pointer}.individual-search-result:last-child{border-bottom:0}.individual-search-result:hover,.individual-search-result:focus-visible{background:#fff2e4;outline:0}.individual-search-result strong{font-size:11px}.individual-search-result span,.individual-search-empty{color:var(--muted);font-size:10px}.individual-search-empty{margin:0;padding:12px}.individual-schedule-card{padding:14px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.individual-schedule-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}.individual-schedule-card h3{margin:0;font-size:17px}.individual-schedule-card header p{margin:4px 0 0;color:var(--muted);font-size:11px}.individual-schedule-card .schedule-table-wrap{max-width:100%;overflow:auto}.individual-schedule-card .page-footnote{margin:8px 0 0}.individual-schedule-report .individual-schedule-report-actions{display:flex;align-items:flex-start;justify-content:flex-end;flex-wrap:wrap;gap:10px}.individual-schedule-report .created-at{margin:14px 0 0;color:#77808d;font-size:11px;text-align:right}.individual-schedule-report .new-search-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:36px;padding:0 12px;border:1px solid #e1e2e3;border-radius:999px;background:#fff;color:#55595b;font:500 12px Sarabun,sans-serif;cursor:pointer}.individual-schedule-report .download-actions{display:flex;gap:8px}.individual-schedule-report .download-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:0 14px;border:0;border-radius:999px;background:#f0a13b;color:#382300;font:600 12px Sarabun,sans-serif;cursor:pointer}.individual-schedule-report .download-actions button:hover{background:#f5b35c}.individual-schedule-report .download-actions .material-symbols-rounded{font-size:18px}@media(max-width:700px){.individual-schedule-card{padding:10px}.individual-schedule-card>header{flex-direction:column}}
.individual-schedule-filters{max-width:none;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 12px;align-items:center;padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.individual-schedule-filters label[for="individualYear"]{grid-column:1;grid-row:1}.individual-schedule-filters #individualYear{grid-column:1;grid-row:2}.individual-schedule-filters label[for="individualSemester"]{grid-column:2;grid-row:1}.individual-schedule-filters #individualSemester{grid-column:2;grid-row:2}.individual-schedule-filters label[for="individualGrade"]{grid-column:3;grid-row:1}.individual-schedule-filters #individualGrade{grid-column:3;grid-row:2}.individual-schedule-filters label[for="individualStudentSearch"]{grid-column:4;grid-row:1}.individual-schedule-filters #individualStudentSearch{grid-column:4;grid-row:2}.individual-schedule-filters .individual-search-results{top:calc(100% + 1px)}@media(max-width:760px){.individual-schedule-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.individual-schedule-filters label[for="individualYear"]{grid-column:1;grid-row:1}.individual-schedule-filters #individualYear{grid-column:1;grid-row:2}.individual-schedule-filters label[for="individualSemester"]{grid-column:2;grid-row:1}.individual-schedule-filters #individualSemester{grid-column:2;grid-row:2}.individual-schedule-filters label[for="individualGrade"]{grid-column:1;grid-row:3}.individual-schedule-filters #individualGrade{grid-column:1;grid-row:4}.individual-schedule-filters label[for="individualStudentSearch"]{grid-column:2;grid-row:3}.individual-schedule-filters #individualStudentSearch{grid-column:2;grid-row:4}}
.individual-schedule-filters{grid-template-columns:repeat(5,minmax(0,1fr))}.individual-schedule-filters label[for="individualYear"]{grid-column:1;grid-row:1}.individual-schedule-filters #individualYear{grid-column:1;grid-row:2}.individual-schedule-filters label[for="individualSemester"]{grid-column:2;grid-row:1}.individual-schedule-filters #individualSemester{grid-column:2;grid-row:2}.individual-schedule-filters label[for="individualGrade"]{grid-column:3;grid-row:1}.individual-schedule-filters #individualGrade{grid-column:3;grid-row:2}.individual-schedule-filters label[for="individualClassroom"]{grid-column:4;grid-row:1}.individual-schedule-filters #individualClassroom{grid-column:4;grid-row:2}.individual-schedule-filters label[for="individualStudentSearch"]{grid-column:5;grid-row:1}.individual-schedule-filters #individualStudentSearch{grid-column:5;grid-row:2}@media(max-width:760px){.individual-schedule-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.individual-schedule-filters label[for="individualClassroom"]{grid-column:2;grid-row:3}.individual-schedule-filters #individualClassroom{grid-column:2;grid-row:4}.individual-schedule-filters label[for="individualStudentSearch"]{grid-column:1;grid-row:5}.individual-schedule-filters #individualStudentSearch{grid-column:1;grid-row:6}}
/* Grade-by-grade free elective room management submenu */
.nav-submenu{margin:5px 0 6px 15px;padding:6px 0 3px 10px;border-left:1px solid var(--line)}
.nav-submenu-title{display:flex;align-items:center;gap:8px;padding:2px 10px 5px;color:#74777a;font-size:10px;font-weight:600}
.nav-submenu-title .material-symbols-rounded{font-size:15px;color:var(--orange-dark)}
.nav-submenu-links{display:grid;gap:1px}
.nav-link.nav-submenu-link{min-height:31px;margin-left:0;padding:5px 10px;font-size:10px}
.nav-link.nav-submenu-link .material-symbols-rounded{font-size:14px}

.schedule-project-context-menu button[hidden]{display:none}

.visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.free-elective-location-page .data-table{min-width:1100px}
.free-elective-location-page .data-table td:last-child{min-width:250px;max-width:none;overflow:visible;white-space:normal}
.free-elective-location-select{display:block;width:100%;min-width:220px;height:36px;padding:0 28px 0 10px;border:1px solid #dfe1e2;border-radius:8px;background:#fff;color:var(--ink);font:11px Sarabun,sans-serif}
.free-elective-location-select:focus{border-color:#e3a05e;outline:3px solid #f28c1b24}
.free-elective-teacher-page .notice{margin-bottom:16px}
.free-elective-teacher-controls{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(220px,1.4fr) minmax(240px,1.5fr) auto;align-items:end;gap:12px;margin:0 0 16px;padding:15px;background:#fafafa;border:1px solid #eeeeef;border-radius:10px}
.free-elective-teacher-controls .selector-field{min-width:0}
.free-elective-teacher-controls .selector-field select{max-width:none;width:100%;height:38px;font-size:11px}
.free-elective-teacher-controls .button{height:38px;white-space:nowrap}
.free-elective-teacher-summary{padding:16px;border:1px solid #e8e9eb;border-radius:10px;background:#fff}
.free-elective-teacher-summary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 18px}
.free-elective-teacher-summary-grid>div{display:grid;gap:4px;min-width:0}
.free-elective-teacher-summary-grid small{font-size:9px;color:#85888a}
.free-elective-teacher-summary-grid strong{font-size:11px;font-weight:600;overflow-wrap:anywhere}
.form-message.success{color:#28734c}
.form-message.error{color:#ad3f33}
@media(max-width:980px){.free-elective-teacher-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.free-elective-teacher-controls .button{align-self:end}}
@media(max-width:620px){.free-elective-teacher-controls{grid-template-columns:1fr}.free-elective-teacher-summary-grid{grid-template-columns:1fr}.free-elective-teacher-controls .button{width:100%;justify-content:center}}
.room-usage-filters{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:18px}
.room-usage-filters label{font-weight:600;color:var(--muted)}
.room-usage-filters select{min-width:150px;max-width:300px}
.room-usage-page .schedule-table-wrap{margin-top:16px}
.room-usage-page .schedule-entry-room{display:block}

.schedule-teacher-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;min-width:0}
.schedule-teacher-name-group{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}
.schedule-teacher-name-group>strong{line-height:1.35;overflow-wrap:anywhere}
.schedule-export-hidden-badge{display:inline-flex;align-items:center;margin-left:7px;padding:2px 7px;border:1px solid #e5c9c2;border-radius:999px;background:#fff0ed;color:#974b3d;font-size:10px;font-weight:600;vertical-align:middle;white-space:nowrap}
.schedule-teacher-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;margin-left:auto}
.schedule-teacher-area-edit{margin:0;padding:5px 11px;font-size:12px;white-space:nowrap}
.schedule-teacher-export-visibility{padding:5px 11px;font-size:12px;white-space:nowrap}
.schedule-special-teacher-toggle{display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:12px;white-space:nowrap;cursor:pointer}
.schedule-special-teacher-toggle input{width:15px;height:15px;margin:0;accent-color:var(--orange)}
.schedule-special-teacher-toggle:has(input:checked){border-color:#f0c69d;background:#fff4e8;color:var(--orange-dark);font-weight:600}
.schedule-teacher-actions .schedule-grade-meeting-settings{font-size:12px;padding:6px 11px}
.schedule-teacher-actions .schedule-wmw-badge{margin-left:0}
.schedule-teacher-name-group .schedule-teacher-version-tabs{flex-wrap:wrap}
@media(max-width:700px){.schedule-teacher-title-row{flex-direction:column;align-items:stretch}.schedule-teacher-actions{justify-content:flex-start;margin-left:0}.schedule-teacher-name-group{width:100%}}
.schedule-entry-code.schedule-course-detail-trigger{width:100%;padding:0;border:0;background:transparent;font:inherit;text-align:inherit;cursor:pointer}.schedule-entry-code.schedule-course-detail-trigger:hover{color:var(--orange-dark);text-decoration:underline;text-underline-offset:2px}.schedule-entry-code.schedule-course-detail-trigger:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:3px}.student-schedule-detail-dialog{width:min(560px,calc(100vw - 32px));max-width:560px;max-height:min(82vh,760px);padding:0;border:0;border-radius:16px;background:transparent;box-shadow:0 20px 70px rgb(24 34 51 / 28%)}.student-schedule-detail-dialog::backdrop{background:rgb(20 27 39 / 54%);backdrop-filter:blur(2px)}.student-schedule-detail-card{max-height:min(82vh,760px);overflow:auto;padding:24px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.student-schedule-detail-card>header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px}.student-schedule-detail-card h2{margin:5px 0 0;color:var(--ink);font-size:22px;line-height:1.35;overflow-wrap:anywhere}.student-schedule-detail-list{display:grid;grid-template-columns:minmax(120px,.65fr) minmax(0,1.35fr);margin:0;border:1px solid var(--line);border-radius:10px;overflow:hidden}.student-schedule-detail-row{display:contents}.student-schedule-detail-row dt,.student-schedule-detail-row dd{margin:0;padding:11px 13px;border-bottom:1px solid var(--line);font-size:14px;line-height:1.5;overflow-wrap:anywhere}.student-schedule-detail-row:nth-last-child(1) dt,.student-schedule-detail-row:nth-last-child(1) dd{border-bottom:0}.student-schedule-detail-row dt{background:#f5f6f8;color:var(--muted);font-weight:600}.student-schedule-detail-row dd{color:var(--ink);white-space:pre-wrap}@media(max-width:560px){.student-schedule-detail-card{padding:18px 14px}.student-schedule-detail-card h2{font-size:19px}.student-schedule-detail-list{grid-template-columns:100px minmax(0,1fr)}.student-schedule-detail-row dt,.student-schedule-detail-row dd{padding:9px;font-size:13px}}
.student-schedule-detail-teaching{margin-top:16px}.student-schedule-detail-teaching h3{margin:0 0 8px;font-size:15px}.student-schedule-detail-teaching>div{display:grid;gap:8px}.student-schedule-detail-teaching article{display:grid;grid-template-columns:minmax(100px,.6fr) minmax(0,1.4fr);gap:3px 12px;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fff}.student-schedule-detail-teaching article>span{grid-row:1 / span 2;color:var(--orange-dark);font-size:13px;font-weight:700}.student-schedule-detail-teaching article strong{color:var(--ink);font-size:14px}.student-schedule-detail-teaching article small{color:var(--muted);font-size:13px;overflow-wrap:anywhere}@media(max-width:560px){.student-schedule-detail-teaching article{grid-template-columns:1fr;gap:4px}.student-schedule-detail-teaching article>span{grid-row:auto}}
