@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:62px;height:62px;padding:3px;box-shadow:0 2px 6px #00000014}.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}.tab-svg-icon{opacity:.75;transition:opacity var(--transition-fast), stroke var(--transition-fast)}.excel-tab:hover .tab-svg-icon{opacity:1}.excel-tab.active .tab-svg-icon{opacity:1;stroke:var(--accent-primary)}.excel-tab-custom{padding-right:.8rem;position:relative}.excel-tab-delete-btn{width:17px;height:17px;color:var(--text-muted);opacity:.6;transition:all var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;margin-left:.35rem;font-size:.9rem;line-height:1;display:inline-flex}.excel-tab-delete-btn:hover{opacity:1;color:#e63946;background:#e6394626}.excel-tab-add{background:var(--bg-secondary);border:1px dashed var(--border-color);color:var(--text-muted);transition:all var(--transition-fast);border-bottom:none;border-radius:6px 6px 0 0;gap:.35rem;padding:.55rem .85rem;font-weight:600}.excel-tab-add:hover{background:var(--bg-card);color:var(--accent-primary);border-color:var(--accent-primary);border-style:solid}.excel-tab-add .add-text{font-size:.78rem;font-weight:500}.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}.career-legend-ribbon{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;gap:.75rem;margin:.2rem 0 .55rem;padding:.3rem .65rem;display:flex}.career-legend-ribbon-left{flex:1;align-items:center;gap:.65rem;display:flex;overflow:hidden}.career-legend-ribbon-label{letter-spacing:.6px;color:var(--text-muted);flex-shrink:0;font-size:.68rem;font-weight:700}.career-legend-items-scroll{white-space:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;align-items:center;gap:.4rem;padding:.1rem 0;display:flex;overflow-x:auto}.career-legend-items-scroll::-webkit-scrollbar{display:none}.career-legend-pill{background:var(--bg-card);border:1px solid var(--border-color);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;flex-shrink:0;align-items:center;gap:.35rem;padding:.15rem .45rem;display:inline-flex}.career-legend-pill:hover{border-color:var(--border-hover);transform:translateY(-1px);box-shadow:0 1px 3px #0000000a}.career-legend-pill.is-active{background:var(--bg-primary);border-color:var(--accent-primary);box-shadow:0 0 0 1.5px var(--accent-primary), 0 2px 6px #00000014;transform:translateY(-1px)}.career-legend-pill.is-active .career-legend-title{color:var(--text-primary);font-weight:700}.career-legend-pill-check{color:var(--accent-primary);font-size:.65rem;font-weight:800;line-height:1}.career-legend-clear-btn{background:var(--bg-card);border:1px dashed var(--accent-primary);color:var(--accent-primary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;flex-shrink:0;align-items:center;gap:.25rem;padding:.15rem .45rem;font-size:.7rem;font-weight:600;display:inline-flex}.career-legend-clear-btn:hover{background:var(--accent-primary);color:#fff;border-style:solid}.career-legend-rect{border:1px solid #00000029;border-radius:2px;flex-shrink:0;width:18px;height:10px}.career-legend-title{color:var(--text-secondary);font-size:.74rem;font-weight:500}.career-legend-pill:hover .career-legend-title{color:var(--text-primary)}.career-legend-ribbon-actions{flex-shrink:0;align-items:center;gap:.4rem;display:inline-flex}.career-legend-edit-trigger{background:var(--bg-card);border:1px solid var(--border-color);color:var(--text-secondary);cursor:pointer;transition:all var(--transition-fast);border-radius:4px;flex-shrink:0;align-items:center;gap:.3rem;padding:.22rem .55rem;font-size:.72rem;font-weight:600;display:inline-flex}.career-legend-edit-trigger:hover{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-hover)}.schedule-meta-bar{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.5rem;margin:.5rem 0;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:separate;border-spacing:0;text-align:left;width:100%;min-width:800px}.schedule-table th,.schedule-table td{border-right:1px solid var(--border-color);border-bottom:1px solid var(--border-color);box-sizing:border-box;padding:.75rem;font-size:.85rem}.schedule-table th{border-top:1px solid var(--border-color);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-left:1px solid var(--border-color);border-right:2px solid var(--border-color);border-top:1px solid var(--border-color);border-bottom:1px 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-left:1px solid var(--border-color);border-right:2px solid var(--border-color);box-sizing:border-box;font-weight:700;position:sticky;left:0;border-bottom:1px solid var(--border-color)!important}.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}.excel-merged-cell[draggable=true],.excel-merged-content[draggable=true]{transition:transform var(--transition-fast), box-shadow var(--transition-fast), opacity var(--transition-fast);cursor:grab!important;-webkit-user-select:none!important;user-select:none!important;-webkit-user-drag:element!important}.excel-merged-cell[draggable=true]:active,.excel-merged-content[draggable=true]:active{cursor:grabbing!important}.excel-merged-cell.is-dragging{transform:scale(.97);box-shadow:0 8px 24px #0003;opacity:.4!important}.drag-grip-indicator{color:currentColor;opacity:.35;pointer-events:none;transition:opacity var(--transition-fast);font-size:.85rem;position:absolute;top:4px;left:6px}.excel-merged-cell:hover .drag-grip-indicator{opacity:.85}.schedule-cell.drop-target-valid{transition:background-color .15s;border:2px dashed var(--accent-success)!important;background-color:#4a6b5c2e!important}.schedule-cell.drop-target-invalid{transition:background-color .15s;border:2px dashed var(--accent-danger)!important;cursor:not-allowed!important;background-color:#8f1a1a2e!important}.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;transition:all var(--transition-fast);font-size:.75rem;font-weight:500;font-family:var(--font-body);background:0 0;padding:.3rem .65rem}.btn-danger:hover{background:var(--accent-danger);color:#fff}.btn-warning{border:1px solid var(--accent-warning);color:var(--accent-warning);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);font-size:.75rem;font-weight:500;font-family:var(--font-body);background:0 0;padding:.3rem .65rem}.btn-warning:hover{background:var(--accent-warning);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{white-space:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none;border-bottom:1px solid var(--border-color);align-items:center;gap:.5rem;width:100%;padding:.4rem .5rem .65rem;display:flex;overflow-x:auto}.nav-tabs::-webkit-scrollbar{display:none}.nav-tab-btn{background:var(--bg-secondary);color:var(--text-secondary);border:1px solid var(--border-color);white-space:nowrap;border-radius:20px;flex:none;padding:.5rem 1rem;font-size:.85rem;font-weight:600;transition:all .2s}.nav-tab-btn:hover{background:var(--bg-card);color:var(--text-primary)}.nav-tab-btn.active{color:#fff;background:#0a192f;border-color:#0a192f;box-shadow:0 2px 8px #0a192f33}[data-theme=dark] .nav-tab-btn.active{background:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:0 2px 10px #3b82f659}.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}.excel-tabs-bar{border-bottom:none;flex-direction:column;align-items:stretch;gap:.65rem;margin-bottom:.85rem}.sheet-tabs-scroll{scrollbar-width:none;-webkit-overflow-scrolling:touch;border-bottom:2px solid var(--border-color);align-items:center;gap:.4rem;width:100%;padding:.2rem .2rem .55rem;display:flex;overflow-x:auto}.sheet-tabs-scroll::-webkit-scrollbar{display:none}.sheets-label{color:var(--text-muted);white-space:nowrap;flex-shrink:0;padding-right:.35rem;font-size:.76rem;font-weight:700}.excel-tab{white-space:nowrap;border:1px solid var(--border-color);border-radius:8px 8px 0 0;flex:none;padding:.5rem .9rem;font-size:.84rem}.excel-tab.active{border-top:3px solid var(--accent-primary);background:var(--bg-card);color:var(--accent-primary);margin-bottom:-2px}.zoom-controls{justify-content:flex-end;align-items:center;gap:.5rem;padding:0 .25rem;display:flex}.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:.45rem .85rem;font-size:.8rem}.loans-list{grid-template-columns:1fr;gap:.3rem}}.login-page{background:var(--bg-primary);flex-direction:column;min-height:100dvh;display:flex}.login-page:not(.entrance-ready) .login-main{background-color:#0a1f3a;background-image:none}.login-page:not(.entrance-ready) .login-header.header-entrance,.login-page:not(.entrance-ready) .login-overlay,.login-page:not(.entrance-ready) .login-emblem-wrap.emblem-entrance,.login-page:not(.entrance-ready) .login-card.card-entrance,.login-page:not(.entrance-ready) .login-card.card-entrance .login-avatar,.login-page:not(.entrance-ready) .login-card.card-entrance .login-card-title,.login-page:not(.entrance-ready) .login-card.card-entrance .login-card-subtitle,.login-page:not(.entrance-ready) .login-card.card-entrance form,.login-page:not(.entrance-ready) .login-card.card-entrance .login-forgot-link,.login-page:not(.entrance-ready) .login-footer{animation-play-state:paused}.login-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);z-index:10;flex-shrink:0;justify-content:space-between;align-items:center;height:84px;padding:0 2.5rem;display:flex}.login-header-brand{align-items:center;gap:1.15rem;display:flex}.login-header-logo{object-fit:contain;border:1px solid var(--border-color);background:#fff;border-radius:50%;flex-shrink:0;width:62px;height:62px;padding:3px;box-shadow:0 2px 8px #00000014}.login-header-title{font-family:var(--font-heading);color:var(--text-primary);letter-spacing:-.5px;margin:0;font-size:1.85rem;font-weight:700;line-height:1.1}@keyframes loginOverlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes loginHeaderFadeDown{0%{opacity:0;transform:translateY(-32px)}to{opacity:1;transform:translate(0,0)}}@keyframes loginEmblemEntrance{0%{opacity:0;transform:translate(-45px,25px)scale(.9)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes loginCardEntrance{0%{opacity:0;transform:translate(45px,35px)scale(.91)}to{opacity:1;transform:translate(0,0)scale(1)}}@keyframes loginAvatarPop{0%{opacity:0;transform:scale(.65)translateY(16px)}70%{transform:scale(1.06)translateY(-2px)}to{opacity:1;transform:scale(1)translate(0,0)}}@keyframes loginContentFadeUp{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translate(0,0)}}@keyframes loginShake{0%,to{transform:translate(0,0)}15%,45%,75%{transform:translate(-8px)}30%,60%,90%{transform:translate(8px)}}@keyframes loginSuccessGlow{0%{opacity:0;transform:scale(.8)}50%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}@keyframes loginExitLeft{0%{opacity:1;transform:translate(0,0)scale(1)}to{opacity:0;transform:translate(-120px)scale(.88)}}@keyframes loginExitRight{0%{opacity:1;transform:translateY(-6px)scale(1.02)}to{opacity:0;transform:translate(120px)scale(.88)}}@keyframes loginExitUp{0%{opacity:1;transform:translate(0,0)}to{opacity:0;transform:translateY(-35px)}}@keyframes buttonReadyPulse{0%,to{transform:translateY(-1px);box-shadow:0 4px 18px #0284c761}50%{transform:translateY(-2px);box-shadow:0 7px 24px #0284c794}}.login-header{background:var(--bg-card);border-bottom:1px solid var(--border-color);will-change:transform, opacity;flex-shrink:0;justify-content:space-between;align-items:center;height:80px;padding:0 2rem;display:flex}.login-header.header-entrance{animation:.65s cubic-bezier(.16,1,.3,1) both loginHeaderFadeDown}.login-header.exit-up{animation:.65s cubic-bezier(.16,1,.3,1) forwards loginExitUp!important}.login-header-subtitle{text-transform:uppercase;letter-spacing:2px;color:var(--text-secondary);margin-top:.2rem;font-size:.8rem;font-weight:600;display:block}.login-main{background-image:url(/fondo_fini_login.png);background-position:50%;background-size:cover;flex:1;justify-content:center;align-items:center;padding:2.5rem 2rem;display:flex;position:relative}.login-overlay{will-change:opacity;background:linear-gradient(135deg,#0a1f3a4d 0%,#0f172a61 100%);animation:.8s ease-out both loginOverlayFadeIn;position:absolute;inset:0}.login-container{z-index:2;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:3.5rem;width:100%;max-width:1380px;padding:0 1.5rem;display:flex;position:relative}.login-emblem-wrap{will-change:transform, opacity;flex:480px;justify-content:center;align-items:center;padding:1rem;display:flex}.login-emblem-wrap.emblem-entrance{animation:.85s cubic-bezier(.16,1,.3,1) .12s both loginEmblemEntrance}.login-emblem-wrap.exit-left{animation:.75s cubic-bezier(.16,1,.3,1) forwards loginExitLeft!important}.login-emblem-img{filter:drop-shadow(0 16px 36px #0000008c);width:100%;max-width:540px;height:auto;transition:transform .4s cubic-bezier(.16,1,.3,1),filter .4s}.login-emblem-img:hover{filter:drop-shadow(0 22px 45px #000000a6);transform:translateY(-5px)scale(1.02)}.login-card{text-align:center;color:#1e293b;box-sizing:border-box;will-change:transform, opacity;background:#fff;border-radius:24px;flex:0 480px;width:100%;max-width:480px;padding:3rem 2.6rem;position:relative;box-shadow:0 28px 60px -12px #00000073}.login-card.card-entrance{animation:.85s cubic-bezier(.16,1,.3,1) .2s both loginCardEntrance}.login-card.shake{animation:.45s cubic-bezier(.36,.07,.19,.97) both loginShake!important}.login-card.exit-right{animation:.75s cubic-bezier(.16,1,.3,1) forwards loginExitRight!important}.login-card.card-entrance .login-avatar{animation:.65s cubic-bezier(.34,1.56,.64,1) .32s both loginAvatarPop}.login-card.card-entrance .login-card-title{animation:.6s cubic-bezier(.16,1,.3,1) .42s both loginContentFadeUp}.login-card.card-entrance .login-card-subtitle{animation:.6s cubic-bezier(.16,1,.3,1) .48s both loginContentFadeUp}.login-card.card-entrance form{animation:.6s cubic-bezier(.16,1,.3,1) .55s both loginContentFadeUp}.login-card.card-entrance .login-forgot-link{animation:.6s cubic-bezier(.16,1,.3,1) .62s both loginContentFadeUp}.login-avatar{color:#64748b;will-change:transform, opacity;background:#f1f5f9;border-radius:50%;justify-content:center;align-items:center;width:84px;height:84px;margin:0 auto 1.35rem;transition:all .25s;display:flex}.login-avatar svg{width:44px;height:44px}.login-card-title{color:#0f172a;font-size:1.55rem;font-weight:700;font-family:var(--font-heading);margin:0 0 .35rem}.login-card-subtitle{color:#64748b;margin:0 0 1.75rem;font-size:.88rem}.login-pin-input{letter-spacing:7px;text-align:center;box-sizing:border-box;border-radius:12px;outline:none;width:100%;padding:.9rem 3.2rem;font-size:1.35rem;transition:border-color .2s,background-color .2s,box-shadow .2s,transform .15s}.login-pin-input:focus{transform:translateY(-1px);border-color:#0284c7!important;box-shadow:0 0 0 3.5px #0284c72e!important}.login-btn-submit{color:#fff;cursor:pointer;background:#0a192f;border:none;border-radius:12px;width:100%;margin-top:.75rem;padding:1rem;font-size:1.05rem;font-weight:600;transition:background .25s,transform .15s cubic-bezier(.34,1.56,.64,1),box-shadow .25s;box-shadow:0 4px 16px #0a192f4d}.login-btn-submit:not(:disabled):hover{transform:translateY(-2px);background:#0284c7!important;box-shadow:0 8px 22px #0284c766!important}.login-btn-submit:not(:disabled):active{transform:translate(0,0)scale(.98)}.login-btn-submit.ready-to-submit{animation:2s ease-in-out infinite buttonReadyPulse;background:linear-gradient(135deg,#0a192f 0%,#0284c7 100%)!important}.login-forgot-link{color:#1e293b;cursor:pointer;background:0 0;border:none;margin-top:1.5rem;font-size:.9rem;font-weight:600;text-decoration:underline;transition:color .2s,transform .15s;display:inline-block}.login-forgot-link:hover{transform:translateY(-1px);color:#0284c7!important}.login-footer{background:var(--bg-card);border-top:1px solid var(--border-color);text-align:center;color:var(--text-muted);flex-shrink:0;padding:.85rem 1rem;font-size:.75rem;animation:.7s cubic-bezier(.16,1,.3,1) .68s both loginContentFadeUp}@media (prefers-reduced-motion:reduce){.login-header,.login-header.header-entrance,.login-header.exit-up,.login-overlay,.login-emblem-wrap,.login-emblem-wrap.emblem-entrance,.login-emblem-wrap.exit-left,.login-card,.login-card.card-entrance,.login-card.shake,.login-card.exit-right,.login-avatar,.login-card-title,.login-card-subtitle,.login-card form,.login-btn-submit,.login-btn-submit.ready-to-submit,.login-forgot-link,.login-footer,.login-emblem-img{transition:none!important;animation:none!important;transform:none!important}}@media (width<=900px){.login-container{flex-direction:column;align-items:center;gap:1.5rem;padding:0}.login-emblem-wrap{flex:none;max-width:280px;padding:0}.login-emblem-img{max-width:260px}.login-card{flex:none;max-width:380px;height:auto;min-height:0}}@media (width<=768px){.login-header{height:66px;padding:0 1rem}.login-header-brand{gap:.75rem}.login-header-logo{width:44px;height:44px;padding:2px}.login-header-title{font-size:1.25rem}.login-header-subtitle{letter-spacing:.8px;margin-top:.1rem;font-size:.62rem}.login-main{justify-content:center;align-items:center;padding:1rem .75rem 1.25rem}.login-container{justify-content:center;align-items:center;gap:.75rem}.login-emblem-wrap{max-width:180px;margin:0 auto}.login-emblem-img{filter:drop-shadow(0 4px 12px #00000073);max-width:170px}.login-card{box-sizing:border-box;border-radius:18px;width:86%;max-width:320px;margin:0 auto;padding:1.15rem 1.15rem .95rem;box-shadow:0 14px 32px #0006;flex:none!important;height:auto!important;min-height:0!important}.login-card form{margin:0}.login-avatar{width:48px;height:48px;margin:0 auto .45rem}.login-avatar svg{width:24px;height:24px}.login-card-title{margin-bottom:.1rem;font-size:1.1rem}.login-card-subtitle{margin-bottom:.75rem;font-size:.7rem}.login-pin-input{letter-spacing:5px;border-radius:9px;padding:.62rem 2.3rem;font-size:1.05rem}.login-btn-submit{border-radius:9px;margin-top:.4rem;padding:.72rem;font-size:.9rem}.login-forgot-link{margin-top:.65rem;margin-bottom:0;font-size:.76rem}.login-footer{padding:.65rem .75rem;font-size:.68rem}}.forgot-modal-box{background:var(--bg-card);border:1px solid var(--border-color);box-sizing:border-box;border-radius:22px;width:92%;max-width:540px;padding:2.5rem 2.2rem;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:relative;box-shadow:0 28px 65px -15px #00000080}.forgot-modal-header{text-align:center;margin-bottom:1.85rem}.forgot-modal-icon-wrap{background:var(--bg-secondary);border:1px solid var(--border-color);width:58px;height:58px;color:var(--accent-primary);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 1rem;display:flex;box-shadow:0 4px 14px #0000000f}.forgot-modal-title{font-family:var(--font-heading);color:var(--text-primary);margin:0 0 .45rem;font-size:1.5rem;font-weight:700}.forgot-modal-desc{color:var(--text-secondary);max-width:440px;margin:0 auto;font-size:.86rem;line-height:1.5}.forgot-dev-list{flex-direction:column;gap:.85rem;margin-bottom:1.75rem;display:flex}.forgot-dev-card{background:var(--bg-secondary);border:1px solid var(--border-color);box-sizing:border-box;border-radius:15px;justify-content:space-between;align-items:center;gap:.85rem;padding:.95rem 1.2rem;transition:transform .2s,box-shadow .2s,border-color .2s;display:flex}.forgot-dev-avatar{color:#fff;width:46px;height:46px;font-family:var(--font-heading);background:linear-gradient(135deg,#0a192f 0%,#1e3a8a 100%);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.3rem;font-weight:700;display:flex;box-shadow:0 3px 10px #0a192f40}.forgot-dev-name{font-family:var(--font-heading);color:var(--text-primary);white-space:nowrap;font-size:1.05rem;font-weight:700}.forgot-dev-pill{color:#16a34a;white-space:nowrap;background:#16a34a1a;border-radius:10px;align-items:center;gap:3px;padding:1px 6px;font-size:.65rem;font-weight:600;display:inline-flex}.forgot-dev-role{color:var(--text-secondary);white-space:nowrap;font-size:.74rem}.forgot-dev-phone{color:var(--text-muted);white-space:nowrap;font-family:monospace;font-size:.72rem}.forgot-dev-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#25d366;border:none;border-radius:10px;flex-shrink:0;align-items:center;gap:.45rem;padding:.55rem .95rem;font-size:.82rem;font-weight:600;text-decoration:none;transition:background-color .2s,transform .15s,box-shadow .2s;display:inline-flex;box-shadow:0 3px 10px #25d36659}.forgot-dev-btn:hover{background:#20bd5a;transform:scale(1.03);box-shadow:0 5px 15px #25d36673}.forgot-back-btn{border:1px solid var(--border-color);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:11px;padding:.78rem;font-size:.88rem;font-weight:600;transition:all .2s}@media (width<=768px){.forgot-modal-box{border-radius:18px!important;width:88%!important;max-width:340px!important;max-height:92vh!important;padding:1.25rem 1.1rem 1.1rem!important;overflow-y:auto!important}.forgot-modal-header{margin-bottom:.9rem!important}.forgot-modal-icon-wrap{width:44px!important;height:44px!important;margin:0 auto .5rem!important}.forgot-modal-icon-wrap svg{width:22px!important;height:22px!important}.forgot-modal-title{margin-bottom:.25rem!important;font-size:1.18rem!important}.forgot-modal-desc{font-size:.75rem!important;line-height:1.35!important}.forgot-dev-list{gap:.55rem!important;margin-bottom:1rem!important}.forgot-dev-card{border-radius:12px!important;gap:.5rem!important;padding:.65rem .75rem!important}.forgot-dev-avatar{width:38px!important;height:38px!important;font-size:1.05rem!important}.forgot-dev-name{font-size:.95rem!important}.forgot-dev-pill,.forgot-dev-role{display:none!important}.forgot-dev-phone{color:var(--text-secondary)!important;font-size:.74rem!important;display:block!important}.forgot-dev-btn{border-radius:8px!important;gap:.35rem!important;padding:.45rem .7rem!important;font-size:.78rem!important}.forgot-dev-btn svg{width:14px!important;height:14px!important}.forgot-back-btn{border-radius:9px!important;padding:.65rem .85rem!important;font-size:.82rem!important}}
