@import "https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400..900;1,400..900&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";:root{--font-heading:"Playfair Display", Georgia, serif;--font-body:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--bg-primary:#fdfcfb;--bg-secondary:#f5f3f0;--bg-card:#fff;--bg-glass:#fdfcfbf2;--border-color:#e6e1da;--border-hover:#c8beaf;--text-primary:#1e2530;--text-secondary:#5c626e;--text-muted:#9ba1ad;--accent-primary:#0a2540;--accent-glow:#0a25400d;--accent-success:#4a6b5c;--accent-danger:#8f1a1a;--accent-warning:#c69d4d;--accent-info:#5c798f;--shadow-sm:0 2px 8px #0a254008;--shadow-md:0 10px 30px #0a25400a;--shadow-lg:0 20px 50px #0a254012;--radius-sm:4px;--radius-md:8px;--radius-lg:16px;--transition-fast:.15s ease;--transition-normal:.25s ease}[data-theme=dark]{--bg-primary:#0b0f19;--bg-secondary:#131a29;--bg-card:#111724;--bg-glass:#0b0f19f2;--border-color:#202b3d;--border-hover:#33445e;--text-primary:#f1f3f7;--text-secondary:#a3acb9;--text-muted:#647083;--accent-primary:#c69d4d;--accent-glow:#c69d4d14;--accent-success:#638575;--accent-danger:#b33636;--accent-warning:#c69d4d;--accent-info:#7fa4bf;--shadow-sm:0 2px 8px #0003;--shadow-md:0 10px 30px #0000004d;--shadow-lg:0 20px 50px #0006}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:var(--accent-primary) var(--bg-secondary);margin:0;padding:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--accent-primary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--border-hover)}body{font-family:var(--font-body);background-color:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;min-height:100vh;transition:background-color var(--transition-normal), color var(--transition-normal), border-color var(--transition-normal);line-height:1.6;overflow-x:hidden}#root{flex-direction:column;min-height:100vh;display:flex;position:relative}.container{width:100%;max-width:1800px;margin:0 auto;padding:0 1.5rem}.header-glass{background:var(--bg-glass);border-bottom:1px solid var(--border-color);z-index:100;-webkit-backdrop-filter:blur(8px);transition:background-color var(--transition-normal), border-color var(--transition-normal);padding:.85rem 0;position:sticky;top:0}.header-container{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.logo-section{align-items:center;gap:1.25rem;display:flex}.logo-brand{align-items:center;gap:1.15rem;display:flex}.header-logo-img{object-fit:contain;border:1px solid var(--border-color);background:#fff;border-radius:50%;flex-shrink:0;width:52px;height:52px;padding:2px}.logo-text h1{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.5px;margin:0;font-size:1.85rem;font-weight:500;line-height:1.15}.logo-text span{color:var(--text-secondary);letter-spacing:2px;text-transform:uppercase;margin-top:.1rem;font-size:.72rem;font-weight:600;display:block}.nav-controls{align-items:center;gap:1rem;display:flex}.nav-tabs{gap:.25rem;display:flex}.nav-tab-btn{color:var(--text-secondary);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.5rem .85rem;font-size:.85rem;font-weight:600}.nav-tab-btn:hover{color:var(--text-primary)}.nav-tab-btn.active{color:var(--accent-primary);border-bottom-color:var(--accent-primary)}.theme-toggle-btn{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;width:40px;height:40px;box-shadow:var(--shadow-sm);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:all .3s cubic-bezier(.34,1.56,.64,1);display:flex}.theme-toggle-btn:hover{border-color:var(--border-hover);background:var(--bg-secondary);box-shadow:var(--shadow-md);transform:scale(1.08)rotate(15deg)}.theme-toggle-btn:active{transform:scale(.92)}.mobile-theme-btn{display:none}.desktop-theme-btn{display:flex}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-top:2rem;margin-bottom:2rem;display:grid}.metric-box{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.15rem 1rem;display:flex}.metric-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.2rem;font-size:.8rem;font-weight:600}.metric-number{font-size:2rem;font-weight:300;font-family:var(--font-heading);line-height:1.1}.metric-total{color:var(--accent-primary)}.metric-free{color:var(--accent-success)}.metric-occupied{color:var(--accent-danger)}.loans-list{color:var(--text-primary);flex-wrap:wrap;justify-content:center;gap:.8rem;margin-top:.4rem;font-size:.82rem;font-weight:600;display:flex}.glass-card{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);transition:border-color var(--transition-normal), box-shadow var(--transition-normal), background-color var(--transition-normal);box-shadow:var(--shadow-sm);padding:1.75rem}.glass-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md)}.action-bar{flex-direction:column;align-items:stretch;gap:.75rem;margin-bottom:2rem;padding:1.25rem 1.5rem;display:flex}.filter-controls-row{flex-wrap:wrap;align-items:center;gap:1rem;display:flex}.search-box{max-width:280px;height:40px}.filter-group{flex-wrap:wrap;gap:.25rem;display:flex}.filter-btn{color:var(--text-secondary);font-family:var(--font-body);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;background:0 0;border:1px solid #0000;padding:.35rem .85rem;font-size:.85rem;font-weight:500}.filter-btn:hover{color:var(--text-primary);background-color:var(--bg-secondary)}.filter-btn.active{background:var(--bg-secondary);border-color:var(--border-hover);color:var(--text-primary)}.quick-resource-bar{border-top:1px solid var(--border-color);flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.75rem;padding-top:.75rem;display:flex}.resource-bar-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;align-items:center;padding-right:.4rem;font-size:.75rem;font-weight:600;display:flex}.resource-buttons-wrap{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.rooms-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.5rem;display:grid}.room-card{border-top:3px solid var(--border-color);flex-direction:column;justify-content:space-between;display:flex}.room-card.free{border-top-color:var(--accent-success)}.room-card.occupied{border-top-color:var(--accent-danger)}.room-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.25rem;display:flex}.room-name-wrapper{flex-direction:column;display:flex}.room-title{font-family:var(--font-heading);color:var(--text-primary);font-size:1.65rem;font-weight:400}.room-location{color:var(--text-muted);text-transform:uppercase;letter-spacing:.8px;margin-top:.2rem;font-size:.75rem}.status-badge{border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.5px;padding:.2rem .6rem;font-size:.7rem;font-weight:600}.status-badge.free{color:var(--accent-success);background-color:#4a6b5c14;border:1px solid #4a6b5c26}.status-badge.occupied{color:var(--accent-danger);background-color:#8f1a1a14;border:1px solid #8f1a1a26}.room-details{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:background-color var(--transition-normal);margin-bottom:1.25rem;padding:1rem;font-size:.875rem}.occupied-by{color:var(--text-primary);margin-bottom:.5rem;font-weight:600}.occupied-by span{color:var(--text-secondary);margin-bottom:.25rem;font-size:.75rem;font-weight:400;display:block}.items-taken{border-top:1px solid var(--border-color);flex-direction:column;gap:.35rem;margin-top:.75rem;padding-top:.5rem;display:flex}.item-chip{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.75rem;display:flex}.item-chip.taken{color:var(--text-primary);font-weight:500}.action-btn{border-radius:var(--radius-sm);border:1px solid var(--accent-primary);width:100%;font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);color:var(--accent-primary);background:0 0;padding:.65rem;font-size:.85rem;font-weight:600}.action-btn.manage:hover{background:var(--accent-primary);color:var(--bg-card)}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0b0f1980;justify-content:center;align-items:center;padding:1rem;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-content{background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;max-width:460px;max-height:calc(100vh - 2rem);box-shadow:var(--shadow-lg);transition:background-color var(--transition-normal);padding:2rem;position:relative;overflow-y:auto}.close-modal-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;font-size:1.25rem;position:absolute;top:1rem;right:1rem}.close-modal-btn:hover{color:var(--text-primary)}.modal-title{font-family:var(--font-heading);color:var(--text-primary);margin-bottom:1.5rem;font-size:1.6rem;font-weight:400}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:.5rem;font-size:.85rem;font-weight:600;display:block}.form-input{border-radius:var(--radius-sm);background:var(--bg-primary);border:1px solid var(--border-color);width:100%;color:var(--text-primary);font-family:var(--font-body);transition:border-color var(--transition-fast), background-color var(--transition-normal);padding:.65rem .85rem;font-size:.9rem}.form-input:focus{border-color:var(--accent-primary);outline:none}.form-checkbox-group{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);transition:background-color var(--transition-normal);flex-direction:column;gap:.5rem;padding:.85rem;display:flex}.checkbox-label{cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;font-weight:500;display:flex}.modal-actions{gap:.75rem;margin-top:1.75rem;display:flex}.primary-btn{background:var(--accent-primary);color:var(--bg-card);border:1px solid var(--accent-primary);border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;transition:all var(--transition-fast);flex:1;padding:.7rem;font-weight:600}.primary-btn:hover{background:var(--border-hover);border-color:var(--border-hover)}.secondary-btn{color:var(--text-primary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-family:var(--font-body);cursor:pointer;background:0 0;flex:1;padding:.7rem;font-weight:500}.secondary-btn:hover{background:var(--bg-secondary)}.excel-tabs-bar{border-bottom:2px solid var(--border-color);justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.5rem;padding-bottom:0;display:flex}.sheet-tabs-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;flex:1;align-items:center;gap:.25rem;display:flex;overflow-x:auto}.sheet-tabs-scroll::-webkit-scrollbar{display:none}.sheets-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:1px;white-space:nowrap;align-items:center;padding-right:.75rem;font-size:.8rem;font-weight:600;display:flex}.excel-tab{background:var(--bg-secondary);border:1px solid var(--border-color);font-family:var(--font-body);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;border-bottom:none;border-radius:6px 6px 0 0;align-items:center;gap:.4rem;padding:.55rem 1.1rem;font-size:.85rem;font-weight:600;display:flex}.excel-tab:hover{background:var(--bg-card);color:var(--text-primary)}.excel-tab.active{background:var(--bg-card);color:var(--accent-primary);border-color:var(--border-color);border-top:3px solid var(--accent-primary);margin-bottom:-2px;padding-bottom:.65rem}.excel-tab-icon{font-size:.85rem}.zoom-controls{border-left:1px solid var(--border-color);flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;padding-left:.75rem;display:flex}.zoom-level-badge{color:var(--text-secondary);text-align:center;min-width:42px;font-size:.78rem;font-weight:700;font-family:var(--font-body)}.zoom-btn{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;padding:.35rem .65rem;font-size:.85rem;font-weight:600;display:flex;box-shadow:0 1px 3px #0000000d}.zoom-btn:hover:not(:disabled){background:var(--accent-primary);color:#fff;border-color:var(--accent-primary)}.zoom-btn:disabled{opacity:.35;cursor:not-allowed}.schedule-meta-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin:1rem 0 .5rem;display:flex}.schedule-meta-info{color:var(--text-secondary);font-size:.85rem}.schedule-meta-info strong{color:var(--text-primary)}.schedule-export-btns{gap:.5rem;display:flex}.btn-export{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.82rem;font-weight:600;display:inline-flex;box-shadow:0 1px 3px #0000000d}.btn-export.pdf:hover{color:#fff;background:#8f1a1a;border-color:#8f1a1a}.btn-export.excel:hover{color:#fff;background:#1e7e34;border-color:#1e7e34}.top-scrollbar-container{background:var(--bg-secondary);border-radius:var(--radius-sm);border:1px solid var(--border-color);-webkit-overflow-scrolling:touch;height:14px;margin-bottom:.5rem;overflow:auto hidden}.top-scrollbar-dummy{height:1px}.schedule-table-wrapper{border:1px solid var(--border-color);box-shadow:var(--shadow-sm);-webkit-overflow-scrolling:touch;overflow-x:auto}.schedule-table{border-collapse:collapse;text-align:left;width:100%;min-width:800px}.schedule-table th,.schedule-table td{border:1px solid var(--border-color);padding:.75rem;font-size:.85rem}.schedule-table th{background:var(--bg-secondary);font-family:var(--font-heading);color:var(--text-primary);text-transform:uppercase;letter-spacing:.8px;transition:background-color var(--transition-normal);font-size:.75rem;font-weight:500}.schedule-table th.time-col{z-index:25;background:var(--bg-card);border-right:2px solid var(--border-color);width:110px;position:sticky;top:0;left:0}.schedule-table td.time-cell{z-index:15;background:var(--bg-card);border-right:2px solid var(--border-color);font-weight:700;position:sticky;left:0}.schedule-cell{cursor:pointer;background:var(--bg-card);height:70px;min-height:70px;transition:background-color var(--transition-fast);position:relative}.schedule-cell:hover{background:var(--bg-secondary)}.schedule-cell-content{flex-direction:column;justify-content:center;height:100%;display:flex}.empty-cell-indicator{color:var(--text-muted);text-align:center;font-size:.75rem;display:none}.schedule-cell:hover .empty-cell-indicator{display:block}.excel-merged-content{text-align:center;box-sizing:border-box;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:.5rem;display:flex}.excel-subject-title{margin-bottom:.15rem;font-size:.85rem;font-weight:800;line-height:1.25}.excel-teacher-name{opacity:.9;font-size:.78rem;font-weight:500;line-height:1.2}.excel-duration-badge{text-transform:uppercase;letter-spacing:.5px;opacity:.75;margin-top:.25rem;font-size:.65rem;font-weight:700}.excel-cell-actions{opacity:0;z-index:5;gap:4px;transition:opacity .2s cubic-bezier(.34,1.56,.64,1),transform .2s cubic-bezier(.34,1.56,.64,1);display:flex;position:absolute;top:4px;right:4px;transform:translateY(-4px)scale(.9)}.excel-merged-cell:hover .excel-cell-actions{opacity:1;transform:translateY(0)scale(1)}.excel-action-btn{cursor:pointer;background:#ffffffe0;border:1px solid #00000026;border-radius:4px;justify-content:center;align-items:center;width:26px;height:26px;font-size:.75rem;display:flex;box-shadow:0 2px 6px #0000001f}.manager-layout{grid-template-columns:1fr 2fr;gap:2rem;display:grid}.manager-card{padding:1.5rem}.manager-table-wrapper{border:1px solid var(--border-color);border-radius:var(--radius-sm);-webkit-overflow-scrolling:touch;overflow-x:auto}.manager-table{border-collapse:collapse;width:100%}.manager-table th,.manager-table td{border:1px solid var(--border-color);text-align:left;padding:.85rem;font-size:.85rem}.manager-table th{background:var(--bg-secondary);color:var(--text-primary);font-family:var(--font-heading);transition:background-color var(--transition-normal);font-weight:500}.btn-edit{border:1px solid var(--accent-primary);color:var(--accent-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);background:0 0;padding:.3rem .65rem;font-size:.75rem;font-weight:500}.btn-edit:hover{background:var(--accent-primary);color:var(--bg-card)}.btn-danger{border:1px solid var(--accent-danger);color:var(--accent-danger);border-radius:var(--radius-sm);cursor:pointer;background:0 0;padding:.3rem .65rem;font-size:.75rem;font-weight:500}.btn-danger:hover{background:var(--accent-danger);color:#fff}.toast-container{z-index:2500;pointer-events:none;position:fixed;top:1.5rem;right:2rem}.toast-notification{background:var(--bg-card);border:1px solid var(--accent-success);border-left:5px solid var(--accent-success);color:var(--text-primary);border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);align-items:center;gap:.75rem;padding:.85rem 1.25rem;font-size:.88rem;font-weight:600;animation:.35s cubic-bezier(.34,1.56,.64,1) slideInDown;display:flex}.toast-icon{width:22px;height:22px;color:var(--accent-success);background:#4a6b5c26;border-radius:50%;justify-content:center;align-items:center;font-size:.75rem;font-weight:800;display:flex}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)scale(.92)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}footer{border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);letter-spacing:.5px;margin-top:auto;padding:2.5rem 0;font-size:.8rem}@media (width<=768px){.container{padding:0 .85rem}.header-container{flex-direction:column;align-items:stretch;gap:.65rem}.logo-section{justify-content:space-between;align-items:center;width:100%;display:flex}.desktop-theme-btn{display:none}.mobile-theme-btn{display:flex}.nav-controls{width:100%;display:flex}.nav-tabs{border-bottom:1px solid var(--border-color);justify-content:space-between;gap:0;width:100%;padding:0;display:flex}.nav-tab-btn{text-align:center;border-bottom:2px solid #0000;flex:1;justify-content:center;padding:.55rem .2rem;font-size:.82rem}.nav-tab-btn.active{border-bottom-color:var(--accent-primary);color:var(--accent-primary)}.dashboard-grid{grid-template-columns:repeat(3,1fr);gap:.5rem;margin-top:1rem;margin-bottom:1.25rem}.metric-box{padding:.85rem .4rem}.metric-title{letter-spacing:.3px;font-size:.65rem}.metric-number{font-size:1.65rem}.dashboard-grid .metric-loans-box{grid-column:span 3;padding:.85rem .65rem}.loans-list{text-align:left;grid-template-columns:repeat(2,1fr);gap:.4rem .6rem;padding:0 .5rem;font-size:.78rem;display:grid}.manager-layout{grid-template-columns:1fr;gap:1.25rem}.manager-card,.manager-table-card{padding:1.25rem 1rem}.manager-table th,.manager-table td{padding:.65rem .4rem;font-size:.8rem}.rooms-grid{grid-template-columns:1fr;gap:1rem}.glass-card{padding:1.25rem 1rem}.filter-controls-row{flex-direction:column;align-items:stretch;gap:.75rem}.search-box{max-width:100%}.filter-group{white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;overflow-x:auto}.filter-group::-webkit-scrollbar{display:none}.quick-resource-bar{margin-top:.5rem;padding-top:.5rem}.resource-buttons-wrap{white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;width:100%;padding-bottom:3px;overflow-x:auto}.resource-buttons-wrap::-webkit-scrollbar{display:none}.schedule-meta-bar{flex-direction:column;align-items:stretch;gap:.5rem}.schedule-export-btns{width:100%}.btn-export{flex:1;justify-content:center}.excel-cell-actions{opacity:1}.modal-content{padding:1.25rem}.modal-title{font-size:1.35rem}}@media (width<=480px){.logo-text h1{font-size:1.45rem}.logo-text span{font-size:.65rem}.header-logo-img{width:44px;height:44px}.nav-tab-btn{padding:.5rem .15rem;font-size:.76rem}.loans-list{grid-template-columns:1fr;gap:.3rem}}
