.page-shell{background:linear-gradient(135deg,#0f172a 0%,#1e293b 60%,#0f172a 100%);flex-direction:column;align-items:center;min-height:100vh;padding:4.5rem 1rem 4rem;font-family:Geist Sans,Inter,Arial,Helvetica,sans-serif;display:flex;position:relative}.mt-4{margin-top:1rem}.mt-2{margin-top:.5rem}.confirm-delete-overlay{z-index:20;text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:2.5rem;animation:.3s fadeIn;display:flex;position:absolute;top:0;left:0}.confirm-icon-box{background:#fef2f2;border-radius:99px;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;display:flex}.confirm-delete-overlay h3{color:#0f172a;margin-bottom:.75rem;font-size:1.5rem;font-weight:800}.confirm-delete-overlay p{color:#64748b;margin-bottom:2rem;font-size:.95rem;line-height:1.6}.confirm-btn-group{flex-direction:column;gap:.75rem;width:100%;display:flex}.btn-confirm-yes{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:12px;height:3.5rem;font-size:1rem;font-weight:800;transition:all .2s}.btn-confirm-yes:hover{background:#dc2626;transform:scale(1.02)}.btn-confirm-no{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:12px;height:3.5rem;font-size:1rem;font-weight:800}.btn-confirm-no:hover{background:#e2e8f0}.admin-status-bar{z-index:50;align-items:center;gap:.75rem;font-size:.75rem;display:flex;position:absolute;top:1rem;right:1.5rem}.admin-chip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#f1f5f9;background:#0f172a99;border:1px solid #ffffff26;border-radius:99px;align-items:center;gap:.65rem;padding:.5rem 1rem;font-weight:600;display:flex;box-shadow:0 4px 12px #0003}.login-pill{color:#0f172a;text-transform:uppercase;letter-spacing:.05em;background:#fff;border-radius:99px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.7rem;font-weight:800;text-decoration:none;transition:all .2s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}.login-pill:hover{background:#f8fafc;transform:translateY(-2px);box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.logout-link{color:#fb7185;cursor:pointer;text-transform:uppercase;background:0 0;border:none;border-left:1px solid #fff3;margin-left:.25rem;padding:0 0 0 .75rem;font-size:.7rem;font-weight:700;transition:opacity .2s}.logout-link:hover{opacity:.8}.dot{background:#64748b;border-radius:50%;width:6px;height:6px}.dot.active{background:#22c55e;animation:2s infinite pulse;box-shadow:0 0 8px #22c55e}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.3)}to{opacity:1;transform:scale(1)}}.page-header{text-align:center;margin-bottom:2rem}.page-header-eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#38bdf8;background:#38bdf814;border:1px solid #38bdf833;border-radius:999px;align-items:center;gap:.45rem;margin-bottom:.75rem;padding:.25rem .85rem;font-size:.72rem;font-weight:600;display:inline-flex}.page-header-title{color:#f1f5f9;letter-spacing:-.02em;margin:0 0 .3rem;font-size:clamp(1.5rem,4vw,2.2rem);font-weight:800}.page-header-sub{color:#64748b;margin:0;font-size:.88rem}.tab-bar-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#ffffff0a;border:1px solid #ffffff14;border-radius:16px;gap:.25rem;margin-bottom:2rem;padding:.35rem;display:inline-flex}.tab-btn{color:#94a3b8;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:11px;align-items:center;gap:.5rem;padding:.6rem 1.25rem;font-family:inherit;font-size:.85rem;font-weight:600;transition:color .2s,background .2s;display:flex;position:relative}.tab-btn:hover:not(.tab-btn--active){color:#cbd5e1;background:#ffffff0f}.tab-btn--active{color:#fff;background:#2563eb;box-shadow:0 2px 12px #2563eb73}.tab-btn-inner{text-align:left;flex-direction:column;align-items:flex-start;gap:1px;display:flex}.tab-eyebrow{letter-spacing:.1em;text-transform:uppercase;opacity:.65;font-size:.62rem;font-weight:600;line-height:1}.tab-name{font-size:.82rem;font-weight:700;line-height:1.2}.tab-panel{width:100%;max-width:720px;animation:.22s tab-fade-in}@keyframes tab-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:560px){.tab-bar-card{flex-direction:column;width:100%}.tab-btn{justify-content:center}}.refresh-btn{color:#94a3b8;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffff0d;border:1px solid #ffffff1a;border-radius:99px;align-items:center;gap:.5rem;padding:.5rem .85rem;font-size:.75rem;font-weight:700;transition:all .2s;display:flex}.refresh-btn:hover:not(:disabled){color:#fff;background:#ffffff1a;border-color:#fff3}.refresh-btn:disabled{opacity:.5;cursor:not-allowed}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.refresh-btn.tab-sub-refresh{color:#f1f5f9;background:#ffffff14;border:1.5px solid #ffffff1f;margin:0 auto 2rem;padding:.75rem 1.5rem;font-size:.8rem}.refresh-btn.tab-sub-refresh:hover{background:#ffffff26;transform:translateY(-1px)}.page-footer{z-index:10;justify-content:center;align-items:center;gap:.4rem;width:100%;margin-top:auto;padding:3rem 0 1rem;display:flex}.footer-text{color:#64748b;opacity:.5;font-size:.75rem;font-weight:500}.footer-link{color:#64748b;letter-spacing:.05em;opacity:.6;background:#0f172a66;border:1px solid #ffffff0d;border-radius:99px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.75rem;font-weight:600;text-decoration:none;transition:all .2s;display:flex}.footer-link:hover{opacity:1;color:#38bdf8;background:#38bdf80d;border-color:#38bdf833;transform:translateY(-2px)}
.bus-wrapper{justify-content:center;font-family:Geist Sans,Inter,Arial,Helvetica,sans-serif;transition:opacity .3s;display:flex;position:relative}.is-updating-opacity{opacity:.6;pointer-events:none}.update-overlay{z-index:100;color:#1e40af;background:#ffffffe6;border-radius:99px;align-items:center;gap:.75rem;padding:1rem 2rem;font-weight:600;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 25px #0000001a}.spinner{border:3px solid #e2e8f0;border-top-color:#2563eb;border-radius:50%;width:20px;height:20px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bus-container{background:#fff;border:1px solid #e2e8f0;border-radius:16px;width:100%;max-width:680px;overflow:hidden;box-shadow:0 0 0 1px #0000000a,0 8px 32px #0000001f}.bus-title{color:#fff;letter-spacing:.01em;background:linear-gradient(90deg,#1e40af 0%,#2563eb 100%);justify-content:center;align-items:center;gap:.5rem;padding:.85rem 1.25rem;font-size:1rem;font-weight:700;display:flex}.bus-label{opacity:.75;font-size:.85rem;font-weight:500}.bus-table{border-collapse:collapse;table-layout:fixed;width:100%}.col-left-window,.col-left-aisle,.col-aisle,.col-right-aisle,.col-right-window{width:20%}.bus-table td{vertical-align:middle;border:1px solid #e2e8f0;padding:0}.special-cell{text-align:center;vertical-align:middle;height:52px;padding:.5rem}.driver-seat{color:#000;background:#f0f9ff;border-bottom:2px solid #bae6fd!important}.entrance-cell{color:#15803d;background:#f0fdf4}.tour-guide-cell{color:#854d0e;background:#fefce8}.empty-front{background:#fafafa}.special-label{letter-spacing:.03em;text-transform:uppercase;font-size:.78rem;font-weight:700;display:block}.aisle-cell{text-align:center;vertical-align:middle;background:#f8fafc;border-left:2px solid #cbd5e1!important;border-right:2px solid #cbd5e1!important}.aisle-label-cell{padding:.5rem 0}.aisle-text{color:#94a3b8;letter-spacing:.2em;text-transform:uppercase;flex-direction:column;align-items:center;gap:0;font-size:.62rem;font-weight:800;line-height:1.5;display:flex}.passenger-row{height:58px}.passenger-row:nth-child(2n) .seat-occupied,.passenger-row:nth-child(2n) .seat-vacant,.passenger-row:nth-child(2n) .seat-empty{background-color:#fafafa}.seat-cell{padding:.4rem .6rem;transition:background .15s}.seat-cell-inner{flex-direction:column;display:flex;position:relative}.admin-cell-clickable{position:relative;cursor:pointer!important}.admin-edit-badge{color:#fff;text-transform:uppercase;opacity:.7;background:#0f172a;border-radius:4px;align-items:center;gap:2px;padding:2px 6px;font-size:.55rem;font-weight:800;transition:opacity .2s;display:flex;position:absolute;top:4px;right:6px}.admin-cell-clickable:hover .admin-edit-badge{opacity:1}.seat-occupied{background:#f0fdf4!important;border-left:3px solid #16a34a!important}.seat-requested{background:#fffbeb!important;border-left:3px solid #f59e0b!important}.seat-vacant{cursor:pointer;background:#fff;position:relative}.seat-empty{background:#fafafa}.seat-number{color:#fff;letter-spacing:.04em;background:#2563eb;border-radius:4px;justify-content:center;align-items:center;margin-bottom:3px;padding:1px 5px;font-size:.6rem;font-weight:700;line-height:1.4;display:inline-flex}.seat-occupied .seat-number{background:#16a34a}.seat-vacant .seat-number{background:#94a3b8}.seat-requested .seat-number{background:#f59e0b}.seat-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;font-weight:500;line-height:1.3;display:block;overflow:hidden}.seat-occupied .seat-name{color:#15803d;font-weight:700}.requested-label{color:#b45309}.request-stack{flex-direction:column;display:flex}.request-label-text{text-transform:uppercase;opacity:.6;letter-spacing:.05em;font-size:.55rem;font-weight:800}.request-name{font-size:.78rem;font-weight:700}.request-subtext{opacity:.8;font-size:.72rem;font-weight:600}.vacant-label{color:#cbd5e1;font-size:.75rem;font-style:italic;font-weight:400}.click-to-request,.click-to-view{text-transform:uppercase;opacity:0;font-size:.55rem;font-weight:800;transition:opacity .2s;position:absolute;bottom:4px;right:6px}.click-to-request{color:#2563eb}.click-to-view{color:#f59e0b}.seat-vacant:hover .click-to-request,.seat-requested:hover .click-to-view{opacity:1}.seat-occupied:hover{background:#dcfce7!important}.seat-requested:hover{background:#fef3c7!important}.seat-vacant:hover{background:#f1f5f9!important}@media (max-width:600px){.bus-container{border-radius:12px}.seat-name{font-size:.7rem}.special-label{font-size:.68rem}}
.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#0f172a66;justify-content:center;align-items:center;width:100%;height:100%;animation:.3s fadeIn;display:flex;position:fixed;top:0;left:0}.modal-content{background:#fff;border-radius:24px;width:90%;max-width:400px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:relative;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a}.close-btn{cursor:pointer;color:#94a3b8;z-index:10;background:0 0;border:none;position:absolute;top:1.25rem;right:1.25rem}.modal-header{align-items:center;gap:1.25rem;padding:2.5rem 2rem 1.5rem;display:flex}.modal-icon{border-radius:16px;justify-content:center;align-items:center;width:56px;height:56px;display:flex}.icon-request{color:#16a34a;background:#f0fdf4}.icon-view{color:#d97706;background:#fffbeb}.modal-title{color:#0f172a;margin:0;font-size:1.25rem;font-weight:800}.modal-sub{color:#64748b;margin-top:2px;font-size:.875rem;font-weight:600}.modal-body{padding:0 2rem 2rem}.input-group{flex-direction:column;gap:.5rem;display:flex}.input-group label{text-transform:uppercase;letter-spacing:.05em;color:#94a3b8;margin-left:.25rem;font-size:.75rem;font-weight:800}.input-wrapper{position:relative}.input-icon{color:#94a3b8;position:absolute;top:50%;left:1rem;transform:translateY(-50%)}.modal-input{color:#0f172a;border:2px solid #f1f5f9;border-radius:12px;width:100%;height:3rem;padding-left:3rem;padding-right:1rem;font-size:1rem;font-weight:600;transition:all .2s}.modal-input:focus{background:#f8fafc;border-color:#3b82f6;outline:none}.info-card{background:#f8fafc;border-radius:16px;flex-direction:column;gap:.25rem;margin-bottom:1.5rem;padding:1.5rem;display:flex}.info-label{color:#64748b;text-transform:uppercase;font-size:.75rem;font-weight:800}.info-value{color:#0f172a;font-size:1.125rem;font-weight:700}.info-note{color:#94a3b8;margin-bottom:2rem;font-size:.75rem;line-height:1.6}.request-list-view{background:#f8fafc;border-radius:16px;flex-direction:column;gap:.75rem;max-height:180px;margin-bottom:1.5rem;padding:1rem;display:flex;overflow-y:auto}.requester-item{color:#1e293b;background:#fff;border:1px solid #f1f5f9;border-radius:10px;align-items:center;gap:.75rem;padding:.5rem;font-size:.9rem;font-weight:600;display:flex}.no-requesters{text-align:center;color:#94a3b8;padding:1rem 0;font-size:.85rem}.input-helper{color:#94a3b8;text-align:right;margin-top:4px;font-size:11px;font-weight:500}.limit-alert{color:#991b1b;background:#fef2f2;border-left:3px solid #ef4444;border-radius:4px;margin:1rem 0;padding:.75rem 1rem;font-size:.82rem;font-weight:600;line-height:1.4}.modal-footer{gap:.75rem;margin-top:1.5rem;display:flex}.btn-cancel{color:#64748b;cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex:1;height:3rem;font-weight:700}.btn-submit{color:#fff;text-transform:uppercase;letter-spacing:.05em;cursor:pointer;background:#0f172a;border:none;border-radius:12px;flex:2;height:3rem;font-size:.8rem;font-weight:700;transition:opacity .2s}.btn-submit:disabled{opacity:.3;cursor:not-allowed}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.admin-modal-content{background:#fff;border-radius:32px;width:95%;max-width:440px;animation:.3s cubic-bezier(.16,1,.3,1) slideUp;position:relative;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.admin-header{border-bottom:2px solid #f8fafc;padding-bottom:1.5rem!important}.icon-admin{color:#1e293b;background:#f1f5f9}.status-pill{letter-spacing:.05em;text-transform:uppercase;border-radius:99px;margin-left:.5rem;padding:.25rem .6rem;font-size:.65rem;font-weight:800}.status-vacant{color:#64748b;background:#e2e8f0}.status-occupied{color:#16a34a;background:#dcfce7}.status-requested{color:#d97706;background:#fef3c7}.admin-section{background:#f8fafc;border-radius:20px;flex-direction:column;gap:.75rem;margin-bottom:1.5rem;padding:1.25rem;display:flex}.section-label{text-transform:uppercase;color:#94a3b8;letter-spacing:.07em;padding-left:4px;font-size:.7rem;font-weight:800}.request-info-box{color:#1e293b;background:#fff;border:1px solid #e2e8f0;border-radius:12px;align-items:center;gap:.75rem;padding:1rem;font-size:.95rem;display:flex}.btn-action.approve-full{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:16px;justify-content:center;align-items:center;gap:.75rem;height:3.5rem;font-size:1rem;font-weight:800;transition:all .2s;display:flex;box-shadow:0 10px 15px -3px #16a34a4d}.btn-action.approve-full:hover{background:#15803d;transform:translateY(-2px);box-shadow:0 20px 25px -5px #16a34a66}.manual-form{gap:.5rem;display:flex}.manual-form .input-wrapper{flex:1}.btn-save{color:#fff;text-transform:uppercase;cursor:pointer;background:#0f172a;border:none;border-radius:12px;padding:0 1rem;font-size:.75rem;font-weight:800}.btn-danger-outline{color:#ef4444;cursor:pointer;background:0 0;border:2px solid #fee2e2;border-radius:16px;justify-content:center;align-items:center;gap:.5rem;height:3rem;font-size:.85rem;font-weight:800;transition:all .2s;display:flex}.btn-danger-outline:hover{background:#fef2f2;border-color:#fecaca}.mt-auto{margin-top:auto}.btn-view-requests{color:#1e293b;cursor:pointer;background:#fff;border:1.5px solid #e2e8f0;border-radius:12px;justify-content:space-between;align-items:center;width:100%;padding:.75rem 1rem;font-size:.9rem;font-weight:700;transition:all .2s;display:flex}.btn-view-requests:hover{background:#f8fafc;border-color:#cbd5e1}.count-tag{color:#64748b;background:#f1f5f9;border-radius:99px;padding:.2rem .5rem;font-size:.7rem;font-weight:800}.admin-request-list{flex-direction:column;gap:.5rem;max-height:200px;margin-top:.5rem;padding-right:4px;display:flex;overflow-y:auto}.admin-request-item{background:#fff;border:1.5px solid #f1f5f9;border-radius:16px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:all .2s;display:flex}.admin-request-item:hover{border-color:#e2e8f0;transform:translate(2px)}.admin-request-info{color:#1e293b;align-items:center;gap:.75rem;font-size:.95rem;font-weight:600;display:flex}.admin-request-actions{gap:.4rem;display:flex}.btn-mini-action{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex}.btn-mini-action.move-btn{color:#334155;background:#f1f5f9;border:1px solid #e2e8f0}.btn-mini-action.move-btn:hover:not(:disabled){color:#0f172a;background:#e2e8f0}.btn-mini-action.move-btn:disabled{opacity:.3;cursor:not-allowed}.btn-mini-action.approve{color:#16a34a;background:#dcfce7}.btn-mini-action.approve:hover{color:#fff;background:#16a34a}.btn-mini-action.remove{color:#ef4444;background:#fee2e2}.btn-mini-action.remove:hover{color:#fff;background:#ef4444}.vacant-special{border-top:6px solid #e2e8f0}.icon-vacant-admin{color:#16a34a;background:#f0fdf4}.vacant-header{border-bottom-style:dashed}.manual-form-vertical{flex-direction:column;gap:1rem;display:flex}.helper-text{color:#94a3b8;text-align:center;margin:0;font-size:.75rem}.mt-4{margin-top:1rem}.mt-2{margin-top:.5rem}.confirm-delete-overlay{z-index:20;text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;padding:2.5rem;animation:.3s fadeIn;display:flex;position:absolute;top:0;left:0}.confirm-icon-box{background:#fef2f2;border-radius:99px;justify-content:center;align-items:center;width:80px;height:80px;margin-bottom:1.5rem;display:flex}.confirm-delete-overlay h3{color:#0f172a;margin-bottom:.75rem;font-size:1.5rem;font-weight:800}.confirm-delete-overlay p{color:#64748b;margin-bottom:2rem;font-size:.95rem;line-height:1.6}.confirm-btn-group{flex-direction:column;gap:.75rem;width:100%;display:flex}.btn-confirm-yes{color:#fff;cursor:pointer;background:#ef4444;border:none;border-radius:12px;height:3.5rem;font-size:1rem;font-weight:800;transition:all .2s}.btn-confirm-yes:hover{background:#dc2626;transform:scale(1.02)}.btn-confirm-no{color:#64748b;cursor:pointer;background:#f1f5f9;border:none;border-radius:12px;height:3.5rem;font-size:1rem;font-weight:800}.btn-confirm-no:hover{background:#e2e8f0}
