:root{--font-sans:'Sarabun',sans-serif;--primary-color:#8C1D2F;--primary-hover:#A82339;--primary-dark:#6a1624;--primary-bg:#F9EAEB;--text-on-primary:#FFFFFF;--text-color:#334155;--text-light:#64748b;--border-color:#e2e8f0;--bg-light:#f8fafc;--bg-white:#ffffff;--shadow:0 4px 6px -1px rgb(0 0 0 / 0.1),0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg:0 10px 15px -3px rgb(0 0 0 / 0.1),0 4px 6px -2px rgb(0 0 0 / 0.1)}body,html{height:100%;overflow:hidden}body{font-family:var(--font-sans);color:var(--text-color);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}#app-container{display:flex;height:100vh}#app-container.hidden{display:none}.content-section{display:none}.content-section.active{display:block;animation:fadeIn .5s ease-in-out}@keyframes fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse-subtle{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.85;transform:scale(1.02)}}.animate-pulse-subtle{animation:pulse-subtle 3s ease-in-out infinite}.nav-group-summary,.nav-link{display:flex;align-items:center;padding:.75rem 1rem;border-radius:.5rem;font-weight:500;color:var(--text-light);transition:background-color .2s,color .2s;cursor:pointer}.nav-group-summary:hover,.nav-link:hover{background-color:var(--primary-bg);color:var(--primary-dark)}.nav-link.active{background-color:var(--primary-color);color:var(--text-on-primary);box-shadow:var(--shadow)}.nav-link.active:hover{background-color:var(--primary-hover)}#sa-console-btn{background-color:#0f172a!important;color:#fff!important}.nav-group-summary svg,.nav-link svg{margin-right:.75rem;flex-shrink:0}.nav-group[open]>.nav-group-summary{background-color:var(--primary-bg);color:var(--primary-dark)}.nav-link-sub{display:flex;align-items:center;padding:.5rem 1rem .5rem 2rem;border-radius:.5rem;font-weight:500;font-size:.875rem;color:var(--text-light);position:relative}.nav-link-sub:hover{color:var(--primary-dark)}.nav-link-sub.active{color:var(--primary-color);font-weight:600}.nav-link-sub svg{margin-right:.75rem;flex-shrink:0;color:#94a3b8;transition:all .2s}.nav-link-sub.active svg,.nav-link-sub:hover svg{color:var(--primary-color)}.nav-link-sub::before{content:none}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid var(--border-color)}@media (max-width:1024px){.page-header{flex-wrap:wrap;gap:1rem}}.page-header h2{font-size:1.875rem;font-weight:700;color:var(--primary-dark)}.action-button{background-color:var(--primary-color);color:var(--text-on-primary);padding:.6rem 1.25rem;border-radius:.5rem;font-weight:600;box-shadow:var(--shadow);transition:all .2s;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.action-button:hover{background-color:var(--primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.action-button-secondary{background-color:var(--bg-white);color:var(--primary-color);border:1px solid var(--primary-color);padding:calc(.6rem - 1px) calc(1.25rem - 1px);border-radius:.5rem;font-weight:600;box-shadow:var(--shadow);transition:all .2s;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.action-button-danger{background-color:#dc2626;color:var(--text-on-primary);padding:.6rem 1.25rem;border-radius:.5rem;font-weight:600;box-shadow:var(--shadow);transition:all .2s;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.action-button-danger:hover{background-color:#b91c1c;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.data-card{background-color:var(--bg-white);border-radius:.75rem;box-shadow:var(--shadow)}.data-table-wrapper{display:flex;flex-direction:column}.data-table-wrapper .overflow-x-auto{flex-grow:1}.search-input{width:100%;padding-top:.75rem;padding-bottom:.75rem;padding-right:1rem;padding-left:2.75rem;border:1px solid var(--border-color);border-radius:.5rem;background-color:var(--bg-light);transition:all .2s}.search-input:focus{outline:0;border-color:var(--primary-color);background-color:var(--bg-white);box-shadow:0 0 0 2px var(--primary-bg)}.styled-table{width:100%;text-align:left;font-size:.875rem}.styled-table thead{background-color:var(--bg-light);border-bottom:2px solid var(--border-color)}.styled-table th{padding:.75rem 1rem;font-weight:600;color:var(--text-light);text-transform:uppercase;letter-spacing:.05em}.styled-table tbody tr{border-bottom:1px solid var(--border-color);transition:background-color .2s}.styled-table tbody tr:last-child{border-bottom:none}.styled-table tbody tr:hover{background-color:var(--primary-bg)}.styled-table td{padding:1rem;vertical-align:middle}.pagination-container{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;gap:.75rem;border-top:1px solid var(--border-color);background:var(--bg-card)}.pagination-info{font-size:.8rem;color:var(--text-light);white-space:nowrap;flex-shrink:0}.pagination-info strong{color:var(--text-dark);font-weight:600}.pagination-pages{display:flex;align-items:center;gap:.25rem}.pagination-btn{border:1px solid var(--border-color);background-color:var(--bg-white);color:var(--text-light);font-weight:500;border-radius:.5rem;padding:.4rem .75rem;min-width:2.25rem;text-align:center;cursor:pointer;transition:all .15s ease;font-size:.8rem;line-height:1.25rem}.pagination-btn:hover:not(:disabled):not(.active){background-color:var(--primary-bg);color:var(--primary-dark);border-color:var(--primary-color)}.pagination-btn.active{background-color:var(--primary-color);color:var(--text-on-primary);border-color:var(--primary-color);font-weight:700;box-shadow:0 1px 3px rgba(0,0,0,.15);pointer-events:none}.pagination-btn:disabled{opacity:.35;cursor:not-allowed}.pagination-nav-btn{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .5rem;min-width:unset}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;min-width:2.25rem;padding:.4rem .75rem;color:var(--text-light);font-size:.85rem;user-select:none;pointer-events:none}.pagination-spacer{visibility:hidden;pointer-events:none}.pagination-per-page{display:flex;align-items:center;gap:.375rem;font-size:.8rem;color:var(--text-light);white-space:nowrap;flex-shrink:0}.pagination-per-page-select{padding:.3rem .5rem;border:1px solid var(--border-color);border-radius:.375rem;background:var(--bg-white);font-size:.8rem;color:var(--text-dark);cursor:pointer;transition:border-color .15s}.pagination-per-page-select:focus{outline:0;border-color:var(--primary-color);box-shadow:0 0 0 2px var(--primary-bg)}@media (max-width:1024px){.pagination-container{flex-wrap:wrap;justify-content:center;padding:.75rem;gap:.5rem}.pagination-info{order:2;width:100%;text-align:center;font-size:.75rem}.pagination-pages{order:1}.pagination-per-page{order:3;justify-content:center}.pagination-pages .pagination-btn:not(.pagination-nav-btn):not(.active){display:none}.pagination-ellipsis{display:none}.pagination-btn{padding:.35rem .6rem;min-width:2rem;font-size:.75rem}}.form-field-group{display:flex;flex-direction:column}.form-field-group label{margin-bottom:.25rem;font-size:.875rem;font-weight:500;color:var(--text-light)}.form-field-group input,.form-field-group select{padding:.6rem .8rem;border:1px solid var(--border-color);border-radius:.5rem;background-color:var(--bg-light);transition:all .2s}.form-field-group input:focus,.form-field-group select:focus{outline:0;box-shadow:0 0 0 2px var(--primary-bg);border-color:var(--primary-color);background-color:var(--bg-white)}.timetable-grid{display:grid;grid-template-columns:100px repeat(10,minmax(0,1fr));gap:2px;grid-auto-rows:minmax(80px,auto)}.timetable-slot{position:relative;background-color:#f8fafc;border-radius:4px;padding:4px;font-size:.75rem;line-height:1.2;border:1px solid #e2e8f0;display:flex;align-items:center;justify-content:center}.timetable-header{font-weight:600;text-align:center;padding:4px 2px;background-color:#f1f5f9;border:1px solid #e2e8f0;font-size:.8rem}.timetable-day-header{font-weight:600;font-size:.8rem;color:#475569;text-align:center;padding:4px 2px;display:flex;align-items:center;justify-content:center;background-color:#f1f5f9;border:1px solid #e2e8f0}.timetable-class-item{width:100%;height:100%;background-color:var(--primary-bg);border-left:4px solid var(--primary-color);border-radius:4px;padding:6px 8px;overflow:hidden;box-shadow:0 1px 2px rgba(0,0,0,.05);z-index:10;display:flex;flex-direction:column;justify-content:center;color:var(--primary-dark)}@media (max-width:768px){.timetable-grid{display:flex!important;flex-direction:column!important;gap:.75rem!important;background:0 0!important;border:none!important}.timetable-grid>div:first-child,.timetable-header{display:none!important}.timetable-day-header{background-color:var(--primary-color);color:#fff;border-radius:.5rem;padding:.5rem 1rem;font-size:1rem;margin-top:1rem;justify-content:flex-start;box-shadow:var(--shadow)}.timetable-slot:empty{display:none}.timetable-slot{grid-column:auto!important;width:100%;background:0 0;border:none;padding:0}.timetable-class-item{border-left:6px solid var(--primary-color);padding:.75rem 1rem;border-radius:.5rem;box-shadow:var(--shadow);background:#fff;min-height:auto}}@media (max-width:1024px){#summary-table-head,#summary-table-head tr{display:none!important}#summary-table-body{display:block!important;background:0 0!important}#summary-table-body tr{display:flex!important;flex-direction:column;margin-bottom:1rem;border:1px solid var(--border-color)!important;border-radius:.75rem;background:#fff;padding:1rem;box-shadow:var(--shadow)}#summary-table-body td{display:flex!important;justify-content:space-between!important;align-items:center!important;padding:.5rem 0!important;border:none!important;text-align:right!important}#summary-table-body td::before{content:attr(data-label);font-weight:600;font-size:.8rem;color:var(--text-light);text-align:left;flex-shrink:0;margin-right:1rem}#summary-table-body td:empty{display:none!important}#summary-table-body td:first-child{flex-direction:column!important;align-items:flex-start!important;text-align:left!important;border-bottom:1px dashed var(--border-color)!important;padding-bottom:1rem!important;margin-bottom:.5rem!important}#summary-table-body td:first-child::before{display:none}#summary-table-body td:first-child .flex-col{align-items:flex-start!important}#summary-table-body td:nth-last-child(2){border-top:1px dashed var(--border-color)!important;padding-top:1rem!important;margin-top:.5rem!important}#summary-table-body td:last-child::before,#summary-table-body td:nth-last-child(2)::before{display:none}#summary-table-body td:last-child,#summary-table-body td:nth-last-child(2){padding-top:.5rem!important}#summary-table-body td:last-child button,#summary-table-body td:nth-last-child(2) button{width:100%;justify-content:center}#summary-table-body td .flex-col.items-end{align-items:flex-end!important}}@media (max-width:1024px){#studentGroups-table-head,#studentGroups-table-head tr{display:none!important}#studentGroups-table-body{display:block!important;background:0 0!important}#studentGroups-table-body tr{display:flex!important;flex-direction:column;margin-bottom:1rem;border:1px solid var(--border-color)!important;border-radius:.75rem;background:#fff;padding:1rem;box-shadow:var(--shadow)}#studentGroups-table-body tr.empty-row{display:none!important}#studentGroups-table-body td{display:flex!important;justify-content:space-between!important;align-items:center!important;padding:.5rem 0!important;border:none!important;text-align:right!important;width:100%!important}#studentGroups-table-body td::before{content:attr(data-label);font-weight:600;font-size:.8rem;color:var(--text-light);text-align:left;flex-shrink:0;margin-right:1rem}#studentGroups-table-body td:first-child{flex-direction:column!important;align-items:flex-start!important;text-align:left!important;border-bottom:1px dashed var(--border-color)!important;padding-bottom:.75rem!important;margin-bottom:.25rem!important;font-size:1rem}#studentGroups-table-body td:first-child::before{display:none}#studentGroups-table-body td:last-child{flex-direction:column!important;align-items:stretch!important;border-top:1px dashed var(--border-color)!important;padding-top:.75rem!important;margin-top:.25rem!important}#studentGroups-table-body td:last-child::before{display:none}#studentGroups-table-body td:last-child .action-button-group{display:flex!important;flex-wrap:wrap!important;gap:.5rem!important;justify-content:stretch!important;width:100%}#studentGroups-table-body td:last-child .action-button-group>*{flex:1 1 auto;text-align:center;justify-content:center;min-width:0}#studentGroups-table-body td[data-label="ความคืบหน้า"]>div{flex:1;min-width:120px}}.flatpickr-day.in-hover-week{background:#fde6e9!important;border-color:#fde6e9!important;cursor:pointer}.flatpickr-day.in-selected-week{background:var(--primary-bg);border-color:var(--primary-bg);color:var(--primary-dark)}.flatpickr-day.endRange.in-selected-week,.flatpickr-day.selected.in-selected-week,.flatpickr-day.startRange.in-selected-week{background:var(--primary-color);border-color:var(--primary-color);color:var(--text-on-primary)!important}#toast-container{position:fixed;top:1.25rem;left:50%;transform:translateX(-50%);z-index:200;display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:24rem}.toast{background-color:#10b981;color:#fff;padding:1rem 1.5rem;border-radius:.5rem;font-weight:600;box-shadow:var(--shadow-lg);display:flex;align-items:center;opacity:0;transform:translateY(-20px);transition:all .4s cubic-bezier(.215, .61, .355, 1)}.toast.show{opacity:1;transform:translateY(0)}.toast.hide{opacity:0}.toast.success{background-color:#10b981;color:#fff}.toast.warning{background-color:#fbbf24;color:#422006}#sidebar.is-open{transform:translateX(0)}@media (min-width:768px){#sidebar{transform:translateX(0)!important}}.select2-container--default .select2-selection--multiple,.select2-container--default .select2-selection--single{border:1px solid var(--border-color)!important;border-radius:.5rem!important;padding:.25rem .5rem;min-height:42px;background-color:var(--bg-light)}.select2-container--default .select2-selection--single .select2-selection__arrow{height:40px!important}.select2-container--default.select2-container--open .select2-selection--multiple,.select2-container--default.select2-container--open .select2-selection--single{box-shadow:0 0 0 2px var(--primary-bg);border-color:var(--primary-color)!important;background-color:var(--bg-white)}.select2-dropdown{border-radius:.5rem!important;border-color:var(--border-color)!important;z-index:9999!important}.select2-container--default .select2-results__option--highlighted[aria-selected]{background-color:var(--primary-color)!important;color:var(--text-on-primary)!important}.select2-container--default .select2-results__option[aria-selected=true]{background-color:var(--primary-bg)!important;color:var(--primary-dark)!important}.select2-container--default .select2-selection--multiple .select2-selection__choice{background-color:var(--primary-bg)!important;border:1px solid var(--primary-color)!important;color:var(--primary-dark)!important;border-radius:.5rem!important;padding:3px 6px}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove{color:var(--primary-dark)!important;margin-right:5px!important}.select2-container--default .select2-selection--multiple .select2-selection__choice__remove:hover{color:var(--primary-color)!important}.select2-container .select2-selection--single .select2-selection__rendered{padding-left:.5rem!important;padding-right:1.5rem!important;line-height:30px}body.select2-container--open,html.select2-container--open{overflow:visible!important}#main-content{overflow-y:auto!important}.editor-container{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;align-items:start}.subject-palette{position:sticky;top:1.5rem;background-color:var(--bg-white);border-radius:.75rem;box-shadow:var(--shadow);padding:1rem;max-height:80vh;overflow-y:auto}.unscheduled-subject{background-color:var(--bg-light);border:1px solid var(--border-color);padding:.75rem;border-radius:.5rem;transition:all .2s;user-select:none;border-left:4px solid #cbd5e1}.unscheduled-subject .subject-name{font-weight:700;font-size:.875rem;margin-bottom:.25rem}.unscheduled-subject .subject-details{font-size:.75rem;color:var(--text-light);margin-bottom:.5rem}.unscheduled-subject.draggable{cursor:grab}.unscheduled-subject.draggable:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.unscheduled-subject.is-dragging{cursor:grabbing;opacity:.8;background:var(--primary-bg);transform:scale(1.05);box-shadow:var(--shadow-lg)}.unscheduled-subject.disabled{cursor:not-allowed;background-color:#f1f5f9;opacity:.7}.unscheduled-subject.all-placed{background-color:#f1f5f9;opacity:.6}.unscheduled-subject.all-placed .subject-name{text-decoration:line-through}.timetable-editor-grid{display:grid;grid-template-columns:80px repeat(10,1fr);grid-template-rows:40px 40px;grid-auto-rows:80px;gap:2px;background-color:var(--border-color);border:1px solid var(--border-color);border-radius:.75rem;overflow:hidden}.editor-grid-day,.editor-grid-header{background-color:#f1f5f9;display:flex;align-items:center;justify-content:center;font-weight:600;font-size:.875rem;padding:.25rem}.editor-grid-slot{background-color:var(--bg-white);transition:background-color .1s ease-in-out;position:relative;padding:2px;cursor:pointer}.editor-grid-slot.drop-active{background-color:#dcfce7!important;outline:2px dashed #22c55e;outline-offset:-2px}.editor-grid-slot.conflict-preview{background-color:#fee2e2;cursor:not-allowed;position:relative}.editor-grid-slot.conflict-preview::after{content:'✖';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;color:#ef4444;opacity:.5;z-index:10}.item-content{flex-grow:1;margin-top:1px;min-height:0}.subject-code{font-weight:700;flex-grow:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.teacher-name{font-size:.75rem;color:#64748b}.item-footer{display:flex;justify-content:space-between;align-items:center;gap:4px;margin-top:2px;flex-shrink:0}.room-assignment-btn{font-size:.8rem;color:#2563eb;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.room-assignment-btn:hover{text-decoration:underline}.action-icon{display:flex;align-items:center;justify-content:center;border-radius:50%;background:0 0;border:none;cursor:pointer}.action-icon:hover{background-color:#f1f5f9}.group-management-icon-btn{font-size:1.25rem;color:#4b5563}.group-management-icon-btn.co-teaching{color:#2563eb}.scheduled-item{position:relative;display:flex;flex-direction:column;height:100%;padding:4px 6px;border-radius:6px;background-color:#f8fafc;border:1px solid #e2e8f0;box-shadow:0 1px 2px rgba(0,0,0,.05);cursor:grab}.scheduled-item:active{cursor:grabbing}.scheduled-item:hover{z-index:10;box-shadow:0 4px 8px rgba(0,0,0,.1)}.item-header{display:flex;align-items:center;gap:4px;flex-shrink:0}.item-header .remove-item-btn{background:0 0;border:none;cursor:pointer;color:#94a3b8;font-size:1.5rem;font-weight:700;opacity:0;padding:0;line-height:1;transition:opacity .2s ease-in-out}@keyframes skeleton-loading{0%{background-color:#e2e8f0}100%{background-color:#f1f5f9}}.skeleton{animation:skeleton-loading 1s linear infinite alternate;border-radius:.25rem}.skeleton-table-row td{padding:1rem;vertical-align:middle}.skeleton-table-row .skeleton{height:20px;width:90%;border-radius:.25rem}@media (max-width:1024px){.editor-container{grid-template-columns:1fr}.subject-palette{position:relative;top:0;max-height:none}}.wizard-step{background-color:var(--bg-white);padding:1.5rem 2rem;border-radius:.75rem;box-shadow:var(--shadow);margin-bottom:1.5rem}.wizard-step h3{font-size:1.25rem;font-weight:700;color:var(--primary-dark);margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border-color)}.wizard-step-number{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border-radius:9999px;background-color:var(--primary-color);color:var(--text-on-primary);font-weight:700;margin-right:.75rem}.progress-bar-bg{background-color:#e2e8f0;border-radius:9999px;height:6px;overflow:hidden}.progress-bar-fill{height:100%;width:0%;background-color:#cbd5e1;border-radius:9999px;transition:width .3s ease-in-out,background-color .3s ease-in-out}.progress-bar-fill.is-in-progress{background-color:var(--primary-color)}.progress-bar-fill.is-complete{background-color:#22c55e}.unscheduled-subject.draggable{border-left-color:var(--primary-color)}.unscheduled-subject.all-placed{border-left-color:#22c55e}.scheduled-item .room-assignment-btn{color:var(--primary-color);font-weight:500;opacity:.8;transition:opacity .2s}.scheduled-item:hover .room-assignment-btn{opacity:1}.pagination-ellipsis{display:inline-flex;align-items:center;justify-content:center;color:var(--text-light);font-weight:500;border-radius:.5rem;padding:.5rem 1rem;user-select:none}.action-button-group{display:inline-flex;align-items:center;gap:.5rem}.action-icon-btn{background-color:transparent;border:none;padding:.375rem;border-radius:9999px;cursor:pointer;transition:background-color .2s ease-in-out,color .2s ease-in-out;display:flex;align-items:center;justify-content:center;color:#64748b}.action-icon-btn svg{width:1.125rem;height:1.125rem}.action-icon-btn.assign:hover{background-color:#ffd2f7;color:#81299c}.action-icon-btn.delete:hover{background-color:#fee2e2;color:#dc2626}#term-selector optgroup{font-weight:700;color:var(--primary-dark)}#term-selector option{font-weight:400;color:var(--text-color);padding:.25rem .5rem}.toggle-switch-container{display:flex;justify-content:space-between;align-items:center;background-color:#f8fafc;padding:.75rem 1rem;border-radius:.5rem;border:1px solid #e2e8f0}.toggle-switch{position:relative;display:inline-block;width:50px;height:28px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.4s;border-radius:28px}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:4px;bottom:4px;background-color:#fff;transition:.4s;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.1)}input:checked+.toggle-slider{background-color:var(--primary-color)}input:focus+.toggle-slider{box-shadow:0 0 1px var(--primary-color)}input:checked+.toggle-slider:before{transform:translateX(22px)}.scheduled-item.locked{background-color:#e5e7eb;background-image:repeating-linear-gradient(-45deg,transparent,transparent 4px,rgba(156,163,175,.15),rgba(156,163,175,.15) 8px);opacity:.8;border:1px solid #d1d5db;cursor:not-allowed}.scheduled-item.locked:hover{box-shadow:0 1px 2px rgba(0,0,0,.05);transform:none}.scheduled-item.locked .subject-code,.scheduled-item.locked .teacher-name{color:#374151}.scheduled-item.locked .subject-code{color:#475569}.scheduled-item.locked .action-icon:hover,.scheduled-item.locked .room-assignment-btn:hover{background-color:transparent;text-decoration:none}.scheduled-item.locked .lock-item-btn:hover{background-color:transparent}.scheduled-item:hover .lock-item-btn{opacity:1}.scheduled-item.locked .lock-item-btn{color:var(--primary-dark);opacity:1}.editor-grid-slot.slot-suitable{background-color:#f0fdf4;border:1px dashed #4ade80}.editor-grid-slot.slot-warning-room{background-color:#fefce8;border:1px dashed #facc15}.editor-grid-slot.slot-conflict{position:relative;background-color:#fee2e2;overflow:hidden;cursor:not-allowed;outline:2px dashed #ef4444;outline-offset:-2px}.editor-grid-slot.slot-occupied{position:relative;cursor:not-allowed;outline:2px dashed #fb923c;outline-offset:-2px}.editor-grid-slot.slot-occupied>*{opacity:.6}.editor-grid-slot.slot-blackout{cursor:not-allowed;outline:0!important}.slot-conflict-details{position:absolute;inset:2px;display:flex;flex-direction:column;gap:1px;z-index:5;pointer-events:none;overflow:hidden;justify-content:center}.conflict-detail-item{background:0 0;border-radius:3px;padding:0 4px;display:flex;flex-direction:column;justify-content:center;min-height:0}.conflict-header{font-size:10px;font-weight:800;color:#991b1b;display:flex;align-items:center;gap:2px;line-height:1.2}.conflict-group{font-weight:800;font-size:11px;color:#7f1d1d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.conflict-subject{font-size:10px;font-weight:500;color:#b91c1c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.conflict-room{font-size:10px;font-weight:700;color:#7f1d1d;background:#fff;padding:1px 5px;border-radius:4px;width:fit-content;line-height:1;margin-top:2px;box-shadow:0 1px 2px rgba(0,0,0,.05)}.conflict-reason{font-size:8px;font-style:italic;color:#991b1b;text-align:center}.slot-co-teach-details{position:absolute;inset:2px;display:flex;flex-direction:column;gap:1px;z-index:5;pointer-events:none;overflow:hidden;justify-content:center}.co-teach-detail-item{background:0 0;border-radius:3px;padding:0 4px;display:flex;flex-direction:column;justify-content:center;min-height:0}.co-teach-header{font-size:10px;font-weight:800;color:#0369a1;display:flex;align-items:center;gap:2px;line-height:1.2}.co-teach-group{font-weight:700;font-size:11px;color:#075985;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.co-teach-subject{font-size:10px;font-weight:500;color:#0369a1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.co-teach-room{font-size:10px;font-weight:700;color:#0c4a6e;background:rgba(255,255,255,.8);padding:1px 4px;border-radius:3px;width:fit-content;line-height:1;margin-top:2px}.constraint-panel-content{animation:fadeIn .3s ease-in-out}.constraint-section{border-top:1px solid var(--border-color);padding-top:1rem}.blueprint-item.bg-yellow-200{background-color:#fef08a}@keyframes animate-fade-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:animate-fade-in .5s ease-in-out}.wizard-container{max-width:1400px;margin:0 auto}@keyframes highlight-fade{from{background-color:#dbeafe}to{background-color:transparent}}tr.highlight-new{animation:highlight-fade 3s ease-in-out;background-color:#dbeafe!important}.scheduled-item .insertion-controls{position:absolute;top:50%;left:-12px;right:-12px;transform:translateY(-50%);display:flex;justify-content:space-between;opacity:0;transition:opacity .2s ease-in-out;pointer-events:none}.scheduled-item:hover .item-header .remove-item-btn{opacity:1}.scheduled-item:hover .insertion-controls{opacity:1;pointer-events:auto}.insert-slot-btn{background-color:#3b82f6;color:#fff;border:none;width:24px;height:24px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;line-height:1;cursor:pointer;box-shadow:0 2px 4px rgba(0,0,0,.1);transition:background-color .2s}.insert-slot-btn:hover{background-color:#2563eb}.insert-slot-btn:disabled{background-color:#d1d5db;cursor:not-allowed}.insert-left{transform:translateX(-50%)}.insert-right{transform:translateX(50%)}.editor-grid-slot.slot-break{background-color:#f1f5f9;background-image:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 5px,#eee 5px,#eee 10px);cursor:default;border:1px solid #e2e8f0;opacity:.8}.editor-grid-slot.blackout-active{background-color:#e5e7eb;background-image:repeating-linear-gradient(45deg,#d1d5db,#d1d5db 10px,#e5e7eb 10px,#e5e7eb 20px);cursor:not-allowed;border:1px solid #9ca3af}.editor-grid-slot.blackout-active.conflict-preview::after,.editor-grid-slot.blackout-active.slot-conflict::after{content:'✖';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:1.5rem;color:#ef4444;opacity:.7;z-index:10;text-shadow:0 0 3px #fff}.scheduled-item .subject-name{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;line-height:1.3}.pdf-export-mode{font-size:10px;color:#000}.pdf-export-mode .timetable-grid{grid-auto-rows:minmax(50px,auto);gap:1px;border:1px solid #000}.pdf-export-mode .timetable-day-header,.pdf-export-mode .timetable-header,.pdf-export-mode .timetable-slot{background-color:#fff!important;border:.5px solid #ccc;padding:2px 4px;font-size:9px;border-radius:0}.pdf-export-mode .timetable-class-item{background-color:#fff!important;border:none;border-radius:0;box-shadow:none;color:#000;padding:2px;height:100%;width:100%}.pdf-export-mode .timetable-class-item p,.pdf-export-mode .timetable-class-item strong{font-size:9px!important;line-height:1.1!important;margin-top:1px}.pdf-export-mode .action-button-secondary,.pdf-export-mode .mt-6,.pdf-export-mode .mt-8,.pdf-export-mode .summary-table-container{display:none!important}@keyframes wave{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}.editor-grid-slot.slot-co-teach{position:relative;background-color:#e0f2fe;overflow:hidden;cursor:copy;outline:2px dashed #0284c7;outline-offset:-2px}.editor-grid-slot.slot-co-teach::before{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.4),transparent);animation:sweep 2.5s infinite linear}@keyframes sweep{from{left:-100%}to{left:100%}}.workload-rules-table td{padding:.5rem;vertical-align:middle}.workload-rules-table input{width:100%;text-align:center;padding:.5rem;border:1px solid var(--border-color);border-radius:.375rem}.workload-rules-table input:focus{outline:0;box-shadow:0 0 0 2px var(--primary-bg);border-color:var(--primary-color)}.workload-rules-table input.total-auto-calc{background-color:#f1f5f9;font-weight:600;color:var(--text-color);border-style:dashed}.tooltip-trigger{position:relative;display:inline-flex;align-items:center;justify-content:center;width:1.25rem;height:1.25rem;border-radius:9999px;background-color:#e2e8f0;color:#64748b;font-size:.75rem;font-weight:700;margin-left:.5rem;cursor:help;transition:all .2s}.tooltip-trigger:hover{background-color:var(--primary-color);color:#fff}.tooltip-trigger::after,.tooltip-trigger::before{position:absolute;bottom:100%;left:50%;transform:translateX(-50%);opacity:0;visibility:hidden;transition:opacity .3s,visibility .3s;pointer-events:none;z-index:1000}.tooltip-trigger::before{content:attr(data-tooltip);background-color:#1e293b;color:#fff;padding:.5rem .75rem;border-radius:.375rem;font-size:.8rem;font-weight:500;width:max-content;max-width:250px;margin-bottom:8px;text-align:center}.tooltip-trigger::after{content:'';border:5px solid transparent;border-top-color:#1e293b;margin-bottom:-2px}.tooltip-trigger:hover::after,.tooltip-trigger:hover::before{opacity:1;visibility:visible}[data-role-required]{display:none}#main-nav.permissions-loading .nav-group,#main-nav.permissions-loading .nav-link{display:none}main.overflow-y-auto{overflow-y:scroll}.library-subject-item{display:flex;align-items:center;padding:.5rem;border-radius:.375rem;cursor:pointer;transition:background-color .2s;border-bottom:1px solid var(--border-color)}.library-subject-item:hover{background-color:var(--primary-bg)}.library-subject-checkbox{width:1rem;height:1rem;margin-right:.75rem;flex-shrink:0}.library-subject-info{flex-grow:1}.wizard-group-display{margin-top:1rem}.wizard-level-title{font-size:1rem;font-weight:700;color:var(--primary-dark);padding-bottom:.5rem;margin-bottom:.75rem;border-bottom:1px solid var(--border-color)}.wizard-year-group{margin-bottom:1rem}.wizard-year-title{font-size:.875rem;font-weight:600;color:var(--text-color);margin-bottom:.5rem;padding-left:.5rem}.wizard-group-pill{display:block;padding:.5rem;border-radius:.375rem;background-color:#eef2ff;color:#3730a3;font-size:.8rem;text-align:center;font-weight:500;border:1px solid #e0e7ff}.leave-schedule-item{display:flex;align-items:flex-start;padding:.75rem;border-radius:.5rem;border:1px solid var(--border-color);background-color:var(--bg-white);cursor:pointer;transition:all .2s ease-in-out}.leave-schedule-item:hover{border-color:var(--primary-color);background-color:var(--primary-bg)}.leave-schedule-item.selected{background-color:var(--primary-bg);border-color:var(--primary-color);box-shadow:0 0 0 1px var(--primary-color)}.leave-schedule-checkbox{margin-top:.25rem;margin-right:.75rem;height:1.25rem;width:1.25rem;flex-shrink:0;border-radius:.25rem;border-color:#94a3b8;color:var(--primary-color)}.leave-schedule-info{display:flex;flex-direction:column}.leave-subject-name{font-weight:600;color:var(--text-color);font-size:.9rem}.leave-subject-level{font-size:.75rem;font-weight:500;color:var(--text-on-primary);background-color:var(--primary-color);padding:.1rem .4rem;border-radius:.25rem;margin-left:.5rem}.leave-details,.leave-groups{font-size:.8rem;color:var(--text-light);margin-top:.2rem}.leave-groups{word-break:break-word}.workload-bar-container{width:100%;margin-top:4px}.workload-bar{position:relative;width:100%;height:8px;background-color:#e2e8f0;border-radius:8px;overflow:hidden}.workload-bar-fill{position:absolute;top:0;left:0;height:100%;border-radius:8px;transition:width .3s ease-in-out}.workload-bar-over{position:absolute;top:0;left:100%;height:100%;background-color:#ef4444;border-top-right-radius:8px;border-bottom-right-radius:8px;transition:width .3s ease-in-out}.action-button-secondary{background-color:var(--bg-white);color:var(--primary-color);border:1px solid var(--primary-color);padding:calc(.6rem - 1px) calc(1.25rem - 1px);border-radius:.5rem;font-weight:600;box-shadow:var(--shadow);transition:all .2s;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.action-button-secondary:hover{background-color:var(--primary-bg);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.time-slots-wrapper{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.75rem;padding:.5rem;border:1px solid #e2e8f0;border-radius:.5rem;background-color:#f8fafc;max-height:250px;overflow-y:auto}.time-slot{display:flex;flex-direction:column;padding:.75rem;border-radius:.375rem;border:1px solid transparent;transition:all .2s ease-in-out;text-align:center}.time-slot-period{font-weight:600;font-size:1rem}.time-slot-time{font-size:.875rem;color:#64748b}.time-slot-status{margin-top:.5rem;display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:500}.time-slot-status svg{margin-right:.25rem}.time-slot-status span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.time-slot.available{background-color:#fff;border-color:#cbd5e1;cursor:pointer}.time-slot.available:hover{border-color:#6366f1;box-shadow:0 0 0 2px rgba(99,102,241,.2);transform:translateY(-2px)}.time-slot.available .time-slot-status{color:#16a34a}.time-slot.available.selected{border-color:#4f46e5;background-color:#eef2ff;color:#312e81;transform:translateY(-2px);box-shadow:0 4px 6px -1px rgb(0 0 0 / .1),0 2px 4px -2px rgb(0 0 0 / .1)}.time-slot.available.selected .time-slot-status{color:#4f46e5;font-weight:700}.time-slot.unavailable{background-color:#f1f5f9;border-color:#e2e8f0;opacity:.7;cursor:not-allowed}.time-slot.unavailable .time-slot-period,.time-slot.unavailable .time-slot-time{color:#94a3b8}.time-slot.unavailable .time-slot-status{color:#ef4444}:root{--subject-color-1:#3b82f6;--subject-bg-1:#dbeafe;--subject-color-2:#16a34a;--subject-bg-2:#dcfce7;--subject-color-3:#f97316;--subject-bg-3:#ffedd5;--subject-color-4:#8b5cf6;--subject-bg-4:#ede9fe;--subject-color-5:#d946ef;--subject-bg-5:#fce7f3;--subject-color-6:#14b8a6;--subject-bg-6:#ccfbf1;--subject-color-7:#eab308;--subject-bg-7:#fefce8;--subject-color-8:#ec4899;--subject-bg-8:#fce7f3;--subject-color-9:#6366f1;--subject-bg-9:#e0e7ff;--subject-color-10:#0ea5e9;--subject-bg-10:#e0f2fe;--subject-color-11:#f43f5e;--subject-bg-11:#ffe4e6;--subject-color-12:#65a30d;--subject-bg-12:#ecfccb}.subject-color-base{background-color:var(--subject-bg);border-left:4px solid var(--subject-color);color:var(--subject-text-color)}.subject-color-1{--subject-color:var(--subject-color-1);--subject-bg:var(--subject-bg-1);--subject-text-color:#1e3a8a}.subject-color-2{--subject-color:var(--subject-color-2);--subject-bg:var(--subject-bg-2);--subject-text-color:#14532d}.subject-color-3{--subject-color:var(--subject-color-3);--subject-bg:var(--subject-bg-3);--subject-text-color:#7c2d12}.subject-color-4{--subject-color:var(--subject-color-4);--subject-bg:var(--subject-bg-4);--subject-text-color:#4c1d95}.subject-color-5{--subject-color:var(--subject-color-5);--subject-bg:var(--subject-bg-5);--subject-text-color:#86198f}.subject-color-6{--subject-color:var(--subject-color-6);--subject-bg:var(--subject-bg-6);--subject-text-color:#0f766e}.subject-color-7{--subject-color:var(--subject-color-7);--subject-bg:var(--subject-bg-7);--subject-text-color:#854d0e}.subject-color-8{--subject-color:var(--subject-color-8);--subject-bg:var(--subject-bg-8);--subject-text-color:#9d174d}.subject-color-9{--subject-color:var(--subject-color-9);--subject-bg:var(--subject-bg-9);--subject-text-color:#312e81}.subject-color-10{--subject-color:var(--subject-color-10);--subject-bg:var(--subject-bg-10);--subject-text-color:#0c4a6e}.subject-color-11{--subject-color:var(--subject-color-11);--subject-bg:var(--subject-bg-11);--subject-text-color:#881337}.subject-color-12{--subject-color:var(--subject-color-12);--subject-bg:var(--subject-bg-12);--subject-text-color:#365314}.scheduled-item.subject-color-base{background-color:var(--subject-bg);border:1px solid var(--subject-bg);border-left:4px solid var(--subject-color)}.scheduled-item.subject-color-base .subject-code,.scheduled-item.subject-color-base .teacher-name{color:var(--subject-text-color)}.scheduled-item.subject-color-base .room-assignment-btn{color:var(--subject-color);font-weight:600}.unscheduled-subject.subject-color-base{border-left-color:var(--subject-color);background-color:var(--subject-bg)}.unscheduled-subject.subject-color-base .subject-name{color:var(--subject-text-color)}.unscheduled-subject.all-placed.subject-color-base{border-left-color:#22c55e;background-color:#f1f5f9}.unscheduled-subject.all-placed.subject-color-base .subject-name{color:var(--text-color)}.scheduled-item.subject-highlight,.unscheduled-subject.subject-highlight{transform:scale(1.03);box-shadow:0 0 15px rgba(59,130,246,.7);z-index:20;transition:transform .2s ease-out,box-shadow .2s ease-out}.unscheduled-subject.subject-highlight{transform:translateY(-2px) scale(1.02)}.scheduled-item,.unscheduled-subject{position:relative}.flatpickr-day.has-holiday{position:relative;color:#b91c1c;font-weight:700}.holiday-dot{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;background-color:#ef4444;border-radius:50%}.flatpickr-day.is-hovered{background-color:#e0f2fe;border-color:#0ea5e9;color:#0369a1}.flatpickr-day.is-hovered .holiday-dot{background-color:#0369a1}.holiday-list-item{display:flex;justify-content:space-between;align-items:center;padding:10px 8px;border-radius:8px;cursor:pointer;transition:background-color .2s ease-in-out}.holiday-list-item:hover{background-color:#f8fafc}.date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;width:48px;height:48px;border-radius:8px;background-color:#f1f5f9;margin-right:12px;border:1px solid #e2e8f0}.date-badge .day-name{font-size:.7rem;font-weight:600;color:#475569;text-transform:uppercase;letter-spacing:.5px}.date-badge .day-number{font-size:1.1rem;font-weight:700;color:#1e293b;line-height:1.2}.scheduled-item.item-conflict-error{border:2px solid #ef4444;box-shadow:0 0 8px rgba(239,68,68,.5);animation:pulse-red 1.5s infinite}.conflict-indicator{position:absolute;top:-8px;left:-8px;width:20px;height:20px;background-color:#ef4444;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;cursor:help;z-index:10}@keyframes pulse-red{0%{box-shadow:0 0 8px rgba(239,68,68,.5)}50%{box-shadow:0 0 16px rgba(239,68,68,.8)}100%{box-shadow:0 0 8px rgba(239,68,68,.5)}}#app-container.editor-mode #sidebar{display:none}#timetableEditor-section .editor-container{grid-template-columns:240px 1fr}#timetableEditor-section .unscheduled-subject .subject-name{font-size:.8rem}#timetableEditor-section .unscheduled-subject .subject-details{font-size:.7rem}#timetableEditor-section .timetable-editor-grid{grid-template-columns:60px repeat(10,minmax(75px,1fr));grid-template-rows:35px 35px;grid-auto-rows:75px}#timetableEditor-section .scheduled-item{padding:3px 5px}#timetableEditor-section .scheduled-item .subject-code{font-size:.75rem;font-weight:600}#timetableEditor-section .scheduled-item .teacher-name{font-size:.7rem}#timetableEditor-section .scheduled-item .room-assignment-btn{font-size:.7rem}#timetableEditor-section .editor-grid-day,#timetableEditor-section .editor-grid-header{font-size:.8rem}#timetableEditor-section #subject-palette .select2-selection__choice{font-size:.75rem;padding:2px 5px}.timetable-class-item{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;height:100%;padding:4px;overflow:hidden;line-height:1.2;font-size:11px}.timetable-class-item strong{font-size:12px}.styled-table tbody tr{border-bottom:1px solid #e2e8f0}.mobile-day-card{background-color:var(--bg-white);border-radius:.75rem;box-shadow:var(--shadow);overflow:hidden}.mobile-day-header{background-color:var(--primary-bg);color:var(--primary-dark);padding:.75rem 1.25rem;font-weight:700;font-size:1.125rem}.mobile-class-item{display:flex;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--border-color)}.mobile-class-item:last-child{border-bottom:none}.mobile-class-time{flex-shrink:0;width:auto;text-align:left;padding-right:.75rem;margin-right:.75rem;border-right:1px solid var(--border-color);font-size:.875rem;color:var(--text-light)}.mobile-class-details{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.mobile-class-details span:not(:last-child)::after{content:"|";color:#cbd5e1;margin-left:.5rem;margin-right:.25rem}.mobile-class-time p:first-child{font-weight:600;color:var(--text-color)}.mobile-class-info p.font-bold{white-space:normal;word-break:break-word}.mobile-class-info p.text-xs{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}#portal-content-wrapper,#timetable-display,.timetable-grid{width:100%}.day-summary-badge{display:flex;align-items:center;gap:.75rem;background-color:#f1f5f9;border:1px solid #e2e8f0;border-radius:9999px;padding:.25rem .75rem;font-size:.875rem;transition:all .2s ease-in-out}.day-summary-badge .day-name{font-weight:600;color:#475569}.day-summary-badge .day-count{font-weight:700;color:#0f172a;background-color:#fff;padding:.125rem .5rem;border-radius:9999px;box-shadow:0 1px 2px 0 rgb(0 0 0 / .05)}.day-summary-badge.is-weekend{background-color:#fef3c7;border-color:#fde68a}.day-summary-badge.is-weekend .day-name{color:#92400e}.day-summary-badge.is-weekend .day-count{color:#92400e}.flatpickr-day .holiday-dot{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:5px;height:5px;background-color:#ef4444;border-radius:50%}.action-button-disabled{background-color:#e5e7eb;color:#9ca3af;padding:.6rem 1.25rem;border-radius:.5rem;font-weight:600;display:inline-flex;align-items:center;justify-content:center;cursor:not-allowed}.action-button-disabled svg{color:#9ca3af}.toggle-grid{display:grid;grid-template-columns:repeat(1,1fr);gap:1rem}@media (min-width:768px){.toggle-grid{grid-template-columns:repeat(2,1fr)}}@media (min-width:1280px){.toggle-grid{grid-template-columns:repeat(3,1fr)}}.org-chart{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2rem}.executive-card-wrapper{text-align:center}.executive-card{background-color:#fff;border-radius:.75rem;box-shadow:var(--shadow);padding:1.5rem;min-width:220px;display:inline-block;white-space:nowrap;border-top:4px solid var(--primary-color);position:relative;margin:0 auto}.executive-card-wrapper.placeholder .executive-card{border-top:4px solid #cbd5e1;color:#94a3b8}.deputy-container{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem;width:100%}.executive-card .card-actions{position:absolute;top:8px;right:8px;display:flex;gap:4px;opacity:0;transition:opacity .2s ease-in-out}.executive-card:hover .card-actions{opacity:1}.scheduled-item.is-swappable{cursor:pointer;outline:2px dashed #14b8a6;outline-offset:2px;animation:pulse-teal 1.5s infinite}.scheduled-item.is-swappable::after{content:'↔';position:absolute;top:-8px;right:-8px;width:22px;height:22px;background-color:#14b8a6;color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;z-index:15;box-shadow:0 2px 4px rgba(0,0,0,.2)}.editor-grid-slot.drop-active-swap{background-color:#ccfbf1!important}@keyframes pulse-teal{0%{box-shadow:0 0 0 0 rgba(20,184,166,.4)}70%{box-shadow:0 0 0 10px rgba(20,184,166,0)}100%{box-shadow:0 0 0 0 rgba(20,184,166,0)}}#group-shortcut-select+.select2-container{min-width:250px}#group-shortcut-select+.select2-container .select2-selection--single{background-color:#f1f5f9;border-color:#e2e8f0;font-weight:600}@media screen and (orientation:landscape) and (max-height:500px){.timetable-grid{grid-auto-rows:minmax(50px,auto)}.timetable-header{font-size:.6rem;padding:2px 1px}.timetable-header .text-xs{font-size:.5rem}.timetable-class-item{padding:1px 2px;font-size:9px;line-height:1.15}.timetable-class-item strong{font-size:8px}.timetable-class-item div[class*=text-],.timetable-class-item p{font-size:7px;margin-top:0}}.nav-link-primary-action{background-color:#fefce8;border:1px solid #fde047;color:#854d0e;font-weight:700;margin-bottom:.5rem;box-shadow:0 4px 6px -1px rgba(0,0,0,.05),0 2px 4px -2px rgba(0,0,0,.05);transition:all .2s ease-in-out;justify-content:center}.nav-link-primary-action svg{color:#ca8a04}.nav-link-primary-action.active,.nav-link-primary-action:hover{background:linear-gradient(to right,#facc15,#f59e0b);color:var(--text-on-primary);border-color:#f59e0b;transform:translateY(-2px);box-shadow:var(--shadow-lg)}.nav-link-primary-action.active svg,.nav-link-primary-action:hover svg{color:var(--text-on-primary)}.nav-link-primary-action .menu-logo-icon{width:24px;height:24px;margin-right:.75rem;object-fit:contain;transition:transform .2s ease-out}.nav-link-primary-action:active{transform:translateY(2px) scale(.98);box-shadow:0 1px 2px rgba(0,0,0,.1)}.nav-link-primary-action:hover .menu-logo-icon{transform:rotate(-10deg) scale(1.1)}.bg-primary{background-color:var(--primary-color)}.hover\:bg-primary-hover:hover{background-color:var(--primary-hover)}.text-primary-dark{color:var(--primary-dark)}.text-white{color:var(--text-on-primary)}.bg-primary-bg{background-color:var(--primary-bg)}.text-primary{color:var(--primary-color)}.search-hidden{display:none!important}#holiday-calendar .flatpickr-calendar{box-shadow:none!important;border:none!important;width:100%!important}#holiday-calendar .dayContainer,#holiday-calendar .flatpickr-innerContainer,#holiday-calendar .flatpickr-rContainer{width:100%!important}.holiday-dot{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;background-color:var(--primary-color);border-radius:50%}.flatpickr-day.has-holiday{font-weight:700;color:var(--primary-dark)}.flatpickr-day.is-hovered{background:var(--primary-bg)!important;border-color:var(--primary-bg)!important;transition:all .2s ease;transform:scale(1.1);z-index:10}.day-summary-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--bg-white);border:1px solid var(--border-color);border-radius:9999px;font-size:.875rem;color:var(--text-color);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:all .2s}.day-summary-badge:hover{border-color:var(--primary-color);background-color:var(--primary-bg);color:var(--primary-dark);transform:translateY(-1px)}.day-summary-badge.is-weekend{background-color:#fff1f2;border-color:#fecdd3;color:#be123c}.day-summary-badge .day-count{background-color:var(--primary-color);color:#fff;padding:.1rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:700}.holiday-list-item{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-white);border:1px solid var(--border-color);border-radius:.75rem;padding:1rem;margin-bottom:.75rem;box-shadow:var(--shadow);transition:all .25s cubic-bezier(.175, .885, .32, 1.275);position:relative;overflow:hidden}.holiday-list-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background-color:transparent;transition:background-color .2s}.holiday-list-item:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--shadow-lg);border-color:transparent}.holiday-list-item:hover::before{background-color:var(--primary-color)}.date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-light);border-radius:.5rem;padding:.5rem;min-width:64px;margin-right:1.25rem;border:1px solid var(--border-color);flex-shrink:0}.date-badge .day-name{font-size:.7rem;text-transform:uppercase;color:var(--text-light);letter-spacing:.05em;font-weight:600}.date-badge .day-number{font-size:1.5rem;font-weight:800;color:var(--primary-color);line-height:1;margin-top:.1rem}.holiday-info{flex-grow:1}.holiday-name{font-size:1rem;font-weight:600;color:var(--text-color);margin:0}.holiday-term-badge{font-size:.7rem;background-color:var(--primary-bg);color:var(--primary-dark);padding:2px 6px;border-radius:4px;margin-top:4px;display:inline-block}.hover\:bg-primary-hover:hover{background-color:var(--primary-hover)}.text-primary-dark{color:var(--primary-dark)}.text-white{color:var(--text-on-primary)}.bg-primary-bg{background-color:var(--primary-bg)}.text-primary{color:var(--primary-color)}.search-hidden{display:none!important}#holiday-calendar .flatpickr-calendar{box-shadow:none!important;border:none!important;width:100%!important}#holiday-calendar .dayContainer,#holiday-calendar .flatpickr-innerContainer,#holiday-calendar .flatpickr-rContainer{width:100%!important}.holiday-dot{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;background-color:var(--primary-color);border-radius:50%}.flatpickr-day.has-holiday{font-weight:700;color:var(--primary-dark)}.flatpickr-day.is-hovered{background:var(--primary-bg)!important;border-color:var(--primary-bg)!important;transition:all .2s ease;transform:scale(1.1);z-index:10}.day-summary-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background-color:var(--bg-white);border:1px solid var(--border-color);border-radius:9999px;font-size:.875rem;color:var(--text-color);font-weight:500;box-shadow:0 1px 2px rgba(0,0,0,.05);transition:all .2s}.day-summary-badge:hover{border-color:var(--primary-color);background-color:var(--primary-bg);color:var(--primary-dark);transform:translateY(-1px)}.day-summary-badge.is-weekend{background-color:#fff1f2;border-color:#fecdd3;color:#be123c}.day-summary-badge .day-count{background-color:var(--primary-color);color:#fff;padding:.1rem .5rem;border-radius:.25rem;font-size:.75rem;font-weight:700}.holiday-list-item{display:flex;align-items:center;justify-content:space-between;background-color:var(--bg-white);border:1px solid var(--border-color);border-radius:.75rem;padding:1rem;margin-bottom:.75rem;box-shadow:var(--shadow);transition:all .25s cubic-bezier(.175, .885, .32, 1.275);position:relative;overflow:hidden}.holiday-list-item::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background-color:transparent;transition:background-color .2s}.holiday-list-item:hover{transform:translateY(-3px) scale(1.01);box-shadow:var(--shadow-lg);border-color:transparent}.holiday-list-item:hover::before{background-color:var(--primary-color)}.date-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;background-color:var(--bg-light);border-radius:.5rem;padding:.5rem;min-width:64px;margin-right:1.25rem;border:1px solid var(--border-color);flex-shrink:0}.date-badge .day-name{font-size:.7rem;text-transform:uppercase;color:var(--text-light);letter-spacing:.05em;font-weight:600}.date-badge .day-number{font-size:1.5rem;font-weight:800;color:var(--primary-color);line-height:1;margin-top:.1rem}.holiday-info{flex-grow:1}.holiday-name{font-size:1rem;font-weight:600;color:var(--text-color);margin:0}.holiday-term-badge{font-size:.7rem;background-color:var(--primary-bg);color:var(--primary-dark);padding:2px 6px;border-radius:4px;margin-top:4px;display:inline-block}.action-button-group{display:flex;gap:.5rem;transition:opacity .2s}.holiday-list-item .action-button-group{opacity:.6}.holiday-list-item:hover .action-button-group{opacity:1}.action-icon-btn{padding:.5rem;border-radius:50%;background-color:transparent;color:var(--text-light);transition:all .2s;border:1px solid transparent}.action-icon-btn:hover{background-color:var(--primary-bg);color:var(--primary-color);border-color:var(--primary-color)}.action-icon-btn svg{width:1.25rem;height:1.25rem}.action-button-group{opacity:1!important;z-index:20!important;position:relative!important;mix-blend-mode:normal!important;filter:none!important;backdrop-filter:none!important;isolation:isolate}.action-button-group .action-button,.action-button-group .action-button-secondary,.action-button-group .action-icon-btn,.action-button-group a,.action-button-group button{opacity:1!important;filter:none!important;-webkit-filter:none!important;mix-blend-mode:normal!important}.action-button-group .action-button{background-color:#8c1d2f!important;color:#fff!important;box-shadow:0 4px 6px -1px rgba(0,0,0,.2)!important}.action-button-group .action-button-secondary.bg-green-50,.action-button-group .plan-btn{background-color:#dcfce7!important;color:#15803d!important;border-color:#bbf7d0!important}.action-button-group .action-button-secondary.bg-blue-50,.action-button-group .clear-plan-btn{background-color:#dbeafe!important;color:#1d4ed8!important;border-color:#bfdbfe!important}.action-button-group .action-button-secondary.bg-sky-50,.action-button-group .import-plan-btn{background-color:#e0f2fe!important;color:#0369a1!important;border-color:#bae6fd!important}.action-button-group svg{opacity:1!important}.select2-container,.select2-container .select2-selection,.select2-container .select2-selection__placeholder,.select2-container .select2-selection__rendered,.select2-container input.select2-search__field,.select2-results__option{font-family:var(--font-sans)!important}.select2-container .select2-selection__placeholder{color:#94a3b8}.select2-container .select2-search__field::placeholder{font-family:var(--font-sans)!important;color:#94a3b8}.select2-container .select2-search__field::-webkit-input-placeholder{font-family:var(--font-sans)!important;color:#94a3b8}.select2-container .select2-search__field::-moz-placeholder{font-family:var(--font-sans)!important;color:#94a3b8}.select2-container .select2-search__field:-ms-input-placeholder{font-family:var(--font-sans)!important;color:#94a3b8}.scheduled-item.ai-suggested{border:2px dashed rgba(140,29,47,.45)!important;position:relative;animation:ai-pulse shadow-pulse 2s infinite alternate}.ai-star-badge{position:absolute;top:-8px;left:-8px;width:22px;height:22px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:13px;box-shadow:0 2px 5px rgba(0,0,0,.2);z-index:20;pointer-events:none;border:1px solid rgba(140,29,47,.2);animation:bounce-slow 2s infinite ease-in-out}@keyframes bounce-slow{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes ai-pulse{from{border-color:rgba(140,29,47,.3)}to{border-color:rgba(140,29,47,.8)}}@keyframes shadow-pulse{0%{box-shadow:0 0 0 0 rgba(140,29,47,.2)}100%{box-shadow:0 0 8px 2px rgba(140,29,47,.1)}}#ai-review-bar{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%);z-index:1000;display:flex;align-items:center;gap:1.5rem;padding:.75rem 1.5rem;background:rgba(15,23,42,.95);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:9999px;box-shadow:0 10px 25px -5px rgba(0,0,0,.3);color:#fff;animation:slideUp .4s cubic-bezier(.16,1,.3,1)}@keyframes slideUp{from{transform:translate(-50%,100%);opacity:0}to{transform:translate(-50%,0);opacity:1}}.ai-review-info{display:flex;align-items:center;gap:.5rem;font-weight:500}.ai-review-actions{display:flex;gap:.75rem}.ai-btn-accept{background:#10b981;color:#fff;padding:.4rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600;transition:all .2s}.ai-btn-reject{background:rgba(255,255,255,.1);color:#fda4af;padding:.4rem 1rem;border-radius:9999px;font-size:.875rem;font-weight:600;transition:all .2s}.ai-btn-accept:hover{background:#059669;transform:translateY(-1px)}.ai-btn-reject:hover{background:rgba(244,63,94,.2);transform:translateY(-1px)}.block-badge{display:inline-flex;align-items:center;justify-content:center;padding:.15rem .4rem;font-size:.65rem;font-weight:800;border-radius:4px;letter-spacing:-.01em;min-width:1.6rem;line-height:1;box-shadow:0 1px 2px rgba(0,0,0,.1)}.block-badge.is-weekly{background-color:var(--primary-color);color:#fff}.block-badge.is-block{background-color:#0f172a;color:#fff}.editor-grid-slot.slot-break,.timetable-slot.slot-break{background-color:#f1f5f9!important;background-image:repeating-linear-gradient(45deg,#f1f5f9,#f1f5f9 5px,#eee 5px,#eee 10px)!important;cursor:default;border:1px solid #e2e8f0!important;opacity:.8!important;display:flex;align-items:center;justify-content:center;position:relative;min-height:40px}.editor-grid-slot.slot-break .break-label,.timetable-slot.slot-break .slot-break-label{font-size:10px;color:#94a3b8;text-align:center;width:100%;pointer-events:none;line-height:1.1;font-weight:500}