.loading-spinner-container{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:2rem;color:#666}.loading-spinner-inline{display:inline-flex;align-items:center;gap:.5rem;color:inherit}.loading-spinner{display:inline-block;border-radius:50%;border-style:solid;border-color:#e0e0e0;border-top-color:#3498db;animation:spin .8s linear infinite}.loading-spinner-small{width:16px;height:16px;border-width:2px}.loading-spinner-medium{width:24px;height:24px;border-width:3px}.loading-spinner-large{width:40px;height:40px;border-width:4px}.loading-spinner-text{font-size:.875rem;color:inherit}.loading-spinner[aria-hidden=true]{display:none}.period-settings-overlay{z-index:3000}.period-settings-dialog{max-width:500px}.period-settings-body{padding:1.5rem}.period-settings-description{margin:0 0 1.5rem;color:#666;font-size:.9rem}.period-settings-form{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.period-setting-row{display:flex;align-items:center;justify-content:space-between;padding:.75rem;background-color:#f8f9fa;border-radius:4px}.period-setting-label{font-weight:500;color:#2c3e50;min-width:60px}.period-setting-input-group{display:flex;align-items:center;gap:.5rem}.period-setting-input{width:80px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;text-align:center}.period-setting-input:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 2px #3498db33}.period-setting-unit{color:#666;font-size:.9rem}.period-settings-actions{display:flex;justify-content:flex-end;gap:.75rem;padding-top:1rem;border-top:1px solid #e0e0e0}.btn{padding:.5rem 1.5rem;border:none;border-radius:4px;font-size:.95rem;cursor:pointer;transition:background-color .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{background-color:#ecf0f1;color:#2c3e50}.btn-secondary:hover:not(:disabled){background-color:#d5dbdb}.btn-primary{background-color:#3498db;color:#fff}.btn-primary:hover:not(:disabled){background-color:#2980b9}.print-report-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:10000}.print-report-dialog{background:#fff;border-radius:8px;max-width:90vw;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0003}.print-report-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #e0e0e0}.print-report-dialog-header h3{margin:0;font-size:1.1rem}.print-report-dialog-body{padding:1rem;overflow:auto;flex:1}.print-report-dialog-controls{margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}.print-report-dialog-controls label{font-weight:500}.print-report-dialog-controls select{padding:.35rem .5rem;min-width:200px}.print-report-checkbox-label{display:inline-flex;align-items:center;gap:.35rem;font-weight:400;cursor:pointer}.print-report-dialog-error{color:#c00;margin:.5rem 0}.print-report-dialog-loading{color:#666;margin:.5rem 0}.print-report-preview{margin-bottom:1rem;padding:.5rem;background:#fafafa;border-radius:4px;max-height:60vh;overflow:auto}.print-report-preview .report-title{font-size:1rem;font-weight:600;margin-bottom:.5rem}.print-report-class-block{margin-bottom:1.5rem}.print-report-table{width:100%;border-collapse:collapse;font-size:.9rem}.print-report-table th,.print-report-table td{border:1px solid #ccc;padding:4px 8px;text-align:left}.print-report-table th{background:#eee}.print-report-grid{table-layout:fixed}.print-report-grid .print-report-axis{background:#f0f0f0;font-weight:600;min-width:2.5rem;text-align:center}.print-report-grid th.print-report-axis,.print-report-grid td.print-report-axis{width:2.5rem}.print-report-grid td{min-width:4rem;vertical-align:top}.print-report-cell-top{font-weight:600;line-height:1.25;margin-bottom:2px}.print-report-cell-bottom{font-size:.85em;color:#555;line-height:1.2}.print-report-list{font-size:.78rem;table-layout:auto}.print-report-list .print-report-day-header{text-align:center}.print-report-list .print-report-slot-header{font-weight:500;text-align:center;min-width:2rem;padding:2px 4px}.print-report-list .print-report-row-label{font-weight:600;white-space:normal;min-width:5.5rem;max-width:14rem;width:-moz-max-content;width:max-content;word-break:break-word}.print-report-list .print-report-row-label-sub{font-weight:500;font-size:.76rem;white-space:normal;min-width:3.25rem;max-width:10rem;width:-moz-max-content;width:max-content;word-break:break-word;vertical-align:top}.print-report-list.print-report-table th,.print-report-list.print-report-table td{padding:2px 4px;vertical-align:top}.print-report-list-cell{line-height:1.15;word-break:break-word}.print-report-list-cell-stack{margin-top:.25rem;padding-top:.2rem;border-top:1px dashed #ccc}.print-report-list .print-report-cell-top{font-weight:600;font-size:.76rem;margin-bottom:0}.print-report-list .print-report-cell-mid{font-size:.72rem;color:#444;line-height:1.1}.print-report-list .print-report-cell-bottom{font-size:.74rem;color:#333;line-height:1.1}.print-report-dialog-actions{display:flex;gap:.5rem;flex-wrap:wrap}@media print{.print-report-dialog-overlay{background:none}.print-report-dialog{box-shadow:none;max-width:none;max-height:none}.print-report-dialog-header,.print-report-dialog-controls,.print-report-dialog-actions{display:none!important}}.db-backup-overlay{z-index:4000}.db-backup-dialog{max-width:560px;width:min(96vw,560px)}.db-backup-body{padding:1.25rem 1.5rem;max-height:min(70vh,520px);overflow-y:auto}.db-backup-warning{margin:0 0 1rem;padding:.75rem 1rem;background:#fff3e0;border:1px solid #ff9800;border-radius:6px;font-size:.9rem;color:#5d4037}.db-backup-dir{font-size:.8rem;color:#666;margin:0 0 1rem;word-break:break-all}.db-backup-actions-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem;align-items:center}.db-backup-list{list-style:none;margin:0;padding:0;border:1px solid #e0e0e0;border-radius:6px;overflow:hidden}.db-backup-list li{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;padding:.6rem .75rem;border-bottom:1px solid #eee;font-size:.85rem}.db-backup-list li:last-child{border-bottom:none}.db-backup-list li:nth-child(odd){background:#fafafa}.db-backup-filename{flex:1;min-width:140px;font-family:ui-monospace,monospace;font-size:.8rem}.db-backup-meta{color:#777;font-size:.75rem}.db-backup-restore-section{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e0e0e0}.db-backup-restore-section h4{margin:0 0 .5rem;font-size:.95rem}.db-backup-confirm-input{width:100%;box-sizing:border-box;padding:.5rem .6rem;margin:.5rem 0;border:1px solid #ccc;border-radius:4px;font-size:.85rem}.db-backup-phrase-hint{font-size:.8rem;color:#c62828;margin:0 0 .5rem;padding:.5rem;background:#ffebee;border-radius:4px;-webkit-user-select:all;-moz-user-select:all;user-select:all}.timetable-toolbar{position:relative;z-index:100;background:#fff;border-radius:8px;margin-bottom:.5rem;box-shadow:0 2px 4px #0000001a;overflow:visible;will-change:transform,opacity;transform:translateZ(0);transition:transform .2s cubic-bezier(.4,0,.2,1),opacity .2s cubic-bezier(.4,0,.2,1),margin-bottom .2s cubic-bezier(.4,0,.2,1)}.timetable-toolbar.collapsed{transform:translateY(-100%) translateZ(0);opacity:0;margin-bottom:0;pointer-events:none;height:0;min-height:0;overflow:hidden}.timetable-toolbar.collapsed .toolbar-content{display:none}.timetable-toolbar.expanded{transform:translateY(0) translateZ(0);opacity:1;margin-bottom:.5rem;pointer-events:auto}.timetable-toolbar.expanded .toolbar-content{display:flex}.toolbar-content{display:flex;justify-content:flex-start;align-items:center;flex-wrap:wrap;gap:1rem;padding:.3rem .5rem;will-change:contents;overflow:visible}.toolbar-section{display:flex;align-items:center;gap:.5rem;overflow:visible}.toolbar-section label{font-weight:500;color:#2c3e50;font-size:.85rem;white-space:nowrap}.toolbar-section select,.toolbar-section input{padding:.3rem .5rem;border:1px solid #ddd;border-radius:4px;font-size:.85rem}.multi-select{position:relative;min-width:120px;max-width:160px;z-index:100}.multi-select-button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.3rem .5rem;border:1px solid #ddd;border-radius:4px;background-color:#fff;font-size:.85rem;cursor:pointer;text-align:left}.multi-select-button:focus{outline:2px solid #3498db;outline-offset:2px}.multi-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.multi-select-value.placeholder{color:#7f8c8d}.multi-select-indicator{font-size:.85rem;color:#2c3e50}.multi-select-clear{margin-left:.5rem;background:none;border:none;color:#3498db;cursor:pointer;font-size:.85rem;text-decoration:underline}.multi-select-menu{position:absolute;top:calc(100% + 4px);left:0;width:100%;max-height:14rem;overflow-y:auto;border:1px solid #ddd;border-radius:6px;background-color:#fff;box-shadow:0 8px 16px #0000001f;z-index:1000;padding:.25rem 0}.multi-select-option{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;cursor:pointer;font-size:.95rem}.multi-select-option:hover{background-color:#f0f6ff}.multi-select-option input{accent-color:#3498db}.multi-select-empty{padding:.75rem;text-align:center;color:#7f8c8d;font-size:.9rem}.toolbar-button{padding:.3rem .75rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .2s;white-space:nowrap;min-width:60px;height:28px;display:inline-flex;align-items:center;justify-content:center}.toolbar-button:hover{background-color:#2980b9}.toolbar-button:active{background-color:#21618c}.toolbar-button:disabled{opacity:.6;cursor:not-allowed}.toolbar-button-active{background-color:#e74c3c!important;color:#fff!important}.toolbar-button-active:hover{background-color:#c0392b!important}.data-management-container{position:relative;display:inline-block}.data-management-menu{position:absolute;top:100%;left:0;margin-top:4px;background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 8px #0000001a;z-index:1000;min-width:150px}.data-management-menu-item{width:100%;border-radius:0;border:none;text-align:left;padding:.5rem .75rem;background:transparent;color:#2c3e50;transition:background-color .2s;cursor:pointer;font-size:.85rem}.data-management-menu-item:not(:last-child){border-bottom:1px solid #eee}.data-management-menu-item:hover:not(:disabled){background-color:#f0f6ff}.data-management-menu-item:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 1024px){.timetable-toolbar{padding:.75rem;gap:1rem}.toolbar-section{gap:.75rem}.toolbar-section label{font-size:.9rem}.toolbar-section select,.toolbar-section input{font-size:.9rem;padding:.4rem}.toolbar-button{padding:.4rem .75rem;font-size:.9rem}}@media (max-width: 768px){.timetable-toolbar{flex-direction:column;align-items:stretch;padding:.75rem;gap:.75rem}.toolbar-section{flex-direction:column;align-items:stretch;gap:.5rem}.toolbar-section label{font-size:.85rem}.toolbar-section select,.toolbar-section input{width:100%;font-size:.85rem;padding:.5rem}.multi-select{width:100%}.multi-select-menu{max-height:12rem}.toolbar-button{width:100%;padding:.5rem;font-size:.85rem}}@media (max-width: 480px){.timetable-toolbar{padding:.5rem;gap:.5rem}.toolbar-section{gap:.4rem}.toolbar-section label{font-size:.8rem}.toolbar-section select,.toolbar-section input{font-size:.8rem;padding:.4rem}.multi-select-button{font-size:.8rem;padding:.4rem .5rem}.toolbar-button{font-size:.8rem;padding:.4rem}}.timetable-filter-bar-container{position:relative;background-color:#f8f9fa;border-top:1px solid #e0e0e0}.timetable-filter-bar{background-color:#f8f9fa;padding:.4rem .5rem;display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.filter-bar-content{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;width:100%}.filter-button-wrapper{position:relative}.filter-button-wrapper .multi-select{min-width:140px;max-width:200px}.filter-button-wrapper .multi-select-button{background-color:#fff;border:1px solid #d0d0d0;border-radius:4px;padding:.35rem .6rem;font-size:.85rem;transition:all .2s ease}.filter-button-wrapper .multi-select-button:hover{background-color:#f0f0f0;border-color:#3498db}.filter-button-wrapper.filter-active .multi-select-button,.filter-button-wrapper:has(.multi-select-menu) .multi-select-button{background-color:#3498db;border-color:#3498db;color:#fff}.filter-button-wrapper.filter-active .multi-select-button .multi-select-value,.filter-button-wrapper:has(.multi-select-menu) .multi-select-button .multi-select-value{color:#fff}.filter-button-wrapper.filter-active .multi-select-button .multi-select-indicator,.filter-button-wrapper:has(.multi-select-menu) .multi-select-button .multi-select-indicator{color:#fff}.filter-button-wrapper .multi-select-button:focus{outline:2px solid #3498db;outline-offset:2px}.filter-button-wrapper .multi-select-clear{position:absolute;right:28px;top:50%;transform:translateY(-50%);background:#dc26261a;border:none;color:#dc2626;padding:2px 6px;border-radius:3px;font-size:.7rem;cursor:pointer;z-index:10}.filter-button-wrapper .multi-select-clear:hover{background:#dc262633}.filter-button-wrapper .multi-select-menu{margin-top:4px;z-index:1000}@media (max-width: 1024px){.timetable-filter-bar{padding:.35rem .4rem}.filter-button-wrapper .multi-select{min-width:120px;max-width:180px}.filter-button-wrapper .multi-select-button{padding:.3rem .5rem;font-size:.8rem}}@media (max-width: 768px){.timetable-filter-bar{padding:.3rem;gap:.4rem}.filter-bar-content{gap:.4rem}.filter-button-wrapper{flex:1;min-width:100px}.filter-button-wrapper .multi-select{width:100%;min-width:100px;max-width:none}}@media (max-width: 480px){.timetable-filter-bar{padding:.25rem}.filter-button-wrapper .multi-select-button{padding:.25rem .4rem;font-size:.75rem}}.detail-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.detail-dialog-content{background:#fff;border-radius:6px;width:90%;max-width:420px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.detail-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:6px 6px 0 0;cursor:move}.detail-dialog-header:active{cursor:grabbing}.detail-dialog-header h3{margin:0;font-size:1rem;font-weight:600}.detail-dialog-close{background:none;border:none;color:#fff;font-size:1.25rem;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:3px;transition:background-color .2s}.detail-dialog-close:hover{background-color:#fff3}.detail-dialog-body{flex:1;min-height:0;overflow-y:auto;padding:.75rem 1rem;-webkit-user-select:text;-moz-user-select:text;user-select:text}.detail-section{margin-bottom:.75rem}.detail-section-sub{margin:0 0 .5rem;font-size:.78rem;color:#666;line-height:1.35}.detail-sync-exchange-note{margin-top:.35rem}.detail-exchange-mirror-panel{margin-top:.6rem}.detail-exchange-mirror-toggle{width:100%;padding:.42rem .55rem;border:1px solid #cbd5e1;background:#fff;border-radius:4px;color:#334155;font-size:.82rem;font-weight:600;cursor:pointer}.detail-exchange-mirror-toggle:hover{background:#f8fafc}.detail-exchange-sync-collapsed{margin-top:.5rem}.detail-sync-in-collapse{margin-top:.65rem;padding-top:.55rem;border-top:1px solid #e8edf2}.detail-sync-in-collapse-title{font-size:.875rem;font-weight:600;margin:0 0 .35rem;color:#2c3e50;border-bottom:1px solid #ecf0f1;padding-bottom:.2rem}.detail-exchange-mirror-grid{margin-top:.65rem;padding:.5rem .55rem;background:#f7fafc;border:1px solid #e2e8f0;border-radius:4px}.detail-exchange-mirror-grid-title{font-weight:600;font-size:.85rem;color:#2c3e50;margin-bottom:.35rem}.detail-exchange-mirror-grid-note{margin:0 0 .45rem;font-size:.75rem;color:#64748b;line-height:1.4}.detail-exchange-mirror-grid-list{list-style:none;margin:0;padding:0;font-size:.82rem}.detail-exchange-mirror-grid-list li{display:flex;flex-wrap:wrap;align-items:baseline;gap:.15rem .25rem;padding:.2rem 0;border-bottom:1px solid #edf2f7}.detail-exchange-mirror-grid-list li:last-child{border-bottom:none}.detail-exchange-mirror-label{font-weight:500;color:#34495e}.detail-exchange-mirror-sep{color:#94a3b8}.detail-exchange-mirror-place{color:#1a202c}.detail-exchange-section .detail-exchange-summary{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem}.detail-exchange-row{display:flex;flex-wrap:wrap;gap:.35rem .75rem;align-items:baseline}.detail-exchange-label{font-weight:600;color:#34495e;min-width:3rem}.detail-exchange-value{flex:1;min-width:0;word-break:break-word}.detail-exchange-hint{margin:.5rem 0 0;font-size:.78rem;color:#777;line-height:1.35}.detail-exchange-unplaced-note{margin:0 0 .5rem;font-size:.78rem;color:#5d4e37;line-height:1.4;padding:.45rem .5rem;background:#fff9e6;border:1px solid #f0e0b2;border-radius:4px}.detail-two-pane{display:flex;gap:.75rem;margin-bottom:.75rem}.detail-pane{flex:1;margin-bottom:0;min-width:0}.detail-section h4{font-size:.875rem;font-weight:600;margin-bottom:.375rem;color:#2c3e50;border-bottom:1px solid #ecf0f1;padding-bottom:.2rem}.detail-item{display:flex;justify-content:space-between;margin-bottom:.375rem;font-size:.85rem}.detail-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:.375rem .75rem}.detail-item label{font-weight:500;color:#7f8c8d}.detail-sync-empty{margin:0;font-size:.85rem;color:#7f8c8d}.detail-sync-links{display:flex;flex-direction:column;gap:0}.detail-item span{color:#2c3e50}.detail-list{list-style:none;padding:0;margin:0}.detail-list li{padding:.35rem .5rem;background-color:#f8f9fa;margin-bottom:.2rem;border-radius:3px;font-size:.85rem}.detail-warning{background-color:#fff3cd;padding:.5rem .75rem;border-radius:3px;border:1px solid #ffc107}.detail-warning h4{color:#856404}.detail-actions{display:flex;flex-direction:row;flex-wrap:wrap;gap:.4rem;margin-top:.75rem;padding-top:.75rem;border-top:1px solid #ddd}.action-button{padding:.5rem .75rem;background-color:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background-color .2s;min-height:36px;flex:1 1 calc(50% - .2rem);min-width:0}.action-button:hover{background-color:#2980b9}.action-button-warning{background-color:#f39c12;color:#fff}.action-button-warning:hover:not(:disabled){background-color:#e67e22}.action-button-danger{background-color:#e74c3c}.action-button-danger:hover{background-color:#c0392b}.action-button:disabled{opacity:.6;cursor:not-allowed}.loading-spinner{display:inline-block;width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .6s linear infinite;margin-right:.4rem;vertical-align:middle}@media (max-width: 1024px){.detail-dialog-content{max-width:380px}.detail-dialog-header{padding:.5rem .75rem}.detail-dialog-header h3{font-size:.95rem}.detail-dialog-body{padding:.65rem .85rem}.detail-two-pane{flex-direction:column;gap:.5rem}.detail-info-grid{grid-template-columns:1fr;gap:.375rem}}@media (max-width: 768px){.detail-dialog-content{width:95%;max-width:95%;max-height:95vh}.detail-dialog-header{padding:.75rem}.detail-dialog-header h3{font-size:1rem}.detail-dialog-body{padding:.75rem}.detail-section{margin-bottom:1rem}.detail-section h4{font-size:.9rem}.detail-item{font-size:.85rem}.detail-list li{font-size:.85rem;padding:.4rem}.action-button{font-size:.9rem;padding:.6rem}.detail-two-pane{flex-direction:column;gap:.5rem}.detail-info-grid{grid-template-columns:1fr;gap:.375rem}}@media (max-width: 480px){.detail-dialog-content{width:100%;max-width:100%;max-height:100vh;border-radius:0}.detail-dialog-header{padding:.5rem;border-radius:0}.detail-dialog-header h3{font-size:.9rem}.detail-dialog-body{padding:.5rem}.detail-section{margin-bottom:.75rem}.detail-section h4{font-size:.85rem}.detail-item{font-size:.8rem;flex-direction:column;align-items:flex-start;gap:.25rem}.detail-list li{font-size:.8rem;padding:.35rem}.action-button{font-size:.85rem;padding:.5rem}}.detail-section--cell-id-row h4{margin:0 0 .4rem;font-size:.9rem}.detail-cell-id-block{display:flex;flex-direction:column;align-items:flex-start;gap:.45rem;width:100%}.detail-cell-id-code{display:block;width:100%;box-sizing:border-box;font-size:.72rem;word-break:break-all;background:#f4f4f4;padding:.35rem .45rem;border-radius:3px;line-height:1.35}.detail-cell-id-copy{font-size:.75rem;padding:.2rem .5rem;cursor:pointer}.cell-sync-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a73;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:10050;display:flex;align-items:center;justify-content:center;padding:1rem}.cell-sync-dialog{background:#fff;border-radius:12px;width:min(100%,560px);max-height:min(90vh,720px);display:flex;flex-direction:column;box-shadow:0 25px 50px -12px #00000038,0 0 0 1px #0f172a0f;overflow:hidden}.cell-sync-dialog__header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:1.1rem 1.25rem .85rem;border-bottom:1px solid #e8ecf1;background:linear-gradient(180deg,#fafbfc,#fff)}.cell-sync-dialog__title-wrap{flex:1;min-width:0}.cell-sync-dialog__title{margin:0;font-size:1.125rem;font-weight:700;color:#1e293b;letter-spacing:.02em}.cell-sync-dialog__subtitle{margin:.35rem 0 0;font-size:.8125rem;color:#64748b;line-height:1.45}.cell-sync-dialog__close{flex-shrink:0;width:36px;height:36px;border:none;background:#f1f5f9;color:#64748b;border-radius:8px;font-size:1.35rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s}.cell-sync-dialog__close:hover{background:#e2e8f0;color:#334155}.cell-sync-dialog__body{padding:1rem 1.25rem;overflow-y:auto;flex:1;min-height:0}.cell-sync-help{margin:0 0 1rem;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc;font-size:.8125rem}.cell-sync-help summary{padding:.55rem .75rem;cursor:pointer;font-weight:600;color:#475569;list-style:none}.cell-sync-help summary::-webkit-details-marker{display:none}.cell-sync-help summary:before{content:"▸ ";display:inline-block;transition:transform .15s;color:#94a3b8}.cell-sync-help[open] summary:before{transform:rotate(90deg)}.cell-sync-help__text{margin:0;padding:0 .75rem .65rem;color:#64748b;line-height:1.55}.cell-sync-help__text strong{color:#334155}.cell-sync-anchor{margin-bottom:1rem;padding:0;border-radius:10px;border:1px solid #e2e8f0;background:#f8fafc;overflow:hidden}.cell-sync-anchor__label{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;margin:0;padding:.55rem .75rem .35rem}.cell-sync-anchor__value{font-size:.9rem;font-weight:600;line-height:1.45;word-break:break-word;padding:.65rem .85rem .75rem;border-radius:0 0 9px 9px}.cell-sync-anchor__value--unplaced{background:#fef3c7;color:#92400e}.cell-sync-section-title{margin:0 0 .5rem;font-size:.8125rem;font-weight:700;color:#334155}.cell-sync-search{width:100%;padding:.55rem .75rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.875rem;margin-bottom:.5rem;transition:border-color .15s,box-shadow .15s}.cell-sync-search::-moz-placeholder{color:#94a3b8}.cell-sync-search::placeholder{color:#94a3b8}.cell-sync-search:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f626}.cell-sync-picker{max-height:280px;overflow-y:auto;border:1px solid #e2e8f0;border-radius:10px;background:#fafafa}.cell-sync-picker__empty{padding:1.5rem 1rem;text-align:center;font-size:.875rem;color:#94a3b8}.cell-sync-row{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:.5rem .65rem;align-items:center;width:100%;padding:.65rem .75rem;border:none;border-bottom:1px solid rgba(15,23,42,.08);cursor:pointer;text-align:left;font:inherit;transition:filter .12s}.cell-sync-row:last-child{border-bottom:none}.cell-sync-row:hover{filter:brightness(.97)}.cell-sync-row:focus-visible{outline:2px solid #2563eb;outline-offset:-2px;z-index:1}.cell-sync-row--selected{filter:brightness(.94);outline:2px solid #2563eb;outline-offset:-2px;z-index:1}.cell-sync-badge{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;max-width:5.5rem;padding:.2rem .45rem;border-radius:6px;font-size:.75rem;font-weight:700;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;background:#ffffffe6;color:#0f172a;border:1px solid rgba(15,23,42,.12);box-shadow:0 1px 2px #0000000a}.cell-sync-badge--sn{border-color:#05966959}.cell-sync-row__center{min-width:0;display:flex;flex-direction:column;gap:.15rem}.cell-sync-row__subject{font-size:.875rem;font-weight:600;color:inherit}.cell-sync-row__slot{font-size:.75rem;color:inherit;opacity:.88;font-variant-numeric:tabular-nums}.cell-sync-row__teacher{font-size:.8125rem;color:inherit;opacity:.92;font-weight:600;white-space:nowrap}.cell-sync-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}.cell-sync-btn-primary{padding:.55rem 1.1rem;border:none;border-radius:8px;font-size:.875rem;font-weight:600;cursor:pointer;background:linear-gradient(180deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 1px 2px #2563eb59;transition:filter .15s,transform .05s}.cell-sync-btn-primary:hover:not(:disabled){filter:brightness(1.05)}.cell-sync-btn-primary:active:not(:disabled){transform:translateY(1px)}.cell-sync-btn-primary:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed;color:#f1f5f9}.cell-sync-registered{margin-top:1.25rem;padding-top:1rem;border-top:1px solid #e8ecf1}.cell-sync-registered__title{margin:0 0 .65rem;font-size:.8125rem;font-weight:700;color:#334155}.cell-sync-registered__empty{margin:0;padding:.75rem;font-size:.875rem;color:#94a3b8;text-align:center;background:#f8fafc;border-radius:8px;border:1px dashed #cbd5e1}.cell-sync-link-card{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.65rem .75rem;margin-bottom:.5rem;border:1px solid rgba(15,23,42,.1);border-radius:8px;box-shadow:0 1px 2px #0f172a0d}.cell-sync-link-card:last-child{margin-bottom:0}.cell-sync-link-card__text{font-size:.8125rem;color:inherit;line-height:1.45;word-break:break-word}.cell-sync-btn-danger{flex-shrink:0;padding:.35rem .65rem;font-size:.75rem;font-weight:600;border:1px solid #fecaca;border-radius:6px;background:#fff;color:#dc2626;cursor:pointer;transition:background .15s,border-color .15s}.cell-sync-btn-danger:hover:not(:disabled){background:#fef2f2;border-color:#f87171}.cell-sync-btn-danger:disabled{opacity:.5;cursor:not-allowed}.cell-sync-dialog__footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.85rem 1.25rem;border-top:1px solid #e8ecf1;background:#fafbfc}.cell-sync-btn-secondary{padding:.5rem 1rem;border:1px solid #cbd5e1;border-radius:8px;font-size:.875rem;font-weight:500;background:#fff;color:#475569;cursor:pointer;transition:background .15s,border-color .15s}.cell-sync-btn-secondary:hover{background:#f8fafc;border-color:#94a3b8}.cell-sync-count{font-size:.75rem;font-weight:500;color:#94a3b8;margin-left:.35rem}.timetable-font-sidebar{width:280px;min-width:280px;flex-shrink:0;background:#f8f9fa;border-right:1px solid #dee2e6;display:flex;flex-direction:column;overflow:hidden;box-shadow:2px 0 8px #0000000f}.timetable-font-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.75rem 1rem;background:#2c3e50;color:#fff;flex-shrink:0}.timetable-font-sidebar-title{margin:0;font-size:1rem;font-weight:600}.timetable-font-sidebar-close{background:none;border:none;color:#ffffffe6;font-size:1.5rem;line-height:1;cursor:pointer;padding:0 .25rem;border-radius:4px;transition:background-color .2s,color .2s}.timetable-font-sidebar-close:hover{background:#ffffff26;color:#fff}.timetable-font-sidebar-body{flex:1;overflow-y:auto;padding:1rem}.timetable-display-color-controls{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.timetable-display-color-btn,.timetable-display-color-group button{min-height:2rem;padding:.35rem .6rem;font-size:.875rem;border:1px solid #ced4da;border-radius:4px;background:#fff;color:#212529;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}.timetable-display-color-btn:hover,.timetable-display-color-group button:hover{background:#e9ecef;border-color:#adb5bd}.timetable-display-color-btn.active,.timetable-display-color-group button.active{background:#34495e;border-color:#2c3e50;color:#fff}.timetable-display-color-group{display:inline-flex;gap:.25rem}.timetable-font-sidebar-section{margin-bottom:1.25rem}.timetable-font-sidebar-section:last-of-type{margin-bottom:1rem}.timetable-font-sidebar-section-title{margin:0 0 .5rem;font-size:.8rem;font-weight:600;color:#495057;text-transform:uppercase;letter-spacing:.02em}.timetable-font-sidebar-subtitle{display:block;margin:.75rem 0 .25rem;font-size:.75rem;color:#6c757d}.timetable-font-sidebar-section .timetable-font-sidebar-subtitle:first-of-type{margin-top:.25rem}.timetable-font-sidebar-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.timetable-font-sidebar-row:last-child{margin-bottom:0}.timetable-font-sidebar-label{font-size:.875rem;color:#212529;flex:1;min-width:0}.timetable-font-sidebar-input-wrap{display:flex;align-items:center;gap:.25rem;flex-shrink:0}.timetable-font-sidebar-number{width:56px;padding:.35rem .5rem;font-size:.875rem;border:1px solid #ced4da;border-radius:4px;text-align:right}.timetable-font-sidebar-number:focus{outline:none;border-color:#34495e;box-shadow:0 0 0 2px #34495e33}.timetable-font-sidebar-unit{font-size:.75rem;color:#6c757d}.timetable-font-sidebar-select{padding:.35rem .5rem;font-size:.875rem;border:1px solid #ced4da;border-radius:4px;background:#fff;min-width:100px}.timetable-font-sidebar-select:focus{outline:none;border-color:#34495e}.timetable-font-sidebar-actions{margin-top:1rem;padding-top:1rem;border-top:1px solid #dee2e6}.timetable-font-sidebar-reset{width:100%;padding:.5rem .75rem;font-size:.875rem;color:#495057;background:#fff;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;transition:background-color .2s,border-color .2s}.timetable-font-sidebar-reset:hover{background:#e9ecef;border-color:#adb5bd}.dialog-content{background:#fff;border-radius:8px;width:90%;max-width:550px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:8px 8px 0 0;cursor:move}.dialog-header:active{cursor:grabbing}.dialog-body{flex:1;min-height:0;overflow-y:auto;padding:1rem 1.25rem;-webkit-user-select:text;-moz-user-select:text;user-select:text}.form-row{display:flex;gap:1rem;margin-bottom:1rem}.form-group{margin-bottom:1rem;flex:1}.form-row .form-group{margin-bottom:0}.form-group>label:first-child{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50;font-size:.95rem}.form-group select{width:100%;padding:.5rem .625rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;background-color:#fff}.checkbox-group{display:flex;flex-direction:row;flex-wrap:wrap;gap:.375rem;max-height:180px;overflow-y:auto;overflow-x:hidden;border:1px solid #ddd;border-radius:4px;padding:.625rem;background-color:#fff}.checkbox-group::-webkit-scrollbar{width:10px}.checkbox-group::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.checkbox-group::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:4px}.checkbox-group::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.checkbox-label{display:inline-flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem!important;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:background-color .2s,color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-sizing:border-box;white-space:nowrap}.checkbox-label:hover{background-color:#f0f7ff;color:#2c3e50}.checkbox-label.checkbox-checked{background-color:#e8f4f8;font-weight:500}.checkbox-label:has(input[type=checkbox]:checked){background-color:#e8f4f8;font-weight:500}.checkbox-label input[type=checkbox]{cursor:pointer;width:1.15rem!important;height:1.15rem!important;flex-shrink:0;margin:0!important;padding:0!important;accent-color:#3498db;border:2px solid #bdc3c7;border-radius:3px;display:inline-block!important;vertical-align:middle}.checkbox-label input[type=checkbox]:checked{background-color:#3498db;border-color:#3498db}.checkbox-label input[type=checkbox]:focus{outline:2px solid #3498db;outline-offset:2px}.checkbox-label span{margin:0;padding:0;font-size:.95rem;line-height:1.15rem;display:inline;vertical-align:middle}.dialog-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:.75rem 1rem;border-top:1px solid #ddd;background-color:#f8f9fa;border-radius:0 0 8px 8px}.button-primary,.button-secondary{padding:.625rem 1.25rem;border:none;border-radius:4px;cursor:pointer;font-size:.95rem;transition:background-color .2s;font-weight:500}.button-primary{background-color:#3498db;color:#fff}.button-primary:hover{background-color:#2980b9}.button-secondary{background-color:#95a5a6;color:#fff}.button-secondary:hover{background-color:#7f8c8d}.button-primary:disabled,.button-secondary:disabled{opacity:.6;cursor:not-allowed}.timetable-exchange-unlink.button-secondary:not(:disabled){background-color:#fff;color:#2c3e50;border:1px solid #bdc3c7}.timetable-exchange-unlink.button-secondary:not(:disabled):hover{background-color:#f4f6f7}.timetable-exchange-regen{padding:.6rem 1.1rem;border-radius:4px;font-size:.95rem;font-weight:600;cursor:pointer;border:1px solid #1e8449;background:linear-gradient(180deg,#2ecc71,#27ae60);color:#fff;box-shadow:0 1px 2px #0000001f}.timetable-exchange-regen:hover:not(:disabled){filter:brightness(1.05)}.timetable-exchange-regen:disabled{opacity:.55;cursor:not-allowed}@media (max-width: 1024px){.dialog-content{max-width:500px;width:85%}.dialog-header{padding:.75rem}.dialog-header h3{font-size:1.1rem;color:#fff!important}.dialog-body{padding:1rem}.form-group{margin-bottom:1rem}}@media (max-width: 768px){.dialog-content{max-width:95%;width:95%;max-height:95vh;margin:.5rem}.dialog-header{padding:.75rem}.dialog-header h3{font-size:1rem;color:#fff!important}.dialog-body{padding:1rem}.form-group{margin-bottom:1rem}.form-group label{font-size:.9rem}.form-group select{font-size:.9rem;padding:.5rem}.checkbox-group{max-height:150px;font-size:.9rem}.checkbox-label{font-size:.9rem}.dialog-footer{padding:.75rem;flex-direction:column-reverse;gap:.5rem}.button-primary,.button-secondary{width:100%;padding:.75rem;font-size:.9rem}}@media (max-width: 480px){.dialog-content{max-width:100%;width:100%;max-height:100vh;margin:0;border-radius:0}.dialog-header{padding:.5rem;border-radius:0}.dialog-header h3{font-size:.9rem;color:#fff!important}.dialog-body{padding:.75rem}.form-group{margin-bottom:.75rem}.form-group label{font-size:.85rem}.form-group select{font-size:.85rem;padding:.4rem}.checkbox-group{max-height:120px;font-size:.85rem;padding:.4rem}.checkbox-label{font-size:.85rem;padding:.2rem}.dialog-footer{padding:.5rem;border-radius:0}.button-primary,.button-secondary{font-size:.85rem;padding:.6rem}}.dialog-content-large{max-width:800px}.loading-message{padding:2rem;text-align:center;color:#7f8c8d}.preview-summary,.preview-conflicts,.preview-cells-to-create,.preview-cells-to-move{margin-bottom:1.5rem;padding:1rem;background-color:#f8f9fa;border-radius:4px}.preview-summary h4,.preview-conflicts h4,.preview-cells-to-create h4,.preview-cells-to-move h4{margin-top:0;margin-bottom:.5rem;color:#2c3e50;font-size:1rem}.preview-summary ul,.preview-conflicts ul{margin:0;padding-left:1.5rem}.conflict-item{color:#e74c3c;margin-bottom:.25rem}.cells-list{max-height:300px;overflow-y:auto;display:flex;flex-direction:column;gap:.5rem}.cell-preview-item{padding:.5rem;background-color:#fff;border-radius:4px;border:1px solid #ddd;font-size:.9rem}.preview-conflicts{background-color:#fff3cd;border:1px solid #ffc107}.dialog-overlay.placement-count-overlay .dialog-content.placement-count-dialog{display:grid;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr);width:-moz-max-content;width:max-content;max-width:min(98vw,1920px);min-width:0;align-self:center;box-sizing:border-box;padding:0;flex:0 0 auto}.dialog-overlay.placement-count-overlay .dialog-content.placement-count-dialog .dialog-body.placement-count-dialog-body{box-sizing:border-box;justify-self:stretch;width:100%;min-width:0;flex:none!important;flex-grow:0!important;min-height:0;padding:.75rem .5rem}.placement-count-inner{display:block;width:100%;min-width:0;box-sizing:border-box}.placement-count-note{margin-bottom:.75rem;color:#555;font-size:.9rem;white-space:normal;overflow-wrap:break-word;word-break:break-word;max-width:100%;min-width:0}.placement-count-table-wrapper{display:inline-block;width:-moz-max-content;width:max-content;max-width:min(98vw,1920px);max-height:60vh;overflow:auto;border:1px solid #e0e0e0;border-radius:6px}.placement-count-table{width:-moz-max-content;width:max-content;border-collapse:collapse;font-size:.9rem;background:#fff}.placement-count-table th,.placement-count-table td{border:1px solid #e0e0e0;padding:6px;text-align:center;white-space:nowrap;vertical-align:middle}.placement-count-table th{background:#f8f9fb;position:sticky;top:0;z-index:1}.placement-count-table thead th:first-child{left:0;z-index:5;box-shadow:2px 0 4px #0f172a14;min-width:7.5rem}.placement-count-table tbody td.placement-count-class{position:sticky;left:0;z-index:2;background:#fff;box-shadow:2px 0 4px #0f172a0f}.placement-count-table thead th:not(:first-child):not(:last-child){white-space:normal;max-width:5.5rem;word-break:break-word;font-size:.82rem;line-height:1.2;vertical-align:bottom}.placement-count-class{text-align:left;font-weight:600}.placement-count-class-sn{border-left:3px solid #2196f3;color:#1565c0}.placement-count-cell{font-variant-numeric:tabular-nums;min-width:-moz-max-content;min-width:max-content}.placement-count-cell.placement-count-insufficient{background-color:#fff9c4}.placement-count-cell.placement-count-excess{background-color:#c8e6c9}.placement-count-total{font-weight:600;background:#fafafa}.placement-count-total.placement-count-insufficient{background-color:#fff9c4}.placement-count-total.placement-count-excess{background-color:#c8e6c9}.placement-count-cell-inner{display:inline-flex;align-items:center;justify-content:center;gap:3px;flex-wrap:nowrap;white-space:nowrap}.placement-count-placed{font-variant-numeric:tabular-nums}.placement-count-sep{opacity:.7}.placement-count-target-wrap{display:inline-flex;align-items:center;gap:3px;flex-shrink:0}.dialog-overlay.placement-count-overlay .placement-count-target-input{box-sizing:border-box;width:2.25rem;min-width:0;max-width:2.75rem;padding:1px 3px;font-size:inherit;font-variant-numeric:tabular-nums;border:1px solid #b0bec5;border-radius:4px;text-align:center;-webkit-appearance:textfield;appearance:textfield;-moz-appearance:textfield}.placement-count-target-input::-webkit-outer-spin-button,.placement-count-target-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.placement-count-target-input:focus{outline:2px solid #1976d2;outline-offset:1px}.placement-count-reset-auto{padding:1px 6px;font-size:.75rem;line-height:1.2;border:1px solid #90a4ae;border-radius:4px;background:#fff;color:#455a64;cursor:pointer;white-space:nowrap}.placement-count-reset-auto:hover:not(:disabled){background:#eceff1}.placement-count-reset-auto:disabled{opacity:.5;cursor:not-allowed}.placement-count-target-readonly{font-variant-numeric:tabular-nums;min-width:1.25rem;display:inline-block;text-align:center}.cell-fate-diagnosis-overlay{z-index:4000}.cell-fate-diagnosis-body{max-height:min(78vh,900px);overflow-y:auto}.cell-fate-diagnosis-intro,.cell-fate-diagnosis-meta,.cell-fate-footer{font-size:.9rem;line-height:1.5;color:var(--color-text-secondary, #444)}.cell-fate-diagnosis-meta{margin-bottom:1rem}.cell-fate-categories{display:flex;flex-direction:column;gap:1.25rem}.cell-fate-category{border:1px solid var(--color-border, #ddd);border-radius:6px;padding:.75rem 1rem;background:var(--color-surface-muted, #fafafa)}.cell-fate-category h4{margin:0 0 .35rem;font-size:1rem}.cell-fate-count{margin:0 0 .35rem;font-size:.95rem}.cell-fate-note{margin:0 0 .5rem;font-size:.85rem;line-height:1.45}.cell-fate-patterns{margin:0 0 .5rem 1.25rem;font-size:.85rem}.cell-fate-samples-title{margin:.5rem 0 .25rem;font-size:.85rem;font-weight:600}.cell-fate-samples{margin:0;padding-left:1.25rem;font-size:.88rem;line-height:1.45}.cell-fate-summary-line{margin-bottom:.15rem}.cell-fate-support-id{margin:0 0 .5rem;font-size:.8rem}.cell-fate-support-id code{display:block;margin-top:.25rem;word-break:break-all;font-size:.75rem}.cell-fate-diagnosis-loading,.cell-fate-diagnosis-error{padding:1rem 0}.cell-fate-diagnosis-error-detail{font-size:.85rem;color:#b00020}.unplaced-lessons-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:1000;pointer-events:none}.unplaced-lessons-panel{position:fixed;width:782px;max-width:95vw;max-height:80vh;background:#fff;border-radius:8px;box-shadow:0 4px 20px #0000004d;display:flex;flex-direction:column;pointer-events:auto;z-index:1001;right:20px;top:100px;left:auto;transform:none}.unplaced-lessons-panel--sidebar{right:0;top:0;bottom:0;left:auto;width:391px;max-width:391px;min-width:280px;max-height:none;height:100vh;border-radius:8px 0 0 8px;box-shadow:-2px 0 16px #0003}.unplaced-lessons-panel--sidebar .unplaced-lessons-header{flex-shrink:0}.unplaced-lessons-sidebar-header-top{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:.5rem}.unplaced-lessons-sidebar-header-top-row{display:flex;align-items:center;gap:.35rem;flex-wrap:nowrap;flex:1;min-width:0;overflow-x:auto;overflow-y:hidden}.unplaced-lessons-sidebar-header-top h3{margin:0;font-size:.95rem;flex-shrink:0;white-space:nowrap}.unplaced-lessons-sidebar-header-top-row .unplaced-lessons-sidebar-badges,.unplaced-lessons-close--sidebar{flex-shrink:0}.unplaced-lessons-sidebar-badges{display:flex;align-items:center;gap:.25rem}.unplaced-lessons-sidebar-badges .unplaced-lessons-count-badge{font-size:.7rem;padding:.15rem .3rem}.unplaced-lessons-sidebar-tabs-wrap{display:flex;flex-direction:column;flex-wrap:nowrap;align-items:stretch;gap:.4rem;min-height:0}.unplaced-lessons-sidebar-tabs-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.35rem;min-height:0;overflow-x:auto;overflow-y:hidden}.unplaced-lessons-sidebar-tabs{display:flex;flex-wrap:nowrap;gap:.15rem;border-bottom:none;padding-bottom:0;flex-shrink:0}.unplaced-lessons-sidebar-tab{font-size:.8rem;padding:.22rem .4rem;min-height:2.125rem;box-sizing:border-box;border:none;border-radius:4px;background:#ffffff1a;color:#ffffffe6;cursor:pointer;transition:background .15s,color .15s;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.unplaced-lessons-sidebar-tab:hover{background:#ffffff2e}.unplaced-lessons-sidebar-tab--active{background:#fffffff2;color:#363d44;font-weight:600}.unplaced-lessons-sidebar-tabs-divider{display:inline-block;width:1px;height:1.25rem;background:#ffffff59;flex-shrink:0;margin:0 .15rem}.unplaced-lessons-sidebar-tab-content{min-height:0;display:flex;flex-wrap:wrap;align-items:center;gap:.2rem;min-width:0}.unplaced-lessons-sidebar-section-buttons{display:flex;flex-wrap:nowrap;gap:.2rem;align-items:center}.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-header-btn,.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-primary-btn,.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-display-mode-toggle,.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-close{min-width:2.5rem;min-height:2.125rem;box-sizing:border-box;font-size:.8rem;padding:.22rem .36rem;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector{min-height:2.125rem;box-sizing:border-box;display:inline-flex}.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector-button,.unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector button{min-height:2.125rem;box-sizing:border-box;font-size:.8rem;padding:.22rem .36rem;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-header-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-create-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-generate-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-auto-place-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-batch-place-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-fix-duplicates-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-bulk-lock-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-batch-unplace-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-delete-all-btn,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-mode-toggle{background:#3d5a73;color:#fff}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-header-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-create-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-generate-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-auto-place-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-batch-place-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-fix-duplicates-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-bulk-lock-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-batch-unplace-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-delete-all-btn:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-mode-toggle:hover{background:#4d6d87;color:#fff}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector-button,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector button{background:#fff!important;color:#363d44!important;border-color:#00000026!important}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector-button:hover,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector button:hover{background:#f0f0f0!important;color:#363d44!important}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector-button.active,.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-color-mode-selector button.active{background:#3d5a73!important;color:#fff!important;border-color:#415a72!important}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-mode-toggle-active{background:#5a7fa3;color:#fff}.unplaced-lessons-sidebar-tab-content .unplaced-lessons-sidebar-section-buttons .unplaced-lessons-mode-toggle-active:hover{background:#6b92b8;color:#fff}.unplaced-lessons-panel--sidebar .unplaced-lessons-content-wrapper{min-height:0;flex:1}.unplaced-lessons-panel--sidebar .unplaced-lessons-index-sidebar{width:6.5rem;min-width:6.5rem;flex-shrink:0}.unplaced-lessons-panel--sidebar .unplaced-lessons-index-grouping-tab{font-size:.7rem;padding:.35rem .15rem}.unplaced-lessons-panel--sidebar .unplaced-lessons-body{min-width:0;overflow:auto}.unplaced-lessons-header{display:flex;flex-direction:column;gap:.25rem;padding:.5rem .75rem;border-bottom:1px solid rgba(255,255,255,.15);background:#363d44;border-radius:8px 8px 0 0;-webkit-user-select:none;-moz-user-select:none;user-select:none;overflow:visible;position:relative;z-index:10}.unplaced-lessons-header select{-webkit-user-select:auto;-moz-user-select:auto;user-select:auto}.unplaced-lessons-panel{--unplaced-header-bg: #363d44;--unplaced-btn-normal: #51575e;--unplaced-btn-normal-hover: #5d646d;--unplaced-btn-active-bg: #ffffff;--unplaced-btn-active-text: #4d5156;--unplaced-btn-danger: #cb3636;--unplaced-btn-danger-hover: #b82e2e;--unplaced-btn-secondary-bg: rgba(255, 255, 255, .15);--unplaced-btn-secondary-hover: rgba(255, 255, 255, .25)}.unplaced-lessons-mode-toggle{padding:.26rem .5rem;background:var(--unplaced-btn-secondary-bg);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;transition:background .2s ease;white-space:nowrap;min-width:5.75rem;text-align:center;box-sizing:border-box}.unplaced-lessons-mode-toggle:hover{background:var(--unplaced-btn-secondary-hover)}.unplaced-lessons-mode-toggle-active{background:var(--unplaced-btn-active-bg);color:var(--unplaced-btn-active-text);border:none}.unplaced-lessons-mode-toggle-active:hover{background:#f0f0f0}.unplaced-lessons-header-top{display:flex;justify-content:space-between;align-items:center;overflow:visible;position:relative;z-index:11}.unplaced-lessons-header h3{margin:0;font-size:1rem;font-weight:600;color:#fff}.unplaced-lessons-header-controls{display:flex;gap:.35rem;align-items:center}.unplaced-lessons-count-badge{font-size:.8rem;font-weight:500;padding:.2rem .4rem;border-radius:4px;border:none}.unplaced-lessons-count-badge-remaining{background:#fff3;color:#fff}.unplaced-lessons-count-badge-placed{background:#4caf5066;color:#e8f5e9}.unplaced-lessons-count-badge-total{background:#fff3;color:#fff}.unplaced-lessons-count-badge-error{background:#cb363680;color:#fff;font-weight:600}.unplaced-lessons-count-badge-warning{background:#fbbf2466;color:#fffde7;font-weight:600}.unplaced-lessons-grouping-select{padding:.26rem .45rem;border:1px solid rgba(255,255,255,.3);border-radius:4px;background:#ffffff26;color:#fff;font-size:.8rem;cursor:pointer;position:relative;z-index:1000;appearance:auto;-webkit-appearance:menulist;-moz-appearance:menulist;pointer-events:auto;min-height:1.75rem}.unplaced-lessons-grouping-select:hover{background:#ffffff40}.unplaced-lessons-grouping-select option{background:var(--unplaced-header-bg);color:#fff}.unplaced-lessons-header-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem}.unplaced-lessons-header-actions--stacked{flex-direction:column;align-items:stretch;gap:.4rem}.unplaced-lessons-dialog-tabs-row{display:flex;flex-wrap:nowrap;align-items:center;gap:.25rem;overflow-x:auto}.unplaced-lessons-dialog-tab{flex-shrink:0;min-height:2.375rem;box-sizing:border-box;padding:.32rem .6rem;font-size:.95rem;font-weight:500;border:none;border-radius:4px;background:#ffffff40;color:#fffffff2;cursor:pointer;transition:background .15s,color .15s;display:inline-flex;align-items:center;justify-content:center}.unplaced-lessons-dialog-tab:hover{background:#fff6}.unplaced-lessons-dialog-tab--active{background:#fffffff2;color:#363d44}.unplaced-lessons-dialog-tab-content{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;min-height:0}.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-header-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-create-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-generate-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-auto-place-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-target-place-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-batch-place-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-fix-duplicates-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-bulk-lock-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-batch-unplace-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-delete-all-btn,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-mode-toggle{min-height:2.375rem;box-sizing:border-box;font-size:.9rem;padding:.3rem .55rem;display:inline-flex;align-items:center;justify-content:center}.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-color-mode-selector{min-height:2.375rem;box-sizing:border-box;display:inline-flex}.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-color-mode-selector-button,.unplaced-lessons-header-actions--stacked .unplaced-lessons-dialog-tab-content .unplaced-lessons-color-mode-selector button{min-height:2.375rem;box-sizing:border-box;font-size:.9rem;padding:.3rem .55rem;display:inline-flex;align-items:center;justify-content:center}.unplaced-lessons-header-action-group{display:flex;gap:.25rem;align-items:center;margin-right:.35rem}.unplaced-lessons-header-action-group:last-child{margin-right:0}.unplaced-lessons-header-btn{min-width:5.75rem;max-width:8rem;box-sizing:border-box;text-align:center;white-space:nowrap;padding:.26rem .45rem;font-size:.8rem;font-weight:500}.unplaced-lessons-header-actions button.unplaced-lessons-header-btn,.unplaced-lessons-header-actions select.unplaced-lessons-header-btn{padding:.26rem .45rem;font-size:.8rem}.unplaced-lessons-color-mode-selector{display:flex;gap:0;border:1px solid rgba(255,255,255,.3);border-radius:4px;overflow:hidden;background:transparent}.unplaced-lessons-color-mode-selector button{padding:.26rem .45rem;background:var(--unplaced-btn-active-bg);color:var(--unplaced-btn-active-text);border:none;border-right:1px solid rgba(255,255,255,.2);cursor:pointer;font-size:.8rem;font-weight:500;transition:background .2s ease;white-space:nowrap}.unplaced-lessons-color-mode-selector button:last-child{border-right:none}.unplaced-lessons-color-mode-selector button:hover{background:#f0f0f0;color:var(--unplaced-btn-active-text)}.unplaced-lessons-color-mode-selector button.active{background:var(--unplaced-btn-normal);color:#fff}.unplaced-lessons-color-mode-selector button.active:hover{background:var(--unplaced-btn-normal-hover);color:#fff}.unplaced-lessons-color-mode-selector-button{padding:.26rem .45rem;background:var(--unplaced-btn-active-bg);color:var(--unplaced-btn-active-text);border:1px solid rgba(255,255,255,.4);border-radius:4px;cursor:pointer;font-size:.8rem;font-weight:500;transition:background .2s ease;white-space:nowrap}.unplaced-lessons-color-mode-selector-button:hover{background:#f0f0f0}.unplaced-lessons-color-mode-selector-button.active{background:var(--unplaced-btn-normal);color:#fff;border-color:var(--unplaced-btn-normal)}.unplaced-lessons-color-mode-selector-button.active:hover{background:var(--unplaced-btn-normal-hover)}.unplaced-lessons-create-btn{padding:.4rem .8rem;background:var(--unplaced-btn-normal);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-create-btn:hover{background:var(--unplaced-btn-normal-hover)}.unplaced-lessons-generate-btn{padding:.4rem .8rem;background:var(--unplaced-btn-normal);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-generate-btn:hover:not(:disabled){background:var(--unplaced-btn-normal-hover)}.unplaced-lessons-generate-btn:disabled{background:#ffffff1a;cursor:not-allowed;opacity:.6}.unplaced-lessons-remove-excess-btn{padding:.4rem .8rem;background:var(--unplaced-btn-danger);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-remove-excess-btn:hover:not(:disabled){background:var(--unplaced-btn-danger-hover)}.unplaced-lessons-remove-excess-btn:disabled{background:#ffffff1a;cursor:not-allowed;opacity:.6}.unplaced-lessons-delete-all-btn{padding:.4rem .8rem;background:var(--unplaced-btn-danger);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-delete-all-btn:hover:not(:disabled){background:var(--unplaced-btn-danger-hover)}.unplaced-lessons-delete-all-btn:disabled{background:#ffffff1a;cursor:not-allowed;opacity:.6}.unplaced-lessons-auto-place-btn{padding:.4rem .8rem;background:var(--unplaced-btn-normal);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-auto-place-btn:hover:not(:disabled){background:var(--unplaced-btn-normal-hover)}.unplaced-lessons-auto-place-btn:disabled{background:#ffffff1a;cursor:not-allowed;opacity:.6}.unplaced-lessons-batch-unplace-btn{padding:.4rem .8rem;background:var(--unplaced-btn-danger);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-batch-unplace-btn:hover{background:var(--unplaced-btn-danger-hover)}.unplaced-lessons-batch-place-btn{padding:.4rem .8rem;background:var(--unplaced-btn-normal);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease;white-space:nowrap}.unplaced-lessons-batch-place-btn:hover{background:var(--unplaced-btn-normal-hover)}.unplaced-lessons-fix-duplicates-btn{padding:.4rem .8rem;background:var(--unplaced-btn-secondary-bg);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-fix-duplicates-btn:hover:not(:disabled){background:var(--unplaced-btn-secondary-hover)}.unplaced-lessons-fix-duplicates-btn:disabled{background:#ffffff14;cursor:not-allowed;opacity:.6}.unplaced-lessons-bulk-lock-btn{padding:.4rem .8rem;background:var(--unplaced-btn-secondary-bg);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-bulk-lock-btn:hover{background:var(--unplaced-btn-secondary-hover)}.unplaced-lessons-primary-btn{padding:.375rem .75rem;background:var(--unplaced-btn-normal);color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .2s ease}.unplaced-lessons-primary-btn:hover{background:var(--unplaced-btn-normal-hover)}.unplaced-lessons-primary-btn--compact{font-size:.75rem;padding:.2rem .5rem;min-height:auto}.unplaced-lessons-primary-btn--icon{width:1.75rem;min-width:1.75rem;height:1.75rem;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:1rem;line-height:1;flex-shrink:0}.unplaced-lessons-display-mode-toggle{padding:.25rem .5rem;font-size:.75rem;background:#ffffff26;color:#fff;border:1px solid rgba(255,255,255,.3);border-radius:4px;cursor:pointer;white-space:nowrap;transition:background .2s ease}.unplaced-lessons-display-mode-toggle:hover{background:#ffffff40}.unplaced-lessons-display-mode-switch{flex-shrink:0;padding:0;width:2.5rem;height:1.35rem;border:none;background:transparent;cursor:pointer;display:inline-flex;align-items:center;border-radius:999px}.unplaced-lessons-display-mode-switch-track{position:relative;width:100%;height:100%;border-radius:999px;background:#ffffff40;transition:background .2s ease}.unplaced-lessons-display-mode-switch:hover .unplaced-lessons-display-mode-switch-track{background:#ffffff59}.unplaced-lessons-display-mode-switch-knob{position:absolute;top:50%;left:.2rem;transform:translateY(-50%);width:1rem;height:1rem;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;transition:transform .2s ease}.unplaced-lessons-display-mode-switch--on .unplaced-lessons-display-mode-switch-track{background:#81c784e6}.unplaced-lessons-display-mode-switch--on:hover .unplaced-lessons-display-mode-switch-track{background:#81c784}.unplaced-lessons-display-mode-switch--on .unplaced-lessons-display-mode-switch-knob{transform:translateY(-50%) translate(1.1rem)}.unplaced-lessons-close{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:transparent;border:none;border-radius:4px;cursor:pointer;font-size:1.5rem;color:#fffc;transition:background .2s ease,color .2s;line-height:1}.unplaced-lessons-close:hover{background:var(--unplaced-btn-danger);color:#fff}.unplaced-lessons-content-wrapper{display:flex;flex:1;overflow:hidden;min-height:200px}.unplaced-lessons-index-sidebar{width:132px;min-width:132px;background:#f8f9fa;border-right:1px solid #e0e0e0;display:flex;flex-direction:column;overflow-y:auto;flex-shrink:0}.unplaced-lessons-index-grouping-tabs{display:flex;flex-shrink:0;border-bottom:1px solid #dee2e6;background:#e9ecef;position:sticky;top:0;z-index:5}.unplaced-lessons-index-grouping-tab{flex:1;padding:.5rem .25rem;font-weight:600;font-size:.75rem;color:#495057;background:transparent;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:background .2s,color .2s,border-color .2s;white-space:nowrap}.unplaced-lessons-index-grouping-tab:hover{background:#dee2e6;color:#212529}.unplaced-lessons-index-grouping-tab--active{background:#f8f9fa;color:#212529;border-bottom-color:#2c3e50}.unplaced-lessons-index-list{display:flex;flex-direction:column;padding:.5rem 0}.unplaced-lessons-index-item{padding:.5rem .75rem;text-align:left;background:none;border:none;cursor:pointer;font-size:.85rem;color:#495057;transition:background-color .2s,color .2s;border-left:3px solid transparent}.unplaced-lessons-index-item:hover{background:#e9ecef;color:#212529}.unplaced-lessons-index-item:active{background:#dee2e6}.unplaced-lessons-body{flex:1;overflow-y:auto;padding:0 1rem 1rem;min-height:200px;position:relative;z-index:1}.unplaced-lessons-loading{display:flex;align-items:center;justify-content:center;padding:2rem;color:#7f8c8d}.unplaced-lessons-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem;text-align:center;color:#7f8c8d}.unplaced-lessons-empty p{margin:.5rem 0}.unplaced-lessons-hint{font-size:.9rem;color:#95a5a6}.unplaced-lessons-list{display:flex;flex-direction:column;gap:0}.unplaced-lessons-group{border:1px solid #e0e0e0;border-radius:6px;overflow:visible;margin-bottom:1rem;background:#fff}.unplaced-lessons-group:first-child{margin-top:0}.unplaced-lessons-subject-title{font-weight:600;font-size:1rem;color:#2c3e50;border-bottom:1px solid #e0e0e0;background:#f8f9fa!important;margin-left:-1rem;margin-right:-1rem;padding:.75rem 1.75rem;box-shadow:0 2px 4px #0000000d}.unplaced-lessons-group>.unplaced-lessons-subject-title{position:sticky;top:0;z-index:10}.unplaced-lessons-subject-group>.unplaced-lessons-subject-title{position:sticky;top:var(--first-title-height, 48px);z-index:9}.unplaced-lessons-class-title{font-weight:600;font-size:1rem;color:#2c3e50;padding:.75rem;background:#e8f5e9;border-bottom:1px solid #c8e6c9}.unplaced-lessons-first-title{position:sticky;top:0;z-index:10;box-shadow:0 2px 4px #0000000d;margin-left:-1rem;margin-right:-1rem;padding-left:1.75rem;padding-right:1.75rem}.unplaced-lessons-teacher-title.unplaced-lessons-first-title{padding:.75rem;background:#e3f2fd!important;border-bottom:1px solid #bbdefb;font-weight:600}.unplaced-lessons-subject-group{margin-bottom:.5rem}.unplaced-lessons-teacher-group{margin-bottom:.75rem}.unplaced-lessons-teacher-group:last-child{margin-bottom:0}.unplaced-lessons-teacher-title{font-size:.95rem;font-weight:500;color:#34495e;border-left:3px solid #3498db;margin-bottom:.25rem;background:#f0f4f8!important;margin-left:-1rem;margin-right:-1rem;padding:.5rem 2rem;box-shadow:0 1px 2px #0000000d}.unplaced-lessons-group>.unplaced-lessons-subject-title~.unplaced-lessons-teacher-group .unplaced-lessons-teacher-title{position:sticky;top:var(--subject-title-height, 48px);z-index:9}.unplaced-lessons-group>.unplaced-lessons-class-title~.unplaced-lessons-subject-group~.unplaced-lessons-teacher-group .unplaced-lessons-teacher-title{position:sticky;top:calc(var(--first-title-height, 48px) + var(--subject-title-height, 48px));z-index:8}.unplaced-lessons-class-row{padding:.5rem .75rem;border-bottom:1px solid #f0f0f0}.unplaced-lessons-class-row:last-child{border-bottom:none}.unplaced-lessons-class-items{display:flex;flex-wrap:wrap;gap:.4rem}.unplaced-lesson-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.2rem .15rem;border-radius:4px;cursor:grab;transition:all .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none;min-height:42px;min-width:55px}.unplaced-lesson-item:hover{transform:translateY(-2px);box-shadow:0 2px 8px #00000026}.unplaced-lesson-item.dragging{opacity:.5;cursor:grabbing}.unplaced-lesson-item-subject{font-size:.9rem;font-weight:600;color:#2c3e50;text-align:center;margin-bottom:.25rem;line-height:1.2}.unplaced-lesson-item-class{font-size:.85rem;color:#7f8c8d;text-align:center;line-height:1.2}.unplaced-lesson-item[data-cell-dark=true] .unplaced-lesson-item-subject,.unplaced-lesson-item[data-cell-dark=true] .unplaced-lesson-item-class{color:#fff!important}.unplaced-lesson-item{position:relative}.unplaced-lesson-item-delete{position:absolute;top:2px;right:2px;width:18px;height:18px;display:flex;align-items:center;justify-content:center;background:var(--unplaced-btn-danger);color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:14px;font-weight:700;line-height:1;padding:0;opacity:0;transition:opacity .2s,background-color .2s;z-index:10}.unplaced-lesson-item:hover .unplaced-lesson-item-delete{opacity:1}.unplaced-lesson-item-delete:hover{background:var(--unplaced-btn-danger);transform:scale(1.1)}.unplaced-lesson-item-delete:active{transform:scale(.95)}.unplaced-lessons-body::-webkit-scrollbar{width:8px}.unplaced-lessons-body::-webkit-scrollbar-track{background:#f1f1f1;border-radius:4px}.unplaced-lessons-body::-webkit-scrollbar-thumb{background:#bdc3c7;border-radius:4px}.unplaced-lessons-body::-webkit-scrollbar-thumb:hover{background:#95a5a6}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:8px 8px 0 0}.unplaced-context-menu{position:fixed;z-index:1002;min-width:10rem;padding:.25rem 0;background:#fff;border:1px solid #ccc;border-radius:6px;box-shadow:0 4px 12px #00000026}.unplaced-context-menu button{display:block;width:100%;padding:.4rem .75rem;border:none;background:none;text-align:left;font-size:.9rem;cursor:pointer}.unplaced-context-menu button:hover{background:#f0f0f0}.unplaced-context-menu button:first-child{border-radius:6px 6px 0 0}.unplaced-context-menu button:last-child{border-radius:0 0 6px 6px}.swap-dialog-overlay{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100%;pointer-events:none;z-index:1000;display:flex;justify-content:flex-end}.swap-dialog{pointer-events:auto;background-color:#fff;border-radius:8px 0 0 8px;padding:1.5rem;width:100%;height:100%;overflow-y:auto;box-shadow:-4px 0 12px #00000026}.swap-dialog-title{margin:0 0 .5rem;font-size:1.25rem;font-weight:600;color:#2c3e50}.swap-dialog-hint{margin:0 0 1rem;font-size:.875rem;color:#5a6c7d;line-height:1.4}.swap-dialog-section{margin-bottom:1rem}.swap-dialog-section h3{margin:0 0 .5rem;font-size:.95rem;font-weight:600;color:#34495e}.swap-dialog-entries{list-style:none;margin:0;padding:0;border:1px solid #dee2e6;border-radius:4px;background-color:#f8f9fa}.swap-dialog-entry{border-bottom:1px solid #e9ecef;font-size:.875rem}.swap-dialog-entry:last-child{border-bottom:none}.swap-dialog-entry-content{display:flex;align-items:flex-start;justify-content:space-between;gap:.5rem;padding:.75rem}.swap-dialog-entry-details{flex:1;min-width:0}.swap-dialog-entry-detail-row{margin-bottom:.2rem}.swap-dialog-entry-detail-row:last-child{margin-bottom:0}.swap-dialog-entry-detail-label{color:#6c757d;margin-right:.35rem}.swap-dialog-entry-detail-value{color:#2c3e50}.swap-dialog-entry-remove{flex-shrink:0;width:1.75rem;height:1.75rem;padding:0;border:1px solid #dee2e6;border-radius:4px;background:#fff;color:#6c757d;font-size:1.1rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}.swap-dialog-entry-remove:hover:not(:disabled){background:#f8d7da;color:#721c24;border-color:#f5c6cb}.swap-dialog-entry-remove:disabled{opacity:.6;cursor:not-allowed}.swap-dialog-constraint-violations{border:1px solid #e65100;background-color:#fff3e0;border-radius:4px;padding:.75rem}.swap-dialog-constraint-violations-desc{margin:0 0 .5rem;font-size:.875rem;color:#bf360c;font-weight:500}.swap-dialog-constraint-violations-list{margin:0;padding-left:1.25rem;font-size:.9rem;color:#bf360c;line-height:1.5}.swap-dialog-conflicts{border:1px solid #f5c6cb;background-color:#f8d7da;border-radius:4px;padding:.75rem}.swap-dialog-conflicts-desc{margin:0 0 .5rem;font-size:.875rem;color:#721c24}.swap-dialog-conflicts-list{margin:0;padding-left:1.25rem;font-size:.9rem;color:#721c24}.swap-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;margin-top:1rem}.swap-dialog-button{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.swap-dialog-button-execute{background-color:#3498db;color:#fff}.swap-dialog-button-execute:hover:not(:disabled){background-color:#2980b9}.swap-dialog-button-execute:disabled{background-color:#95a5a6;color:#fff;cursor:not-allowed}.swap-dialog-button-cancel{background-color:#95a5a6;color:#fff}.swap-dialog-button-cancel:hover:not(:disabled){background-color:#7f8c8d}.swap-dialog-button-cancel:disabled{opacity:.7;cursor:not-allowed}.toast-container{position:fixed;bottom:20px;right:20px;z-index:10000;display:flex;flex-direction:column;gap:.75rem;max-width:400px}.toast{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 4px 12px #00000026;display:flex;align-items:center;gap:.75rem;min-width:300px;max-width:400px;cursor:pointer;opacity:0;transform:translateY(100%);transition:opacity .3s ease,transform .3s ease}.toast-visible{opacity:1;transform:translate(0)}.toast-success{border-left:4px solid #4caf50}.toast-error{border-left:4px solid #f44336}.toast-warning{border-left:4px solid #ff9800}.toast-info{border-left:4px solid #2196f3}.toast-icon{font-size:1.25rem;font-weight:700;flex-shrink:0}.toast-success .toast-icon{color:#4caf50}.toast-error .toast-icon{color:#f44336}.toast-warning .toast-icon{color:#ff9800}.toast-info .toast-icon{color:#2196f3}.toast-message{flex:1;font-size:.9rem;line-height:1.4;color:#2c3e50;white-space:pre-wrap;word-wrap:break-word}.toast-close{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border-radius:4px;transition:background-color .2s,color .2s}.toast-close:hover{background-color:#ecf0f1;color:#2c3e50}.toast-group{cursor:pointer}.toast-count{font-weight:700;margin-left:.5rem;color:#7f8c8d}.toast-details-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;z-index:10001;display:flex;align-items:center;justify-content:center;padding:20px}.toast-details-modal{background:#fff;border-radius:8px;box-shadow:0 8px 24px #0003;max-width:500px;width:100%;max-height:80vh;display:flex;flex-direction:column}.toast-details-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;border-bottom:1px solid #e0e0e0}.toast-details-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#2c3e50}.toast-details-close{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.toast-details-close:hover{background-color:#ecf0f1;color:#2c3e50}.toast-details-content{padding:1.25rem;flex:1;overflow-y:auto}.toast-details-message{font-size:1rem;line-height:1.6;color:#2c3e50;margin-bottom:1rem}.toast-details-count{font-size:.9rem;color:#7f8c8d;padding:.75rem;background-color:#f5f5f5;border-radius:4px}.toast-details-footer{padding:1rem 1.25rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.toast-details-remove-all{background-color:#f44336;color:#fff;border:none;border-radius:4px;padding:.5rem 1rem;font-size:.9rem;cursor:pointer;transition:background-color .2s}.toast-details-remove-all:hover{background-color:#d32f2f}@media (max-width: 768px){.toast-container{bottom:10px;right:10px;left:10px;max-width:none}.toast{min-width:auto;max-width:none}.toast-details-modal{max-width:90%;max-height:90vh}}.ai-suggestion-card{background:#f9f9f9;border:1px solid #ddd;border-radius:4px;padding:1rem;transition:box-shadow .2s}.ai-suggestion-card:hover{box-shadow:0 2px 8px #0000001a}.ai-suggestion-card__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid #eee}.ai-suggestion-card__type{font-weight:600;font-size:.9rem;color:#007bff}.ai-suggestion-card__confidence{font-size:.85rem;font-weight:500}.ai-suggestion-card__content{font-size:.9rem;margin-bottom:1rem}.ai-suggestion-card__description{margin:0 0 .75rem;color:#333}.ai-suggestion-card__recommendations{margin:.5rem 0;padding-left:1.5rem;color:#666}.ai-suggestion-card__recommendations li{margin:.25rem 0}.ai-suggestion-card__changes{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee;font-size:.85rem}.ai-suggestion-card__changes ul{margin:.5rem 0 0;padding-left:1.5rem;color:#666}.ai-suggestion-card__changes li{margin:.25rem 0}.ai-suggestion-card__actions{display:flex;justify-content:flex-end;gap:.5rem;padding-top:.75rem;border-top:1px solid #eee}.suggestion-preview-overlay{z-index:2000}.suggestion-preview-dialog{max-height:80vh;display:flex;flex-direction:column}.suggestion-preview-body{flex:1;overflow-y:auto;padding:1.5rem}.suggestion-preview__description{margin-bottom:1.5rem}.suggestion-preview__description h4,.suggestion-preview__changes h4,.suggestion-preview__recommendations h4,.suggestion-preview__improvement h4{margin:0 0 .75rem;font-size:1rem;font-weight:600;color:#2c3e50}.suggestion-preview__description p{margin:0;color:#666;line-height:1.6}.suggestion-preview__changes{margin-bottom:1.5rem}.suggestion-preview__changes-list{display:flex;flex-direction:column;gap:1rem;max-height:400px;overflow-y:auto;padding:.5rem;background:#f9f9f9;border-radius:4px}.suggestion-preview__change-item{padding:1rem;background:#fff;border-radius:4px;border:1px solid #e0e0e0;display:flex;flex-direction:column;gap:.5rem}.suggestion-preview__change-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.suggestion-preview__change-action{font-weight:600;color:#007bff;padding:.25rem .5rem;background:#e7f3ff;border-radius:4px;font-size:.85rem}.suggestion-preview__change-cell-id{font-size:.75rem;color:#999;font-family:monospace}.suggestion-preview__change-from,.suggestion-preview__change-to,.suggestion-preview__change-reason{display:flex;align-items:center;gap:.5rem}.suggestion-preview__change-label{font-size:.9rem;color:#666;min-width:60px}.suggestion-preview__change-value{font-size:.9rem;color:#2c3e50;font-weight:500}.suggestion-preview__change-to .suggestion-preview__change-label{color:#28a745;font-weight:600}.suggestion-preview__recommendations{margin-bottom:1.5rem}.suggestion-preview__recommendations ul{margin:0;padding-left:1.5rem;color:#666;line-height:1.8}.suggestion-preview__improvement{margin-bottom:1.5rem}.suggestion-preview__improvement p{margin:0;color:#666;line-height:1.6;padding:.75rem;background:#f0f8ff;border-left:3px solid #007bff;border-radius:4px}.suggestion-preview__confidence{display:flex;align-items:center;gap:.5rem;padding:.75rem;background:#f9f9f9;border-radius:4px}.suggestion-preview__confidence-label{font-size:.9rem;color:#666}.suggestion-preview__confidence-value{font-size:1rem;font-weight:600;color:#007bff}.suggestion-preview-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e0e0e0}.dialog-footer{display:flex;justify-content:flex-end;gap:.75rem}@media (max-width: 768px){.suggestion-preview-dialog{max-width:95vw;max-height:90vh}.suggestion-preview__changes-list{max-height:300px}}.ai-settings-overlay{z-index:2001}.ai-settings-dialog{max-height:80vh}.ai-settings-body{padding:1.5rem}.ai-settings__section{margin-bottom:1.5rem}.ai-settings__label{display:block;margin-bottom:.5rem;font-weight:600;color:#2c3e50}.ai-settings__input,.ai-settings__select{width:100%;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:monospace}.ai-settings__input:focus,.ai-settings__select:focus{outline:none;border-color:#007bff;box-shadow:0 0 0 3px #007bff1a}.ai-settings__provider-info{margin-top:.5rem;padding:.5rem;background:#e7f3ff;border-left:3px solid #007bff;border-radius:4px;font-size:.85rem;color:#0056b3}.ai-settings__provider-warning{margin-top:.5rem;padding:.5rem;background:#fff3cd;border-left:3px solid #ffc107;border-radius:4px;font-size:.85rem;color:#856404}.ai-settings__checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.9rem}.ai-settings__checkbox-label input[type=checkbox]{width:1.2rem;height:1.2rem;cursor:pointer}.ai-settings__help-text{margin-top:.5rem;font-size:.85rem;color:#666}.ai-settings__info{margin-top:2rem;padding:1rem;background:#f9f9f9;border-radius:4px}.ai-settings__info h4{margin:0 0 .75rem;font-size:1rem;color:#2c3e50}.ai-settings__info ul{margin:0;padding-left:1.5rem;color:#666;line-height:1.8}.ai-settings__info code{background:#e9ecef;padding:.2rem .4rem;border-radius:3px;font-family:monospace;font-size:.85rem}.ai-settings-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid #e0e0e0}.ai-support-panel{background:#fff;border:none;border-radius:0;padding:0;max-width:100%;height:100%;display:flex;flex-direction:column;overflow:hidden}.ai-support-panel__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.ai-support-panel__header h3{margin:0;font-size:1.1rem}.ai-support-panel__actions{display:flex;gap:.5rem}.ai-support-panel__analysis{margin-bottom:1.5rem;padding:1rem;background:#f9f9f9;border-radius:4px;flex-shrink:0}.ai-support-panel__analysis h4{margin:0 0 1rem;font-size:1rem}.ai-support-panel__analysis-metrics{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.ai-support-panel__metric{display:flex;flex-direction:column;gap:.25rem}.ai-support-panel__metric-label{font-size:.85rem;color:#666}.ai-support-panel__metric-value{font-size:1.1rem;font-weight:600;color:#007bff}.ai-support-panel__suggestions{flex:1;overflow-y:auto;overflow-x:hidden;padding:1rem;min-height:0;max-height:100%}.ai-support-panel__suggestions h4{margin:0 0 1rem;font-size:1rem}.ai-support-panel__empty{text-align:center;padding:2rem;color:#999;font-size:.9rem}.ai-support-panel__suggestion-list{display:flex;flex-direction:column;gap:.75rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s;pointer-events:auto;position:relative;z-index:1}.btn-secondary:hover:not(:disabled){background:#545b62}.btn-secondary:disabled{background:#ccc;cursor:not-allowed}@media (max-width: 768px){.ai-support-panel{max-width:100%}.ai-support-panel__analysis-metrics{grid-template-columns:1fr}}.timetable-grid-container{position:relative;overflow-x:auto;overflow-y:auto;max-height:100%;height:100%;flex:1;min-height:0;width:100%;max-width:100%;--tt-row-header-col-width: 55px}@media (max-width: 768px){.timetable-grid-container{--tt-row-header-col-width: 88px}}@media (max-width: 480px){.timetable-grid-container{--tt-row-header-col-width: 76px}}.timetable-grid{width:-moz-max-content;width:max-content;min-width:max(100%,var(--tt-grid-min-width, 0px));border-collapse:collapse;background:#fff;table-layout:auto}.timetable-grid col.tt-col-row-header{width:var(--tt-row-header-col-width);min-width:var(--tt-row-header-col-width)}.timetable-grid col.tt-col-period{min-width:var(--tt-period-col-min, 52px)}.timetable-grid col.tt-col-spacer{width:8px;min-width:8px;max-width:8px}.timetable-grid th,.timetable-grid td{border:1px solid #999;padding:.25rem}.timetable-grid td.grid-row-header{border-top:1px solid rgba(255,255,255,.5)!important;border-bottom:1px solid rgba(255,255,255,.5)!important}.timetable-grid .grid-day-header,.timetable-grid .grid-period-header{border:none}.grid-header{background-color:#34495e;color:#fff;font-weight:600;font-size:1rem;text-align:center;position:sticky;top:0;z-index:10}.grid-row-header-label{position:sticky;left:0;z-index:15;box-shadow:2px 0 6px #00000014}.grid-row-header-label.sortable{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background-color .2s}.timetable-grid.read-only .grid-row-header-label.sortable{cursor:default}.grid-row-header-label.sortable:hover{background-color:#3d5266}.timetable-grid .grid-row-header-label{border:1px solid rgba(255,255,255,.5);border-top-color:#2c3e50}.sort-indicator{font-size:.8em;opacity:.9}.timetable-grid .grid-day-header{background-color:#2c3e50;font-size:var(--tt-font-size-day-header, .9rem);position:sticky;top:0;z-index:11;border-top:1px solid #34495e;border-right:1px solid rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.5);border-left:1px solid rgba(255,255,255,.5)}.grid-day-header.grid-day-header-holiday{background-color:#c62828;color:#fff;border-top-color:#34495e;border-right-color:#ffffff80;border-bottom-color:#ffffff80;border-left-color:#ffffff80}.grid-day-header:not(:first-child){border-left:2px solid #34495e}.grid-day-header.grid-day-header-holiday:not(:first-child){border-left:2px solid #34495e}.grid-day-header.first-day,.grid-day-header.grid-day-header-holiday.first-day{border-left:1px solid rgba(255,255,255,.5)!important}.grid-day-header{border-right:none!important}.grid-day-header.last-day{border-right:2px solid #34495e!important}.grid-day-header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:#ffffff80;z-index:100;pointer-events:none}.grid-day-header:not(:first-child):before{display:none!important}.timetable-grid .grid-period-header{background-color:#34495e;font-size:var(--tt-font-size-period-header, .85rem);font-weight:500;padding:.05rem .15rem;cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:sticky;top:var(--day-header-height, 40px);z-index:10;min-width:var(--tt-period-col-min, 52px);box-sizing:border-box;border-top:1px solid rgba(255,255,255,.5);border-right:1px solid rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.5);border-left:1px solid rgba(255,255,255,.5)}.timetable-grid.read-only .grid-period-header{cursor:default}.timetable-grid th.grid-period-header.day-first-period,.timetable-grid td.grid-period-header.day-first-period{border-left:2px solid #2c3e50!important;border-top:1px solid rgba(255,255,255,.5)!important;border-right:1px solid rgba(255,255,255,.5)!important;border-bottom:1px solid rgba(255,255,255,.5)!important}.timetable-grid th.grid-period-header.first-day-first-period,.timetable-grid td.grid-period-header.first-day-first-period{border-left:1px solid #2c3e50!important}.grid-period-header:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:1px;background-color:#ffffff80;z-index:100;pointer-events:none}.grid-period-header.day-first-period:not(:last-child):after{display:none!important}.grid-period-header:not(:last-child):not(.day-first-period):not(.day-last-period):before{content:"";position:absolute;top:0;bottom:0;right:-1px;width:1px;background-color:#ffffff80;z-index:100;pointer-events:none}.grid-period-header.day-first-period:not(:last-child):before{display:none!important}.grid-period-header.day-first-period:last-child:before{display:none!important}.grid-period-header:active{cursor:grabbing}.grid-day-header{cursor:grab;-webkit-user-select:none;-moz-user-select:none;user-select:none}.grid-day-header:active{cursor:grabbing}.grid-header-dragging{opacity:.5;background-color:#3498db!important}.grid-header-drag-over{background-color:#2ecc71!important;box-shadow:inset 0 0 10px #2ecc7180}.timetable-grid tr.highlighted-row{background-color:#fff3cd!important;animation:highlightPulse 1.5s ease-in-out}.timetable-grid tr.highlighted-row td{background-color:#fff3cd!important}.timetable-grid tr.highlighted-row .grid-row-header,.timetable-grid tr.highlighted-row .highlighted-row-header{background-color:#ffc107!important;color:#000!important;font-weight:700}@keyframes highlightPulse{0%{background-color:#ffc107}50%{background-color:#fff3cd}to{background-color:#fff3cd}}.grid-row-header{background-color:#34495e!important;color:#fff!important;font-weight:600;font-size:1rem;text-align:center;position:sticky;left:0;z-index:5;width:var(--tt-row-header-col-width, 55px);min-width:var(--tt-row-header-col-width, 55px);max-width:var(--tt-row-header-col-width, 55px);padding:.1rem;box-sizing:border-box;overflow:visible;vertical-align:middle;box-shadow:2px 0 6px #00000014}.row-header-content{display:flex;flex-direction:column;gap:.05rem;overflow:hidden;max-width:100%;color:#fff!important;align-items:center;justify-content:center;text-align:center;min-height:100%}.row-header-content.row-header-special-needs{overflow:visible}.row-header-main{font-weight:600;font-size:.9rem;color:#fff!important;overflow:visible;white-space:normal;word-break:break-word;max-width:100%;line-height:1.2;text-align:center}.timetable-grid-container[data-mode=teacher] .row-header-main{font-size:.8rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;word-break:normal;overflow-wrap:normal;align-self:stretch;width:100%;min-width:0;box-sizing:border-box}.timetable-grid .grid-row-header{border-top:1px solid rgba(255,255,255,.5)!important;border-right:1px solid rgba(255,255,255,.5)!important;border-bottom:1px solid rgba(255,255,255,.5)!important;border-left:1px solid rgba(255,255,255,.5)!important}.row-header-sub{font-weight:400;font-size:1rem;color:#ecf0f1!important;margin-top:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-align:center}.row-header-special-needs-class{font-size:.8rem;margin-top:0;color:#bdc3c7!important;overflow:visible;text-overflow:clip;white-space:normal;word-break:break-word;line-height:1.1;max-width:100%;flex-shrink:0}.timetable-grid-container[data-mode=teacher] tr:not(.sn-teacher-row) .row-header-special-needs-class{font-size:1rem;line-height:1.2}.timetable-grid-container[data-mode=class] .row-header-main-special-needs{font-size:.8rem;font-weight:500;white-space:nowrap;overflow:visible;text-overflow:clip;word-break:normal;overflow-wrap:normal}.timetable-grid-container[data-mode=class] .row-header-main-special-needs-wrap{font-size:.8rem;font-weight:500;white-space:pre-line;overflow:visible;text-overflow:clip;word-break:keep-all;overflow-wrap:normal;line-height:1.2}.timetable-grid-container[data-mode=teacher] .row-header-teacher-name{font-size:var(--tt-font-size-row-header-teacher-name-teacher-view, 16px)!important}.timetable-grid-container[data-mode=class] .row-header-teacher-name{font-size:var(--tt-font-size-row-header-teacher-name-class-view, 16px)!important}.row-header-position{font-size:var(--tt-font-size-row-header-position, 13px)!important}.timetable-grid-container[data-mode=teacher] .row-header-class-name{font-size:var(--tt-font-size-row-header-class-name-teacher-view, 14px)!important}.timetable-grid-container[data-mode=class] .row-header-class-name{font-size:var(--tt-font-size-row-header-class-name-class-view, 14px)!important}.grid-cell{min-height:50px;padding:.15rem .25rem;cursor:pointer;transition:background-color .2s}.timetable-grid.read-only .grid-cell{cursor:default}.grid-cell{position:relative;vertical-align:top;text-align:center;word-wrap:break-word;overflow:hidden;max-width:100%;box-sizing:border-box}.timetable-grid td.grid-cell:not(.grid-cell-spacer){min-width:var(--tt-period-col-min, 52px)}.timetable-grid-container[data-mode=class] .grid-cell{min-height:45px;padding:.1rem .25rem;vertical-align:middle}.timetable-grid-container[data-mode=class] .timetable-grid th,.timetable-grid-container[data-mode=class] .timetable-grid td,.timetable-grid-container[data-mode=teacher] .grid-day-header,.timetable-grid-container[data-mode=teacher] .grid-period-header{padding:.1rem .25rem}.grid-cell-empty{background-color:#f8f9fa;border-top:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999;border-left:1px solid #999}.timetable-grid th.grid-cell-empty.day-first-cell,.timetable-grid td.grid-cell-empty.day-first-cell{border-left:2px solid #34495e!important;border-top:1px solid #999!important;border-right:1px solid #999!important;border-bottom:1px solid #999!important}.timetable-grid th.grid-cell-empty.first-day-first-cell,.timetable-grid td.grid-cell-empty.first-day-first-cell{border-left:1px solid #999!important}.grid-cell-filled{border-top:1px solid #999;border-right:1px solid #999;border-bottom:1px solid #999}.timetable-grid th.grid-cell-filled.day-first-cell,.timetable-grid td.grid-cell-filled.day-first-cell{border-left:2px solid #34495e!important;border-top:1px solid #999!important;border-right:1px solid #999!important;border-bottom:1px solid #999!important}.timetable-grid th.grid-cell-filled.first-day-first-cell,.timetable-grid td.grid-cell-filled.first-day-first-cell{border-left:1px solid #999!important}.grid-cell-filled.grid-cell-locked{position:relative;box-shadow:inset 0 0 0 1px #c62828}.grid-cell-filled.grid-cell-locked .cell-content-locked{background-color:transparent!important}.grid-cell-filled.grid-cell-locked:hover{opacity:.9}.grid-cell-empty:hover{background-color:#e9ecef}.grid-cell-drag-over{background-color:#e3f2fd!important;border:2px dashed #2196f3!important;box-shadow:inset 0 0 10px #2196f34d;animation:pulse-border 1s ease-in-out infinite}.grid-cell-droppable-hint{background-color:#2196f314!important;border:1px dashed rgba(33,150,243,.35)}@keyframes pulse-border{0%,to{border-color:#2196f3;box-shadow:inset 0 0 10px #2196f34d}50%{border-color:#1976d2;box-shadow:inset 0 0 15px #2196f380}}.grid-cell-dragging{transform:scale(.92);cursor:grabbing!important;transition:transform .2s;position:relative}.grid-cell-locked{position:relative}.grid-cell-filled.grid-cell-locked:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:repeating-linear-gradient(45deg,transparent,transparent 10px,rgba(198,40,40,.06) 10px,rgba(198,40,40,.06) 20px);pointer-events:none;border-radius:2px;z-index:0}.grid-cell-blocked{background:#e0f2fe;border:1px solid #7dd3fc}.grid-cell-blocked.grid-cell-blocked-dark{background:#1e3a5f;border:1px solid #3b82f6}.cell-blocked-banner{display:flex;align-items:center;justify-content:center;font-size:.75rem;font-weight:600;padding:.25rem;height:100%;overflow:hidden}.cell-blocked-banner .cell-blocked-reason{font-size:.7rem;font-weight:600;line-height:1.2;text-align:center;word-break:break-all;max-width:100%}.grid-cell-unavailable{background:repeating-linear-gradient(45deg,#dc26260d,#dc26260d 10px,#dc26261a 10px,#dc26261a 20px),#fee2e2;border:1px dashed rgba(220,38,38,.4)!important}.grid-cell-unavailable.grid-cell-unavailable-dark{background:repeating-linear-gradient(45deg,#fbbf2426,#fbbf2426 10px,#fbbf2440 10px,#fbbf2440 20px),#555;border:1px dashed rgba(251,191,36,.8)!important}.grid-cell-selected-for-placement{background-color:#fff9c4!important;border:3px solid #fbc02d!important;box-shadow:0 0 8px #fbc02d80!important;outline:2px solid #f9a825;outline-offset:2px}.grid-cell-selected-for-placement:focus{outline:2px solid #f9a825!important;outline-offset:2px!important}.grid-cell:focus:not(.grid-cell-selected-for-placement){outline:none!important;box-shadow:none!important}.cell-unavailable-mark{display:flex;align-items:center;justify-content:center;height:100%;width:100%;position:absolute;top:0;left:0;pointer-events:none}.cell-unavailable-mark .unavailable-mark{font-size:1.5rem;font-weight:700;color:#dc2626;line-height:1}.grid-cell-placeable{border:2px dashed #f9a825!important;background-color:#f9a8251f!important}.timetable-grid .grid-cell-stack-duplicate{outline:2px dashed #c62828!important;outline-offset:-2px;position:relative;z-index:2}.timetable-grid .cell-stack-duplicate-badge{position:absolute;top:2px;right:2px;z-index:4;font-size:.65rem;font-weight:700;line-height:1.1;padding:1px 4px;border-radius:3px;background:#c62828;color:#fff;pointer-events:none;max-width:calc(100% - 4px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-cell-highlighted-same-class{border:2px solid #ffc107!important}.grid-cell-swap-conflict{background-color:#ff980059!important;border:2px solid #e65100!important;box-shadow:inset 0 0 0 1px #e6510066}.grid-cell-swap-conflict .cell-content,.grid-cell-swap-conflict .cell-content-locked{background-color:transparent!important}.grid-cell-swap-destination{box-shadow:0 0 0 2px #1976d2!important;background-color:#1976d21f!important}.grid-cell-swap-destination .cell-content,.grid-cell-swap-destination .cell-content-locked{background-color:transparent!important}.cell-blocking-hint{display:flex;align-items:center;justify-content:center;height:100%;width:100%;position:absolute;top:0;left:0;pointer-events:none;opacity:.5}.cell-blocking-hint .blocking-hint-text{font-size:.7rem;color:#6b7280;font-weight:500;background-color:#fffc;padding:.2rem .4rem;border-radius:4px;border:1px dashed #9ca3af}.cell-unavailable-mark .unavailable-text{font-size:.75rem;font-weight:600;color:#b91c1c;margin-left:.35rem}.cell-daily-change{margin-top:.25rem;padding:.2rem .4rem;border-radius:4px;font-size:.8rem;font-weight:600;text-align:center}.timetable-grid-container[data-mode=class] .cell-daily-change{margin-top:.1rem;padding:.15rem .3rem}.cell-daily-change.canceled{background-color:#fee2e2;color:#b91c1c}.cell-daily-change.swapped{background-color:#fef3c7;color:#92400e}.cell-daily-change.covered{background-color:#dbeafe;color:#1e40af}.cell-content{cursor:grab;position:relative;z-index:2;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;box-sizing:border-box}.cell-content:active{cursor:grabbing}.timetable-grid.read-only .cell-content{cursor:default}.timetable-grid.read-only *{cursor:default!important}.cell-content-locked{cursor:not-allowed;opacity:1;position:relative;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:10!important;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;min-width:0;box-sizing:border-box}.cell-content-locked:hover{background-color:#ff98001a!important}.grid-cell-filled.grid-cell-locked .cell-content-locked{background-color:transparent!important;z-index:10!important}.grid-cell-filled.grid-cell-locked .cell-subject{font-weight:600;font-size:var(--tt-font-size-cell-subject, 1.05rem);color:#000;margin-bottom:.05rem;line-height:1.1;text-align:center;position:relative;z-index:10!important}.exchange-label{color:#1976d2;font-weight:700;font-size:.85em;line-height:1;margin-top:.02rem;display:block}.cell-classes+.exchange-label{margin-top:.02rem}.cell-classes:has(+.exchange-label){margin-bottom:0;line-height:1}.grid-cell-swap-selected,.grid-cell-swap-range-selected{background-color:#e3f2fd!important;border:2px solid #2196f3!important;box-shadow:0 0 8px #2196f380!important}.grid-cell-swap-target-selected{background-color:#fff9c4!important;border:2px solid #fbc02d!important;box-shadow:0 0 8px #fbc02d80!important}.timetable-grid-container[data-mode=class] .grid-cell-filled.grid-cell-locked .cell-subject{margin-bottom:.02rem;line-height:1.05}.grid-cell-filled.grid-cell-locked .cell-classes,.grid-cell-filled.grid-cell-locked .cell-teachers{font-size:var(--tt-font-size-cell-sub, .85rem);color:#000;margin-top:.02rem;line-height:1.05;position:relative;text-align:center;z-index:10!important}.timetable-grid-container[data-mode=class] .grid-cell-filled.grid-cell-locked .cell-classes,.timetable-grid-container[data-mode=class] .grid-cell-filled.grid-cell-locked .cell-teachers{margin-top:.02rem;line-height:1}.cell-subject{font-weight:600;font-size:var(--tt-font-size-cell-subject, 1.05rem);color:#000;margin-bottom:.05rem;line-height:1.1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;text-align:center}.timetable-grid-container[data-mode=class] .cell-subject{margin-bottom:.02rem;line-height:1.05}.cell-classes,.cell-teachers{font-size:var(--tt-font-size-cell-sub, .8rem);color:#000;margin-top:.02rem;line-height:1.05;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center;width:100%;min-width:0;max-width:100%}.timetable-grid-container[data-mode=teacher] .cell-classes{font-size:var(--tt-font-size-cell-sub, .95rem)}.timetable-grid-container[data-mode=teacher] .cell-classes-special-needs{font-size:.8rem;white-space:normal;word-break:break-word;text-overflow:clip}.timetable-grid-container[data-mode=teacher] tr.sn-teacher-row .cell-content,.timetable-grid-container[data-mode=teacher] tr.sn-teacher-row .cell-content-locked{justify-content:flex-start;align-items:center;padding-top:.15rem}.timetable-grid-container[data-mode=class] .cell-classes,.timetable-grid-container[data-mode=class] .cell-teachers{margin-top:.02rem;line-height:1}.grid-cell-filled[data-cell-dark=true] .cell-subject,.grid-cell-filled[data-cell-dark=true] .cell-classes,.grid-cell-filled[data-cell-dark=true] .cell-teachers{color:#fff!important}.timetable-page--cell-wrap .cell-subject,.timetable-page--cell-wrap .cell-classes,.timetable-page--cell-wrap .cell-teachers{white-space:normal;overflow-wrap:break-word;word-break:break-word;text-overflow:clip;overflow:visible}.timetable-page--cell-wrap .cell-content,.timetable-page--cell-wrap .cell-content-locked{align-items:center;justify-content:center}.cell-lock-icon,.cell-warning-icon{position:absolute;top:2px;right:2px;z-index:10}.cell-lock-icon{background-color:#ff9800;color:#fff;font-size:.7rem;line-height:1;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 4px #0000004d;font-weight:700;border:2px solid #fff;position:absolute;top:2px;left:2px;z-index:11}.cell-warning-icon{font-size:.9rem}.timetable-grid-loading{padding:2rem;text-align:center;color:#7f8c8d;display:flex;align-items:center;justify-content:center;gap:.5rem}.timetable-grid-loading:before{content:"";width:20px;height:20px;border:3px solid #e0e0e0;border-top-color:#3498db;border-radius:50%;animation:spin 1s linear infinite}@media (max-width: 1024px){.timetable-grid-container{max-height:500px}.grid-cell{min-height:60px;padding:.4rem}.cell-subject{font-size:.95rem}.cell-classes,.cell-teachers{font-size:.75rem}}@media (max-width: 768px){.timetable-grid-container{max-height:400px;-webkit-overflow-scrolling:touch}.timetable-grid th,.timetable-grid td{padding:.3rem;font-size:.85rem}.grid-header{font-size:.85rem}.grid-day-header{font-size:.8rem}.grid-period-header{font-size:.75rem;padding:.1rem .15rem}.grid-row-header{font-size:.85rem;padding:.15rem .2rem}.timetable-grid-container[data-mode=teacher] .row-header-main{font-size:.9rem}.timetable-grid-container[data-mode=teacher] .row-header-special-needs-class{font-size:.8rem;line-height:1;padding:0}.timetable-grid-container[data-mode=teacher] tr:not(.sn-teacher-row) .row-header-special-needs-class{font-size:.95rem;line-height:1.2}.timetable-grid-container[data-mode=teacher] .cell-classes{font-size:.9rem}.timetable-grid-container[data-mode=teacher] .cell-classes-special-needs{font-size:.75rem}.grid-cell{min-height:55px;padding:.3rem;font-size:.8rem}.cell-subject{font-size:.9rem;margin-bottom:.2rem}.cell-classes,.cell-teachers{font-size:.72rem;margin-top:.1rem}.timetable-grid-container[data-mode=teacher] .cell-classes{font-size:.85rem}.timetable-grid-container[data-mode=teacher] .cell-classes-special-needs{font-size:.72rem}.cell-lock-icon,.cell-warning-icon{font-size:.7rem;top:1px;right:1px}}@media (max-width: 480px){.timetable-grid-container{max-height:300px}.timetable-grid th,.timetable-grid td{padding:.25rem;font-size:.75rem}.grid-header{font-size:.75rem}.grid-day-header{font-size:.7rem}.grid-period-header{font-size:.65rem;padding:.05rem .1rem}.grid-row-header{font-size:.75rem;padding:.1rem .15rem}.grid-cell{min-height:50px;padding:.25rem;font-size:.7rem}.cell-subject{font-size:.85rem;margin-bottom:.15rem}.cell-classes,.cell-teachers{font-size:.7rem;margin-top:.1rem}.timetable-grid-container[data-mode=teacher] .cell-classes{font-size:.8rem}.timetable-grid-container[data-mode=teacher] .cell-classes-special-needs{font-size:.7rem}.cell-lock-icon,.cell-warning-icon{font-size:.65rem}}.grid-day-spacer,.grid-period-spacer,.grid-cell-spacer{border-top:none!important;border-bottom:none!important;border-left:2px solid #34495e!important;border-right:none!important;background:#fff!important;padding:0!important;width:8px!important;min-width:8px!important;max-width:8px!important;position:relative;z-index:2;box-sizing:border-box}.timetable-grid .grid-day-spacer{border-top:1px solid #ffffff!important}.grid-cell-spacer{width:8px!important;min-width:8px!important;max-width:8px!important}.grid-period-header.day-first-period{border-left:2px solid #2c3e50!important}.grid-cell.day-first-cell{border-left:2px solid #34495e!important}.grid-period-header.first-day-first-period{border-left:1px solid rgba(255,255,255,.5)!important}.grid-cell.first-day-first-cell{border-left:1px solid #999!important}.grid-period-header.day-last-period{border-right:none!important}.grid-period-header.day-last-period.last-day{border-right:2px solid #2c3e50!important}.grid-cell.day-last-cell{border-right:none!important}.grid-cell.day-last-cell.last-day{border-right:2px solid #34495e!important}.grid-cell-has-comment{box-shadow:inset 0 0 0 2px #e74c3c!important;position:relative}.grid-cell-has-comment:after{content:"";position:absolute;top:2px;right:2px;width:8px;height:8px;background-color:#e74c3c;border-radius:50%;z-index:1}.grid-cell-has-comment:has(.cell-comment-count-badge):after{display:none}.cell-comment-count-badge{position:absolute;top:2px;right:2px;min-width:18px;height:18px;padding:0 4px;background-color:#e74c3c;color:#fff;border-radius:9px;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;z-index:10;line-height:1;box-shadow:0 1px 3px #0000004d}.swap-arrows-overlay{z-index:50}.comment-popup{max-width:400px;margin-bottom:8px}.comment-popup-content{background-color:#fff;color:#2c3e50;padding:.75rem;border-radius:8px;font-size:.9rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;box-shadow:0 2px 8px #00000026;position:relative;display:flex;flex-direction:column;gap:0;border:1px solid #e0e0e0;min-width:350px;max-width:450px;max-height:400px;overflow-y:auto}.comment-popup-item{display:flex!important;flex-direction:row!important;gap:.75rem;align-items:flex-start;width:100%;box-sizing:border-box;padding-bottom:.75rem}.comment-popup-item:last-child{padding-bottom:0}.comment-popup-divider{height:1px;background-color:#e0e0e0;margin:.5rem 0;width:100%;flex-shrink:0}.comment-popup-avatar{flex-shrink:0;width:24px;height:24px;display:flex;align-items:flex-start;justify-content:center;margin-top:2px}.comment-popup-avatar svg{width:100%;height:100%}.comment-popup-info{display:flex;flex-direction:column;gap:.125rem;align-items:flex-start;text-align:left;flex-shrink:0;min-width:80px;max-width:120px}.comment-popup-author{font-size:.85rem;font-weight:600;color:#2c3e50;line-height:1.3;word-break:break-word}.comment-popup-timestamp{font-size:.75rem;color:#7f8c8d;line-height:1.2}.comment-popup-item-right{flex:1 1 auto!important;min-width:150px;display:flex!important;flex-direction:column!important;box-sizing:border-box}.comment-popup-text{white-space:pre-wrap;word-wrap:break-word;word-break:normal;color:#2c3e50;line-height:1.6;font-size:.95rem;overflow-wrap:break-word}.comment-popup-check{flex-shrink:0;display:flex;align-items:flex-start;justify-content:center;margin-left:.5rem}.comment-popup-check-btn{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;transition:background-color .2s}.comment-popup-check-btn:hover{background-color:#f0f0f0}.comment-popup-check-btn.resolved svg{fill:#4caf50}.comment-popup-item.resolved{opacity:.5;filter:grayscale(.3)}.comment-popup-item.resolved .comment-popup-text,.comment-popup-item.resolved .comment-popup-author,.comment-popup-item.resolved .comment-popup-timestamp{color:#95a5a6}.comment-popup-arrow{position:absolute;bottom:-6px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #ffffff;filter:drop-shadow(0 2px 2px rgba(0,0,0,.1))}.comment-popup-arrow:before{content:"";position:absolute;bottom:1px;left:50%;transform:translate(-50%);width:0;height:0;border-left:6px solid transparent;border-right:6px solid transparent;border-top:6px solid #e0e0e0}.form-group input:disabled,.form-group select:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-hint{margin-top:.5rem;font-size:.85rem;color:#666}.weekly-compare-dialog .dialog-content{max-width:920px}.weekly-compare-body{padding:1rem 1.5rem 1.5rem}.weekly-compare-summary{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;margin-bottom:1rem}.weekly-compare-summary-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.6rem .75rem}.weekly-compare-summary-item .label{font-size:.75rem;color:#64748b;margin-bottom:.25rem}.weekly-compare-summary-item .value{font-size:1.15rem;font-weight:600;color:#0f172a}.weekly-compare-ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46;padding:.75rem 1rem;border-radius:6px;margin-bottom:1rem;font-size:.95rem}.weekly-compare-section-title{font-size:.95rem;font-weight:600;color:#334155;margin:1rem 0 .5rem}.weekly-compare-table-wrap{max-height:320px;overflow:auto;border:1px solid #e2e8f0;border-radius:6px}.weekly-compare-table{width:100%;border-collapse:collapse;font-size:.85rem}.weekly-compare-table th,.weekly-compare-table td{padding:.45rem .5rem;text-align:left;border-bottom:1px solid #f1f5f9;vertical-align:top}.weekly-compare-table th{position:sticky;top:0;background:#f1f5f9;font-weight:600;color:#475569;z-index:1}.weekly-compare-table .mono{font-family:ui-monospace,monospace;font-size:.8rem;word-break:break-all}.weekly-compare-cell-title{color:#0f172a;font-size:.88rem;line-height:1.35}.weekly-compare-cell-id{margin-top:.2rem;font-size:.72rem;color:#94a3b8}.weekly-compare-hints{margin-top:1rem;border:1px solid #e2e8f0;border-radius:6px;padding:0;overflow:hidden}.weekly-compare-hints summary{cursor:pointer;padding:.6rem .75rem;background:#f8fafc;font-weight:500;color:#475569;list-style-position:outside;margin-left:.5rem}.weekly-compare-hints ul{margin:0;padding:.75rem 1.25rem 1rem 2rem;color:#475569;font-size:.88rem;line-height:1.5}.weekly-compare-blocked{font-size:.85rem;color:#64748b;max-height:120px;overflow:auto;padding:.5rem 0}.weekly-compare-error{color:#b91c1c;padding:.5rem 0}.cell-comment-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.cell-comment-dialog{background:#fff;border-radius:8px;width:90%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d}.cell-comment-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem}.cell-comment-dialog-header h3{margin:0;font-size:1.2rem;font-weight:600;color:#2c3e50}.cell-comment-dialog-close{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.cell-comment-dialog-close:hover{background-color:#ecf0f1;color:#2c3e50}.cell-comment-dialog-body{padding:0 1.5rem 1.5rem;flex:1;overflow-y:auto}.cell-comment-textarea{width:100%;min-height:120px;padding:.75rem;border:1px solid #ddd;border-radius:4px;font-size:.95rem;font-family:inherit;resize:vertical;line-height:1.5}.cell-comment-textarea:focus{outline:none;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.cell-comment-dialog-hint{margin-top:.5rem;font-size:.85rem;color:#7f8c8d}.cell-comment-dialog-footer{display:flex;gap:.5rem;padding:1rem 1.5rem;border-top:1px solid #e0e0e0;align-items:center}.cell-comment-dialog-delete{padding:.5rem 1rem;background:#e74c3c;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.cell-comment-dialog-delete:hover:not(:disabled){background:#c0392b}.cell-comment-dialog-delete:disabled{background:#bdc3c7;cursor:not-allowed}.cell-comment-dialog-cancel{padding:.5rem 1rem;background:#fff;color:#333;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.cell-comment-dialog-cancel:hover{background:#f5f5f5}.cell-comment-dialog-save{padding:.5rem 1rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.cell-comment-dialog-save:hover:not(:disabled){background:#2980b9}.cell-comment-dialog-save:disabled{background:#bdc3c7;cursor:not-allowed}.cell-comment-list{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem;max-height:400px;overflow-y:auto;padding-right:.5rem}.cell-comment-item{border:1px solid #e0e0e0;border-radius:6px;padding:.75rem;background-color:#f8f9fa;margin-bottom:.75rem;width:100%;box-sizing:border-box}.cell-comment-item:last-child{margin-bottom:0}.cell-comment-item-content{display:flex!important;flex-direction:row!important;gap:.75rem;align-items:flex-start;width:100%;box-sizing:border-box}.cell-comment-item-left{display:flex!important;flex-direction:column!important;align-items:center;gap:.5rem;flex-shrink:0;width:90px;min-width:90px;max-width:90px}.cell-comment-avatar{width:24px;height:24px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.cell-comment-avatar svg{width:100%;height:100%}.cell-comment-item-author{display:flex;flex-direction:column;gap:.125rem;align-items:center;text-align:center;width:100%}.cell-comment-author-name{font-weight:600;font-size:.85rem;color:#2c3e50;line-height:1.3;word-break:break-word}.cell-comment-timestamp{font-size:.75rem;color:#7f8c8d;line-height:1.2}.cell-comment-item-right{flex:1 1 auto!important;min-width:0;display:flex!important;flex-direction:column!important;gap:.5rem;box-sizing:border-box}.cell-comment-item-actions{display:flex;gap:.5rem;justify-content:flex-end;margin-top:.25rem}.cell-comment-edit-btn,.cell-comment-delete-btn{padding:.25rem .75rem;border:1px solid #ddd;border-radius:4px;background:#fff;color:#333;font-size:.85rem;cursor:pointer;transition:background-color .2s}.cell-comment-edit-btn:hover{background:#f5f5f5}.cell-comment-delete-btn{color:#e74c3c;border-color:#e74c3c}.cell-comment-delete-btn:hover{background:#fee}.cell-comment-item-text{font-size:.95rem;color:#2c3e50;line-height:1.6;white-space:pre-wrap;word-wrap:break-word}.cell-comment-edit-form{display:flex;flex-direction:column;gap:.5rem}.cell-comment-edit-actions{display:flex;gap:.5rem;justify-content:flex-end}.cell-comment-cancel-btn{padding:.4rem .8rem;background:#fff;color:#333;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .2s}.cell-comment-cancel-btn:hover{background:#f5f5f5}.cell-comment-save-btn{padding:.4rem .8rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem;transition:background-color .2s}.cell-comment-save-btn:hover:not(:disabled){background:#2980b9}.cell-comment-save-btn:disabled{background:#bdc3c7;cursor:not-allowed}.cell-comment-new{padding-top:0;margin-top:0}.cell-comment-new-label{font-size:.9rem;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.comments-list-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10000}.comments-list-dialog{background:#fff;border-radius:8px;width:90%;max-width:700px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 20px #0000004d}.comments-list-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;border-bottom:1px solid #e0e0e0}.comments-list-dialog-header h3{margin:0;font-size:1.2rem;font-weight:600;color:#2c3e50}.comments-list-dialog-close{background:none;border:none;font-size:1.5rem;color:#7f8c8d;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s,color .2s}.comments-list-dialog-close:hover{background-color:#ecf0f1;color:#2c3e50}.comments-list-dialog-body{padding:1.5rem;flex:1;overflow-y:auto;min-height:200px}.comments-list-empty{text-align:center;color:#7f8c8d;padding:2rem}.comments-list{display:flex;flex-direction:column;gap:.75rem}.comments-list-item{padding:.75rem 1rem;border:1px solid #e0e0e0;border-radius:6px;cursor:pointer;transition:background-color .2s,border-color .2s,box-shadow .2s;background-color:#fff}.comments-list-item:hover{background-color:#f8f9fa;border-color:#3498db;box-shadow:0 2px 4px #3498db1a}.comments-list-item-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.comments-list-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:.5rem}.comments-list-item-primary{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;font-size:.9rem;line-height:1.4}.comments-list-item-datetime{font-weight:600;color:#2c3e50}.comments-list-item-separator{color:#95a5a6;margin:0 .125rem}.comments-list-item-subject{color:#27ae60;font-weight:500}.comments-list-item-teacher{color:#2980b9;font-weight:500}.comments-list-item-user{color:#7f8c8d;font-size:.85rem}.comments-list-item-comment{font-size:.95rem;color:#2c3e50;line-height:1.6;white-space:pre-wrap;word-wrap:break-word;padding:.5rem .75rem;background-color:#f8f9fa;border-radius:4px;border-left:3px solid #3498db;margin-top:.25rem}.comments-list-item-right{display:flex;flex-direction:column;align-items:flex-end;gap:.5rem;flex-shrink:0}.comments-list-item-actions{display:flex;flex-direction:column;align-items:center;gap:.25rem}.comments-list-item-date{font-size:.8rem;color:#95a5a6;white-space:nowrap;margin-top:.125rem}.comments-list-item-check-btn{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;transition:background-color .2s;flex-shrink:0}.comments-list-item-check-btn:hover{background-color:#f0f0f0}.comments-list-item-check-btn.resolved svg{fill:#4caf50}.comments-list-item-delete-btn{background:none;border:none;cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:4px;transition:background-color .2s;flex-shrink:0}.comments-list-item-delete-btn:hover:not(:disabled){background-color:#fee}.comments-list-item-delete-btn:disabled{opacity:.5;cursor:not-allowed}.comments-list-item-resolved-badge{display:inline-block;padding:.125rem .5rem;background-color:#4caf50;color:#fff;border-radius:12px;font-size:.75rem;font-weight:600;margin-right:.5rem}.comments-list-item.resolved{opacity:.6;filter:grayscale(.3)}.comments-list-item.resolved .comments-list-item-datetime,.comments-list-item.resolved .comments-list-item-subject,.comments-list-item.resolved .comments-list-item-teacher,.comments-list-item.resolved .comments-list-item-user,.comments-list-item.resolved .comments-list-item-comment{color:#95a5a6}.comments-list-dialog-footer{padding:1rem 1.5rem;border-top:1px solid #e0e0e0;display:flex;justify-content:flex-end}.comments-list-dialog-close-btn{padding:.5rem 1rem;background:#3498db;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;transition:background-color .2s}.comments-list-dialog-close-btn:hover{background:#2980b9}.context-menu{background:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #00000026;min-width:160px;padding:4px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.context-menu-item{display:block;width:100%;padding:8px 16px;text-align:left;background:none;border:none;cursor:pointer;font-size:.9rem;color:#333;transition:background-color .15s}.context-menu-item:hover:not(:disabled){background-color:#f0f0f0}.context-menu-item:disabled{color:#999;cursor:not-allowed}.context-menu-separator{height:1px;background-color:#e0e0e0;margin:4px 0}.timetable-page{display:flex;flex-direction:column;height:100%;overflow:hidden}.timetable-body-row{display:flex;flex:1;min-height:0;overflow:hidden}.timetable-body-column{display:flex;flex-direction:column;flex:1;min-width:0;overflow:hidden}.swap-mode-message{background-color:#e3f2fd;border:2px solid #2196f3;border-radius:4px;padding:.75rem 1rem;margin:.5rem 0;color:#1976d2;font-size:.95rem;font-weight:500;text-align:center;box-shadow:0 2px 4px #2196f333}.timetable-content{display:flex;flex:1;gap:.5rem;overflow:hidden;min-width:0}.timetable-content--sidebar-open{margin-right:391px}.timetable-content--swap-panel-open{margin-right:400px}.timetable-content--sidebar-open.timetable-content--swap-panel-open{margin-right:791px}.timetable-split-container{flex:1;display:flex;flex-direction:column;overflow:hidden;position:relative}.timetable-section{background:#fff;border-radius:8px;padding:.5rem;box-shadow:0 2px 4px #0000001a;overflow:hidden;display:flex;flex-direction:column;min-height:0;flex-shrink:0;width:100%;max-width:100%;box-sizing:border-box}.timetable-section>*{flex:1;min-height:0;height:100%}.timetable-section-top{border-radius:8px 8px 0 0}.timetable-section-bottom{border-radius:0 0 8px 8px}.ai-support-panel-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1000;display:flex;align-items:center;justify-content:flex-end;padding:1rem;pointer-events:auto}.ai-support-panel-container{background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;width:450px;max-width:90vw;height:90vh;max-height:90vh;display:flex;flex-direction:column;overflow:hidden;pointer-events:auto;position:relative;z-index:1001}.ai-support-panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #eee;background:#f8f9fa}.ai-support-panel-header h3{margin:0;font-size:1.2rem;font-weight:600}.ai-support-panel-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s;pointer-events:auto;z-index:1001}.ai-support-panel-close:hover{background:#e9ecef}.ai-support-panel-content{flex:1;overflow:hidden;display:flex;flex-direction:column;min-height:0;position:relative;pointer-events:auto}.ai-support-panel-content>:global(.ai-support-panel){flex:1;overflow-y:auto;overflow-x:hidden;padding:0;max-width:100%;border:none;border-radius:0;min-height:0;display:flex;flex-direction:column;height:100%}.timetable-resizer{height:8px;background:#ddd;cursor:row-resize;position:relative;flex-shrink:0;z-index:10;transition:background-color .2s}.timetable-resizer:hover{background:#bbb}.timetable-resizer:active{background:#999}.timetable-resizer:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:40px;height:4px;background:#999;border-radius:2px}.timetable-grids{flex:1;display:flex;flex-direction:column;gap:.5rem;overflow-y:auto}.section-title{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#2c3e50}@media (max-width: 1024px){.timetable-content{flex-direction:column;gap:.5rem}.timetable-section{padding:.5rem}.section-title{font-size:1.1rem;margin-bottom:.5rem}}@media (max-width: 768px){.timetable-content{flex-direction:column;gap:.75rem;padding:.5rem}.timetable-grids{gap:.75rem}.timetable-section{padding:.5rem;border-radius:4px}.section-title{font-size:1rem;margin-bottom:.5rem}}@media (max-width: 480px){.timetable-content{padding:.25rem;gap:.5rem}.timetable-section{padding:.5rem}.section-title{font-size:.9rem;margin-bottom:.5rem}}.timetable-version-footer{position:sticky;bottom:0;left:0;right:0;background-color:#2c3e50;border-top:1px solid rgba(255,255,255,.1);z-index:50;flex-shrink:0}.version-tabs-container{width:100%;background-color:#2c3e50;border-top:1px solid rgba(255,255,255,.1);padding:0;overflow:hidden;display:flex;flex-direction:column;gap:0}.version-tabs-row{flex-shrink:0}.version-tabs-row-month{padding-top:4px;padding-left:4px;padding-right:4px}.version-tabs-row-weeks{padding-left:4px;padding-right:4px;padding-bottom:2px;border-top:1px solid rgba(255,255,255,.08);min-height:25px;box-sizing:content-box}.version-tab.version-tab-weekly{width:-moz-max-content;width:max-content;min-width:180px;max-width:none;padding-right:0;box-sizing:border-box;gap:0;justify-content:flex-start}.version-tab.version-tab-weekly .version-tab-text{overflow:visible;text-overflow:unset;min-width:-moz-min-content;min-width:min-content;padding-right:0;flex:0 1 auto;flex-shrink:0;text-align:center}.version-tab.version-tab-weekly .version-tab-close{flex-shrink:0;margin:0 0 0 2px}.version-tabs-row-weeks .version-tab-empty{padding:2px 8px;font-size:.85rem}.version-tab-month{min-width:48px;max-width:none;width:-moz-max-content;width:max-content}.version-tab-annual{min-width:72px;max-width:none;width:-moz-max-content;width:max-content}.version-tab-base-switch{min-width:120px;max-width:none;width:-moz-max-content;width:max-content;background-color:#ff980040;border-color:#ff980080}.version-tab-base-switch:hover{background-color:#ff980066;border-color:#ff9800b3}.version-tabs-scroll{display:flex;overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) #2c3e50;-ms-overflow-style:-ms-autohiding-scrollbar;align-items:flex-end}.version-tabs-scroll::-webkit-scrollbar{height:8px}.version-tabs-scroll::-webkit-scrollbar-track{background:#2c3e50}.version-tabs-scroll::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.version-tabs-scroll::-webkit-scrollbar-thumb:hover{background:#ffffff80}.version-tab{position:relative;display:flex;align-items:center;justify-content:space-between;gap:4px;min-height:24px;height:auto;padding:.25em 8px .25em 12px;margin-right:2px;background-color:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-bottom:none;border-radius:4px 4px 0 0;cursor:pointer;font-size:var(--tt-font-size-sheet-tab, .75rem);color:#fff;white-space:nowrap;min-width:60px;max-width:none;width:-moz-max-content;width:max-content;transition:background-color .15s ease;z-index:1;outline:none;flex-shrink:0;box-sizing:border-box}.version-tab:hover:not([aria-disabled=true]):not(.active){background-color:#ffeb3b80;border-color:#ffeb3bcc}.version-tab:active:not([aria-disabled=true]):not(.active){background-color:#ffeb3b66}.version-tab:focus-visible{outline:2px solid #ffc107;outline-offset:2px;background-color:#ffc1074d;border-color:#ffc107}.version-tab:focus:not(:focus-visible){outline:none}.version-tab.active{background-color:#fff;border-bottom:1px solid #ffffff;border-color:#ffffff4d;color:#2c3e50;z-index:2;box-shadow:0 -2px 4px #0000001a;margin-bottom:-1px;min-height:25px;height:auto}.version-tab[aria-disabled=true]{opacity:.6;cursor:not-allowed}.version-tab-text{overflow:visible;text-overflow:unset;white-space:nowrap;flex:0 1 auto;flex-shrink:0;text-align:center;line-height:1.2;padding-right:4px;min-width:-moz-min-content;min-width:min-content}.version-tab-close{background:none;border:none;color:#dc2626;cursor:pointer;font-size:1.2rem;font-weight:700;line-height:1;padding:0;width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:3px;flex-shrink:0;opacity:0;transition:opacity .15s ease,background-color .15s ease}.version-tab:hover .version-tab-close{opacity:1}.version-tab-close:hover{background-color:#dc262626}.version-tab.active .version-tab-close{color:#dc2626}.version-tab.active:hover .version-tab-close{opacity:1}.version-tab.active .version-tab-close:hover{background-color:#dc262626}.version-tab-lock-icon{font-size:.9rem;margin-left:4px;flex-shrink:0;opacity:.8}.version-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;background-color:#e74c3c;color:#fff;border-radius:9px;font-size:11px;font-weight:600;line-height:1;margin-left:4px;box-shadow:0 1px 3px #0000004d}.version-tab-add{font-weight:700;font-size:1.1rem;min-width:40px;max-width:none;width:-moz-max-content;width:max-content;background-color:#4caf5033;border-color:#4caf5080}.version-tab-add:hover:not(:disabled){background-color:#4caf5066;border-color:#4caf50cc}.version-tab-add:active:not(:disabled){background-color:#4caf504d}@media (max-width: 1024px){.version-tab{padding:.25em 10px;min-width:50px;max-width:none;width:-moz-max-content;width:max-content;min-height:22px;height:auto}.version-tab.active{min-height:23px;height:auto}}@media (max-width: 768px){.version-tab{padding:.25em 8px;min-width:40px;max-width:none;width:-moz-max-content;width:max-content;min-height:20px;height:auto}.version-tab.active{min-height:21px;height:auto}}@media (max-width: 480px){.version-tab{padding:.25em 6px;min-width:35px;max-width:none;width:-moz-max-content;width:max-content;min-height:18px;height:auto}.version-tab.active{min-height:19px;height:auto}}.masters-page{display:flex;flex-direction:column;gap:1rem;min-width:0;width:100%}[data-editing-cell]{min-width:400px!important;max-width:600px!important;width:auto!important;z-index:10000!important;position:relative}.masters-table td [data-editing-cell]{z-index:10000!important;position:absolute!important}[data-editing-cell][data-inline-popover-compact]{min-width:200px!important;max-width:min(420px,92vw)!important}.subject-checkbox-group{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;padding:.75rem;border:1px solid #ddd;border-radius:4px;background-color:#f9fafb;max-height:200px;overflow-y:auto}.subject-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:background-color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.subject-checkbox-label:hover{background-color:#e5e7eb}.subject-checkbox-label input[type=checkbox]{cursor:pointer;width:1.15rem;height:1.15rem;flex-shrink:0;margin:0;accent-color:#3498db}.subject-checkbox-label span{font-size:.95rem;line-height:1.15rem}.subject-specialty-grid{display:flex;flex-direction:column;gap:.75rem}.subject-specialty-section{width:100%;min-height:110px}.subject-specialty-section-title{font-weight:700;margin-bottom:.25rem}.subject-specialty-section-items{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-template-rows:repeat(3,minmax(2rem,auto));gap:.35rem .5rem}.subject-specialty-item-label{display:grid;grid-template-columns:1.2rem minmax(0,1fr);width:100%;min-width:0;align-items:start;gap:.35rem;padding:.2rem .25rem}.subject-specialty-item-label input[type=checkbox]{flex:0 0 auto;margin:.1rem 0 0}.subject-specialty-item-label span{writing-mode:horizontal-tb;text-orientation:mixed;white-space:nowrap;overflow-wrap:normal;word-break:keep-all;line-height:1.35;font-size:.95rem}.role-checkbox-groups{display:flex;flex-direction:column;gap:1rem;margin-top:.5rem}.role-category-group{display:flex;flex-direction:column;gap:.5rem}.role-category-header{font-weight:600;font-size:.9rem;color:#333;padding:.25rem 0;border-bottom:1px solid #e5e7eb}.role-checkbox-group{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem;border:1px solid #ddd;border-radius:4px;background-color:#f9fafb;max-height:150px;overflow-y:auto}.role-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:background-color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.role-checkbox-label:hover{background-color:#e5e7eb}.role-checkbox-label input[type=checkbox]{cursor:pointer;width:1.15rem;height:1.15rem;flex-shrink:0;margin:0;accent-color:#3498db}.role-checkbox-label span{font-size:.95rem;line-height:1.15rem}.class-assignment-section{margin-top:.5rem;padding:1rem;border:1px solid #ddd;border-radius:4px;background-color:#f9fafb}.assignment-type-selector{display:flex;gap:1rem;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e5e7eb}.assignment-type-option{display:flex;align-items:center;gap:.5rem;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.assignment-type-option input[type=radio]{cursor:pointer;width:1.15rem;height:1.15rem;accent-color:#3498db}.assignment-type-option span{font-size:.95rem}.grade-selection,.class-selection{margin-top:.5rem}.grade-checkbox-group,.class-checkbox-group{display:flex;flex-wrap:wrap;gap:.75rem;padding:.75rem;border:1px solid #ddd;border-radius:4px;background-color:#fff;max-height:200px;overflow-y:auto}.grade-checkbox-label,.class-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:background-color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.grade-checkbox-label:hover,.class-checkbox-label:hover{background-color:#e5e7eb}.grade-checkbox-label.disabled,.class-checkbox-label.disabled{opacity:.5;cursor:not-allowed}.grade-checkbox-label input[type=checkbox],.grade-checkbox-label input[type=radio],.class-checkbox-label input[type=checkbox]{cursor:pointer;width:1.15rem;height:1.15rem;flex-shrink:0;margin:0;accent-color:#3498db}.grade-checkbox-label.disabled input[type=checkbox],.class-checkbox-label.disabled input[type=checkbox]{cursor:not-allowed}.grade-checkbox-label span,.class-checkbox-label span{font-size:.95rem;line-height:1.15rem}.teaching-class-checkbox-group{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:.5rem;padding:.75rem;border:1px solid #ddd;border-radius:4px;background-color:#f9fafb;max-height:200px;overflow-y:auto}.teaching-class-checkbox-label{display:inline-flex;align-items:center;gap:.5rem;cursor:pointer;padding:.4rem .6rem;border-radius:4px;transition:background-color .2s;-webkit-user-select:none;-moz-user-select:none;user-select:none}.teaching-class-checkbox-label:hover{background-color:#e5e7eb}.teaching-class-checkbox-label input[type=checkbox]{cursor:pointer;width:1.15rem;height:1.15rem;flex-shrink:0;margin:0;accent-color:#3498db}.teaching-class-checkbox-label span{font-size:.95rem;line-height:1.15rem}.masters-tabs{display:flex;gap:.75rem;border-bottom:2px solid #e2e8f0}.masters-tabs button{padding:.5rem 1rem;border:none;background:none;font-size:1rem;font-weight:600;color:#52606d;cursor:pointer;border-radius:6px 6px 0 0}.masters-tabs button.active{background-color:#fff;color:#1d4ed8;border-bottom:3px solid #1d4ed8}.masters-sub-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:1.25rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0}.masters-sub-tabs button{padding:.4rem .85rem;border:1px solid #e2e8f0;background:#f8fafc;font-size:.9rem;font-weight:600;color:#475569;cursor:pointer;border-radius:6px;transition:background-color .15s,border-color .15s,color .15s}.masters-sub-tabs button:hover{background:#f1f5f9;border-color:#cbd5e1}.masters-sub-tabs button.active{background:#fff;color:#1d4ed8;border-color:#93c5fd;box-shadow:0 1px 2px #0f172a0f}.teacher-master{padding-top:.25rem}.teacher-master__content{min-height:120px}.resource-room-panel{margin-bottom:1.5rem;padding:1.25rem 1.35rem;background:linear-gradient(180deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;border-radius:10px;box-shadow:0 1px 3px #0f172a0f}.resource-room-panel__title{margin:0 0 .5rem;font-size:1.05rem;font-weight:700;color:#0f172a;letter-spacing:.02em}.resource-room-panel__hint{margin:0 0 1.1rem;font-size:.85rem;line-height:1.5;color:#64748b}.resource-room-form{margin:0}.resource-room-form-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem 1.25rem;align-items:end}.resource-room-form-grid label{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;font-weight:600;color:#334155;min-width:0}.resource-room-form-grid input,.resource-room-form-grid select{width:100%;box-sizing:border-box;border:1px solid #cbd5e1;border-radius:8px;padding:.5rem .65rem;font-size:.95rem;background:#fff;color:#0f172a;transition:border-color .15s ease,box-shadow .15s ease}.resource-room-form-grid input::-moz-placeholder{color:#94a3b8}.resource-room-form-grid input::placeholder{color:#94a3b8}.resource-room-form-grid input:hover,.resource-room-form-grid select:hover{border-color:#94a3b8}.resource-room-form-grid input:focus,.resource-room-form-grid select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f62e}.resource-room-form-actions{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:.65rem;justify-content:flex-end;align-items:center;padding-top:1rem;margin-top:.35rem;border-top:1px dashed #cbd5e1}.resource-room-btn-secondary{padding:.5rem 1rem;border-radius:8px;border:1px solid #e2e8f0;background:#fff;font-weight:600;font-size:.9rem;cursor:pointer;color:#475569;transition:background-color .15s,border-color .15s}.resource-room-btn-secondary:hover{background:#f8fafc;border-color:#cbd5e1}.resource-room-table-wrap{margin-top:.25rem}.resource-room-settings-section .resource-room-page-title{margin:0 0 1rem;font-size:1.2rem;font-weight:700;color:#0f172a}.masters-table-empty{text-align:center;color:#64748b;padding:1.5rem 1rem!important;font-size:.95rem;background:#fafafa}.masters-content{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0f172a14;min-width:0}.teacher-subject-hours-matrix-wrap{width:100%;max-width:100%;min-width:0;position:relative;box-sizing:border-box}.masters-table.teacher-subject-hours-matrix{border-collapse:separate;border-spacing:0}.masters-table.teacher-subject-hours-matrix thead{position:static;z-index:auto}.masters-header{display:flex;flex-direction:column;gap:.25rem;margin-bottom:1rem}.masters-header button.primary,.masters-header .primary{align-self:flex-start;width:auto;padding:.5rem 1rem;background-color:#2563eb;color:#fff;border:1px solid #2563eb;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s}.masters-header button.primary:hover,.masters-header .primary:hover{background-color:#1d4ed8;border-color:#1d4ed8}.masters-header button.ghost,.masters-header .ghost{align-self:flex-start;width:auto;padding:.5rem 1rem;background-color:#fff;color:#0f172a;border:1px solid #e2e8f0;border-radius:6px;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}.masters-header button.ghost:hover,.masters-header .ghost:hover{background-color:#f8fafc;border-color:#cbd5e1}.masters-header button.ghost:disabled,.masters-header .ghost:disabled{opacity:.6;cursor:not-allowed}.masters-header button.primary:disabled,.masters-header .primary:disabled{opacity:.6;cursor:not-allowed}.section-description{color:#64748b;font-size:.9rem}.masters-layout{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;max-width:100%}.masters-form{display:flex;flex-direction:column;gap:1rem;padding:1rem;border:1px solid #e2e8f0;border-radius:8px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem}.masters-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.masters-form label.full-width-label{grid-column:1 / -1;color:#0f172a}.masters-form input,.masters-form textarea,.masters-form select{border:1px solid #cbd5f5;border-radius:6px;padding:.45rem .5rem;font-size:.95rem;background:#fff}.masters-form textarea{font-family:Fira Code,monospace;min-height:3rem}.form-actions button{padding:.5rem .9rem;border-radius:6px;border:none;cursor:pointer;font-weight:600}.masters-table-wrapper{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px}.masters-table{width:100%;border-collapse:collapse}.masters-table th,.masters-table td{padding:.65rem .75rem;border-bottom:1px solid #e2e8f0;text-align:left}.masters-table td[style*="cursor: pointer"]{transition:background-color .2s}.masters-table td[style*="cursor: pointer"]:hover{background-color:#f0f9ff}.masters-table thead{background:#f8fafc;position:relative;z-index:1}.masters-table th.sortable{position:relative;padding-right:1.5rem}.masters-table th.sortable:hover{background-color:#e5e7eb;transition:background-color .2s}.masters-table th .sort-indicator{position:absolute;right:.5rem;font-size:.75rem;color:#3498db}.masters-table-teachers{table-layout:fixed}.masters-table-teachers .teacher-subjects-cell{overflow-wrap:break-word;word-wrap:break-word;word-break:keep-all}.masters-table-teachers .teacher-teaching-classes-cell{max-width:100%;min-width:0}.teacher-teaching-class-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:.2rem .35rem;border-radius:4px;min-height:36px;min-width:48px;transition:box-shadow .2s}.teacher-teaching-class-item:hover{box-shadow:0 2px 6px #0000001f}.teacher-teaching-class-item-subject{font-size:.8rem;font-weight:600;color:#2c3e50;text-align:center;margin-bottom:.15rem;line-height:1.2}.teacher-teaching-class-item-class{font-size:.75rem;color:#7f8c8d;text-align:center;line-height:1.2}.teacher-subject-item{display:inline-flex;align-items:center;font-size:.8rem;font-weight:500;color:#2c3e50;white-space:nowrap;transition:box-shadow .2s}.teacher-subject-item:hover{box-shadow:0 2px 6px #0000001a}.standard-hours-subject-row .standard-hours-delete-btn{opacity:0;pointer-events:none;transition:opacity .15s ease}.standard-hours-subject-row:hover .standard-hours-delete-btn{opacity:1;pointer-events:auto}.table-actions button{padding:.35rem .7rem;border-radius:4px;border:none;cursor:pointer;font-size:.85rem}.table-actions button:hover{opacity:.85}.table-actions .danger,.action-buttons .danger{background-color:#dc2626;color:#fff}.table-actions .danger:hover,.action-buttons .danger:hover{background-color:#b91c1c}.table-actions button:not(.danger),.action-buttons button:not(.danger){background-color:#e0f2fe;color:#0369a1}.action-buttons{display:flex;gap:.4rem}.action-buttons button{padding:.35rem .7rem;border-radius:4px;border:none;cursor:pointer;font-size:.85rem;font-weight:500}.action-buttons button:hover{opacity:.85}@media (max-width: 1024px){.masters-layout{grid-template-columns:1fr}.form-actions{flex-wrap:wrap}}@media (max-width: 640px){.masters-content{padding:1rem}.masters-tabs{flex-wrap:wrap}}.unavailable-timetable{border:1px solid #ddd;border-radius:6px;overflow:hidden;margin-top:.5rem;background:#fff}.unavailable-timetable-header{display:grid;grid-template-columns:40px repeat(5,1fr);background:#f8fafc;border-bottom:1px solid #ddd}.unavailable-timetable-corner{padding:.5rem;font-weight:600;font-size:.85rem;color:#64748b}.unavailable-timetable-day-header{padding:.5rem;text-align:center;font-weight:600;font-size:.85rem;color:#64748b;border-left:1px solid #ddd}.unavailable-timetable-row{display:grid;grid-template-columns:40px repeat(5,1fr);border-bottom:1px solid #e2e8f0}.unavailable-timetable-row:last-child{border-bottom:none}.unavailable-timetable-period-header{padding:.5rem;text-align:center;font-weight:600;font-size:.85rem;color:#64748b;background:#f8fafc;display:flex;align-items:center;justify-content:center;border-right:1px solid #ddd}.unavailable-timetable-cell{border:none;background:#fff;border-left:1px solid #e2e8f0;padding:.5rem;cursor:pointer;transition:background-color .2s;display:flex;align-items:center;justify-content:center;min-height:40px}.unavailable-timetable-cell:hover{background:#f1f5f9}.unavailable-timetable-cell.unavailable{background:#fee2e2}.unavailable-timetable-cell.unavailable:hover{background:#fecaca}.unavailable-timetable-cell.has-class{background:#dbeafe}.unavailable-timetable-cell.has-class:hover{background:#bfdbfe}.unavailable-mark{font-size:1.2rem;font-weight:700;color:#dc2626;line-height:1}.class-mark{font-size:.75rem;font-weight:600;color:#1e40af;line-height:1;text-align:center;word-break:break-word}.unavailable-timetable-hint{margin-top:.5rem;font-size:.8rem;color:#64748b;font-style:italic}.masters-page button.primary,.masters-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.masters-page button.primary:hover,.masters-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.masters-page button.primary:disabled,.masters-page .primary:disabled{opacity:.6;cursor:not-allowed}.masters-page button.danger,.masters-page .danger{background-color:#dc2626;color:#fff;border:1px solid #dc2626;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s}.masters-page button.danger:hover:not(:disabled),.masters-page .danger:hover:not(:disabled){background-color:#b91c1c;border-color:#b91c1c}.masters-page button.danger:disabled,.masters-page .danger:disabled{opacity:.6;cursor:not-allowed}.masters-page .schedule-cells-toolbar button.primary,.masters-page .schedule-cells-toolbar button.danger{padding:.625rem 1.25rem;border-radius:6px;font-size:.95rem}.masters-page .schedule-cells-toolbar button.secondary.schedule-jump-chip{padding:.375rem .75rem;font-size:.875rem;border-radius:4px}.masters-page button.secondary,.masters-page .secondary{background-color:#fff;color:#007bff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}.masters-page button.secondary:hover:not(:disabled),.masters-page .secondary:hover:not(:disabled){background-color:#e7f1ff;border-color:#0056b3;color:#0056b3}.masters-page button.secondary:disabled,.masters-page .secondary:disabled{opacity:.6;cursor:not-allowed}.masters-page button.ghost,.masters-page .ghost{padding:.5rem 1rem;background-color:#fff;color:#0f172a;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}.masters-page button.ghost:hover:not(:disabled),.masters-page .ghost:hover:not(:disabled){background-color:#f8fafc;border-color:#cbd5e1}.masters-page button.ghost:disabled,.masters-page .ghost:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background-color:#3498db;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:500;transition:background-color .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-primary:hover{background-color:#2980b9}.btn-primary:active{background-color:#21618c}.btn-primary:disabled{background-color:#bdc3c7;cursor:not-allowed;opacity:.6}.btn-secondary{background-color:#95a5a6;color:#fff;border:none;padding:.5rem 1rem;border-radius:4px;cursor:pointer;font-size:.95rem;font-weight:500;transition:background-color .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:.5rem}.btn-secondary:hover{background-color:#7f8c8d}.btn-secondary:active{background-color:#6c7a7a}.btn-secondary:disabled{background-color:#bdc3c7;cursor:not-allowed;opacity:.6}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:10001}.dialog-overlay .dialog-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dialog-overlay .dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:8px 8px 0 0;cursor:move}.dialog-overlay .dialog-header h3{margin:0;font-size:1.2rem}.dialog-overlay .dialog-body{padding:1rem;overflow-y:auto}.dialog-overlay .dialog-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0 .5rem;line-height:1}.teacher-assignment-matrix-section{margin-bottom:1.25rem}.teacher-assignment-matrix-heading{font-size:1.1rem;margin:0;color:#2c3e50}.teacher-assignment-matrix-wrap{max-width:100%;border:1px solid #e2e8f0;border-radius:8px;background:#fafbfc}.teacher-assignment-matrix-h-scroll{overflow-x:auto;max-width:100%}.teacher-assignment-matrix{border-collapse:collapse;width:-moz-max-content;width:max-content;min-width:100%;font-size:.78rem}.teacher-assignment-matrix th,.teacher-assignment-matrix td{border:1px solid #e2e8f0;padding:.2rem .35rem;background:#fff}.teacher-assignment-matrix thead th{position:sticky;top:0;z-index:4;background:#f1f5f9;font-weight:600;color:#334155;max-width:6.5rem;vertical-align:bottom;box-shadow:0 1px #e2e8f0}.teacher-assignment-matrix thead th.sticky-col.corner{z-index:6;left:0;top:0}.teacher-assignment-matrix-th-text{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;line-height:1.2;max-height:3.6em}.teacher-assignment-matrix .sticky-col{position:sticky;left:0;z-index:2;min-width:7.5rem;max-width:10rem;box-shadow:2px 0 4px #0f172a0f}.teacher-assignment-matrix .sticky-col.corner{z-index:3;background:#e2e8f0}.teacher-assignment-matrix .row-head{text-align:left;font-weight:600;background:#f8fafc;white-space:normal;word-break:break-word}.teacher-assignment-matrix-cell-btn{display:block;width:100%;min-height:2rem;padding:.2rem .25rem;border:none;background:transparent;cursor:pointer;text-align:left;font-size:.75rem;line-height:1.25;color:#1e293b;border-radius:4px}.teacher-assignment-matrix-cell-btn:hover:not(:disabled){background:#e0f2fe}.teacher-assignment-matrix-cell-btn:disabled{opacity:.6;cursor:wait}.teacher-assignment-matrix-popover{position:absolute;z-index:10001;min-width:min(380px,92vw);max-width:480px;max-height:min(70vh,420px);display:flex;flex-direction:column;background:#fff;border:1px solid #3498db;border-radius:6px;box-shadow:0 4px 16px #0000001f;padding:.5rem}.teacher-assignment-matrix-popover--anchor-right{top:0;left:100%;margin-left:4px}.teacher-assignment-matrix-popover--anchor-left{top:0;right:100%;left:auto;margin-right:4px}.teacher-assignment-matrix-popover-title{font-size:.85rem;font-weight:700;margin-bottom:.35rem;color:#1e293b}.teacher-assignment-matrix-checkboxes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.3rem .4rem;max-height:min(320px,56vh);overflow-y:auto;margin-top:0!important}.teacher-assignment-matrix-checkboxes .subject-checkbox-label{padding:.2rem .35rem;font-size:.85rem}.teacher-assignment-matrix-popover-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem;padding-top:.5rem;border-top:1px solid #e2e8f0}.teacher-assignment-matrix-popover-hint{font-size:.72rem;color:#64748b;margin-top:.35rem;line-height:1.35}.bulk-teacher-overlay{z-index:10000}.bulk-teacher-dialog{width:98vw!important;max-width:1400px!important;min-width:900px;max-height:90vh;display:flex;flex-direction:column}.bulk-teacher-body{flex:1;overflow:hidden;display:flex;flex-direction:column;padding:1rem}.bulk-teacher-info{margin-bottom:1rem;padding:.75rem 1rem;background:#f0f9ff;border:1px solid #bae6fd;border-radius:6px}.bulk-teacher-info p{margin:0;font-size:.875rem;color:#0369a1}.bulk-teacher-grid-wrapper{flex:1;overflow:auto;border:1px solid #e2e8f0;border-radius:6px;background:#fff}.bulk-teacher-grid{width:100%;border-collapse:collapse;font-size:.8rem}.bulk-teacher-grid thead{position:sticky;top:0;z-index:10;background:#f8fafc}.bulk-teacher-grid th{padding:.5rem;text-align:left;font-weight:600;color:#475569;border-bottom:2px solid #e2e8f0;white-space:nowrap;font-size:.8rem}.bulk-teacher-grid td{padding:.35rem .5rem;border-bottom:1px solid #f1f5f9;vertical-align:top}.bulk-teacher-grid tbody tr:hover{background:#f8fafc}.bulk-teacher-grid tbody tr.row-valid{background:#f0fdf4}.bulk-teacher-grid tbody tr.row-valid:hover{background:#dcfce7}.col-actions{width:32px;min-width:32px;text-align:center}.col-name{width:140px;min-width:130px}.col-shortname{width:80px;min-width:75px}.col-subjects{width:50%;min-width:500px}.col-roles-class{width:12%;min-width:140px}.col-roles-position{width:18%;min-width:220px}.btn-remove-row{width:24px;height:24px;padding:0;border:none;background:transparent;color:#94a3b8;font-size:1rem;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .15s}.btn-remove-row:hover{background:#fee2e2;color:#dc2626}.input-name,.input-shortname{width:100%;padding:.35rem .5rem;border:1px solid #e2e8f0;border-radius:4px;font-size:.8rem;transition:border-color .15s}.input-name:focus,.input-shortname:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f61a}.input-name::-moz-placeholder,.input-shortname::-moz-placeholder{color:#cbd5e1}.input-name::placeholder,.input-shortname::placeholder{color:#cbd5e1}.subject-chips{display:flex;flex-wrap:wrap;gap:3px;align-items:flex-start}.subject-chip{display:inline-flex;align-items:center}.subject-chip .subject-checkbox{display:flex;align-items:center;gap:2px;padding:1px 4px;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:3px;font-size:.7rem;cursor:pointer;transition:all .15s;white-space:nowrap}.subject-chip .subject-checkbox:hover{background:#e2e8f0}.subject-chip.selected .subject-checkbox{background:#dbeafe;border-color:#93c5fd}.subject-chip .subject-checkbox input{width:11px;height:11px;margin:0;flex-shrink:0}.subject-chip .subject-name{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.subject-chip.selected .subject-name:hover{text-decoration:underline;color:#2563eb}.subject-chip .class-count{font-size:.7rem;color:#3b82f6;margin-left:2px;font-weight:600}.role-chips{display:flex;flex-wrap:wrap;gap:3px}.role-checkbox{display:flex;align-items:center;gap:3px;padding:1px 4px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:3px;font-size:.7rem;cursor:pointer;transition:all .15s}.role-checkbox:hover{background:#f1f5f9}.role-checkbox:has(input:checked){background:#fef3c7;border-color:#fcd34d}.role-checkbox input{width:11px;height:11px;margin:0;flex-shrink:0}.role-checkbox span{white-space:nowrap}.bulk-teacher-actions-row{display:flex;align-items:center;gap:1rem;margin-top:1rem;padding-top:.75rem;border-top:1px solid #e2e8f0}.btn-add-rows{padding:.5rem 1rem;border:1px dashed #94a3b8;border-radius:6px;background:transparent;color:#64748b;font-size:.875rem;cursor:pointer;transition:all .15s}.btn-add-rows:hover{border-color:#3b82f6;color:#3b82f6;background:#f0f9ff}.valid-count{font-size:.875rem;color:#64748b}.dialog-footer{display:flex;gap:.75rem;padding:1rem;border-top:1px solid #e2e8f0;background:#f8fafc}.dialog-footer button.primary{padding:.625rem 1.5rem;background:#3b82f6;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .15s}.dialog-footer button.primary:hover:not(:disabled){background:#2563eb}.dialog-footer button.primary:disabled{background:#94a3b8;cursor:not-allowed}.dialog-footer button.ghost{padding:.625rem 1rem;background:transparent;color:#64748b;border:1px solid #e2e8f0;border-radius:6px;font-size:.875rem;cursor:pointer;transition:all .15s}.dialog-footer button.ghost:hover:not(:disabled){background:#f1f5f9;color:#475569}.class-select-popup{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px #00000026;min-width:200px;max-width:300px;max-height:300px;overflow:hidden;display:flex;flex-direction:column}.class-select-popup .popup-header{display:flex;align-items:center;gap:.25rem;padding:.75rem 1rem;background:#f8fafc;border-bottom:1px solid #e2e8f0;font-size:.875rem}.class-select-popup .popup-header strong{color:#1e40af}.class-select-popup .popup-close{margin-left:auto;width:24px;height:24px;padding:0;border:none;background:transparent;color:#94a3b8;font-size:1rem;cursor:pointer;border-radius:4px;display:flex;align-items:center;justify-content:center}.class-select-popup .popup-close:hover{background:#fee2e2;color:#dc2626}.class-select-popup .popup-body{padding:.75rem;overflow-y:auto;flex:1}.class-select-popup .no-classes{color:#94a3b8;font-size:.875rem;text-align:center;padding:1rem;margin:0}.class-select-popup .class-checkboxes{display:flex;flex-direction:column;gap:4px}.class-select-popup .class-checkbox-item{display:flex;align-items:center;gap:.5rem;padding:.375rem .5rem;border-radius:4px;cursor:pointer;transition:background .15s}.class-select-popup .class-checkbox-item:hover{background:#f1f5f9}.class-select-popup .class-checkbox-item:has(input:checked){background:#dbeafe}.class-select-popup .class-checkbox-item input{width:14px;height:14px;margin:0}.class-select-popup .class-checkbox-item span{font-size:.875rem;color:#334155}.constraints-page{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:100%}.constraints-header{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap}.constraints-header h2{margin:0}.constraints-filters{display:flex;gap:.75rem;flex-wrap:wrap}.constraints-filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.constraints-filters select{border:1px solid #cbd5f5;border-radius:6px;padding:.4rem .6rem}.constraints-content{width:100%;max-width:100%}.constraints-form,.constraints-table-wrapper{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0f172a14;width:100%;max-width:100%}.constraints-form{display:flex;flex-direction:column;gap:.5rem}.constraints-form label{display:flex;flex-direction:column;gap:.2rem;font-size:.85rem}.constraints-form input:not([type=checkbox]):not([type=radio]),.constraints-form select,.constraints-form textarea{border:1px solid #cbd5f5;border-radius:4px;padding:.35rem .45rem;font-size:.85rem}.constraints-form textarea{font-family:Fira Code,monospace}.target-kind-group{display:flex;gap:.3rem;flex-wrap:wrap}.target-kind-group button{border:1px solid #94a3b8;background:#f8fafc;border-radius:999px;padding:.3rem .75rem;cursor:pointer;font-size:.85rem}.constraint-hint{font-size:.75rem;color:#64748b;margin-top:.15rem}.constraints-table{width:100%;border-collapse:collapse}.constraints-table th,.constraints-table td{padding:.65rem .75rem;border-bottom:1px solid #e2e8f0;text-align:left}.constraints-table thead{background:#f8fafc}.params-code{font-size:.75rem;background:#f1f5f9;padding:.25rem .35rem;border-radius:4px}.params-display{font-size:.9rem;color:#0f172a}.constraint-target-tag{font-size:.95rem}.form-actions{display:flex;gap:.4rem;margin-top:.4rem}.form-actions button{border:none;border-radius:6px;padding:.4rem .75rem;cursor:pointer;font-weight:600;font-size:.9rem}.ghost.small{align-self:flex-start;padding:.2rem .5rem;font-size:.8rem}.ghost.small.active{background-color:#2563eb;color:#fff}.ghost.small.danger{background-color:#fee2e2;color:#b91c1c}.severity-input-group{display:flex;gap:.5rem;flex-wrap:wrap}.severity-button{flex:1;min-width:200px;display:flex;align-items:center;gap:.5rem;padding:.65rem .75rem;border:2px solid #cbd5f5;border-radius:6px;background:#fff;cursor:pointer;transition:all .2s;text-align:left}.severity-button:hover{border-color:#94a3b8;background:#f8fafc}.severity-button.active{border-color:#2563eb;background:#dbeafe}.severity-button.active.warning{border-color:#f59e0b;background:#fef3c7}.severity-button.active.forbidden{border-color:#dc2626;background:#fee2e2}.severity-icon{font-size:1.25rem;flex-shrink:0}.severity-title{font-weight:600;font-size:.9rem;color:#0f172a;margin-bottom:.15rem}.severity-description{font-size:.75rem;color:#64748b;line-height:1.3}.severity-badge{display:inline-block;padding:.25rem .75rem;border-radius:999px;font-size:.85rem;font-weight:500}.severity-badge.warning{background:#fef3c7;color:#92400e}.severity-badge.forbidden{background:#fee2e2;color:#991b1b}.weight-input-group{display:flex;flex-direction:column;gap:.4rem}.weight-presets{display:flex;gap:.3rem;flex-wrap:wrap}.preferred-times-editor{display:flex;flex-direction:column;gap:.4rem;padding:.6rem;background:#f8fafc;border-radius:6px}.preferred-time-row{display:flex;gap:.4rem;align-items:center}.preferred-time-row select{border:1px solid #cbd5f5;border-radius:6px;padding:.35rem .5rem;font-size:.85rem}.ng-time-editor{display:flex;flex-direction:column;gap:.75rem;padding:.6rem;background:#f8fafc;border-radius:6px}.ng-time-section{display:flex;flex-direction:column;gap:.4rem}.ng-time-label{font-weight:500;font-size:.85rem;color:#0f172a}.ng-time-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem}.ng-time-checkbox{display:flex;align-items:center;gap:.35rem;cursor:pointer;padding:.3rem .5rem;background:#fff;border:1px solid #cbd5f5;border-radius:5px;transition:all .2s;font-size:.85rem}.ng-time-checkbox:hover{background:#f1f5f9;border-color:#94a3b8}.ng-time-checkbox input[type=checkbox]{margin:0;cursor:pointer}.ng-time-checkbox input[type=checkbox]:checked+span{font-weight:600;color:#2563eb}.ng-time-checkbox:has(input[type=checkbox]:checked){background:#dbeafe;border-color:#2563eb}.constraints-page button.primary,.constraints-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.constraints-page button.primary:hover,.constraints-page .primary:hover{background-color:#0056b3;border-color:#0056b3}@media (max-width: 1024px){.constraints-content{width:100%}}@media (max-width: 640px){.constraints-header{flex-direction:column}.constraints-form,.constraints-table-wrapper{padding:1rem}}.dialog-body{flex:1;min-height:0;overflow-y:auto;padding:.6rem .85rem;-webkit-user-select:text;-moz-user-select:text;user-select:text}.target-multi-select{width:100%}.constraints-form label.target-checkbox{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:.5rem;width:100%;min-width:0;min-height:2.2rem;padding:.45rem .5rem;font-size:.9rem;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.5;box-sizing:border-box}.target-checkboxes{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:.35rem .6rem!important;align-items:start}@media (max-width: 900px){.target-checkboxes{grid-template-columns:repeat(2,minmax(0,1fr))!important}}.target-checkbox input[type=checkbox]:checked+span{font-weight:600;color:#2563eb}.target-checkbox input[type=checkbox]{-moz-appearance:checkbox;appearance:checkbox;-webkit-appearance:checkbox;box-sizing:border-box;width:16px;height:16px;flex:0 0 16px;padding:0;border:initial;border-radius:0;background:initial}.target-checkbox:has(input[type=checkbox]:checked){background-color:#dbeafe!important}.target-checkbox span{display:block;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.events-page{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:100%}.events-header h2{margin:0}.event-section{width:100%;max-width:100%}.event-form,.event-table-wrapper{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0f172a14;width:100%;max-width:100%}.event-form{display:flex;flex-direction:column;gap:.85rem}.event-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.95rem}.event-form input,.event-form select,.event-form textarea{border:1px solid #cbd5f5;border-radius:6px;padding:.45rem;font-size:.95rem}.target-kind-group{display:flex;gap:.4rem}.target-kind-group button{border:1px solid #94a3b8;border-radius:999px;background:#f8fafc;padding:.3rem .8rem;cursor:pointer;font-size:.85rem}.target-kind-group button.active{background:#2563eb;color:#fff;border-color:#2563eb}.event-table{width:100%;border-collapse:collapse}.event-table th,.event-table td{text-align:left;padding:.65rem .75rem;border-bottom:1px solid #e2e8f0}.event-table thead{background:#f8fafc}.form-actions{display:flex;gap:.5rem;flex-wrap:wrap}@media (max-width: 1024px){.event-section{width:100%}}@media (max-width: 640px){.event-form,.event-table-wrapper{padding:1rem}}.blocked-edit-dialog-content{max-width:720px}.target-multi-select{display:flex;flex-wrap:wrap;gap:.5rem;max-height:160px;overflow-y:auto;padding:.5rem;border:1px solid #cbd5f5;border-radius:6px;background:#f8fafc}.target-checkbox-item{display:flex;align-items:center;gap:.4rem;cursor:pointer;font-size:.9rem}.target-checkbox-item input{margin:0}.target-checkbox-item span{-webkit-user-select:none;-moz-user-select:none;user-select:none}.empty-hint{color:#94a3b8;font-size:.9rem}.slot-grid-wrapper{overflow-x:auto;padding:.5rem;border:1px solid #cbd5f5;border-radius:6px;background:#f8fafc}.slot-grid{border-collapse:collapse;font-size:.85rem}.slot-grid th,.slot-grid td{padding:.25rem .35rem;text-align:center;border:1px solid #e2e8f0}.slot-grid th{background:#f1f5f9;font-weight:600}.slot-grid-day,.slot-grid-period{text-align:left!important;font-weight:500;min-width:2rem}.slot-grid-disabled{color:#cbd5e1;font-size:.9em}.slot-grid-cell input{margin:0;cursor:pointer}.events-page button.primary,.events-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.events-page button.primary:hover,.events-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.constraints-events-page{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:100%}.constraints-events-header{flex-shrink:0}.constraints-events-header h2{margin:0 0 .25rem}.constraints-events-header p{margin:0;font-size:.9rem;color:#64748b}.constraints-events-tabs{display:flex;gap:.25rem;padding:.25rem;background:#f1f5f9;border-radius:8px;width:-moz-fit-content;width:fit-content}.constraints-events-tab{padding:.5rem 1rem;border:none;border-radius:6px;background:transparent;font-size:.95rem;cursor:pointer;color:#475569;transition:background .2s,color .2s}.constraints-events-tab:hover{background:#fffc;color:#334155}.constraints-events-tab.active{background:#fff;color:#1e293b;font-weight:600;box-shadow:0 1px 3px #00000014}.constraints-events-panel{flex:1;min-height:0}.users-page{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:100%}.users-header h2{margin:0}.users-content{width:100%;max-width:100%}.users-excel-panels{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.25rem}.users-excel-panel{background:#fff;border-radius:12px;padding:1rem 1.25rem;box-shadow:0 2px 8px #0f172a14;border:1px solid #e2e8f0}.users-excel-panel__title{margin:0 0 .35rem;font-size:1.05rem}.users-excel-panel__desc{margin:0 0 .75rem;font-size:.875rem;color:#64748b;line-height:1.5}.users-excel-panel__actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.users-excel-panel__actions .secondary{border:1px solid #cbd5e1;background:#f8fafc;color:#334155;border-radius:6px;padding:.4rem .75rem;font-size:.875rem;cursor:pointer}.users-excel-panel__actions .secondary:hover:not(:disabled){background:#f1f5f9}.users-excel-panel__actions .secondary:disabled{opacity:.55;cursor:not-allowed}.users-form,.users-table-wrapper{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 2px 8px #0f172a14;width:100%;max-width:100%}.users-form{display:flex;flex-direction:column;gap:.85rem}.users-form label{display:flex;flex-direction:column;gap:.3rem;font-size:.95rem}.users-form input,.users-form select{border:1px solid #cbd5f5;border-radius:6px;padding:.45rem;font-size:.95rem}.users-table{width:100%;border-collapse:collapse}.users-table th,.users-table td{padding:.65rem .75rem;border-bottom:1px solid #e2e8f0;text-align:left}.users-table thead{background:#f8fafc}.table-actions{display:flex;gap:.4rem}.table-actions button{border:none;border-radius:4px;padding:.35rem .7rem;cursor:pointer;font-size:.85rem}.table-actions button:not(.danger){background-color:#e0f2fe;color:#0369a1}.table-actions .danger{background-color:#dc2626;color:#fff}.table-actions .danger:hover{background-color:#b91c1c}.empty-state{text-align:center;color:#94a3b8;font-style:italic}.form-actions{display:flex;gap:.5rem}.form-actions button{border:none;border-radius:6px;padding:.5rem .9rem;cursor:pointer;font-weight:600}.form-actions .primary{background-color:#2563eb;color:#fff}.form-actions .ghost{background-color:#f1f5f9;color:#0f172a}@media (max-width: 1024px){.users-content{width:100%}}@media (max-width: 640px){.users-form,.users-table-wrapper{padding:1rem}}.users-page button.primary,.users-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.users-page button.primary:hover,.users-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.versions-page{padding:1.5rem;width:100%;max-width:100%;box-sizing:border-box}.versions-header{margin-bottom:2rem}.versions-header h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.versions-header p{margin:0;color:#666}.versions-content{display:flex;flex-direction:column;gap:1.5rem;width:100%}.versions-form{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.versions-form h3{margin:0 0 1rem;font-size:1.2rem;color:#333}.versions-form label{display:block;margin-bottom:1rem;font-weight:500;color:#333}.versions-form input,.versions-form select{width:100%;padding:.5rem;margin-top:.25rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.versions-form input:disabled{background-color:#f5f5f5;cursor:not-allowed}.form-actions{display:flex;gap:.5rem;margin-top:1.5rem}.form-actions button{padding:.5rem 1rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .2s}.form-actions button.primary{background-color:#007bff;color:#fff}.form-actions button.primary:hover:not(:disabled){background-color:#0056b3}.form-actions button.primary:disabled{background-color:#ccc;cursor:not-allowed}.form-actions button.ghost{background-color:transparent;color:#666;border:1px solid #ddd}.form-actions button.ghost:hover{background-color:#f5f5f5}.versions-table-wrapper{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;width:100%;box-sizing:border-box}.versions-table-wrapper h3{margin:0 0 1rem;font-size:1.2rem;color:#333}.versions-table{width:100%;border-collapse:collapse}.versions-table thead{background-color:#f8f9fa}.versions-table th{padding:.75rem;text-align:left;font-weight:600;color:#333;border-bottom:2px solid #dee2e6}.versions-table td{padding:.75rem;border-bottom:1px solid #dee2e6}.versions-table tbody tr:hover{background-color:#f8f9fa}.table-actions button{padding:.25rem .75rem;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s;background-color:#6c757d;color:#fff}.table-actions button:hover{background-color:#5a6268}.table-actions button.secondary{background-color:#17a2b8}.table-actions button.secondary:hover{background-color:#138496}.empty-state{text-align:center;color:#999;padding:2rem!important}.versions-table-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;gap:1rem;flex-wrap:wrap}.versions-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;margin-bottom:1rem;padding:1rem;background:#f8f9fa;border-radius:4px}.versions-filters .filter-group{display:flex;flex-direction:column;gap:.25rem}.versions-filters .filter-group label{font-size:.875rem;font-weight:500;color:#333}.versions-filters .filter-group input,.versions-filters .filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;min-width:120px}.versions-filters .filter-group select:disabled{background-color:#f5f5f5;cursor:not-allowed}.versions-table-actions{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.bulk-actions{display:flex;align-items:center;gap:1rem}.selected-count{color:#666;font-size:.875rem}.bulk-actions button{padding:.5rem 1rem;border:none;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s}.bulk-actions button.danger{background-color:#dc2626;color:#fff}.bulk-actions button.danger:hover{background-color:#b91c1c}.view-controls{display:flex;gap:.5rem}.view-controls button{padding:.5rem 1rem;border:1px solid #ddd;border-radius:4px;font-size:.875rem;cursor:pointer;transition:background-color .2s;background-color:transparent;color:#666}.versions-page button.primary,.versions-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.versions-page button.primary:hover,.versions-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.view-controls button.primary{background-color:#007bff;color:#fff;border-color:#007bff}.view-controls button.primary:hover{background-color:#0056b3}.view-controls button.ghost:hover{background-color:#f5f5f5}.version-tree{padding:1rem}.version-tree h4{margin:0 0 1rem;font-size:1.2rem;color:#333}.tree-container{border:1px solid #dee2e6;border-radius:4px;padding:1rem;background:#fff}.tree-node{margin-bottom:.5rem}.tree-node-content{display:flex;align-items:center;gap:1rem;padding:.5rem;background:#f8f9fa;border-radius:4px}.tree-node-id{font-weight:600;color:#333}.tree-node-status{font-size:.875rem;color:#666;padding:.25rem .5rem;background:#e9ecef;border-radius:4px}.tree-node-date{font-size:.875rem;color:#999;margin-left:auto}.tree-node-children{margin-top:.5rem;padding-left:1rem;border-left:2px solid #dee2e6}.compare-section-wrapper{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a;width:100%;box-sizing:border-box;margin-top:1.5rem}.compare-section{width:100%;box-sizing:border-box}.compare-section h4{margin:0 0 .5rem;font-size:1rem;color:#333}.compare-controls{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.compare-select{flex:1;min-width:150px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.875rem}.compare-select:first-of-type{flex:1}.compare-select:last-of-type{flex:1}.compare-vs{font-weight:600;color:#666}.comparison-result{margin-top:2rem;padding:1.5rem;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.comparison-result h4{margin:0 0 1rem;font-size:1.2rem;color:#333}.comparison-summary{display:flex;gap:2rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #dee2e6}.comparison-stat{display:flex;flex-direction:column;align-items:center}.stat-label{font-size:.875rem;color:#666;margin-bottom:.25rem}.stat-value{font-size:1.5rem;font-weight:600}.stat-value.added{color:#28a745}.stat-value.removed{color:#dc3545}.stat-value.modified{color:#ffc107}.comparison-details{margin-bottom:1rem}.comparison-details h5{margin:0 0 .5rem;font-size:1rem;color:#333}.comparison-details ul{margin:0;padding-left:1.5rem;list-style-type:disc}.comparison-details li{margin-bottom:.25rem;color:#666}.dialog-content{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:90vh;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;user-select:none}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:8px 8px 0 0;cursor:move}.dialog-header.dragging{cursor:grabbing}.dialog-header h3{margin:0;font-size:1.2rem}.dialog-close{background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.dialog-body{flex:1;min-height:0;overflow-y:auto;padding:1rem;-webkit-user-select:text;-moz-user-select:text;user-select:text}@media (max-width: 768px){.versions-content{grid-template-columns:1fr}.versions-page{padding:1rem}.versions-table-header{flex-direction:column}.compare-controls{flex-direction:column;align-items:stretch}.compare-vs{text-align:center}.comparison-summary{flex-direction:column;gap:1rem}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background-color:#00000080;display:flex;align-items:flex-start;justify-content:center;z-index:1000;overflow-y:auto;overflow-x:hidden;padding:1rem;box-sizing:border-box;-webkit-overflow-scrolling:touch}.dialog-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:100%;max-width:600px;max-height:min(90vh,calc(100vh - 2rem));margin:1rem auto;align-self:flex-start;display:flex;flex-direction:column;min-height:0;overflow:hidden}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:8px 8px 0 0;flex-shrink:0}.dialog-form{display:flex;flex-direction:column;flex:1;min-height:0;overflow:hidden}.dialog-body{padding:1.5rem;flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch}.form-group textarea{resize:vertical;min-height:80px}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1.5rem;border-top:1px solid #eee;flex-shrink:0;background:#fff;border-radius:0 0 8px 8px}.base-timetables-page{padding:1.5rem;width:100%}.base-timetables-header{margin-bottom:2rem}.base-timetables-header h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.base-timetables-header p{margin:0;color:#666}.base-timetables-content{display:flex;flex-direction:column;gap:1.5rem}.base-timetables-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.base-timetables-table-wrapper{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.base-timetables-table{width:100%;border-collapse:collapse}.base-timetables-table th,.base-timetables-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.base-timetables-table th{background-color:#f5f5f5;font-weight:600;color:#333}.base-timetables-table tbody tr:hover{background-color:#f9f9f9}.base-timetables-page button.primary,.base-timetables-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.base-timetables-page button.primary:hover,.base-timetables-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.weekly-timetables-page{padding:1.5rem;width:100%}.weekly-timetables-header{margin-bottom:2rem}.weekly-timetables-header h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.weekly-timetables-header p{margin:0;color:#666}.weekly-timetables-content{display:flex;flex-direction:column;gap:1.5rem}.weekly-timetables-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.weekly-timetables-table-wrapper{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.weekly-timetables-table{width:100%;border-collapse:collapse}.weekly-timetables-table th,.weekly-timetables-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.weekly-timetables-table th{background-color:#f5f5f5;font-weight:600;color:#333}.weekly-timetables-table tbody tr:hover{background-color:#f9f9f9}.status-badge{display:inline-block;padding:.25rem .5rem;border-radius:4px;font-size:.85rem;font-weight:500}.status-badge.modified{background-color:#fef3c7;color:#92400e}.status-badge.unmodified{background-color:#d1fae5;color:#065f46}.table-actions{display:flex;gap:.5rem;flex-wrap:wrap}.table-actions button.primary{background-color:#3b82f6;color:#fff}.table-actions button.primary:hover{background-color:#2563eb}.weekly-timetables-page button.primary,.weekly-timetables-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.weekly-timetables-page button.primary:hover,.weekly-timetables-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.timetable-versions-section{display:flex;flex-direction:column;height:100%;width:100%;gap:0}.timetable-versions-subtabs{display:flex;gap:.25rem;border-bottom:1px solid #e2e8f0;margin-bottom:1rem;padding-bottom:0}.timetable-versions-subtabs button{padding:.5rem 1rem;border:none;background:none;font-size:.95rem;font-weight:500;color:#64748b;cursor:pointer;border-radius:6px 6px 0 0}.timetable-versions-subtabs button:hover{color:#334155;background-color:#f1f5f9}.timetable-versions-subtabs button.active{color:#1d4ed8;font-weight:600;border-bottom:2px solid #1d4ed8;margin-bottom:-1px}.timetable-versions-content{flex:1;min-height:0;overflow:auto}.timetable-versions-content>*{height:100%;width:100%}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.dialog-content{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a;width:90%;max-width:600px;max-height:90vh;overflow-y:auto}.dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid #ddd;background-color:#34495e;color:#fff;border-radius:8px 8px 0 0}.dialog-header h3{margin:0;font-size:1.2rem;color:#fff;font-weight:600}.dialog-close{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#fff;padding:0;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border-radius:4px;transition:background-color .2s}.dialog-close:hover{background-color:#fff3}.dialog-body{padding:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group .required{color:#dc2626}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61a}.dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1.5rem;border-top:1px solid #eee}.dialog-footer button{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.dialog-footer button.secondary{background-color:#6b7280;color:#fff}.dialog-footer button.secondary:hover{background-color:#4b5563}.dialog-footer button.primary{background-color:#3b82f6;color:#fff}.dialog-footer button.primary:hover{background-color:#2563eb}.test-periods-page{padding:1.5rem;width:100%}.test-periods-header{margin-bottom:2rem}.test-periods-header h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.test-periods-header p{margin:0;color:#666}.test-periods-content{display:flex;flex-direction:column;gap:1.5rem}.test-periods-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap}.test-periods-table-wrapper{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.test-periods-table{width:100%;border-collapse:collapse}.test-periods-table th,.test-periods-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.test-periods-table th{background-color:#f5f5f5;font-weight:600;color:#333}.test-periods-table tbody tr:hover{background-color:#f9f9f9}.table-actions button{padding:.4rem .8rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.table-actions button.secondary{background-color:#6b7280;color:#fff}.table-actions button.secondary:hover{background-color:#4b5563}.table-actions button.danger{background-color:#dc2626;color:#fff}.table-actions button.danger:hover{background-color:#b91c1c}.test-periods-page button.primary,.test-periods-page .primary{background-color:#007bff;color:#fff;border:1px solid #007bff;padding:.5rem 1rem;border-radius:4px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s}.test-periods-page button.primary:hover,.test-periods-page .primary:hover{background-color:#0056b3;border-color:#0056b3}.error-message{color:#dc2626;padding:1rem;background-color:#fee2e2;border:1px solid #fca5a5;border-radius:4px;margin:1rem 0}.statistics-page{padding:1.5rem;width:100%}.statistics-header{margin-bottom:2rem}.statistics-header h2{margin:0 0 .5rem;font-size:1.5rem;color:#333}.statistics-header p{margin:0;color:#666}.statistics-content{display:flex;flex-direction:column;gap:1.5rem}.statistics-tabs{display:flex;gap:.5rem;border-bottom:2px solid #eee}.statistics-tabs button{padding:.75rem 1.5rem;border:none;background:none;cursor:pointer;font-size:.9rem;font-weight:500;color:#666;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .2s}.statistics-tabs button:hover{color:#333}.statistics-tabs button.active{color:#3b82f6;border-bottom-color:#3b82f6}.statistics-filters{display:flex;gap:1rem;align-items:flex-end;flex-wrap:wrap;background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-size:.9rem;font-weight:500;color:#333}.filter-group input,.filter-group select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.statistics-results-wrapper{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 4px #0000001a}.statistics-results h3{margin:0 0 1rem;font-size:1.2rem;color:#333}.statistics-results h4{margin:1.5rem 0 1rem;font-size:1.1rem;color:#333}.statistics-table{width:100%;border-collapse:collapse;margin-top:1rem}.statistics-table th,.statistics-table td{padding:.75rem;text-align:left;border-bottom:1px solid #eee}.statistics-table th{background-color:#f5f5f5;font-weight:600;color:#333}.statistics-table tbody tr:hover{background-color:#f9f9f9}.statistics-totals{margin-top:2rem;padding-top:1.5rem;border-top:2px solid #eee}.statistics-table-wrapper{width:100%;overflow-x:auto;border:1px solid #ddd;border-radius:4px}.statistics-goto-timetable{padding:.35rem .6rem;font-size:.8rem;color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:4px;cursor:pointer;white-space:nowrap}.statistics-goto-timetable:hover{background:#dbeafe;color:#1d4ed8}.statistics-pivot-table{min-width:100%;border-collapse:collapse}.statistics-pivot-table th,.statistics-pivot-table td{padding:.75rem;text-align:left;border:1px solid #ddd;white-space:nowrap}.statistics-pivot-table th{background-color:#f5f5f5;font-weight:600;color:#333;text-align:center}.statistics-pivot-table tbody tr:nth-child(2n){background-color:#fafafa}.statistics-pivot-table tbody tr:hover{background-color:#f0f0f0}.annual-pattern-table-wrapper{overflow:auto;max-height:70vh;margin-top:.5rem}.annual-pattern-table{width:100%;border-collapse:collapse;font-size:.9rem}.annual-pattern-table th,.annual-pattern-table td{border:1px solid #ddd;padding:.5rem;text-align:center}.annual-pattern-table .month-header,.annual-pattern-table .week-header{background-color:#f5f5f5;font-weight:700}.annual-pattern-table .day-header{font-weight:700}.annual-pattern-table .day-header.day-header-mon{background-color:#bbdefb}.annual-pattern-table .day-header.day-header-tue{background-color:#f8bbd0}.annual-pattern-table .day-header.day-header-wed{background-color:#e1bee7}.annual-pattern-table .day-header.day-header-thu{background-color:#c8e6c9}.annual-pattern-table .day-header.day-header-fri{background-color:#ffecb3}.annual-pattern-table .day-date-header,.annual-pattern-table .period-header{font-size:.85rem}.annual-pattern-table .day-date-header.header-day-mon,.annual-pattern-table .period-header.header-day-mon{background-color:#bbdefb}.annual-pattern-table .day-date-header.header-day-tue,.annual-pattern-table .period-header.header-day-tue{background-color:#f8bbd0}.annual-pattern-table .day-date-header.header-day-wed,.annual-pattern-table .period-header.header-day-wed{background-color:#e1bee7}.annual-pattern-table .day-date-header.header-day-thu,.annual-pattern-table .period-header.header-day-thu{background-color:#c8e6c9}.annual-pattern-table .day-date-header.header-day-fri,.annual-pattern-table .period-header.header-day-fri{background-color:#ffecb3}.annual-pattern-table thead tr:first-child th{position:sticky;top:0;z-index:3}.annual-pattern-table thead tr:nth-child(2) th{position:sticky;top:2.5rem;z-index:2;box-shadow:0 2px 4px #0000000f}.annual-pattern-table .month-cell{background-color:#f5f5f5;font-weight:700;vertical-align:middle;border-bottom:2px solid #333}.annual-pattern-table .week-cell{background-color:#f5f5f5;font-weight:700;vertical-align:middle}.annual-pattern-table .day-date-cell{background-color:#fafafa;font-weight:500}.pattern-cell{padding:.5rem;text-align:center;border:1px solid #ddd;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;position:relative;min-width:54px}.pattern-cell.pattern-cell-day-mon{background-color:#e3f2fd}.pattern-cell.pattern-cell-day-tue{background-color:#fce4ec}.pattern-cell.pattern-cell-day-wed{background-color:#f3e5f5}.pattern-cell.pattern-cell-day-thu{background-color:#e8f5e9}.pattern-cell.pattern-cell-day-fri{background-color:#fff8e1}.pattern-cell:hover{background-color:#f0f0f0}.pattern-cell.dragging{opacity:.5;background-color:#e3f2fd}.pattern-cell.drag-over{background-color:#c8e6c9;border:2px solid #4caf50}.pattern-cell.custom-slot{background-color:#e3f2fd}.pattern-cell.blocked-slot{background-color:#ffebee;color:#c62828;font-weight:700;font-size:1.2em}.pattern-cell.delete-mode-cell{cursor:pointer;outline:1px dashed rgba(200,0,0,.5);outline-offset:-1px}.pattern-cell.delete-mode-cell:hover{background-color:#ffebee!important}.pattern-cell .remove-slot-button{position:absolute;top:2px;right:2px;width:18px;height:18px;padding:0;background:#f44336;color:#fff;border:none;border-radius:50%;cursor:pointer;font-size:12px;line-height:1;display:flex;align-items:center;justify-content:center;opacity:.7}.pattern-cell .remove-slot-button:hover{opacity:1;background:#d32f2f}.annual-pattern-table tfoot.annual-pattern-footer{position:sticky;bottom:0;z-index:2;border-top:2px solid #333;background:#f5f5f5;box-shadow:0 -2px 8px #00000014}.annual-pattern-table .footer-toggle{background:#fff3e0;color:#e65100;cursor:pointer;font-weight:600;padding:.5rem .75rem;text-align:left;-webkit-user-select:none;-moz-user-select:none;user-select:none}.annual-pattern-table .footer-toggle:hover{background:#ffe0b2}.annual-pattern-table .footer-aggregation-row td{background:#fafafa;font-weight:500;min-width:44px;border-top:2px solid #333;border-bottom:2px solid #333}.annual-pattern-table .footer-aggregation-row td:first-child{border-left:2px solid #333}.annual-pattern-table .footer-aggregation-row td:last-child{border-right:2px solid #333}.annual-pattern-table .footer-agg-label{background:#e8f5e9!important;font-weight:700;min-width:54px}.annual-pattern-table .footer-agg-date{min-width:36px;color:#999}.annual-pattern-table .footer-aggregation-row td.footer-agg-date{min-width:36px}.annual-pattern-table .footer-agg-date.footer-agg-day-mon,.annual-pattern-table .footer-agg-cell.footer-agg-day-mon{background-color:#e3f2fd!important}.annual-pattern-table .footer-agg-date.footer-agg-day-tue,.annual-pattern-table .footer-agg-cell.footer-agg-day-tue{background-color:#fce4ec!important}.annual-pattern-table .footer-agg-date.footer-agg-day-wed,.annual-pattern-table .footer-agg-cell.footer-agg-day-wed{background-color:#f3e5f5!important}.annual-pattern-table .footer-agg-date.footer-agg-day-thu,.annual-pattern-table .footer-agg-cell.footer-agg-day-thu{background-color:#e8f5e9!important}.annual-pattern-table .footer-agg-date.footer-agg-day-fri,.annual-pattern-table .footer-agg-cell.footer-agg-day-fri{background-color:#fff8e1!important}.annual-pattern-table .footer-agg-total{background:#e3f2fd!important;font-weight:700;min-width:54px}.slot-management-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.slot-management-dialog{background:#fff;border-radius:8px;width:90%;max-width:600px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a}.slot-management-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #ddd}.slot-management-dialog-header h3{margin:0;font-size:1.25rem}.slot-management-dialog-content{padding:1rem;overflow-y:auto;flex:1}.add-slot-section{margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #eee}.add-slot-section h4{margin:0 0 .75rem;font-size:1rem}.add-slot-form{display:flex;gap:.5rem;align-items:center}.add-slot-form select,.add-slot-form input{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.add-slot-form input{flex:1}.add-slot-form button{padding:.5rem 1rem;background:#007bff;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.9rem}.add-slot-form button:hover{background:#0056b3}.slot-section{margin-bottom:1.5rem}.slot-section h4{margin:0 0 .75rem;font-size:1rem;color:#333}.slot-list{display:flex;flex-direction:column;gap:.5rem}.slot-item{display:flex;justify-content:space-between;align-items:center;padding:.75rem;background:#f5f5f5;border-radius:4px}.slot-name{font-weight:500}.slot-actions{display:flex;gap:.5rem}.slot-actions button{padding:.25rem .75rem;background:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.85rem}.slot-actions button:hover{background:#f0f0f0}.slot-item input{flex:1;padding:.5rem;border:1px solid #007bff;border-radius:4px;font-size:.9rem}.empty-message{color:#999;font-style:italic;padding:.75rem;text-align:center}.slot-management-dialog-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:1rem;border-top:1px solid #ddd}.slot-management-dialog-footer button{padding:.5rem 1.5rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem}.slot-management-dialog-footer button.primary{background:#007bff;color:#fff;border-color:#007bff}.slot-management-dialog-footer button.primary:hover{background:#0056b3}.slot-edit-dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1001}.slot-edit-dialog{background:#fff;border-radius:8px;width:90%;max-width:500px;display:flex;flex-direction:column;box-shadow:0 4px 6px #0000001a}.slot-edit-dialog-header{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-bottom:1px solid #ddd}.slot-edit-dialog-header h3{margin:0;font-size:1.25rem}.close-button{background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666;padding:0;width:30px;height:30px;display:flex;align-items:center;justify-content:center}.close-button:hover{color:#000}.slot-edit-dialog-content{padding:1.5rem;display:flex;flex-direction:column;gap:1rem}.slot-type-selector,.slot-selector{display:flex;flex-direction:column;gap:.5rem}.slot-type-selector label,.slot-selector label{font-weight:500;font-size:.9rem}.slot-type-selector select,.slot-selector select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.empty-message{color:#999;font-style:italic;padding:.5rem;text-align:center}.slot-edit-dialog-footer{display:flex;justify-content:space-between;align-items:center;padding:1rem;border-top:1px solid #ddd}.slot-edit-dialog-footer button{padding:.5rem 1.5rem;border:1px solid #ddd;border-radius:4px;cursor:pointer;font-size:.9rem}.slot-edit-dialog-footer button.primary{background:#007bff;color:#fff;border-color:#007bff}.slot-edit-dialog-footer button.primary:hover:not(:disabled){background:#0056b3}.slot-edit-dialog-footer button.primary:disabled{opacity:.5;cursor:not-allowed}.slot-edit-dialog-footer button.delete-button{background:#dc3545;color:#fff;border-color:#dc3545}.slot-edit-dialog-footer button.delete-button:hover{background:#c82333}.annual-timetable-pattern-page{padding:.5rem 1rem 1rem}.annual-timetable-pattern-header{margin-bottom:.75rem}.annual-timetable-pattern-header h2{margin:0 0 .35rem;font-size:1.35rem}.annual-timetable-pattern-header p{margin:0;color:#666;font-size:.9rem;line-height:1.4}.annual-pattern-stale-year-hint{margin:0 0 .4rem;padding:.4rem .55rem;background:#fff8e6;border:1px solid #e6d08a;border-radius:4px;font-size:.85rem;color:#5c4a1a;line-height:1.45}.annual-timetable-pattern-content{display:flex;flex-direction:column;gap:.75rem}.pattern-selector{display:flex;gap:1rem;align-items:center}.pattern-selector .form-group{display:flex;gap:.5rem;align-items:center}.pattern-selector label{font-weight:500}.pattern-selector select{padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.grade-tabs{display:flex;gap:.35rem;border-bottom:2px solid #ddd}.grade-tabs button{padding:.4rem 1rem;border:none;background:transparent;cursor:pointer;font-size:.95rem;border-bottom:3px solid transparent;transition:all .2s}.grade-tabs button:hover{background:#f5f5f5}.grade-tabs button.active{border-bottom-color:#007bff;color:#007bff;font-weight:600}.aggregation-toggle{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.5rem}.aggregation-toggle button{padding:.5rem 1rem;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s;border:1px solid transparent}.aggregation-toggle button.secondary{background-color:#f5f5f5;color:#333;border-color:#ccc}.aggregation-toggle button.secondary:hover{background-color:#e8e8e8;border-color:#aaa}.aggregation-toggle button.primary{background-color:#007bff;color:#fff;border-color:#007bff}.aggregation-toggle button.primary:hover:not(:disabled){background-color:#0056b3;border-color:#0056b3}.aggregation-toggle button.primary:disabled{opacity:.6;cursor:not-allowed}.annual-pattern-table{width:100%;border-collapse:collapse;background:#fff;font-size:.9rem}.annual-pattern-table thead tr:first-child th{border-top:2px solid #333;border-bottom:2px solid #333}.annual-pattern-table .month-header{border-left:2px solid #333}.annual-pattern-table .week-header{border-left:2px solid #333;border-right:2px solid #333}.annual-pattern-table .month-cell{border-left:2px solid #333}.annual-pattern-table .week-cell{border-left:2px solid #333;border-right:2px solid #333}.annual-pattern-table tbody tr:last-child td{border-bottom:2px solid #333}.annual-pattern-table th{background:#f5f5f5;border:1px solid #ddd;padding:.5rem;text-align:center;font-weight:600}.annual-pattern-table .month-header{background:#e8f5e9;min-width:54px}.annual-pattern-table .day-date-header{background:#fff9c4;font-weight:600;min-width:36px;text-align:center;border-left:2px solid #333}.annual-pattern-table .day-date-cell{background:#fff9c4;border-left:2px solid #333;font-weight:600;min-width:36px;text-align:center;vertical-align:middle;padding:.5rem}.annual-pattern-table .day-date-cell.day-date-cell-first{font-size:.9rem;padding:.3rem .18rem;background-color:#ffe0b2;font-weight:700}.annual-pattern-table .day-header{font-size:1rem;border-left:2px solid #333}.annual-pattern-table .day-header.day-header-mon{background:#bbdefb}.annual-pattern-table .day-header.day-header-tue{background:#f8bbd0}.annual-pattern-table .day-header.day-header-wed{background:#e1bee7}.annual-pattern-table .day-header.day-header-thu{background:#c8e6c9}.annual-pattern-table .day-header.day-header-fri{background:#ffecb3}.annual-pattern-table .period-header{font-size:.85rem;min-width:44px}.annual-pattern-table .day-date-header.header-day-mon,.annual-pattern-table .period-header.header-day-mon{background:#bbdefb}.annual-pattern-table .day-date-header.header-day-tue,.annual-pattern-table .period-header.header-day-tue{background:#f8bbd0}.annual-pattern-table .day-date-header.header-day-wed,.annual-pattern-table .period-header.header-day-wed{background:#e1bee7}.annual-pattern-table .day-date-header.header-day-thu,.annual-pattern-table .period-header.header-day-thu{background:#c8e6c9}.annual-pattern-table .day-date-header.header-day-fri,.annual-pattern-table .period-header.header-day-fri{background:#ffecb3}.annual-pattern-table .week-header{background:#e3f2fd;min-width:54px}.annual-pattern-table thead tr:nth-child(2) th{border-bottom:2px solid #999}.annual-pattern-table td{border:1px solid #ddd;padding:.5rem;text-align:center;vertical-align:middle;min-width:44px;height:40px}.annual-pattern-table tbody td{border-top:1px solid #eee;border-bottom:1px solid #eee}.annual-pattern-table .month-cell{background:#e8f5e9;font-weight:500;text-align:center;border-bottom:2px solid #333}.annual-pattern-table tbody tr.month-boundary-row td,.annual-pattern-table tbody td.month-boundary-cell{border-bottom:2px solid #333}.annual-pattern-table .day-header-content{display:flex;align-items:center;gap:.5rem}.annual-pattern-table .day-label{font-weight:600}.annual-pattern-table .pattern-cell{cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:all .2s;background:#fff;position:relative}.annual-pattern-table .pattern-cell.pattern-cell-day-mon{background-color:#e3f2fd}.annual-pattern-table .pattern-cell.pattern-cell-day-tue{background-color:#fce4ec}.annual-pattern-table .pattern-cell.pattern-cell-day-wed{background-color:#f3e5f5}.annual-pattern-table .pattern-cell.pattern-cell-day-thu{background-color:#e8f5e9}.annual-pattern-table .pattern-cell.pattern-cell-day-fri{background-color:#fff8e1}.annual-pattern-table .pattern-cell:hover{background:#f0f8ff;border-color:#007bff}.annual-pattern-table .pattern-cell.dragging{opacity:.5;border-color:#007bff;background:#e3f2fd}.annual-pattern-table .pattern-cell.drag-over{border-color:#28a745;background:#d4edda;border-width:2px}.annual-pattern-table .pattern-cell.break-day-cell,.annual-pattern-table .pattern-cell.break-day-cell:hover,.annual-pattern-table .day-date-cell.break-date-cell,.annual-pattern-table .day-date-cell.break-date-cell.day-date-cell-first{background-color:#bdbdbd!important}.annual-pattern-table .pattern-cell.holiday-cell,.annual-pattern-table .pattern-cell.holiday-cell:hover{background-color:#fff!important}.annual-pattern-table .day-date-cell.holiday-date-cell,.annual-pattern-table .day-date-cell.holiday-date-cell.day-date-cell-first{background-color:#e06666!important;color:#fff!important}.annual-pattern-table .day-date-cell.next-year-cell,.annual-pattern-table .pattern-cell.next-year-cell{background-color:#bdbdbd!important;cursor:default}.annual-pattern-table .pattern-cell.next-year-cell:hover{background-color:#bdbdbd!important}.annual-pattern-table .week-cell{background:#e3f2fd;font-weight:500}.hours-aggregation-panel{max-height:0;overflow:hidden;transition:max-height .3s ease-out;margin-bottom:1rem}.hours-aggregation-panel.visible{max-height:1000px;transition:max-height .3s ease-in}.aggregation-section{margin-bottom:2rem}.aggregation-section h3{margin:0 0 1rem;font-size:1.2rem}.test-period-info{margin:0 0 1rem;color:#666;font-size:.9rem}.aggregation-table-wrapper{overflow-x:auto}.aggregation-table{width:100%;border-collapse:collapse;background:#fff}.aggregation-table th,.aggregation-table td{padding:.75rem;border:1px solid #ddd;text-align:center}.aggregation-table th{background:#f5f5f5;font-weight:600}.aggregation-table .day-label{background:#f5f5f5;font-weight:600;text-align:left}.aggregation-table .hours-cell{font-weight:500}.timetable-settings-page{padding:1.5rem;max-width:1200px;margin:0 auto}.settings-section-container{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 2px 4px #0000001a}.settings-section-container h2{margin-top:0;margin-bottom:2rem;color:#2c3e50;font-size:1.5rem;border-bottom:2px solid #3498db;padding-bottom:.5rem}.settings-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e0e0e0}.settings-section:last-of-type{border-bottom:none}.settings-section h3{margin-top:0;margin-bottom:1rem;color:#34495e;font-size:1.2rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#2c3e50}.checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer}.checkbox-label input[type=checkbox]{width:18px;height:18px;cursor:pointer}.checkbox-label span{font-weight:500;color:#2c3e50}.form-group select{width:100%;max-width:400px;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:1rem}.form-group small{display:block;margin-top:.5rem;color:#7f8c8d;font-size:.9rem}.section-description{color:#555;margin-bottom:1rem;line-height:1.6}.public-view-url-code{background-color:#f5f5f5;padding:.5rem 1rem;border-radius:4px;font-family:Courier New,monospace;font-size:.9rem;word-break:break-all;border:1px solid #ddd}.form-actions{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e0e0e0}.form-actions button{padding:.75rem 1.5rem;font-size:1rem;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s}.form-actions button.primary{background-color:#3498db;color:#fff}.form-actions button.primary:hover:not(:disabled){background-color:#2980b9}.form-actions button:disabled{opacity:.6;cursor:not-allowed}.schedule-cell-op-log{padding:1rem 1.25rem 2rem;max-width:1400px;margin:0 auto}.schedule-cell-op-log--embedded{padding:.5rem 0 1.5rem;max-width:none;margin:0}.schedule-cell-op-log__title-embedded{margin:0 0 .35rem;font-size:1.05rem;font-weight:600}.schedule-cell-op-log__header h1{margin:0 0 .5rem;font-size:1.35rem}.schedule-cell-op-log__lead{margin:0 0 1rem;color:#444;font-size:.9rem}.schedule-cell-op-log__filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;margin-bottom:.75rem}.schedule-cell-op-log__filter{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem}.schedule-cell-op-log__filter select,.schedule-cell-op-log__filter input[type=date]{min-width:200px;padding:.35rem .5rem;font-size:.85rem}.schedule-cell-op-log__filter select{min-width:280px}.schedule-cell-op-log__linkish{align-self:flex-end;margin-bottom:.15rem;padding:0;border:none;background:none;color:#1565c0;text-decoration:underline;cursor:pointer;font-size:.85rem}.schedule-cell-op-log__linkish:hover{color:#0d47a1}.schedule-cell-op-log__count{font-size:.9rem;color:#555}.schedule-cell-op-log__pager{display:flex;gap:.5rem;margin-bottom:.5rem}.schedule-cell-op-log__pager button{padding:.35rem .75rem}.schedule-cell-op-log__table-wrap{overflow:auto;border:1px solid #ccc;border-radius:4px}.schedule-cell-op-log__table{width:100%;border-collapse:collapse;font-size:.82rem}.schedule-cell-op-log__table th,.schedule-cell-op-log__table td{border-bottom:1px solid #e0e0e0;padding:.45rem .5rem;vertical-align:top;text-align:left}.schedule-cell-op-log__table th{background:#f5f5f5;white-space:nowrap}.schedule-cell-op-log__mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.78rem}.schedule-cell-op-log__break{word-break:break-all;max-width:220px}.schedule-cell-op-log__sub{font-size:.72rem;color:#666;margin-top:.15rem}.schedule-cell-op-log__copy{margin-left:.25rem;font-size:.72rem;padding:.1rem .35rem}.schedule-cell-op-log__details pre{margin:0;max-width:360px;max-height:160px;overflow:auto;white-space:pre-wrap;word-break:break-word;font-size:.72rem}.schedule-cell-op-log__empty{text-align:center;color:#666;padding:2rem!important}.schedule-cell-op-log__error{margin:0 0 .75rem;padding:.5rem .65rem;background:#ffebee;color:#b71c1c;border-radius:4px;font-size:.88rem}.schedule-cell-op-log__success{margin:0 0 .75rem;padding:.5rem .65rem;background:#e8f5e9;color:#1b5e20;border-radius:4px;font-size:.88rem}.schedule-cell-op-log__danger-zone{margin:0 0 1rem;padding:.75rem 1rem;border:1px solid #e57373;border-radius:4px;background:#fff8f8}.schedule-cell-op-log__danger-label{display:block;font-weight:600;font-size:.88rem;color:#c62828;margin-bottom:.5rem}.schedule-cell-op-log__danger-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:.35rem}.schedule-cell-op-log__danger-note{margin:0;font-size:.78rem;color:#555}.schedule-cell-op-log__btn-danger{padding:.4rem .75rem;background:#c62828;color:#fff;border:none;border-radius:4px;cursor:pointer;font-size:.85rem}.schedule-cell-op-log__btn-danger:disabled{opacity:.45;cursor:not-allowed}.schedule-cell-op-log__btn-danger-outline{padding:.4rem .75rem;background:#fff;color:#c62828;border:1px solid #c62828;border-radius:4px;cursor:pointer;font-size:.85rem}.schedule-cell-op-log__btn-danger-outline:disabled{opacity:.45;cursor:not-allowed}.schedule-cell-op-log__modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1200;background:#00000059;display:flex;align-items:center;justify-content:center;padding:1rem}.schedule-cell-op-log__modal{max-width:420px;width:100%;background:#fff;border-radius:8px;padding:1.1rem 1.25rem;box-shadow:0 4px 24px #0003}.schedule-cell-op-log__modal h3{margin:0 0 .5rem;font-size:1.05rem}.schedule-cell-op-log__modal p{margin:0 0 .75rem;font-size:.88rem;line-height:1.45}.schedule-cell-op-log__modal-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:.5rem}.schedule-cell-op-log__modal-actions button{padding:.35rem .75rem;font-size:.85rem;cursor:pointer}.timetable-management-page{display:flex;flex-direction:column;height:100%;width:100%}.timetable-management-tabs{display:flex;gap:.75rem;border-bottom:2px solid #e2e8f0}.timetable-management-tabs button{padding:.5rem 1rem;border:none;background:none;font-size:1rem;font-weight:600;color:#52606d;cursor:pointer;border-radius:6px 6px 0 0}.timetable-management-tabs button.active{background-color:#fff;color:#1d4ed8;border-bottom:3px solid #1d4ed8}.timetable-management-content{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0f172a14;flex:1;overflow-y:auto}.timetable-management-content>*{height:100%;width:100%}.recurrence-editor{padding:1rem;background:#f9f9f9;border-radius:4px;border:1px solid #ddd}.recurrence-editor__field{margin-bottom:1.5rem}.recurrence-editor__field:last-child{margin-bottom:0}.recurrence-editor__field label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.9rem}.recurrence-editor__field .required{color:#dc3545}.recurrence-editor__select{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.recurrence-editor__input-number,.recurrence-editor__input-date{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;margin-left:.5rem;width:80px}.recurrence-editor__input-number:disabled,.recurrence-editor__input-date:disabled{background:#f5f5f5;cursor:not-allowed}.recurrence-editor__day-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.recurrence-editor__day-button{padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:.9rem;transition:all .2s}.recurrence-editor__day-button:hover{background:#f0f0f0}.recurrence-editor__day-button.active{background:#007bff;color:#fff;border-color:#007bff}.recurrence-editor__month-buttons{display:flex;flex-wrap:wrap;gap:.5rem}.recurrence-editor__month-button{padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:.9rem;transition:all .2s}.recurrence-editor__month-button:hover{background:#f0f0f0}.recurrence-editor__month-button.active{background:#007bff;color:#fff;border-color:#007bff}.recurrence-editor__month-day-buttons{display:flex;flex-wrap:wrap;gap:.5rem;max-height:200px;overflow-y:auto}.recurrence-editor__month-day-button{padding:.5rem;min-width:40px;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:.85rem;transition:all .2s}.recurrence-editor__month-day-button:hover{background:#f0f0f0}.recurrence-editor__month-day-button.active{background:#007bff;color:#fff;border-color:#007bff}.recurrence-editor__end-condition{display:flex;flex-direction:column;gap:.75rem}.recurrence-editor__end-condition label{display:flex;align-items:center;gap:.5rem;font-weight:400;margin-bottom:0}@media (max-width: 768px){.recurrence-editor__day-buttons,.recurrence-editor__month-buttons{justify-content:center}.recurrence-editor__month-day-buttons{max-height:150px}}.dialog-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.accessible-dialog{background:#fff;border-radius:8px;box-shadow:0 4px 6px #0000001a,0 1px 3px #00000014;max-width:90vw;max-height:90vh;overflow:auto;display:flex;flex-direction:column;outline:none}.dialog-header{padding:1rem;border-bottom:1px solid #e0e0e0}.dialog-title{margin:0;font-size:1.25rem;font-weight:600;color:#2c3e50}.dialog-description{margin:.5rem 0 0;font-size:.875rem;color:#666}.dialog-content{padding:1rem;flex:1;overflow:auto}.accessible-dialog:focus{outline:none}.accessible-dialog [tabindex="-1"]:focus{outline:none}.annual-event-edit-dialog{min-width:500px;max-width:600px}.annual-event-edit-dialog__field{margin-bottom:1.5rem}.annual-event-edit-dialog__field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.annual-event-edit-dialog__field label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.9rem}.annual-event-edit-dialog__field .required{color:#dc3545}.annual-event-edit-dialog__input,.annual-event-edit-dialog__select,.annual-event-edit-dialog__textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;font-family:inherit}.annual-event-edit-dialog__textarea{resize:vertical}.annual-event-edit-dialog__help{margin-top:.25rem;font-size:.85rem;color:#666}.annual-event-edit-dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}@media (max-width: 768px){.annual-event-edit-dialog{min-width:auto;max-width:100%}.annual-event-edit-dialog__field-row{grid-template-columns:1fr}}.annual-event-calendar{background:#fff;border-radius:4px;padding:1.5rem}.annual-event-calendar__header{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:1.5rem}.annual-event-calendar__nav-button{padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:1.2rem;transition:background-color .2s}.annual-event-calendar__nav-button:hover{background:#f0f0f0}.annual-event-calendar__title{margin:0;font-size:1.5rem;min-width:150px;text-align:center}.annual-event-calendar__today-button{padding:.5rem 1rem;border:1px solid #ccc;border-radius:4px;background:#fff;cursor:pointer;font-size:.9rem;transition:background-color .2s}.annual-event-calendar__today-button:hover{background:#f0f0f0}.annual-event-calendar__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:#ddd;border:1px solid #ddd;border-radius:4px;overflow:hidden}.annual-event-calendar__weekday{background:#f5f5f5;padding:.75rem;text-align:center;font-weight:600;font-size:.9rem}.annual-event-calendar__day{background:#fff;min-height:100px;padding:.5rem;display:flex;flex-direction:column}.annual-event-calendar__day.other-month{background:#f9f9f9;color:#999}.annual-event-calendar__day.today{background:#e3f2fd}.annual-event-calendar__day-number{font-weight:600;margin-bottom:.25rem;font-size:.9rem}.annual-event-calendar__day-events{flex:1;display:flex;flex-direction:column;gap:.25rem;overflow:hidden}.annual-event-calendar__event{padding:.25rem .5rem;border-radius:3px;color:#fff;font-size:.75rem;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;transition:opacity .2s}.annual-event-calendar__event:hover{opacity:.8}.annual-event-calendar__event-detail{margin-top:1.5rem;padding:1rem;background:#f9f9f9;border-radius:4px;border:1px solid #ddd}.annual-event-calendar__event-detail-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.annual-event-calendar__event-detail-header h4{margin:0;font-size:1.2rem}.annual-event-calendar__close-button{padding:.25rem .5rem;border:none;background:transparent;font-size:1.5rem;cursor:pointer;color:#666;line-height:1}.annual-event-calendar__close-button:hover{color:#000}.annual-event-calendar__event-detail-content p{margin:.5rem 0;font-size:.9rem}.annual-event-calendar__event-detail-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap;align-items:center}.annual-event-calendar__version-select{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.annual-event-calendar__legend{display:flex;gap:1.5rem;margin-top:1.5rem;padding-top:1rem;border-top:1px solid #ddd;flex-wrap:wrap}.annual-event-calendar__legend-item{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.annual-event-calendar__legend-color{width:16px;height:16px;border-radius:3px}@media (max-width: 768px){.annual-event-calendar{padding:1rem}.annual-event-calendar__day{min-height:80px;padding:.25rem}.annual-event-calendar__event{font-size:.7rem;padding:.2rem .4rem}.annual-event-calendar__legend{flex-direction:column;gap:.5rem}}.annual-events-page{padding:1.5rem;max-width:1400px;margin:0 auto}.annual-events-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.annual-events-page__header h2{margin:0;font-size:1.5rem}.annual-events-page__controls{display:flex;gap:1rem;align-items:center}.annual-events-page__view-select{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.annual-events-page__filters{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;background:#f5f5f5;border-radius:4px}.annual-events-page__filters label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.annual-events-page__filter-select{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.annual-events-page__loading{text-align:center;padding:2rem;color:#666}.annual-events-page__list{background:#fff;border-radius:4px;overflow:hidden}.annual-events-page__table{width:100%;border-collapse:collapse}.annual-events-page__table thead{background:#f5f5f5}.annual-events-page__table th{padding:.75rem;text-align:left;font-weight:600;border-bottom:2px solid #ddd}.annual-events-page__table td{padding:.75rem;border-bottom:1px solid #eee}.annual-events-page__table tr:hover{background:#f9f9f9}.annual-events-page__empty{text-align:center;color:#999;padding:2rem!important}@media (max-width: 768px){.annual-events-page{padding:1rem}.annual-events-page__header{flex-direction:column;align-items:flex-start;gap:1rem}.annual-events-page__filters{flex-direction:column;gap:.75rem}.annual-events-page__table{font-size:.85rem}.annual-events-page__table th,.annual-events-page__table td{padding:.5rem}}.teaching-plan-edit-dialog{min-width:600px;max-width:800px}.teaching-plan-edit-dialog__field{margin-bottom:1.5rem}.teaching-plan-edit-dialog__field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.teaching-plan-edit-dialog__field label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.9rem}.teaching-plan-edit-dialog__field .required{color:#dc3545}.teaching-plan-edit-dialog__input,.teaching-plan-edit-dialog__select,.teaching-plan-edit-dialog__textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;font-family:inherit}.teaching-plan-edit-dialog__textarea{resize:vertical}.teaching-plan-edit-dialog__list-item{display:flex;gap:.5rem;margin-bottom:.5rem}.teaching-plan-edit-dialog__list-item input{flex:1}.teaching-plan-edit-dialog__remove-button{padding:.5rem 1rem;border:1px solid #dc3545;border-radius:4px;background:#fff;color:#dc3545;cursor:pointer;font-size:.85rem;transition:background-color .2s}.teaching-plan-edit-dialog__remove-button:hover{background:#dc3545;color:#fff}.teaching-plan-edit-dialog__add-button{padding:.5rem 1rem;border:1px solid #007bff;border-radius:4px;background:#fff;color:#007bff;cursor:pointer;font-size:.85rem;transition:background-color .2s}.teaching-plan-edit-dialog__add-button:hover{background:#007bff;color:#fff}.teaching-plan-edit-dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}@media (max-width: 768px){.teaching-plan-edit-dialog{min-width:auto;max-width:100%}.teaching-plan-edit-dialog__field-row{grid-template-columns:1fr}}.teaching-plan-spreadsheet{display:flex;flex-direction:column;gap:1rem;width:100%;max-width:100%}.teaching-plan-spreadsheet__filters{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.teaching-plan-spreadsheet__filters label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.teaching-plan-spreadsheet__select{padding:.4rem .6rem;border:1px solid #cbd5e1;border-radius:6px;min-width:140px}.teaching-plan-spreadsheet__hint,.teaching-plan-spreadsheet__loading,.teaching-plan-spreadsheet__empty{color:#64748b;margin:0;padding:1rem 0}.teaching-plan-spreadsheet__table-wrap{overflow-x:auto;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.teaching-plan-spreadsheet__table{width:100%;border-collapse:collapse;font-size:.9rem}.teaching-plan-spreadsheet__table th,.teaching-plan-spreadsheet__table td{border:1px solid #e2e8f0;padding:.5rem .75rem;text-align:left;vertical-align:top}.teaching-plan-spreadsheet__table th{background:#f8fafc;font-weight:600;color:#334155}.teaching-plan-spreadsheet__col-index{width:3rem;text-align:center}.teaching-plan-spreadsheet__col-date{width:6rem;white-space:nowrap}.teaching-plan-spreadsheet__col-period{width:3.5rem;text-align:center}.teaching-plan-spreadsheet__col-content,.teaching-plan-spreadsheet__col-items,.teaching-plan-spreadsheet__col-objectives,.teaching-plan-spreadsheet__col-reflection{min-width:160px}.teaching-plan-spreadsheet__col-items{min-width:120px}.teaching-plan-spreadsheet__cell-text{min-height:4.5rem;padding:.25rem 0;cursor:text;white-space:pre-wrap;word-break:break-word}.teaching-plan-spreadsheet__cell-text:hover{background:#f1f5f9;border-radius:4px}.teaching-plan-spreadsheet__cell-text:focus{outline:2px solid #3b82f6;outline-offset:-2px;border-radius:4px}.teaching-plan-spreadsheet__input{width:100%;min-height:4.5rem;padding:.25rem 0;margin:-.25rem 0;border:none;border-radius:0;background:transparent;font-size:inherit;font-family:inherit;line-height:inherit;resize:none;outline:none;box-shadow:none;display:block;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.teaching-plan-spreadsheet__input::-webkit-scrollbar{display:none}.teaching-plan-spreadsheet__input:focus{background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0;border-radius:2px}.teaching-plan-spreadsheet__saving{margin:0;font-size:.85rem;color:#64748b}.teaching-plans-page{padding:1.5rem;max-width:1400px;margin:0 auto}.teaching-plans-page__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.teaching-plans-page__tabs{display:flex;gap:.25rem;padding:.25rem;background:#f1f5f9;border-radius:8px}.teaching-plans-page__tab{padding:.5rem 1rem;border:none;border-radius:6px;background:transparent;font-size:.95rem;cursor:pointer;color:#475569}.teaching-plans-page__tab:hover{background:#fffc;color:#334155}.teaching-plans-page__tab.active{background:#fff;color:#1e293b;font-weight:600;box-shadow:0 1px 3px #00000014}.teaching-plans-page__header h2{margin:0;font-size:1.5rem}.teaching-plans-page__filters{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;background:#f5f5f5;border-radius:4px}.teaching-plans-page__filters label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.teaching-plans-page__filter-select{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.teaching-plans-page__loading{text-align:center;padding:2rem;color:#666}.teaching-plans-page__empty{text-align:center;padding:2rem;color:#999}.teaching-plans-page__plan-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.teaching-plans-page__plan-card{background:#fff;border:1px solid #ddd;border-radius:4px;padding:1rem;transition:box-shadow .2s}.teaching-plans-page__plan-card:hover{box-shadow:0 2px 8px #0000001a}.teaching-plans-page__plan-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.teaching-plans-page__plan-card-header h3{margin:0;font-size:1.1rem;flex:1}.teaching-plans-page__plan-card-actions{display:flex;gap:.5rem}.teaching-plans-page__plan-card-content{font-size:.9rem}.teaching-plans-page__plan-card-content p{margin:.5rem 0}.teaching-plans-page__plan-card-preview{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee;color:#666;font-size:.85rem}@media (max-width: 768px){.teaching-plans-page{padding:1rem}.teaching-plans-page__header{flex-direction:column;align-items:flex-start;gap:1rem}.teaching-plans-page__filters{flex-direction:column;gap:.75rem}.teaching-plans-page__plan-cards{grid-template-columns:1fr}}.teaching-log-edit-dialog{min-width:600px;max-width:800px}.teaching-log-edit-dialog__field{margin-bottom:1.5rem}.teaching-log-edit-dialog__field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.teaching-log-edit-dialog__field label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.9rem}.teaching-log-edit-dialog__field .required{color:#dc3545}.teaching-log-edit-dialog__input,.teaching-log-edit-dialog__select,.teaching-log-edit-dialog__textarea{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;font-family:inherit}.teaching-log-edit-dialog__textarea{resize:vertical}.teaching-log-edit-dialog__input-number{width:80px;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.teaching-log-edit-dialog__attendance{display:flex;gap:1.5rem;flex-wrap:wrap}.teaching-log-edit-dialog__attendance-item{display:flex;align-items:center;gap:.5rem}.teaching-log-edit-dialog__attendance-item label{margin-bottom:0;font-weight:400}.teaching-log-edit-dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}@media (max-width: 768px){.teaching-log-edit-dialog{min-width:auto;max-width:100%}.teaching-log-edit-dialog__field-row{grid-template-columns:1fr}.teaching-log-edit-dialog__attendance{flex-direction:column;gap:.75rem}}.teaching-log-weekly-print{padding:1rem;max-width:100%}.teaching-log-weekly-print__main{max-width:min(259.2mm,100%);margin-left:auto;margin-right:auto;box-sizing:border-box}.teaching-log-weekly-print__controls{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end;margin-bottom:1.5rem;width:100%;box-sizing:border-box}.teaching-log-weekly-print__controls label{display:flex;flex-direction:column;gap:.25rem;font-size:.9rem}.teaching-log-weekly-print__select,.teaching-log-weekly-print__input{padding:.4rem .6rem;border:1px solid #cbd5e1;border-radius:6px;min-width:140px}.teaching-log-weekly-print__data-source{font-size:.85rem;color:#475569;margin:0 0 1rem;max-width:100%;width:100%;box-sizing:border-box}.teaching-log-weekly-print__hint,.teaching-log-weekly-print__loading{color:#64748b;margin:0}.teaching-log-weekly-print__screen-scale-wrapper{zoom:1.5;width:100%;box-sizing:border-box}.teaching-log-weekly-print__document{--weekly-print-row-h: 44px;background:#fff;color:#000;padding:1rem;max-width:min(259.2mm,100%);margin:0 auto;box-sizing:border-box}.teaching-log-weekly-print__title{font-size:1.6rem;margin:0 0 .5rem;text-align:center}.teaching-log-weekly-print__week-label{margin:0 0 1rem;text-align:center;font-size:1.15rem}.teaching-log-weekly-print__grid{width:100%;max-width:100%;border-collapse:collapse;font-size:1rem;margin-bottom:1.5rem;table-layout:fixed}.teaching-log-weekly-print__grid--pdf col:nth-child(1),.teaching-log-weekly-print__grid--pdf col:nth-child(2){width:3.5%}.teaching-log-weekly-print__grid tbody tr{height:44px!important;max-height:44px!important;min-height:44px!important;overflow:hidden!important}.teaching-log-weekly-print__grid tbody tr td,.teaching-log-weekly-print__grid tbody tr th{overflow:hidden!important;vertical-align:middle}.teaching-log-weekly-print__grid th,.teaching-log-weekly-print__grid td{border:1px solid #333;padding:.35rem;vertical-align:top}.teaching-log-weekly-print__grid--pdf th,.teaching-log-weekly-print__grid--pdf td{text-align:center;vertical-align:middle}.teaching-log-weekly-print__grid--pdf .teaching-log-weekly-print__td-cell--input-top-right,.teaching-log-weekly-print__td-cell--input-top-right{text-align:left}.teaching-log-weekly-print__th-period-block{width:3.5%;min-width:2.73em;max-width:3.8em;text-align:center;background:#f5f5f5;font-weight:600;font-size:1.3rem;vertical-align:middle;padding:.15em .2em}.teaching-log-weekly-print__td-period-vertical{width:3.5%;min-width:2.73em;max-width:3.8em;font-weight:600;font-size:1.4rem;background:#f8f8f8;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.1em;padding:.15em .2em;text-align:center;vertical-align:middle}.teaching-log-weekly-print__period-inner{display:inline-block;line-height:1.4}.teaching-log-weekly-print__grid--pdf .teaching-log-weekly-print__th-label{font-weight:600;font-size:1.2rem;text-align:center;vertical-align:middle;background:#f5f5f5;writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:.05em}.teaching-log-weekly-print__grid--pdf tbody .teaching-log-weekly-print__th-label{width:3.5%;min-width:2.73em;max-width:3.8em;padding:.15em .2em}.teaching-log-weekly-print__grid--pdf tbody .teaching-log-weekly-print__tr--content-objectives .teaching-log-weekly-print__th-label,.teaching-log-weekly-print__grid--pdf tbody .teaching-log-weekly-print__tr--reflection .teaching-log-weekly-print__th-label{font-size:2.4mm}.teaching-log-weekly-print__grid--pdf .teaching-log-weekly-print__th-label--header{writing-mode:horizontal-tb;text-orientation:mixed;width:3.5%;min-width:2.73em;max-width:3.8em;padding:.15em .2em;text-align:center}.teaching-log-weekly-print__grid--pdf thead tr{height:36px!important;min-height:36px!important;max-height:36px!important}.teaching-log-weekly-print__grid--pdf thead th,.teaching-log-weekly-print__grid--pdf thead td{overflow:hidden;vertical-align:middle}.teaching-log-weekly-print__grid--pdf .teaching-log-weekly-print__th-day{width:18.4%;text-align:center;font-size:1.3rem;font-weight:600;white-space:nowrap}.teaching-log-weekly-print__grid--pdf .teaching-log-weekly-print__td-date{width:18.4%;text-align:center;font-size:1.1rem;white-space:nowrap}.teaching-log-weekly-print__grid--pdf .teaching-log-weekly-print__td-cell{position:relative;width:18.4%;height:44px!important;min-height:44px!important;max-height:44px!important;padding:0;white-space:pre-wrap;word-break:break-word;text-align:center;vertical-align:middle;font-size:1.15rem;overflow:hidden;box-sizing:border-box}.teaching-log-weekly-print__th-day,.teaching-log-weekly-print__td-day{width:2em;text-align:center}.teaching-log-weekly-print__th-date,.teaching-log-weekly-print__td-date{width:5em;text-align:center}.teaching-log-weekly-print__th-period{text-align:center;min-width:100px}.teaching-log-weekly-print__td-cell{position:relative;min-width:100px;height:44px!important;min-height:44px!important;max-height:44px!important;padding:0;overflow:hidden;box-sizing:border-box}.teaching-log-weekly-print__td-cell-inner{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;min-height:0;max-height:100%;overflow:hidden;box-sizing:border-box}.teaching-log-weekly-print__td-cell-inner>*{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;min-height:0;max-height:100%;box-sizing:border-box;display:block;overflow:hidden}.teaching-log-weekly-print__cell-display{padding:0;cursor:text;white-space:pre-wrap;word-break:break-word;overflow:hidden;display:flex;align-items:center;justify-content:center}.teaching-log-weekly-print__td-cell--input-top-right .teaching-log-weekly-print__cell-display{align-items:flex-start;justify-content:flex-start}.teaching-log-weekly-print__cell-display:hover{background:#f8fafc;border-radius:2px}.teaching-log-weekly-print__cell-input{padding:.2rem;margin:0;border:none;border-radius:0;background:transparent;font-size:inherit;font-family:inherit;line-height:inherit;resize:none;outline:none;box-shadow:none;overflow-x:hidden!important;overflow-y:auto!important;scrollbar-width:none;-ms-overflow-style:none;height:100%!important;max-height:100%!important;box-sizing:border-box}.teaching-log-weekly-print__td-cell--input-top-right .teaching-log-weekly-print__cell-input{text-align:left}.teaching-log-weekly-print__cell-input::-webkit-scrollbar{display:none}.teaching-log-weekly-print__cell-input:focus{background:#f8fafc;box-shadow:inset 0 0 0 1px #e2e8f0;border-radius:2px}.teaching-log-weekly-print__td-cell--popover-anchor{box-shadow:inset 0 0 0 2px #3b82f6;background:#eff6ff}.teaching-log-weekly-print__cell-editing-hint{display:block;font-size:.7rem;color:#64748b;padding:2px 4px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.teaching-log-weekly-print__edit-popover{background:#fff;border:1px solid #cbd5e1;border-radius:8px;box-shadow:0 10px 15px -3px #00000014,0 4px 6px -2px #0000000a;padding:8px;box-sizing:border-box}.teaching-log-weekly-print__edit-popover-input{display:block;width:100%;box-sizing:border-box;margin:0;padding:10px 12px;min-height:220px;max-height:min(70vh,480px);font-size:.8125rem;line-height:1.5;font-family:inherit;color:#0f172a;border:1px solid #e2e8f0;border-radius:6px;resize:vertical;background:#fafafa}.teaching-log-weekly-print__edit-popover-input:focus{outline:none;border-color:#3b82f6;background:#fff;box-shadow:0 0 0 3px #3b82f626}.teaching-log-weekly-print__cell-print-only{display:none;white-space:pre-wrap;word-break:break-word;height:100%;min-height:0;padding:0;overflow:hidden;box-sizing:border-box}.teaching-log-weekly-print__cell-inner{display:flex;flex-direction:column;gap:.25rem}.teaching-log-weekly-print__lesson{border-bottom:1px solid #e2e8f0;padding-bottom:.25rem}.teaching-log-weekly-print__lesson:last-child{border-bottom:none}.teaching-log-weekly-print__lesson-header{font-weight:600;font-size:.85em}.teaching-log-weekly-print__lesson-content,.teaching-log-weekly-print__lesson-objectives,.teaching-log-weekly-print__lesson-reflection{font-size:.9em;white-space:pre-wrap;word-break:break-word}.teaching-log-weekly-print__lesson-reflection{color:#475569}.teaching-log-weekly-print__empty{color:#94a3b8}.teaching-log-weekly-print__section-title{font-size:1.35rem;margin:0 0 .5rem}.teaching-log-weekly-print__counts{margin-bottom:1.5rem;width:100%;max-width:100%;min-width:0;box-sizing:border-box}.teaching-log-weekly-print__counts-table{width:100%;max-width:100%;table-layout:fixed;border-collapse:collapse;font-size:1.15rem}.teaching-log-weekly-print__counts-table th,.teaching-log-weekly-print__counts-table td{border:1px solid #333;padding:.4rem;text-align:left}.teaching-log-weekly-print__empty-cell{color:#94a3b8}.teaching-log-weekly-print__counts-table--pdf th,.teaching-log-weekly-print__counts-table--pdf td{border:1px solid #333;padding:.5rem .75rem;text-align:center}.teaching-log-weekly-print__counts-table--pdf th{background:#f5f5f5;text-align:center;min-width:3em}.teaching-log-weekly-print__counts-table--pdf th:first-child{width:10%;min-width:6mm;max-width:18mm}.teaching-log-weekly-print__counts-td{min-width:2.5em}.teaching-log-weekly-print__layout-sidebar-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000004d;z-index:999}.teaching-log-weekly-print__layout-sidebar{position:fixed;top:0;right:0;width:320px;max-width:95vw;height:100vh;background:#fff;box-shadow:-4px 0 12px #00000026;z-index:1000;display:flex;flex-direction:column;transform:translate(100%);transition:transform .2s ease-out;overflow:hidden}.teaching-log-weekly-print__layout-sidebar--open{transform:translate(0)}.teaching-log-weekly-print__layout-sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem .75rem;border-bottom:1px solid #e2e8f0;flex-shrink:0}.teaching-log-weekly-print__layout-sidebar-title{margin:0;font-size:1.1rem;font-weight:600}.teaching-log-weekly-print__layout-sidebar-close{width:2rem;height:2rem;padding:0;border:none;background:transparent;font-size:1.5rem;line-height:1;cursor:pointer;color:#64748b;border-radius:4px}.teaching-log-weekly-print__layout-sidebar-close:hover{background:#f1f5f9;color:#334155}.teaching-log-weekly-print__layout-sidebar-body{padding:1rem;overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:1rem}.teaching-log-weekly-print__layout-sidebar-note{margin:0;font-size:.8rem;color:#64748b;line-height:1.4}.teaching-log-weekly-print__layout-fields{display:flex;flex-direction:column;gap:.75rem}.teaching-log-weekly-print__layout-field{display:flex;flex-direction:column;gap:.25rem;font-size:.875rem}.teaching-log-weekly-print__layout-field span{font-weight:500;color:#334155}.teaching-log-weekly-print__layout-field input{padding:.4rem .5rem;border:1px solid #cbd5e1;border-radius:6px;font-size:.9rem;width:100%;box-sizing:border-box}.teaching-log-weekly-print__layout-field-hint{display:block;font-size:.75rem;color:#64748b;margin-top:.25rem;line-height:1.3}.teaching-log-weekly-print__layout-field input:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.teaching-log-weekly-print__layout-sidebar-actions{display:flex;gap:.5rem;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #e2e8f0;flex-shrink:0}@media print{.teaching-log-weekly-print__layout-sidebar-backdrop,.teaching-log-weekly-print__layout-sidebar{display:none!important}@page{size:A4;margin:10mm 15mm}html,body{margin:0!important;padding:0!important;box-sizing:border-box}body *{visibility:hidden!important}.teaching-log-weekly-print__document,.teaching-log-weekly-print__document *{visibility:visible!important}.no-print{display:none!important}.teaching-log-weekly-print{padding:0!important;max-width:100%!important;width:100%!important;overflow:hidden!important;box-sizing:border-box}.teaching-log-weekly-print__document{position:fixed!important;top:0!important;left:0!important;margin:0!important;page-break-inside:avoid!important;page-break-after:avoid!important}.teaching-log-weekly-print__cell-display[role=button]{cursor:default;pointer-events:none}.teaching-log-weekly-print__cell-print-only{display:block!important}}.teaching-logs-page{padding:1.5rem;max-width:1400px;margin:0 auto}.teaching-logs-page__header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.teaching-logs-page__tabs{display:flex;gap:.25rem;padding:.25rem;background:#f1f5f9;border-radius:8px}.teaching-logs-page__tab{padding:.5rem 1rem;border:none;border-radius:6px;background:transparent;font-size:.95rem;cursor:pointer;color:#475569}.teaching-logs-page__tab:hover{background:#fffc;color:#334155}.teaching-logs-page__tab.active{background:#fff;color:#1e293b;font-weight:600;box-shadow:0 1px 3px #00000014}.teaching-logs-page__header h2{margin:0;font-size:1.5rem}.teaching-logs-page__filters{display:flex;gap:1.5rem;margin-bottom:1.5rem;padding:1rem;background:#f5f5f5;border-radius:4px}.teaching-logs-page__filters label{display:flex;align-items:center;gap:.5rem;font-size:.9rem}.teaching-logs-page__filter-select,.teaching-logs-page__filter-input{padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem}.teaching-logs-page__loading{text-align:center;padding:2rem;color:#666}.teaching-logs-page__empty{text-align:center;padding:2rem;color:#999}.teaching-logs-page__log-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1rem}.teaching-logs-page__log-card{background:#fff;border:1px solid #ddd;border-radius:4px;padding:1rem;transition:box-shadow .2s}.teaching-logs-page__log-card:hover{box-shadow:0 2px 8px #0000001a}.teaching-logs-page__log-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #eee}.teaching-logs-page__log-card-header h3{margin:0;font-size:1.1rem;flex:1}.teaching-logs-page__log-card-actions{display:flex;gap:.5rem}.teaching-logs-page__log-card-content{font-size:.9rem}.teaching-logs-page__log-card-content p{margin:.5rem 0}.teaching-logs-page__log-card-preview{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #eee;color:#666;font-size:.85rem}.btn-sm{padding:.25rem .5rem;font-size:.85rem}@media (max-width: 768px){.teaching-logs-page{padding:1rem}.teaching-logs-page__header{flex-direction:column;align-items:flex-start;gap:1rem}.teaching-logs-page__filters{flex-direction:column;gap:.75rem}.teaching-logs-page__log-cards{grid-template-columns:1fr}}@media print{.teaching-logs-page__header{display:none!important}}.spreadsheet-sync-dialog{min-width:500px;max-width:600px}.spreadsheet-sync-dialog__field{margin-bottom:1.5rem}.spreadsheet-sync-dialog__field label{display:block;margin-bottom:.5rem;font-weight:500;font-size:.9rem}.spreadsheet-sync-dialog__field .required{color:#dc3545}.spreadsheet-sync-dialog__input,.spreadsheet-sync-dialog__select{width:100%;padding:.5rem;border:1px solid #ccc;border-radius:4px;font-size:.9rem;font-family:inherit}.spreadsheet-sync-dialog__help{margin-top:.25rem;font-size:.85rem;color:#666}.spreadsheet-sync-dialog__actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:2rem;padding-top:1rem;border-top:1px solid #eee}.btn-primary:hover{background:#0056b3}@media (max-width: 768px){.spreadsheet-sync-dialog{min-width:auto;max-width:100%}}.spreadsheet-sync-page{padding:1.5rem;max-width:1400px;margin:0 auto}.spreadsheet-sync-page__header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.spreadsheet-sync-page__header h2{margin:0;font-size:1.5rem}.spreadsheet-sync-page__description{margin:.5rem 0 0;font-size:.9rem;color:#555;max-width:560px}.spreadsheet-sync-page__description p{margin:.25em 0}.spreadsheet-sync-page__description p:first-child{margin-top:0}.spreadsheet-sync-page__loading{text-align:center;padding:2rem;color:#666}.spreadsheet-sync-page__empty{text-align:center;padding:2rem;color:#999}.spreadsheet-sync-page__list{background:#fff;border-radius:4px;overflow:hidden}.spreadsheet-sync-page__table{width:100%;border-collapse:collapse}.spreadsheet-sync-page__table thead{background:#f5f5f5}.spreadsheet-sync-page__table th{padding:.75rem;text-align:left;font-weight:600;border-bottom:2px solid #ddd}.spreadsheet-sync-page__table td{padding:.75rem;border-bottom:1px solid #eee}.spreadsheet-sync-page__table tr:hover{background:#f9f9f9}.spreadsheet-sync-page__status{padding:.25rem .5rem;border-radius:4px;font-size:.85rem;font-weight:500}.spreadsheet-sync-page__status--idle{background:#e9ecef;color:#495057}.spreadsheet-sync-page__status--syncing{background:#fff3cd;color:#856404}.spreadsheet-sync-page__status--error{background:#f8d7da;color:#721c24}.spreadsheet-sync-page__error{margin-top:.25rem;font-size:.85rem;color:#dc3545}.spreadsheet-sync-page__preview-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.spreadsheet-sync-page__preview-modal{background:#fff;border-radius:8px;min-width:320px;max-width:480px;max-height:80vh;overflow:auto;box-shadow:0 4px 20px #00000026}.spreadsheet-sync-page__preview-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;border-bottom:1px solid #eee}.spreadsheet-sync-page__preview-header h3{margin:0;font-size:1.1rem}.spreadsheet-sync-page__preview-body{padding:1.25rem}.spreadsheet-sync-page__preview-body p{margin:0 0 .5rem}.spreadsheet-sync-page__preview-errors{margin-top:.75rem;padding:.5rem;background:#f8d7da;color:#721c24;border-radius:4px;font-size:.9rem}.spreadsheet-sync-page__preview-unresolved{margin-top:1rem;font-size:.9rem}.spreadsheet-sync-page__preview-unresolved ul{margin:.25rem 0 0;padding-left:1.25rem}.btn{padding:.5rem 1rem;border:none;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background-color .2s}.btn-primary{background:#007bff;color:#fff}.btn-primary:hover:not(:disabled){background:#0056b3}.btn-primary:disabled{background:#ccc;cursor:not-allowed}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#545b62}.btn-info{background:#17a2b8;color:#fff}.btn-info:hover:not(:disabled){background:#138496}.btn-info:disabled{background:#ccc;cursor:not-allowed}.btn-danger:hover:not(:disabled){background:#c82333}.btn-danger:disabled{background:#ccc;cursor:not-allowed}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-sm{padding:.25rem .5rem;font-size:.85rem;margin-right:.25rem}@media (max-width: 768px){.spreadsheet-sync-page{padding:1rem}.spreadsheet-sync-page__header{flex-direction:column;align-items:flex-start;gap:1rem}.spreadsheet-sync-page__table{font-size:.85rem}.spreadsheet-sync-page__table th,.spreadsheet-sync-page__table td{padding:.5rem}}.school-settings-page{display:flex;flex-direction:column;height:100%;overflow-y:auto;margin-top:-.5rem;padding:0 1.5rem 1.5rem;background-color:#f5f5f5}.school-settings-header{position:sticky;top:0;z-index:50;margin:0 0 1.25rem;padding:.75rem 0 1rem;border-bottom:2px solid #e2e8f0;background:#f5f5f5;box-shadow:0 2px 8px #0000000f}@media (min-width: 769px){.school-settings-header{margin-bottom:1.5rem;padding:.75rem 0 1rem}}.school-settings-header-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap}.school-settings-header-text{flex:1;min-width:0}.school-settings-header h1{margin:0 0 .5rem;font-size:1.5rem;font-weight:600;color:#1a202c;line-height:1.3}.school-settings-header p{margin:0;color:#718096;font-size:.9rem}.school-settings-save-btn{flex-shrink:0;padding:.75rem 2rem;font-size:1rem;font-weight:600;border:none;border-radius:4px;cursor:pointer;transition:background-color .2s,opacity .2s;align-self:center}.school-settings-save-btn.primary{background-color:#4299e1;color:#fff}.school-settings-save-btn.primary:hover:not(:disabled){background-color:#3182ce}.school-settings-save-btn:disabled{opacity:.6;cursor:not-allowed}.school-settings-content{background-color:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.settings-section{margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid #e2e8f0}.settings-section:last-of-type{border-bottom:none;margin-bottom:1.5rem}.public-view-url-code{display:inline-block;max-width:100%;padding:.35rem .5rem;background:#f1f5f9;border-radius:4px;font-size:.9rem;word-break:break-all}.settings-section h3{margin:0 0 1.5rem;font-size:1.2rem;font-weight:600;color:#2d3748}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#374151;font-size:.9rem}.form-group label.required:after{content:" *";color:#e53e3e}.form-group input[type=text],.form-group input[type=tel],.form-group input[type=email],.form-group input[type=number],.form-group select{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:4px;font-size:1rem;transition:border-color .2s,box-shadow .2s}.form-group input[type=text]:focus,.form-group input[type=tel]:focus,.form-group input[type=email]:focus,.form-group input[type=number]:focus,.form-group select:focus{outline:none;border-color:#4299e1;box-shadow:0 0 0 3px #4299e11a}.form-group input[type=number]{width:200px}.form-group small{display:block;margin-top:.25rem;color:#718096;font-size:.85rem}.form-group .checkbox-label{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-weight:400;margin-bottom:.25rem}.form-group .checkbox-label input[type=checkbox]{width:1.25rem;height:1.25rem;cursor:pointer}.term-periods-table-wrapper{overflow-x:auto;margin-top:.5rem}.term-periods-table{width:100%;border-collapse:collapse;font-size:.9rem}.term-periods-table th,.term-periods-table td{border:1px solid #e2e8f0;padding:.5rem .75rem;text-align:left}.term-periods-table th{background:#f7fafc;font-weight:600;color:#2d3748}.term-periods-table .term-period-name{width:100%;min-width:100px;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:4px}.term-periods-table .term-period-date-input{min-width:140px;padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem}.term-periods-table .term-period-date-input:focus{outline:none;border-color:#4299e1;box-shadow:0 0 0 2px #4299e133}.section-description{margin:-.5rem 0 1rem;color:#718096;font-size:.9rem}.holidays-fetch-row,.holidays-add-row{display:flex;flex-wrap:wrap;align-items:center;gap:.75rem;margin-bottom:1rem}.holidays-fetch-row label,.holidays-add-row>span{display:inline-flex;align-items:center;font-size:.9rem;color:#374151}.holidays-fetch-row input[type=number],.holidays-add-row input[type=date],.holidays-add-row input[type=text],.holidays-add-row select{padding:.4rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem}.holidays-fetch-row button,.holidays-add-row button{padding:.4rem 1rem;font-size:.9rem;border:1px solid #cbd5e0;border-radius:4px;background:#edf2f7;cursor:pointer}.holidays-fetch-row button:hover:not(:disabled),.holidays-add-row button:hover{background:#e2e8f0}.holidays-fetch-row button:disabled{opacity:.7;cursor:not-allowed}.holidays-list-controls{margin-top:.5rem;margin-bottom:.5rem}.holidays-filter-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.9rem;color:#374151;margin-right:1rem}.holidays-filter-label select{padding:.35rem .5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.9rem;min-width:6rem}.holidays-list-details{margin-top:.75rem;border:1px solid #e2e8f0;border-radius:6px;background:#fafafa}.holidays-list-summary{padding:.5rem .75rem;font-size:.95rem;cursor:pointer;list-style:none;-webkit-user-select:none;-moz-user-select:none;user-select:none}.holidays-list-summary::-webkit-details-marker{display:none}.holidays-list-summary:hover{background:#f1f5f9;border-radius:6px}.holidays-list-details[open] .holidays-list-summary{border-bottom:1px solid #e2e8f0;border-radius:6px 6px 0 0}.holidays-table-wrapper{overflow-x:auto;margin:0;padding:.5rem .75rem .75rem;background:#fff;border-radius:0 0 6px 6px}.holidays-table{width:100%;border-collapse:collapse;font-size:.9rem}.holidays-table th,.holidays-table td{border:1px solid #e2e8f0;padding:.5rem .75rem;text-align:left}.holidays-table th{background:#f7fafc;font-weight:600;color:#2d3748}.holidays-table .empty-cell{color:#718096;font-style:italic;text-align:center;padding:1rem}.holiday-delete-btn{padding:.25rem .5rem;font-size:.8rem;border:1px solid #feb2b2;border-radius:4px;background:#fff5f5;color:#c53030;cursor:pointer}.holiday-delete-btn:hover{background:#fed7d7}.form-group button{padding:.5rem 1rem;font-size:.9rem;border:1px solid #cbd5e0;border-radius:4px;background:#edf2f7;cursor:pointer;width:-moz-fit-content!important;width:fit-content!important;min-width:auto!important;max-width:none!important;display:inline-block;transition:background-color .2s}.form-group button:hover:not(:disabled){background:#e2e8f0}.form-group button:disabled{opacity:.7;cursor:not-allowed}@media (max-width: 768px){.school-settings-page{padding:0 1rem 1rem}.school-settings-content{padding:1.5rem}.form-group input[type=number]{width:100%}.school-settings-header-inner{flex-direction:column;align-items:stretch}.school-settings-save-btn{width:100%;align-self:stretch}}.schools-page{padding:1rem;max-width:900px}.schools-header{margin-bottom:1.5rem}.schools-header h2{margin:0 0 .25rem}.schools-header p{margin:0;color:#555;font-size:.9rem}.schools-table-wrapper{background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:1rem}.schools-table{width:100%;border-collapse:collapse}.schools-table th,.schools-table td{padding:.5rem .75rem;text-align:left;border-bottom:1px solid #eee}.schools-table th{font-weight:600;background:#f8f9fa}.table-actions{display:flex;gap:.5rem}.table-actions .danger{color:#c62828}.school-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:1000}.school-dialog{background:#fff;border-radius:8px;padding:1.5rem;min-width:380px;max-width:90vw;box-shadow:0 4px 20px #00000026}.school-dialog h3{margin:0 0 1rem}.school-dialog .form-group{margin-bottom:1rem}.school-dialog .form-group label{display:block;margin-bottom:.25rem;font-weight:500}.school-dialog .form-group input[type=text],.school-dialog .form-group input[type=email],.school-dialog .form-group input[type=password]{width:100%;padding:.4rem .5rem;border:1px solid #ccc;border-radius:4px;box-sizing:border-box}.school-dialog .form-group input:disabled{background:#f0f0f0;color:#666}.school-dialog .form-group small{display:block;margin-top:.25rem;color:#666;font-size:.85rem}.school-dialog .first-admin-fields{margin:1rem 0;padding:1rem;border:1px solid #e0e0e0;border-radius:4px}.school-dialog .first-admin-fields legend{padding:0 .5rem}.school-dialog .form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.25rem}.school-dialog .dialog-hint{margin:0 0 1rem;color:#666;font-size:.9rem}.school-users-dialog{min-width:520px}.muted{color:#999;font-size:.9rem}.student-class-timetable{padding:1rem 1.25rem 2rem;max-width:1280px;margin:0 auto}.student-class-timetable--compact{padding-top:.5rem}.student-class-timetable__title{font-size:1.125rem;font-weight:700;margin:0 0 .75rem;letter-spacing:.02em}.student-class-timetable__toolbar{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;align-items:flex-end;margin-bottom:1rem;padding:.75rem 1rem;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px}.student-class-timetable__toolbar label{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;font-weight:600;color:#334155}.student-class-timetable__meta{font-size:.8125rem;color:#475569;margin-bottom:.5rem}.student-class-timetable__meta-sn{display:flex;flex-direction:column;gap:.15rem;align-items:flex-start}.student-class-timetable__meta-sn-label{font-size:.75rem;font-weight:600;color:#64748b;letter-spacing:.02em}.student-class-timetable__meta-sn-name{font-size:1rem;font-weight:700;color:#0f172a}.student-class-timetable__meta-week{display:block;margin-top:.35rem;font-weight:500}.student-class-timetable__table-wrap{overflow:auto;max-height:min(70vh,calc(100vh - 12rem));background:#fff;border:3px solid #0f172a;box-shadow:0 1px 3px #00000014}.student-tt-spreadsheet{width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed;font-size:.8125rem;color:#0f172a}.student-tt-spreadsheet th,.student-tt-spreadsheet td{border:1px solid #0f172a;padding:0;vertical-align:middle;text-align:center}.student-tt-spreadsheet thead tr.student-tt-row--date th{background:#c8e6c9;font-weight:700;padding:.35rem .25rem;font-size:.875rem}.student-tt-spreadsheet thead tr.student-tt-row--dow th{background:#c8e6c9;font-weight:700;padding:.3rem .25rem;font-size:.9375rem}.student-tt-spreadsheet .student-tt-label-col{box-sizing:border-box;width:3.25rem;min-width:3.25rem;max-width:3.25rem;white-space:nowrap;overflow:hidden;background:#ffd4c8!important;font-weight:700}.student-tt-spreadsheet .student-tt-sn-col-head{width:2.25rem;min-width:2.25rem;max-width:2.75rem;padding:.2rem .1rem;vertical-align:middle}.student-tt-spreadsheet .student-tt-sn-col-head__text{display:inline-block;writing-mode:vertical-rl;text-orientation:upright;font-size:.75rem;font-weight:700;letter-spacing:.12em;line-height:1.2}.student-tt-spreadsheet .student-tt-sn-band-label{width:2.25rem;min-width:2.25rem;max-width:2.75rem;padding:.25rem .1rem;vertical-align:middle;font-weight:600}.student-tt-spreadsheet .student-tt-sn-band-label__text{display:inline-block;max-height:12rem;overflow:hidden;writing-mode:vertical-rl;text-orientation:upright;font-size:.6875rem;line-height:1.35;letter-spacing:.08em}.student-tt-spreadsheet .student-tt-day-col{min-width:0;width:auto}.student-tt-spreadsheet td.student-tt-cell-wrap{min-width:0;width:auto;vertical-align:top}.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--1 td.student-tt-cell-wrap,.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--1 th{background:#fff}.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--2 td.student-tt-cell-wrap,.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--2 th{background:#fffbeb}.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--3 td.student-tt-cell-wrap,.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--3 th{background:#eff6ff}.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--4 td.student-tt-cell-wrap,.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--4 th{background:#ecfdf3}.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--5 td.student-tt-cell-wrap,.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--5 th{background:#ecfeff}.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--6 td.student-tt-cell-wrap,.student-tt-spreadsheet tbody tr.student-tt-period-body.student-tt-period--6 th{background:#f5f3ff}.student-tt-spreadsheet tbody th.student-tt-period-num{box-sizing:border-box;width:3.25rem;min-width:3.25rem;max-width:3.25rem;background:#ffd4c8!important;font-weight:800;font-size:.9375rem;padding:.25rem;white-space:nowrap}.student-tt-cell{min-height:4.5rem;display:flex;flex-direction:column;align-items:stretch;height:100%;overflow-wrap:anywhere;word-break:break-word}.student-tt-cell--band-empty{min-height:4.5rem;display:flex;align-items:center;justify-content:center;box-sizing:border-box}.student-tt-cell__top{padding:.35rem .45rem .4rem;flex:0 0 auto;text-align:center}.student-tt-cell__divider{border-top:1px dotted #64748b;margin:0 .35rem;flex:0 0 auto}.student-tt-cell__bottom{padding:.35rem .45rem .45rem;flex:1 1 auto;text-align:left}.student-tt-subject{font-weight:800;font-size:.875rem;line-height:1.25;margin-bottom:.15rem;display:block}.student-tt-teacher{font-size:.75rem;font-weight:600;color:#1e293b;display:block}.student-tt-content{font-size:.75rem;line-height:1.45;white-space:pre-wrap;word-break:break-word;color:#0f172a}.student-tt-items{margin-top:.35rem;font-size:.6875rem;line-height:1.35;color:#334155}.student-tt-room{margin-top:.2rem;font-size:.65rem;color:#64748b;display:block;text-align:center}.student-tt-empty{color:#94a3b8;font-size:.8125rem;text-align:center;padding:.5rem}.student-tt-cell-block--stack{border-top:2px solid #94a3b8;margin-top:.35rem;padding-top:.35rem}.student-class-timetable__hint{font-size:.8125rem;color:#64748b;margin-bottom:.75rem}.student-class-timetable__empty-select{border:2px dashed #94a3b8;border-radius:8px;padding:2rem 1rem;text-align:center;color:#64748b;font-size:.9rem;background:#f8fafc}@media print{.student-class-timetable__toolbar,.student-class-timetable__hint,.student-class-timetable__meta,.no-print{display:none!important}.student-class-timetable{padding:0;max-width:none}.student-class-timetable__table-wrap{box-shadow:none;border:2px solid #000}}.login-page{display:flex;justify-content:center;align-items:center;min-height:100vh;background-color:#f5f5f5}.login-container{background:#fff;padding:1.5rem;border-radius:8px;box-shadow:0 2px 8px #0000001a;width:100%;max-width:400px}.login-container h1{margin:0 0 1.25rem;text-align:center;font-size:1.5rem;color:#333}.login-form{display:flex;flex-direction:column;gap:1rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:500;color:#555;font-size:.9rem}.form-group input{padding:.6rem;border:1px solid #ddd;border-radius:4px;font-size:1rem;transition:border-color .2s}.form-group input:focus{outline:none;border-color:#4a90e2}.form-group input:disabled{background-color:#f5f5f5;cursor:not-allowed}.error-message{padding:.6rem;background-color:#fee;color:#c33;border-radius:4px;font-size:.9rem}.login-button{padding:.6rem;background-color:#4a90e2;color:#fff;border:none;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s}.login-button:hover:not(:disabled){background-color:#357abd}.login-button:disabled{background-color:#ccc;cursor:not-allowed}.login-divider{display:flex;align-items:center;margin:1rem 0;text-align:center}.login-divider:before,.login-divider:after{content:"";flex:1;border-bottom:1px solid #ddd}.login-divider span{padding:0 1rem;color:#999;font-size:.9rem}.google-login-button{width:100%;padding:.6rem;background-color:#fff;color:#333;border:1px solid #ddd;border-radius:4px;font-size:1rem;font-weight:500;cursor:pointer;transition:background-color .2s,border-color .2s;display:flex;align-items:center;justify-content:center;gap:.5rem}.google-login-button:hover:not(:disabled){background-color:#f9f9f9;border-color:#ccc}.google-login-button:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.google-icon{flex-shrink:0}.app{height:100vh;display:flex;flex-direction:column;overflow:hidden}.app-header{background-color:#2c3e50;color:#fff;padding:.4rem 1rem;box-shadow:0 2px 4px #0000001a;display:flex;flex-wrap:wrap;gap:.5rem;justify-content:space-between;align-items:center;position:relative;z-index:10}.app-header__actions{display:flex;align-items:center;gap:1rem}.app-header__school-type-selector{display:flex;align-items:center;gap:.5rem}.app-header__school-type-label{font-size:.9rem;font-weight:600;color:#fff;white-space:nowrap}.app-header__school-type-select{background:#ffffff26;border:1px solid rgba(255,255,255,.3);color:#fff;padding:.3rem .75rem;border-radius:4px;cursor:pointer;font-size:.9rem;font-weight:500;min-width:150px}.app-header__school-type-select:hover{background:#ffffff40}.app-header__school-type-select option{background:#2c3e50;color:#fff}.app-main__empty-state{padding:2rem;text-align:center;color:#666;font-size:1rem}.app-header__settings-button{background:#ffffff26;border:none;color:#fff;padding:.3rem .75rem;border-radius:999px;cursor:pointer;transition:background .2s ease;font-weight:600;display:flex;align-items:center;gap:.4rem;font-size:.9rem}.app-header__settings-button:hover{background:#ffffff4d}.app-header__settings-icon{font-size:.8rem}.app-header__user-info{display:flex;align-items:center;gap:.5rem;padding:.3rem .75rem;background:#ffffff1a;border-radius:4px;font-size:.9rem}.app-header__user-name{font-weight:600;color:#fff}.app-header__user-role{color:#d1d5db;font-size:.85rem}.app-header__logout-button{background:#dc2626cc;border:none;color:#fff;padding:.3rem .75rem;border-radius:4px;cursor:pointer;transition:background .2s ease;font-weight:600;font-size:.9rem;white-space:nowrap}.app-header__logout-button:hover{background:#dc2626}.app-header__title{display:flex;flex-direction:column;gap:.3rem}.app-header h1{font-size:1.2rem;font-weight:600;margin:0;line-height:1.2}.app-header__subtitle{font-size:.75rem;color:#d1d5db;line-height:1.2}.app-nav{display:flex;gap:.75rem}.app-nav button{background:#ffffff26;border:none;color:#fff;padding:.3rem .75rem;border-radius:999px;cursor:pointer;transition:background .2s ease;font-weight:600;font-size:.9rem}.app-nav button.active{background:#fff;color:#2c3e50}.app-nav button:not(.active):hover{background:#ffffff4d}.app-main{flex:1;padding:.5rem;background-color:#f5f5f5;display:flex;flex-direction:column;min-height:0;overflow-y:auto}.app-main.app-main-timetable{overflow:hidden}@media (max-width: 640px){.app-header{flex-direction:column;align-items:flex-start}.app-header__actions{width:100%;flex-wrap:wrap}.app-header__user-info{order:1}.app-header__logout-button{order:2}.app-nav{width:100%;justify-content:space-between;order:3}.app-nav button{flex:1;text-align:center}}@media print{.app-header{display:none!important}html,body{overflow:hidden!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.app,.app-main{overflow:hidden!important;height:auto!important;max-width:100%!important}.teaching-logs-page{overflow:hidden!important;max-width:100%!important}*{scrollbar-width:none!important;-ms-overflow-style:none!important}*::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--accent: 240 4.8% 95.9%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--ring: 240 5.9% 10%;--radius: .5rem;--sidebar-background: 0 0% 98%;--sidebar-foreground: 240 5.3% 26.1%;--sidebar-primary: 240 5.9% 10%;--sidebar-primary-foreground: 0 0% 98%;--sidebar-accent: 240 4.8% 95.9%;--sidebar-accent-foreground: 240 5.9% 10%;--sidebar-border: 220 13% 91%;--sidebar-ring: 217.2 91.2% 59.8%}.dark{--background: 240 10% 3.9%;--foreground: 0 0% 98%;--card: 240 10% 3.9%;--card-foreground: 0 0% 98%;--popover: 240 10% 3.9%;--popover-foreground: 0 0% 98%;--primary: 0 0% 98%;--primary-foreground: 240 5.9% 10%;--secondary: 240 3.7% 15.9%;--secondary-foreground: 0 0% 98%;--muted: 240 3.7% 15.9%;--muted-foreground: 240 5% 64.9%;--accent: 240 3.7% 15.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--border: 240 3.7% 15.9%;--input: 240 3.7% 15.9%;--ring: 240 4.9% 83.9%;--sidebar-background: 240 5.9% 10%;--sidebar-foreground: 240 4.8% 95.9%;--sidebar-primary: 224.3 76.3% 48%;--sidebar-primary-foreground: 0 0% 100%;--sidebar-accent: 240 3.7% 15.9%;--sidebar-accent-foreground: 240 4.8% 95.9%;--sidebar-border: 240 3.7% 15.9%;--sidebar-ring: 217.2 91.2% 59.8%}.\!container{width:100%!important}.container{width:100%}@media (min-width: 640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width: 768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width: 1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width: 1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width: 1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.visible{visibility:visible}.invisible{visibility:hidden}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.-bottom-12{bottom:-3rem}.-left-12{left:-3rem}.-right-12{right:-3rem}.-top-12{top:-3rem}.bottom-0{bottom:0}.bottom-4{bottom:1rem}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-1{left:.25rem}.left-1\/2{left:50%}.left-2{left:.5rem}.left-4{left:1rem}.left-\[50\%\]{left:50%}.right-0{right:0}.right-1{right:.25rem}.right-2{right:.5rem}.right-3{right:.75rem}.right-4{right:1rem}.right-6{right:1.5rem}.top-0{top:0}.top-1{top:.25rem}.top-1\.5{top:.375rem}.top-1\/2{top:50%}.top-3\.5{top:.875rem}.top-4{top:1rem}.top-\[1px\]{top:1px}.top-\[50\%\]{top:50%}.top-\[60\%\]{top:60%}.top-full{top:100%}.isolate{isolation:isolate}.z-10{z-index:10}.z-20{z-index:20}.z-40{z-index:40}.z-50{z-index:50}.z-\[1\]{z-index:1}.order-first{order:-9999}.order-last{order:9999}.col-start-2{grid-column-start:2}.row-span-2{grid-row:span 2 / span 2}.row-start-1{grid-row-start:1}.\!m-0{margin:0!important}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.-my-2{margin-top:-.5rem;margin-bottom:-.5rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-3\.5{margin-left:.875rem;margin-right:.875rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:0;margin-bottom:0}.my-0\.5{margin-top:.125rem;margin-bottom:.125rem}.my-1{margin-top:.25rem;margin-bottom:.25rem}.-ml-4{margin-left:-1rem}.-mt-4{margin-top:-1rem}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-4{margin-left:1rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-1{margin-top:.25rem}.mt-1\.5{margin-top:.375rem}.mt-12{margin-top:3rem}.mt-2{margin-top:.5rem}.mt-4{margin-top:1rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.table-caption{display:table-caption}.table-cell{display:table-cell}.table-row{display:table-row}.\!grid{display:grid!important}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.aspect-video{aspect-ratio:16 / 9}.size-10{width:2.5rem;height:2.5rem}.size-12{width:3rem;height:3rem}.size-2{width:.5rem;height:.5rem}.size-2\.5{width:.625rem;height:.625rem}.size-3{width:.75rem;height:.75rem}.size-3\.5{width:.875rem;height:.875rem}.size-4{width:1rem;height:1rem}.size-6{width:1.5rem;height:1.5rem}.size-7{width:1.75rem;height:1.75rem}.size-8{width:2rem;height:2rem}.size-9{width:2.25rem;height:2.25rem}.size-auto{width:auto;height:auto}.size-full{width:100%;height:100%}.\!h-\[18px\]{height:18px!important}.\!h-\[20px\]{height:20px!important}.h-1{height:.25rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-16{height:4rem}.h-2{height:.5rem}.h-2\.5{height:.625rem}.h-20{height:5rem}.h-24{height:6rem}.h-3{height:.75rem}.h-32{height:8rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-64{height:16rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[1\.15rem\]{height:1.15rem}.h-\[18px\]{height:18px}.h-\[200px\]{height:200px}.h-\[32px\]{height:32px}.h-\[38px\]{height:38px}.h-\[40px\]{height:40px}.h-\[500px\]{height:500px}.h-\[calc\(100\%-1px\)\]{height:calc(100% - 1px)}.h-\[calc\(100\%-4px\)\]{height:calc(100% - 4px)}.h-\[calc\(100vh-80px\)\]{height:calc(100vh - 80px)}.h-\[var\(--radix-navigation-menu-viewport-height\)\]{height:var(--radix-navigation-menu-viewport-height)}.h-\[var\(--radix-select-trigger-height\)\]{height:var(--radix-select-trigger-height)}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.h-svh{height:100svh}.max-h-32{max-height:8rem}.max-h-40{max-height:10rem}.max-h-48{max-height:12rem}.max-h-56{max-height:14rem}.max-h-\[300px\]{max-height:300px}.max-h-\[480px\]{max-height:480px}.max-h-\[60vh\]{max-height:60vh}.max-h-\[85vh\]{max-height:85vh}.max-h-\[90vh\]{max-height:90vh}.max-h-\[var\(--radix-context-menu-content-available-height\)\]{max-height:var(--radix-context-menu-content-available-height)}.max-h-\[var\(--radix-dropdown-menu-content-available-height\)\]{max-height:var(--radix-dropdown-menu-content-available-height)}.max-h-\[var\(--radix-select-content-available-height\)\]{max-height:var(--radix-select-content-available-height)}.min-h-0{min-height:0px}.min-h-16{min-height:4rem}.min-h-4{min-height:1rem}.min-h-9{min-height:2.25rem}.min-h-\[200px\]{min-height:200px}.min-h-screen{min-height:100vh}.min-h-svh{min-height:100svh}.w-0{width:0px}.w-1{width:.25rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-12{width:3rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-20{width:5rem}.w-24{width:6rem}.w-3{width:.75rem}.w-3\/4{width:75%}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-72{width:18rem}.w-8{width:2rem}.w-80{width:20rem}.w-9{width:2.25rem}.w-\[100px\]{width:100px}.w-\[145px\]{width:145px}.w-\[168px\]{width:168px}.w-\[200px\]{width:200px}.w-\[240px\]{width:240px}.w-\[280px\]{width:280px}.w-\[300px\]{width:300px}.w-\[30px\]{width:30px}.w-\[38px\]{width:38px}.w-\[400px\]{width:400px}.w-\[50px\]{width:50px}.w-\[60px\]{width:60px}.w-\[calc\(100\%-4px\)\]{width:calc(100% - 4px)}.w-\[min\(95vw\,650px\)\]{width:min(95vw,650px)}.w-\[min\(95vw\,720px\)\]{width:min(95vw,720px)}.w-auto{width:auto}.w-fit{width:-moz-fit-content;width:fit-content}.w-full{width:100%}.w-max{width:-moz-max-content;width:max-content}.w-px{width:1px}.min-w-0{min-width:0px}.min-w-10{min-width:2.5rem}.min-w-5{min-width:1.25rem}.min-w-8{min-width:2rem}.min-w-9{min-width:2.25rem}.min-w-\[1\.5rem\]{min-width:1.5rem}.min-w-\[12rem\]{min-width:12rem}.min-w-\[14px\]{min-width:14px}.min-w-\[34px\]{min-width:34px}.min-w-\[38px\]{min-width:38px}.min-w-\[70px\]{min-width:70px}.min-w-\[8rem\]{min-width:8rem}.min-w-\[var\(--radix-select-trigger-width\)\]{min-width:var(--radix-select-trigger-width)}.min-w-full{min-width:100%}.min-w-max{min-width:-moz-max-content;min-width:max-content}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-6xl{max-width:72rem}.max-w-\[80\%\]{max-width:80%}.max-w-\[calc\(100\%-2rem\)\]{max-width:calc(100% - 2rem)}.max-w-lg{max-width:32rem}.max-w-max{max-width:-moz-max-content;max-width:max-content}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-sm{max-width:24rem}.max-w-xs{max-width:20rem}.flex-1{flex:1 1 0%}.flex-shrink{flex-shrink:1}.flex-shrink-0,.shrink-0{flex-shrink:0}.grow{flex-grow:1}.grow-0{flex-grow:0}.basis-full{flex-basis:100%}.table-fixed{table-layout:fixed}.caption-bottom{caption-side:bottom}.border-collapse{border-collapse:collapse}.origin-\[var\(--radix-context-menu-content-transform-origin\)\]{transform-origin:var(--radix-context-menu-content-transform-origin)}.origin-\[var\(--radix-dropdown-menu-content-transform-origin\)\]{transform-origin:var(--radix-dropdown-menu-content-transform-origin)}.origin-\[var\(--radix-hover-card-content-transform-origin\)\]{transform-origin:var(--radix-hover-card-content-transform-origin)}.origin-\[var\(--radix-menubar-content-transform-origin\)\]{transform-origin:var(--radix-menubar-content-transform-origin)}.origin-\[var\(--radix-popover-content-transform-origin\)\]{transform-origin:var(--radix-popover-content-transform-origin)}.origin-\[var\(--radix-select-content-transform-origin\)\]{transform-origin:var(--radix-select-content-transform-origin)}.origin-\[var\(--radix-tooltip-content-transform-origin\)\]{transform-origin:var(--radix-tooltip-content-transform-origin)}.\!translate-x-0{--tw-translate-x: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.\!translate-y-0{--tw-translate-y: 0px !important;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))!important}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-x-px{--tw-translate-x: -1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-1\/2{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-\[-50\%\]{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-x-px{--tw-translate-x: 1px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[-50\%\]{--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-\[calc\(-50\%_-_2px\)\]{--tw-translate-y: calc(-50% - 2px) ;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-45{--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-col-resize{cursor:col-resize}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-move{cursor:move}.cursor-ns-resize{cursor:ns-resize}.cursor-pointer{cursor:pointer}.cursor-text{cursor:text}.touch-none{touch-action:none}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize-none{resize:none}.resize{resize:both}.scroll-my-1{scroll-margin-top:.25rem;scroll-margin-bottom:.25rem}.scroll-py-1{scroll-padding-top:.25rem;scroll-padding-bottom:.25rem}.list-disc{list-style-type:disc}.list-none{list-style-type:none}.auto-rows-min{grid-auto-rows:min-content}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.grid-cols-\[0_1fr\]{grid-template-columns:0 1fr}.grid-cols-\[repeat\(auto-fill\,minmax\(60px\,1fr\)\)\]{grid-template-columns:repeat(auto-fill,minmax(60px,1fr))}.grid-rows-\[auto_auto\]{grid-template-rows:auto auto}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-items-start{justify-items:start}.gap-0{gap:0px}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-6{gap:1.5rem}.gap-7{gap:1.75rem}.gap-8{gap:2rem}.gap-y-0\.5{row-gap:.125rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(3rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.self-start{align-self:flex-start}.self-stretch{align-self:stretch}.justify-self-end{justify-self:end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.whitespace-break-spaces{white-space:break-spaces}.text-balance{text-wrap:balance}.break-words{overflow-wrap:break-word}.break-all{word-break:break-all}.rounded{border-radius:.25rem}.rounded-\[10px\]{border-radius:10px}.rounded-\[20px\]{border-radius:20px}.rounded-\[2px\]{border-radius:2px}.rounded-\[4px\]{border-radius:4px}.rounded-\[calc\(var\(--radius\)-5px\)\]{border-radius:calc(var(--radius) - 5px)}.rounded-\[inherit\]{border-radius:inherit}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-none{border-radius:0}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.rounded-xl{border-radius:.75rem}.rounded-xs{border-radius:2px}.rounded-l-md{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.rounded-r-md{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.rounded-tl-sm{border-top-left-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-0{border-width:0px}.border-\[1\.5px\]{border-width:1.5px}.border-y{border-top-width:1px;border-bottom-width:1px}.border-b{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l{border-left-width:1px}.border-l-2{border-left-width:2px}.border-r{border-right-width:1px}.border-r-0{border-right-width:0px}.border-r-2{border-right-width:2px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-\[rgba\(0\,0\,0\,0\.08\)\]{border-color:#00000014}.border-black\/30{border-color:#0000004d}.border-black\/50{border-color:#00000080}.border-blue-500{--tw-border-opacity: 1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.border-border{border-color:hsl(var(--border))}.border-border\/50{border-color:hsl(var(--border) / .5)}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.border-input{border-color:hsl(var(--input))}.border-primary{border-color:hsl(var(--primary))}.border-red-300{--tw-border-opacity: 1;border-color:rgb(252 165 165 / var(--tw-border-opacity, 1))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity, 1))}.border-sidebar-border{border-color:hsl(var(--sidebar-border))}.border-transparent{border-color:transparent}.border-yellow-500{--tw-border-opacity: 1;border-color:rgb(234 179 8 / var(--tw-border-opacity, 1))}.border-l-transparent{border-left-color:transparent}.border-t-black\/30{border-top-color:#0000004d}.border-t-transparent{border-top-color:transparent}.bg-\[\#1a1a19\]{--tw-bg-opacity: 1;background-color:rgb(26 26 25 / var(--tw-bg-opacity, 1))}.bg-\[\#f8f8f7\]{--tw-bg-opacity: 1;background-color:rgb(248 248 247 / var(--tw-bg-opacity, 1))}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-background\/50{background-color:hsl(var(--background) / .5)}.bg-background\/95{background-color:hsl(var(--background) / .95)}.bg-black\/50{background-color:#00000080}.bg-blue-100{--tw-bg-opacity: 1;background-color:rgb(219 234 254 / var(--tw-bg-opacity, 1))}.bg-blue-500{--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.bg-blue-600{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.bg-border{background-color:hsl(var(--border))}.bg-card{background-color:hsl(var(--card))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.bg-gray-300{--tw-bg-opacity: 1;background-color:rgb(209 213 219 / var(--tw-bg-opacity, 1))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.bg-gray-500{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity, 1))}.bg-input{background-color:hsl(var(--input))}.bg-muted{background-color:hsl(var(--muted))}.bg-muted\/50{background-color:hsl(var(--muted) / .5)}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-primary\/10{background-color:hsl(var(--primary) / .1)}.bg-primary\/20{background-color:hsl(var(--primary) / .2)}.bg-red-100{--tw-bg-opacity: 1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.bg-red-50{--tw-bg-opacity: 1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-sidebar{background-color:hsl(var(--sidebar-background))}.bg-sidebar-border{background-color:hsl(var(--sidebar-border))}.bg-slate-50\/70{background-color:#f8fafcb3}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/70{background-color:#ffffffb3}.bg-white\/80{background-color:#fffc}.bg-yellow-200\/60{background-color:#fef08a99}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: #eff6ff var(--tw-gradient-from-position);--tw-gradient-to: rgb(239 246 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-slate-50{--tw-gradient-from: #f8fafc var(--tw-gradient-from-position);--tw-gradient-to: rgb(248 250 252 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.to-indigo-100{--tw-gradient-to: #e0e7ff var(--tw-gradient-to-position)}.to-slate-100{--tw-gradient-to: #f1f5f9 var(--tw-gradient-to-position)}.fill-current{fill:currentColor}.fill-foreground{fill:hsl(var(--foreground))}.fill-primary{fill:hsl(var(--primary))}.object-cover{-o-object-fit:cover;object-fit:cover}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.p-\[3px\]{padding:3px}.p-px{padding:1px}.\!px-1{padding-left:.25rem!important;padding-right:.25rem!important}.\!py-0{padding-top:0!important;padding-bottom:0!important}.\!py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.\!py-\[2px\]{padding-top:2px!important;padding-bottom:2px!important}.\!py-\[4px\]{padding-top:4px!important;padding-bottom:4px!important}.px-0\.5{padding-left:.125rem;padding-right:.125rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-\[2px\]{padding-top:2px;padding-bottom:2px}.pb-3{padding-bottom:.75rem}.pb-4{padding-bottom:1rem}.pb-8{padding-bottom:2rem}.pl-2{padding-left:.5rem}.pl-3{padding-left:.75rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-1{padding-right:.25rem}.pr-2{padding-right:.5rem}.pr-2\.5{padding-right:.625rem}.pr-3{padding-right:.75rem}.pr-8{padding-right:2rem}.pt-0{padding-top:0}.pt-12{padding-top:3rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-top{vertical-align:top}.align-middle{vertical-align:middle}.font-mono{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace}.font-sans{font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji"}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-\[0\.8rem\]{font-size:.8rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[7px\]{font-size:7px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-sm\/relaxed{font-size:.875rem;line-height:1.625}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.italic{font-style:italic}.tabular-nums{--tw-numeric-spacing: tabular-nums;font-variant-numeric:var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction)}.leading-5{line-height:1.25rem}.leading-\[26px\]{line-height:26px}.leading-none{line-height:1}.leading-normal{line-height:1.5}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[-0\.154px\]{letter-spacing:-.154px}.tracking-\[-0\.44px\]{letter-spacing:-.44px}.tracking-tight{letter-spacing:-.025em}.tracking-widest{letter-spacing:.1em}.text-\[\#34322d\]{--tw-text-opacity: 1;color:rgb(52 50 45 / var(--tw-text-opacity, 1))}.text-\[\#858481\]{--tw-text-opacity: 1;color:rgb(133 132 129 / var(--tw-text-opacity, 1))}.text-accent-foreground{color:hsl(var(--accent-foreground))}.text-amber-500{--tw-text-opacity: 1;color:rgb(245 158 11 / var(--tw-text-opacity, 1))}.text-background{color:hsl(var(--background))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-card-foreground{color:hsl(var(--card-foreground))}.text-current{color:currentColor}.text-destructive{color:hsl(var(--destructive))}.text-foreground{color:hsl(var(--foreground))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-red-500{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity, 1))}.text-red-600{--tw-text-opacity: 1;color:rgb(220 38 38 / var(--tw-text-opacity, 1))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-sidebar-foreground{color:hsl(var(--sidebar-foreground))}.text-sidebar-foreground\/70{color:hsl(var(--sidebar-foreground) / .7)}.text-slate-600{--tw-text-opacity: 1;color:rgb(71 85 105 / var(--tw-text-opacity, 1))}.text-slate-700{--tw-text-opacity: 1;color:rgb(51 65 85 / var(--tw-text-opacity, 1))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity, 1))}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-100{opacity:1}.opacity-20{opacity:.2}.opacity-50{opacity:.5}.opacity-70{opacity:.7}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0_0_0_1px_hsl\(var\(--sidebar-border\)\)\]{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-border));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-\[0px_4px_11px_0px_rgba\(0\,0\,0\,0\.08\)\]{--tw-shadow: 0px 4px 11px 0px rgba(0,0,0,.08);--tw-shadow-colored: 0px 4px 11px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-inner{--tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / .05);--tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-none{--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xs{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-amber-500{--tw-ring-opacity: 1;--tw-ring-color: rgb(245 158 11 / var(--tw-ring-opacity, 1))}.ring-border{--tw-ring-color: hsl(var(--border))}.ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.ring-sidebar-ring{--tw-ring-color: hsl(var(--sidebar-ring))}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.blur{--tw-blur: blur(8px);filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-2xl{--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-filter{-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[color\,box-shadow\]{transition-property:color,box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[left\,right\,width\]{transition-property:left,right,width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[margin\,opacity\]{transition-property:margin,opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\,height\,padding\]{transition-property:width,height,padding;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-\[width\]{transition-property:width;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-none{transition-property:none}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-shadow{transition-property:box-shadow;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-100{transition-duration:.1s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{transition-timing-function:linear}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-100{animation-duration:.1s}.duration-1000{animation-duration:1s}.duration-200{animation-duration:.2s}.duration-300{animation-duration:.3s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-linear{animation-timing-function:linear}.outline-hidden{outline:2px solid transparent;outline-offset:2px}.\[--cell-size\:--spacing\(8\)\]{--cell-size: var(--spacing(8))}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:hsl(var(--background));color:hsl(var(--foreground))}#root{height:100%}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.selection\:bg-primary *::-moz-selection{background-color:hsl(var(--primary))}.selection\:bg-primary *::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground *::-moz-selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground *::selection{color:hsl(var(--primary-foreground))}.selection\:bg-primary::-moz-selection{background-color:hsl(var(--primary))}.selection\:bg-primary::selection{background-color:hsl(var(--primary))}.selection\:text-primary-foreground::-moz-selection{color:hsl(var(--primary-foreground))}.selection\:text-primary-foreground::selection{color:hsl(var(--primary-foreground))}.file\:inline-flex::file-selector-button{display:inline-flex}.file\:h-7::file-selector-button{height:1.75rem}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.file\:text-foreground::file-selector-button{color:hsl(var(--foreground))}.placeholder\:text-muted-foreground::-moz-placeholder{color:hsl(var(--muted-foreground))}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:-inset-2:after{content:var(--tw-content);top:-.5rem;right:-.5rem;bottom:-.5rem;left:-.5rem}.after\:inset-y-0:after{content:var(--tw-content);top:0;bottom:0}.after\:left-1\/2:after{content:var(--tw-content);left:50%}.after\:w-1:after{content:var(--tw-content);width:.25rem}.after\:w-\[2px\]:after{content:var(--tw-content);width:2px}.after\:-translate-x-1\/2:after{content:var(--tw-content);--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.first\:rounded-l-md:first-child{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.first\:border-l:first-child{border-left-width:1px}.last\:mt-0:last-child{margin-top:0}.last\:rounded-r-md:last-child{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.last\:border-b-0:last-child{border-bottom-width:0px}.hover\:border-black:hover{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.hover\:bg-\[\#1a1a19\]\/90:hover{background-color:#1a1a19e6}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-accent\/50:hover{background-color:hsl(var(--accent) / .5)}.hover\:bg-blue-600:hover{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.hover\:bg-blue-700:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-gray-100:hover{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity, 1))}.hover\:bg-gray-400:hover{--tw-bg-opacity: 1;background-color:rgb(156 163 175 / var(--tw-bg-opacity, 1))}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-muted\/50:hover{background-color:hsl(var(--muted) / .5)}.hover\:bg-primary\/20:hover{background-color:hsl(var(--primary) / .2)}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-sidebar-accent:hover{background-color:hsl(var(--sidebar-accent))}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-red-700:hover{--tw-text-opacity: 1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.hover\:text-sidebar-accent-foreground:hover{color:hsl(var(--sidebar-accent-foreground))}.hover\:underline:hover{text-decoration-line:underline}.hover\:opacity-100:hover{opacity:1}.hover\:opacity-80:hover{opacity:.8}.hover\:opacity-90:hover{opacity:.9}.hover\:shadow-\[0_0_0_1px_hsl\(var\(--sidebar-accent\)\)\]:hover{--tw-shadow: 0 0 0 1px hsl(var(--sidebar-accent));--tw-shadow-colored: 0 0 0 1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-lg:hover{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-xl:hover{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:ring-4:hover{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.hover\:after\:bg-sidebar-border:hover:after{content:var(--tw-content);background-color:hsl(var(--sidebar-border))}.focus\:z-10:focus{z-index:10}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-destructive:focus{color:hsl(var(--destructive))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus\:outline-hidden:focus{outline:2px solid transparent;outline-offset:2px}.focus-visible\:z-10:focus-visible{z-index:10}.focus-visible\:border-ring:focus-visible{border-color:hsl(var(--ring))}.focus-visible\:outline-1:focus-visible{outline-width:1px}.focus-visible\:outline-ring:focus-visible{outline-color:hsl(var(--ring))}.focus-visible\:ring-0:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-1:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-4:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(4px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-\[3px\]:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-destructive\/20:focus-visible{--tw-ring-color: hsl(var(--destructive) / .2)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-ring\/50:focus-visible{--tw-ring-color: hsl(var(--ring) / .5)}.focus-visible\:ring-offset-1:focus-visible{--tw-ring-offset-width: 1px}.focus-visible\:outline-hidden:focus-visible{outline:2px solid transparent;outline-offset:2px}.active\:cursor-grabbing:active{cursor:grabbing}.active\:bg-sidebar-accent:active{background-color:hsl(var(--sidebar-accent))}.active\:text-sidebar-accent-foreground:active{color:hsl(var(--sidebar-accent-foreground))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group\/menu-item:focus-within .group-focus-within\/menu-item\:opacity-100{opacity:1}.group\/menu-item:hover .group-hover\/menu-item\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}.peer\/menu-button:hover~.peer-hover\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-50{opacity:.5}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.has-\[\>button\]\:ml-\[-0\.45rem\]:has(>button){margin-left:-.45rem}.has-\[\>button\]\:mr-\[-0\.45rem\]:has(>button){margin-right:-.45rem}.has-\[\>kbd\]\:ml-\[-0\.35rem\]:has(>kbd){margin-left:-.35rem}.has-\[\>kbd\]\:mr-\[-0\.35rem\]:has(>kbd){margin-right:-.35rem}.has-\[\>\[data-align\=block-end\]\]\:h-auto:has(>[data-align=block-end]){height:auto}.has-\[\>\[data-align\=block-start\]\]\:h-auto:has(>[data-align=block-start]){height:auto}.has-\[\>textarea\]\:h-auto:has(>textarea){height:auto}.has-\[\>\[data-slot\=field\]\]\:w-full:has(>[data-slot=field]){width:100%}.has-\[\>svg\]\:grid-cols-\[calc\(var\(--spacing\)\*4\)_1fr\]:has(>svg){grid-template-columns:calc(var(--spacing) * 4) 1fr}.has-\[\>\[data-align\=block-end\]\]\:flex-col:has(>[data-align=block-end]){flex-direction:column}.has-\[\>\[data-align\=block-start\]\]\:flex-col:has(>[data-align=block-start]){flex-direction:column}.has-\[\>\[data-slot\=field\]\]\:flex-col:has(>[data-slot=field]){flex-direction:column}.has-\[\>\[data-slot\=field-content\]\]\:items-start:has(>[data-slot=field-content]){align-items:flex-start}.has-\[\>\[data-slot\=button-group\]\]\:gap-2:has(>[data-slot=button-group]){gap:.5rem}.has-\[\>\[data-slot\=checkbox-group\]\]\:gap-3:has(>[data-slot=checkbox-group]){gap:.75rem}.has-\[\>\[data-slot\=radio-group\]\]\:gap-3:has(>[data-slot=radio-group]){gap:.75rem}.has-\[\>svg\]\:gap-x-3:has(>svg){-moz-column-gap:.75rem;column-gap:.75rem}.has-\[\>\[data-slot\=field\]\]\:rounded-md:has(>[data-slot=field]){border-radius:calc(var(--radius) - 2px)}.has-\[\>\[data-slot\=field\]\]\:border:has(>[data-slot=field]){border-width:1px}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:border-ring:has([data-slot=input-group-control]:focus-visible){border-color:hsl(var(--ring))}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:border-destructive:has([data-slot][aria-invalid=true]){border-color:hsl(var(--destructive))}.has-\[\>svg\]\:p-0:has(>svg){padding:0}.has-\[\>svg\]\:px-2:has(>svg){padding-left:.5rem;padding-right:.5rem}.has-\[\>svg\]\:px-2\.5:has(>svg){padding-left:.625rem;padding-right:.625rem}.has-\[\>svg\]\:px-3:has(>svg){padding-left:.75rem;padding-right:.75rem}.has-\[\>svg\]\:px-4:has(>svg){padding-left:1rem;padding-right:1rem}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-\[3px\]:has([data-slot=input-group-control]:focus-visible){--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.has-\[\[data-slot\=input-group-control\]\:focus-visible\]\:ring-ring\/50:has([data-slot=input-group-control]:focus-visible){--tw-ring-color: hsl(var(--ring) / .5)}.has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/20:has([data-slot][aria-invalid=true]){--tw-ring-color: hsl(var(--destructive) / .2)}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:translate-y-0\.5{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/item:has([data-slot=item-description]) .group-has-\[\[data-slot\=item-description\]\]\/item\:self-start{align-self:flex-start}.group\/field:has([data-orientation=horizontal]) .group-has-\[\[data-orientation\=horizontal\]\]\/field\:text-balance{text-wrap:balance}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pb-2\.5{padding-bottom:.625rem}.group\/input-group:has(>input) .group-has-\[\>input\]\/input-group\:pt-2\.5{padding-top:.625rem}.aria-disabled\:pointer-events-none[aria-disabled=true]{pointer-events:none}.aria-disabled\:opacity-50[aria-disabled=true]{opacity:.5}.aria-selected\:text-muted-foreground[aria-selected=true]{color:hsl(var(--muted-foreground))}.data-\[disabled\=true\]\:pointer-events-none[data-disabled=true],.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[vaul-drawer-direction\=bottom\]\:inset-x-0[data-vaul-drawer-direction=bottom]{left:0;right:0}.data-\[vaul-drawer-direction\=left\]\:inset-y-0[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:inset-y-0[data-vaul-drawer-direction=right]{top:0;bottom:0}.data-\[vaul-drawer-direction\=top\]\:inset-x-0[data-vaul-drawer-direction=top]{left:0;right:0}.data-\[vaul-drawer-direction\=bottom\]\:bottom-0[data-vaul-drawer-direction=bottom]{bottom:0}.data-\[vaul-drawer-direction\=left\]\:left-0[data-vaul-drawer-direction=left]{left:0}.data-\[vaul-drawer-direction\=right\]\:right-0[data-vaul-drawer-direction=right]{right:0}.data-\[vaul-drawer-direction\=top\]\:top-0[data-vaul-drawer-direction=top]{top:0}.data-\[active\=true\]\:z-10[data-active=true]{z-index:10}.data-\[vaul-drawer-direction\=bottom\]\:mt-24[data-vaul-drawer-direction=bottom]{margin-top:6rem}.data-\[vaul-drawer-direction\=top\]\:mb-24[data-vaul-drawer-direction=top]{margin-bottom:6rem}.data-\[orientation\=horizontal\]\:h-1\.5[data-orientation=horizontal]{height:.375rem}.data-\[orientation\=horizontal\]\:h-full[data-orientation=horizontal]{height:100%}.data-\[orientation\=horizontal\]\:h-px[data-orientation=horizontal]{height:1px}.data-\[orientation\=vertical\]\:h-auto[data-orientation=vertical]{height:auto}.data-\[orientation\=vertical\]\:h-full[data-orientation=vertical]{height:100%}.data-\[panel-group-direction\=vertical\]\:h-px[data-panel-group-direction=vertical]{height:1px}.data-\[size\=default\]\:h-9[data-size=default]{height:2.25rem}.data-\[size\=sm\]\:h-8[data-size=sm]{height:2rem}.data-\[vaul-drawer-direction\=bottom\]\:max-h-\[80vh\][data-vaul-drawer-direction=bottom],.data-\[vaul-drawer-direction\=top\]\:max-h-\[80vh\][data-vaul-drawer-direction=top]{max-height:80vh}.data-\[orientation\=vertical\]\:min-h-44[data-orientation=vertical]{min-height:11rem}.data-\[orientation\=horizontal\]\:w-full[data-orientation=horizontal]{width:100%}.data-\[orientation\=vertical\]\:w-1\.5[data-orientation=vertical]{width:.375rem}.data-\[orientation\=vertical\]\:w-auto[data-orientation=vertical]{width:auto}.data-\[orientation\=vertical\]\:w-full[data-orientation=vertical]{width:100%}.data-\[orientation\=vertical\]\:w-px[data-orientation=vertical]{width:1px}.data-\[panel-group-direction\=vertical\]\:w-full[data-panel-group-direction=vertical]{width:100%}.data-\[vaul-drawer-direction\=left\]\:w-3\/4[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:w-3\/4[data-vaul-drawer-direction=right]{width:75%}.data-\[side\=bottom\]\:translate-y-1[data-side=bottom]{--tw-translate-y: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=left\]\:-translate-x-1[data-side=left]{--tw-translate-x: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=right\]\:translate-x-1[data-side=right]{--tw-translate-x: .25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[side\=top\]\:-translate-y-1[data-side=top]{--tw-translate-y: -.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=checked\]\:translate-x-\[calc\(100\%-2px\)\][data-state=checked]{--tw-translate-x: calc(100% - 2px) ;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[orientation\=vertical\]\:flex-col[data-orientation=vertical],.data-\[panel-group-direction\=vertical\]\:flex-col[data-panel-group-direction=vertical]{flex-direction:column}.data-\[slot\=checkbox-group\]\:gap-3[data-slot=checkbox-group]{gap:.75rem}.data-\[range-end\=true\]\:rounded-md[data-range-end=true]{border-radius:calc(var(--radius) - 2px)}.data-\[range-middle\=true\]\:rounded-none[data-range-middle=true]{border-radius:0}.data-\[range-start\=true\]\:rounded-md[data-range-start=true]{border-radius:calc(var(--radius) - 2px)}.data-\[selected\=true\]\:rounded-none[data-selected=true]{border-radius:0}.data-\[range-end\=true\]\:rounded-r-md[data-range-end=true]{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.data-\[range-start\=true\]\:rounded-l-md[data-range-start=true]{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.data-\[vaul-drawer-direction\=bottom\]\:rounded-t-lg[data-vaul-drawer-direction=bottom]{border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}.data-\[vaul-drawer-direction\=top\]\:rounded-b-lg[data-vaul-drawer-direction=top]{border-bottom-right-radius:var(--radius);border-bottom-left-radius:var(--radius)}.data-\[variant\=outline\]\:border-l-0[data-variant=outline]{border-left-width:0px}.data-\[vaul-drawer-direction\=bottom\]\:border-t[data-vaul-drawer-direction=bottom]{border-top-width:1px}.data-\[vaul-drawer-direction\=left\]\:border-r[data-vaul-drawer-direction=left]{border-right-width:1px}.data-\[vaul-drawer-direction\=right\]\:border-l[data-vaul-drawer-direction=right]{border-left-width:1px}.data-\[vaul-drawer-direction\=top\]\:border-b[data-vaul-drawer-direction=top]{border-bottom-width:1px}.data-\[active\=true\]\:border-ring[data-active=true]{border-color:hsl(var(--ring))}.data-\[state\=checked\]\:border-primary[data-state=checked]{border-color:hsl(var(--primary))}.data-\[active\=true\]\:bg-accent\/50[data-active=true]{background-color:hsl(var(--accent) / .5)}.data-\[active\=true\]\:bg-sidebar-accent[data-active=true]{background-color:hsl(var(--sidebar-accent))}.data-\[range-end\=true\]\:bg-primary[data-range-end=true]{background-color:hsl(var(--primary))}.data-\[range-middle\=true\]\:bg-accent[data-range-middle=true]{background-color:hsl(var(--accent))}.data-\[range-start\=true\]\:bg-primary[data-range-start=true],.data-\[selected-single\=true\]\:bg-primary[data-selected-single=true]{background-color:hsl(var(--primary))}.data-\[selected\=true\]\:bg-accent[data-selected=true]{background-color:hsl(var(--accent))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:bg-accent\/50[data-state=open]{background-color:hsl(var(--accent) / .5)}.data-\[state\=open\]\:bg-secondary[data-state=open]{background-color:hsl(var(--secondary))}.data-\[state\=selected\]\:bg-muted[data-state=selected]{background-color:hsl(var(--muted))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[inset\]\:pl-8[data-inset]{padding-left:2rem}.data-\[variant\=label\]\:text-sm[data-variant=label]{font-size:.875rem;line-height:1.25rem}.data-\[variant\=legend\]\:text-base[data-variant=legend]{font-size:1rem;line-height:1.5rem}.data-\[active\=true\]\:font-medium[data-active=true]{font-weight:500}.data-\[active\=true\]\:text-accent-foreground[data-active=true]{color:hsl(var(--accent-foreground))}.data-\[active\=true\]\:text-sidebar-accent-foreground[data-active=true]{color:hsl(var(--sidebar-accent-foreground))}.data-\[error\=true\]\:text-destructive[data-error=true],.data-\[invalid\=true\]\:text-destructive[data-invalid=true]{color:hsl(var(--destructive))}.data-\[placeholder\]\:text-muted-foreground[data-placeholder]{color:hsl(var(--muted-foreground))}.data-\[range-end\=true\]\:text-primary-foreground[data-range-end=true]{color:hsl(var(--primary-foreground))}.data-\[range-middle\=true\]\:text-accent-foreground[data-range-middle=true]{color:hsl(var(--accent-foreground))}.data-\[range-start\=true\]\:text-primary-foreground[data-range-start=true],.data-\[selected-single\=true\]\:text-primary-foreground[data-selected-single=true]{color:hsl(var(--primary-foreground))}.data-\[selected\=true\]\:text-accent-foreground[data-selected=true]{color:hsl(var(--accent-foreground))}.data-\[state\=checked\]\:text-primary-foreground[data-state=checked]{color:hsl(var(--primary-foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on],.data-\[state\=open\]\:text-accent-foreground[data-state=open]{color:hsl(var(--accent-foreground))}.data-\[state\=open\]\:text-muted-foreground[data-state=open]{color:hsl(var(--muted-foreground))}.data-\[variant\=destructive\]\:text-destructive[data-variant=destructive]{color:hsl(var(--destructive))}.data-\[disabled\=true\]\:opacity-50[data-disabled=true],.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=open\]\:opacity-100[data-state=open]{opacity:1}.data-\[state\=active\]\:shadow-sm[data-state=active],.data-\[variant\=outline\]\:shadow-xs[data-variant=outline]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[active\=true\]\:ring-\[3px\][data-active=true]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.data-\[active\=true\]\:ring-ring\/50[data-active=true]{--tw-ring-color: hsl(var(--ring) / .5)}.data-\[state\=closed\]\:duration-300[data-state=closed]{transition-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{transition-duration:.5s}.data-\[motion\^\=from-\]\:animate-in[data-motion^=from-],.data-\[state\=open\]\:animate-in[data-state=open],.data-\[state\=visible\]\:animate-in[data-state=visible]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[motion\^\=to-\]\:animate-out[data-motion^=to-],.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[state\=hidden\]\:animate-out[data-state=hidden]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[motion\^\=from-\]\:fade-in[data-motion^=from-]{--tw-enter-opacity: 0}.data-\[motion\^\=to-\]\:fade-out[data-motion^=to-],.data-\[state\=closed\]\:fade-out-0[data-state=closed],.data-\[state\=hidden\]\:fade-out[data-state=hidden]{--tw-exit-opacity: 0}.data-\[state\=open\]\:fade-in-0[data-state=open],.data-\[state\=visible\]\:fade-in[data-state=visible]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-90[data-state=open]{--tw-enter-scale: .9}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[motion\=from-end\]\:slide-in-from-right-52[data-motion=from-end]{--tw-enter-translate-x: 13rem}.data-\[motion\=from-start\]\:slide-in-from-left-52[data-motion=from-start]{--tw-enter-translate-x: -13rem}.data-\[motion\=to-end\]\:slide-out-to-right-52[data-motion=to-end]{--tw-exit-translate-x: 13rem}.data-\[motion\=to-start\]\:slide-out-to-left-52[data-motion=to-start]{--tw-exit-translate-x: -13rem}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-bottom[data-state=closed]{--tw-exit-translate-y: 100%}.data-\[state\=closed\]\:slide-out-to-left[data-state=closed]{--tw-exit-translate-x: -100%}.data-\[state\=closed\]\:slide-out-to-right[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=closed\]\:slide-out-to-top[data-state=closed]{--tw-exit-translate-y: -100%}.data-\[state\=open\]\:slide-in-from-bottom[data-state=open]{--tw-enter-translate-y: 100%}.data-\[state\=open\]\:slide-in-from-left[data-state=open]{--tw-enter-translate-x: -100%}.data-\[state\=open\]\:slide-in-from-right[data-state=open]{--tw-enter-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top[data-state=open]{--tw-enter-translate-y: -100%}.data-\[state\=closed\]\:duration-300[data-state=closed]{animation-duration:.3s}.data-\[state\=open\]\:duration-500[data-state=open]{animation-duration:.5s}.\*\:data-\[slot\=select-value\]\:line-clamp-1[data-slot=select-value]>*{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.\*\:data-\[slot\=select-value\]\:flex[data-slot=select-value]>*{display:flex}.\*\:data-\[slot\=select-value\]\:items-center[data-slot=select-value]>*{align-items:center}.\*\:data-\[slot\=select-value\]\:gap-2[data-slot=select-value]>*{gap:.5rem}.\*\:data-\[slot\=alert-description\]\:text-destructive\/90[data-slot=alert-description]>*{color:hsl(var(--destructive) / .9)}.data-\[panel-group-direction\=vertical\]\:after\:left-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);left:0}.data-\[panel-group-direction\=vertical\]\:after\:h-1[data-panel-group-direction=vertical]:after{content:var(--tw-content);height:.25rem}.data-\[panel-group-direction\=vertical\]\:after\:w-full[data-panel-group-direction=vertical]:after{content:var(--tw-content);width:100%}.data-\[panel-group-direction\=vertical\]\:after\:-translate-y-1\/2[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-y: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[panel-group-direction\=vertical\]\:after\:translate-x-0[data-panel-group-direction=vertical]:after{content:var(--tw-content);--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[variant\=outline\]\:first\:border-l:first-child[data-variant=outline]{border-left-width:1px}.data-\[active\=true\]\:hover\:bg-accent:hover[data-active=true],.data-\[state\=open\]\:hover\:bg-accent:hover[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:hover\:bg-sidebar-accent:hover[data-state=open]{background-color:hsl(var(--sidebar-accent))}.data-\[state\=open\]\:hover\:text-sidebar-accent-foreground:hover[data-state=open]{color:hsl(var(--sidebar-accent-foreground))}.data-\[active\=true\]\:focus\:bg-accent:focus[data-active=true]{background-color:hsl(var(--accent))}.data-\[state\=open\]\:focus\:bg-accent:focus[data-state=open]{background-color:hsl(var(--accent))}.data-\[variant\=destructive\]\:focus\:bg-destructive\/10:focus[data-variant=destructive]{background-color:hsl(var(--destructive) / .1)}.data-\[variant\=destructive\]\:focus\:text-destructive:focus[data-variant=destructive]{color:hsl(var(--destructive))}.group[data-disabled=true] .group-data-\[disabled\=true\]\:pointer-events-none{pointer-events:none}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:relative{position:relative}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:left-\[calc\(var\(--sidebar-width\)\*-1\)\]{left:calc(var(--sidebar-width) * -1)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:right-\[calc\(var\(--sidebar-width\)\*-1\)\]{right:calc(var(--sidebar-width) * -1)}.group[data-side=left] .group-data-\[side\=left\]\:-right-4{right:-1rem}.group[data-side=right] .group-data-\[side\=right\]\:left-0{left:0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:top-full{top:100%}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:z-10{z-index:10}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:-mt-8{margin-top:-2rem}.group\/field-group[data-variant=outline] .group-data-\[variant\=outline\]\/field-group\:-mb-2{margin-bottom:-.5rem}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:mt-1\.5{margin-top:.375rem}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:block{display:block}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:hidden{display:none}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\)\]{width:calc(var(--sidebar-width-icon) + (--spacing(4)))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:w-\[calc\(var\(--sidebar-width-icon\)\+\(--spacing\(4\)\)\+2px\)\]{width:calc(var(--sidebar-width-icon) + (--spacing(4)) + 2px)}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:w-0{width:0px}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:translate-x-0{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-side=right] .group-data-\[side\=right\]\:rotate-180,.group[data-state=open] .group-data-\[state\=open\]\:rotate-180{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:justify-center{justify-content:center}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:overflow-hidden,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:overflow-hidden{overflow:hidden}.group[data-variant=floating] .group-data-\[variant\=floating\]\:rounded-lg{border-radius:var(--radius)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:rounded-md{border-radius:calc(var(--radius) - 2px)}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border,.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:border{border-width:1px}.group[data-side=left] .group-data-\[side\=left\]\:border-r{border-right-width:1px}.group[data-side=right] .group-data-\[side\=right\]\:border-l{border-left-width:1px}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:border-ring{border-color:hsl(var(--ring))}.group[data-variant=floating] .group-data-\[variant\=floating\]\:border-sidebar-border{border-color:hsl(var(--sidebar-border))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:bg-popover{background-color:hsl(var(--popover))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:px-0{padding-left:0;padding-right:0}.group\/drawer-content[data-vaul-drawer-direction=bottom] .group-data-\[vaul-drawer-direction\=bottom\]\/drawer-content\:text-center,.group\/drawer-content[data-vaul-drawer-direction=top] .group-data-\[vaul-drawer-direction\=top\]\/drawer-content\:text-center{text-align:center}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:text-popover-foreground{color:hsl(var(--popover-foreground))}.group[data-collapsible=icon] .group-data-\[collapsible\=icon\]\:opacity-0{opacity:0}.group\/field[data-disabled=true] .group-data-\[disabled\=true\]\/field\:opacity-50,.group\/input-group[data-disabled=true] .group-data-\[disabled\=true\]\/input-group\:opacity-50,.group[data-disabled=true] .group-data-\[disabled\=true\]\:opacity-50{opacity:.5}.group[data-variant=floating] .group-data-\[variant\=floating\]\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-\[3px\]{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.group\/day[data-focused=true] .group-data-\[focused\=true\]\/day\:ring-ring\/50{--tw-ring-color: hsl(var(--ring) / .5)}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:duration-200{transition-duration:.2s;animation-duration:.2s}.group[data-collapsible=offcanvas] .group-data-\[collapsible\=offcanvas\]\:after\:left-full:after{content:var(--tw-content);left:100%}.group[data-collapsible=offcanvas] .hover\:group-data-\[collapsible\=offcanvas\]\:bg-sidebar:hover{background-color:hsl(var(--sidebar-background))}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:animate-out[data-state=closed]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.group\/navigation-menu[data-viewport=false] .group-data-\[viewport\=false\]\/navigation-menu\:data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.peer\/menu-button[data-size=default]~.peer-data-\[size\=default\]\/menu-button\:top-1\.5{top:.375rem}.peer\/menu-button[data-size=lg]~.peer-data-\[size\=lg\]\/menu-button\:top-2\.5{top:.625rem}.peer\/menu-button[data-size=sm]~.peer-data-\[size\=sm\]\/menu-button\:top-1{top:.25rem}.peer\/menu-button[data-active=true]~.peer-data-\[active\=true\]\/menu-button\:text-sidebar-accent-foreground{color:hsl(var(--sidebar-accent-foreground))}@supports (backdrop-filter: var(--tw)){.supports-\[backdrop-filter\]\:backdrop-blur{--tw-backdrop-blur: blur(8px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}}.dark\:border-gray-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(55 65 81 / var(--tw-border-opacity, 1))}.dark\:border-input:is(.dark *){border-color:hsl(var(--input))}.dark\:border-red-700:is(.dark *){--tw-border-opacity: 1;border-color:rgb(185 28 28 / var(--tw-border-opacity, 1))}.dark\:border-white\/40:is(.dark *){border-color:#fff6}.dark\:border-t-white\/30:is(.dark *){border-top-color:#ffffff4d}.dark\:bg-blue-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(30 58 138 / var(--tw-bg-opacity, 1))}.dark\:bg-destructive\/60:is(.dark *){background-color:hsl(var(--destructive) / .6)}.dark\:bg-gray-800:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-800\/40:is(.dark *){background-color:#1f293766}.dark\:bg-gray-800\/50:is(.dark *){background-color:#1f293780}.dark\:bg-gray-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity, 1))}.dark\:bg-gray-900\/30:is(.dark *){background-color:#1118274d}.dark\:bg-gray-900\/40:is(.dark *){background-color:#11182766}.dark\:bg-gray-900\/60:is(.dark *){background-color:#11182799}.dark\:bg-input\/30:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:bg-red-900\/20:is(.dark *){background-color:#7f1d1d33}.dark\:bg-transparent:is(.dark *){background-color:transparent}.dark\:bg-yellow-500\/30:is(.dark *){background-color:#eab3084d}.dark\:from-gray-900:is(.dark *){--tw-gradient-from: #111827 var(--tw-gradient-from-position);--tw-gradient-to: rgb(17 24 39 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.dark\:to-gray-800:is(.dark *){--tw-gradient-to: #1f2937 var(--tw-gradient-to-position)}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity, 1))}.dark\:text-gray-300:is(.dark *){--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity, 1))}.dark\:text-muted-foreground:is(.dark *){color:hsl(var(--muted-foreground))}.dark\:text-red-400:is(.dark *){--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1))}.dark\:text-white:is(.dark *){--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.dark\:hover\:border-white:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(255 255 255 / var(--tw-border-opacity, 1))}.dark\:hover\:bg-accent\/50:hover:is(.dark *){background-color:hsl(var(--accent) / .5)}.dark\:hover\:bg-gray-800:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(31 41 55 / var(--tw-bg-opacity, 1))}.dark\:hover\:bg-input\/50:hover:is(.dark *){background-color:hsl(var(--input) / .5)}.dark\:hover\:text-accent-foreground:hover:is(.dark *){color:hsl(var(--accent-foreground))}.dark\:focus-visible\:ring-destructive\/40:focus-visible:is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:has-\[\[data-slot\]\[aria-invalid\=true\]\]\:ring-destructive\/40:has([data-slot][aria-invalid=true]):is(.dark *){--tw-ring-color: hsl(var(--destructive) / .4)}.dark\:data-\[state\=active\]\:border-input[data-state=active]:is(.dark *){border-color:hsl(var(--input))}.dark\:data-\[state\=active\]\:bg-input\/30[data-state=active]:is(.dark *){background-color:hsl(var(--input) / .3)}.dark\:data-\[state\=checked\]\:bg-primary[data-state=checked]:is(.dark *){background-color:hsl(var(--primary))}.dark\:data-\[state\=checked\]\:bg-primary-foreground[data-state=checked]:is(.dark *){background-color:hsl(var(--primary-foreground))}.dark\:data-\[state\=unchecked\]\:bg-foreground[data-state=unchecked]:is(.dark *){background-color:hsl(var(--foreground))}.dark\:data-\[state\=unchecked\]\:bg-input\/80[data-state=unchecked]:is(.dark *){background-color:hsl(var(--input) / .8)}.dark\:data-\[state\=active\]\:text-foreground[data-state=active]:is(.dark *){color:hsl(var(--foreground))}.dark\:data-\[variant\=destructive\]\:focus\:bg-destructive\/20:focus[data-variant=destructive]:is(.dark *){background-color:hsl(var(--destructive) / .2)}@media (min-width: 640px){.sm\:col-span-1{grid-column:span 1 / span 1}.sm\:block{display:block}.sm\:flex{display:flex}.sm\:max-w-\[650px\]{max-width:650px}.sm\:max-w-lg{max-width:32rem}.sm\:max-w-sm{max-width:24rem}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:justify-end{justify-content:flex-end}.sm\:gap-2\.5{gap:.625rem}.sm\:pl-2\.5{padding-left:.625rem}.sm\:pr-2\.5{padding-right:.625rem}.sm\:text-left{text-align:left}.data-\[vaul-drawer-direction\=left\]\:sm\:max-w-sm[data-vaul-drawer-direction=left],.data-\[vaul-drawer-direction\=right\]\:sm\:max-w-sm[data-vaul-drawer-direction=right]{max-width:24rem}}@media (min-width: 768px){.md\:absolute{position:absolute}.md\:col-span-2{grid-column:span 2 / span 2}.md\:block{display:block}.md\:flex{display:flex}.md\:w-\[var\(--radix-navigation-menu-viewport-width\)\]{width:var(--radix-navigation-menu-viewport-width)}.md\:w-auto{width:auto}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-1\.5{gap:.375rem}.md\:p-12{padding:3rem}.md\:text-left{text-align:left}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:opacity-0{opacity:0}.md\:after\:hidden:after{content:var(--tw-content);display:none}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:m-2{margin:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:ml-0{margin-left:0}.peer[data-variant=inset][data-state=collapsed]~.md\:peer-data-\[variant\=inset\]\:peer-data-\[state\=collapsed\]\:ml-2{margin-left:.5rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:rounded-xl{border-radius:.75rem}.peer[data-variant=inset]~.md\:peer-data-\[variant\=inset\]\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (min-width: 1280px){.xl\:max-w-\[650px\]{max-width:650px}}@media print{.print\:hidden{display:none}.print\:border-none{border-style:none}.print\:px-0{padding-left:0;padding-right:0}}.\[\&\+\[data-slot\=item-content\]\]\:flex-none+[data-slot=item-content]{flex:none}.\[\&\:first-child\[data-selected\=true\]_button\]\:rounded-l-md:first-child[data-selected=true] button{border-top-left-radius:calc(var(--radius) - 2px);border-bottom-left-radius:calc(var(--radius) - 2px)}.\[\&\:has\(\[role\=checkbox\]\)\]\:pr-0:has([role=checkbox]){padding-right:0}.\[\&\:last-child\[data-selected\=true\]_button\]\:rounded-r-md:last-child[data-selected=true] button{border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-l-none>*:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:rounded-t-none>*:not(:first-child){border-top-left-radius:0;border-top-right-radius:0}.\[\&\>\*\:not\(\:first-child\)\]\:border-l-0>*:not(:first-child){border-left-width:0px}.\[\&\>\*\:not\(\:first-child\)\]\:border-t-0>*:not(:first-child){border-top-width:0px}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-b-none>*:not(:last-child){border-bottom-right-radius:0;border-bottom-left-radius:0}.\[\&\>\*\:not\(\:last-child\)\]\:rounded-r-none>*:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.\[\&\>\*\]\:w-full>*{width:100%}.\[\&\>\*\]\:focus-visible\:relative:focus-visible>*{position:relative}.\[\&\>\*\]\:focus-visible\:z-10:focus-visible>*{z-index:10}.\[\&\>\*\]\:data-\[slot\=field\]\:p-4[data-slot=field]>*{padding:1rem}.\[\&\>\.sr-only\]\:w-auto>.sr-only{width:auto}.\[\&\>\[data-slot\=field-group\]\]\:gap-4>[data-slot=field-group]{gap:1rem}.\[\&\>\[data-slot\=field-label\]\]\:flex-auto>[data-slot=field-label]{flex:1 1 auto}.has-\[select\[aria-hidden\=true\]\:last-child\]\:\[\&\>\[data-slot\=select-trigger\]\:last-of-type\]\:rounded-r-md>[data-slot=select-trigger]:last-of-type:has(select[aria-hidden=true]:last-child){border-top-right-radius:calc(var(--radius) - 2px);border-bottom-right-radius:calc(var(--radius) - 2px)}.\[\&\>\[data-slot\=select-trigger\]\:not\(\[class\*\=\'w-\'\]\)\]\:w-fit>[data-slot=select-trigger]:not([class*=w-]){width:-moz-fit-content;width:fit-content}.\[\&\>\[role\=checkbox\]\]\:translate-y-\[2px\]>[role=checkbox]{--tw-translate-y: 2px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>a\:hover\]\:text-primary>a:hover{color:hsl(var(--primary))}.\[\&\>a\]\:underline>a{text-decoration-line:underline}.\[\&\>a\]\:underline-offset-4>a{text-underline-offset:4px}.\[\&\>button\]\:hidden>button{display:none}.\[\&\>input\]\:flex-1>input{flex:1 1 0%}.has-\[\>\[data-align\=block-end\]\]\:\[\&\>input\]\:pt-3>input:has(>[data-align=block-end]){padding-top:.75rem}.has-\[\>\[data-align\=block-start\]\]\:\[\&\>input\]\:pb-3>input:has(>[data-align=block-start]){padding-bottom:.75rem}.has-\[\>\[data-align\=inline-end\]\]\:\[\&\>input\]\:pr-2>input:has(>[data-align=inline-end]){padding-right:.5rem}.has-\[\>\[data-align\=inline-start\]\]\:\[\&\>input\]\:pl-2>input:has(>[data-align=inline-start]){padding-left:.5rem}.\[\&\>kbd\]\:rounded-\[calc\(var\(--radius\)-5px\)\]>kbd{border-radius:calc(var(--radius) - 5px)}.\[\&\>span\:last-child\]\:truncate>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.\[\&\>span\]\:text-xs>span{font-size:.75rem;line-height:1rem}.\[\&\>span\]\:opacity-70>span{opacity:.7}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3\.5>svg:not([class*=size-]){width:.875rem;height:.875rem}.\[\&\>svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4>svg:not([class*=size-]){width:1rem;height:1rem}.\[\&\>svg\]\:pointer-events-none>svg{pointer-events:none}.\[\&\>svg\]\:size-3>svg{width:.75rem;height:.75rem}.\[\&\>svg\]\:size-3\.5>svg{width:.875rem;height:.875rem}.\[\&\>svg\]\:size-4>svg{width:1rem;height:1rem}.\[\&\>svg\]\:h-2\.5>svg{height:.625rem}.\[\&\>svg\]\:h-3>svg{height:.75rem}.\[\&\>svg\]\:w-2\.5>svg{width:.625rem}.\[\&\>svg\]\:w-3>svg{width:.75rem}.\[\&\>svg\]\:shrink-0>svg{flex-shrink:0}.\[\&\>svg\]\:translate-y-0\.5>svg{--tw-translate-y: .125rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\>svg\]\:text-current>svg{color:currentColor}.\[\&\>svg\]\:text-muted-foreground>svg{color:hsl(var(--muted-foreground))}.\[\&\>svg\]\:text-sidebar-accent-foreground>svg{color:hsl(var(--sidebar-accent-foreground))}.\[\&\>tr\]\:h-auto>tr{height:auto}.\[\&\>tr\]\:last\:border-b-0:last-child>tr{border-bottom-width:0px}.\[\&\[data-panel-group-direction\=vertical\]\>div\]\:rotate-90[data-panel-group-direction=vertical]>div{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&\[data-state\=open\]\>svg\]\:rotate-180[data-state=open]>svg{--tw-rotate: 180deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:hsl(var(--muted-foreground))}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border\/50 .recharts-cartesian-grid line[stroke="#ccc"]{stroke:hsl(var(--border) / .5)}.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:hsl(var(--border))}.\[\&_\.recharts-dot\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-dot[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-layer\]\:outline-hidden .recharts-layer{outline:2px solid transparent;outline-offset:2px}.\[\&_\.recharts-polar-grid_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-polar-grid [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-radial-bar-background-sector\]\:fill-muted .recharts-radial-bar-background-sector,.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted .recharts-rectangle.recharts-tooltip-cursor{fill:hsl(var(--muted))}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-reference-line [stroke="#ccc"]{stroke:hsl(var(--border))}.\[\&_\.recharts-sector\[stroke\=\'\#fff\'\]\]\:stroke-transparent .recharts-sector[stroke="#fff"]{stroke:transparent}.\[\&_\.recharts-sector\]\:outline-hidden .recharts-sector,.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline:2px solid transparent;outline-offset:2px}.\[\&_\[cmdk-group-heading\]\]\:px-2 [cmdk-group-heading]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-group-heading\]\]\:py-1\.5 [cmdk-group-heading]{padding-top:.375rem;padding-bottom:.375rem}.\[\&_\[cmdk-group-heading\]\]\:text-xs [cmdk-group-heading]{font-size:.75rem;line-height:1rem}.\[\&_\[cmdk-group-heading\]\]\:font-medium [cmdk-group-heading]{font-weight:500}.\[\&_\[cmdk-group-heading\]\]\:text-muted-foreground [cmdk-group-heading]{color:hsl(var(--muted-foreground))}.\[\&_\[cmdk-group\]\:not\(\[hidden\]\)_\~\[cmdk-group\]\]\:pt-0 [cmdk-group]:not([hidden])~[cmdk-group]{padding-top:0}.\[\&_\[cmdk-group\]\]\:px-2 [cmdk-group]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:h-5 [cmdk-input-wrapper] svg{height:1.25rem}.\[\&_\[cmdk-input-wrapper\]_svg\]\:w-5 [cmdk-input-wrapper] svg{width:1.25rem}.\[\&_\[cmdk-input\]\]\:h-12 [cmdk-input]{height:3rem}.\[\&_\[cmdk-item\]\]\:px-2 [cmdk-item]{padding-left:.5rem;padding-right:.5rem}.\[\&_\[cmdk-item\]\]\:py-3 [cmdk-item]{padding-top:.75rem;padding-bottom:.75rem}.\[\&_\[cmdk-item\]_svg\]\:h-5 [cmdk-item] svg{height:1.25rem}.\[\&_\[cmdk-item\]_svg\]\:w-5 [cmdk-item] svg{width:1.25rem}.\[\&_img\]\:size-full img{width:100%;height:100%}.\[\&_img\]\:object-cover img{-o-object-fit:cover;object-fit:cover}.\[\&_p\]\:leading-relaxed p{line-height:1.625}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-3 svg:not([class*=size-]){width:.75rem;height:.75rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 svg:not([class*=size-]){width:1rem;height:1rem}.\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-6 svg:not([class*=size-]){width:1.5rem;height:1.5rem}.\[\&_svg\:not\(\[class\*\=\'text-\'\]\)\]\:text-muted-foreground svg:not([class*=text-]){color:hsl(var(--muted-foreground))}.\[\&_svg\]\:pointer-events-none svg{pointer-events:none}.\[\&_svg\]\:shrink-0 svg{flex-shrink:0}.\[\&_td\:first-child\]\:border-l-black\/50 td:first-child{border-left-color:#00000080}.dark\:\[\&_td\:first-child\]\:border-l-white\/40 td:first-child:is(.dark *){border-left-color:#fff6}.\[\&_td\:last-child\]\:border-r-black\/50 td:last-child{border-right-color:#00000080}.dark\:\[\&_td\:last-child\]\:border-r-white\/40 td:last-child:is(.dark *){border-right-color:#fff6}.\[\&_td\]\:border td{border-width:1px}.\[\&_td\]\:border-black\/50 td{border-color:#00000080}.dark\:\[\&_td\]\:border-white\/40 td:is(.dark *){border-color:#fff6}.\[\&_th\:first-child\]\:border-l-black\/50 th:first-child{border-left-color:#00000080}.dark\:\[\&_th\:first-child\]\:border-l-white\/40 th:first-child:is(.dark *){border-left-color:#fff6}.\[\&_th\:last-child\]\:border-r-black\/50 th:last-child{border-right-color:#00000080}.dark\:\[\&_th\:last-child\]\:border-r-white\/40 th:last-child:is(.dark *){border-right-color:#fff6}.\[\&_th\]\:border th{border-width:1px}.\[\&_th\]\:border-black\/50 th{border-color:#00000080}.dark\:\[\&_th\]\:border-white\/40 th:is(.dark *){border-color:#fff6}.\[\&_tr\:last-child\]\:border-0 tr:last-child{border-width:0px}.\[\&_tr\]\:border-b tr{border-bottom-width:1px}[data-side=left][data-collapsible=offcanvas] .\[\[data-side\=left\]\[data-collapsible\=offcanvas\]_\&\]\:-right-2{right:-.5rem}[data-side=left][data-state=collapsed] .\[\[data-side\=left\]\[data-state\=collapsed\]_\&\]\:cursor-e-resize{cursor:e-resize}[data-side=right][data-collapsible=offcanvas] .\[\[data-side\=right\]\[data-collapsible\=offcanvas\]_\&\]\:-left-2{left:-.5rem}[data-side=right][data-state=collapsed] .\[\[data-side\=right\]\[data-state\=collapsed\]_\&\]\:cursor-w-resize{cursor:w-resize}[data-slot=card-content] .\[\[data-slot\=card-content\]_\&\]\:bg-transparent,[data-slot=popover-content] .\[\[data-slot\=popover-content\]_\&\]\:bg-transparent{background-color:transparent}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/20{background-color:hsl(var(--background) / .2)}[data-slot=tooltip-content] .\[\[data-slot\=tooltip-content\]_\&\]\:text-background{color:hsl(var(--background))}[data-slot=tooltip-content] .dark\:\[\[data-slot\=tooltip-content\]_\&\]\:bg-background\/10:is(.dark *){background-color:hsl(var(--background) / .1)}[data-variant=legend]+.\[\[data-variant\=legend\]\+\&\]\:-mt-1\.5{margin-top:-.375rem}a.\[a\&\]\:hover\:bg-accent:hover{background-color:hsl(var(--accent))}a.\[a\&\]\:hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}a.\[a\&\]\:hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}a.\[a\&\]\:hover\:bg-secondary\/90:hover{background-color:hsl(var(--secondary) / .9)}a.\[a\&\]\:hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}
