@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";
:root{--bg-primary:#0a0e1a;--bg-secondary:#111827;--bg-card:#1a2236;--bg-card-hover:#1e2944;--bg-input:#151d30;--bg-glass:#1a2236b3;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#3b82f6;--accent-primary-hover:#2563eb;--accent-success:#10b981;--accent-success-hover:#059669;--accent-danger:#ef4444;--accent-danger-hover:#dc2626;--accent-warning:#f59e0b;--border-color:#1e293b;--border-subtle:#ffffff0f;--gradient-primary:linear-gradient(135deg,#3b82f6,#8b5cf6);--gradient-success:linear-gradient(135deg,#10b981,#3b82f6);--gradient-card:linear-gradient(145deg,#1a2236,#111827);--gradient-hero:linear-gradient(180deg,#0a0e1a 0%,#111827 50%,#0a0e1a 100%);--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 12px #0006;--shadow-lg:0 8px 32px #00000080;--shadow-glow:0 0 20px #3b82f626;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.4s cubic-bezier(.4,0,.2,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased}body{font-family:var(--font-family);background:var(--bg-primary);color:var(--text-primary);min-height:100vh;line-height:1.6;overflow-x:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{color:inherit;font-family:inherit}.app-container{flex-direction:column;min-height:100vh;display:flex}.main-content{flex:1;width:100%;max-width:1200px;margin:0 auto;padding:2rem}.navbar{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid var(--border-subtle);z-index:100;justify-content:space-between;align-items:center;padding:1rem 2rem;display:flex;position:sticky;top:0}.navbar-brand{align-items:center;gap:.75rem;display:flex}.navbar-logo{background:var(--gradient-primary);border-radius:var(--radius-sm);color:#fff;justify-content:center;align-items:center;width:36px;height:36px;font-size:1rem;font-weight:800;display:flex}.navbar-title{letter-spacing:-.03em;font-size:1.2rem;font-weight:700}.navbar-subtitle{color:var(--text-muted);font-size:.75rem;font-weight:400}.navbar-actions{align-items:center;gap:1rem;display:flex}.navbar-user{color:var(--text-secondary);align-items:center;gap:.5rem;font-size:.875rem;display:flex}.navbar-avatar{background:var(--gradient-primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:.75rem;font-weight:600;display:flex}.btn{border-radius:var(--radius-sm);transition:all var(--transition-normal);cursor:pointer;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-size:.875rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-primary:active{transform:translateY(0)}.btn-success{background:var(--gradient-success);color:#fff}.btn-success:hover{transform:translateY(-1px);box-shadow:0 0 20px #10b98133}.btn-danger{background:var(--accent-danger);color:#fff}.btn-danger:hover{background:var(--accent-danger-hover)}.btn-outline{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0}.btn-outline:hover{border-color:var(--accent-primary);color:var(--accent-primary);background:#3b82f60d}.btn-lg{border-radius:var(--radius-md);padding:.875rem 2rem;font-size:1rem}.btn-sm{padding:.375rem .75rem;font-size:.8rem}.btn-full{width:100%}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-normal);padding:1.5rem}.card:hover{box-shadow:var(--shadow-glow);border-color:#3b82f633;transform:translateY(-2px)}.card-clickable{cursor:pointer}.form-group{margin-bottom:1.25rem}.form-label{color:var(--text-secondary);margin-bottom:.5rem;font-size:.85rem;font-weight:500;display:block}.form-input{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);transition:all var(--transition-fast);outline:none;padding:.75rem 1rem;font-size:.9rem}.form-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 3px #3b82f626}.form-input::placeholder{color:var(--text-muted)}.form-error{color:var(--accent-danger);margin-top:.375rem;font-size:.8rem}.badge{letter-spacing:.02em;border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-available{color:var(--accent-success);background:#10b98126;border:1px solid #10b98133}.badge-occupied{color:var(--accent-danger);background:#ef444426;border:1px solid #ef444433}.badge-info{color:var(--accent-primary);background:#3b82f626;border:1px solid #3b82f633}.login-page{background:var(--gradient-hero);justify-content:center;align-items:center;min-height:100vh;display:flex;position:relative;overflow:hidden}.login-page:before{content:"";background:radial-gradient(circle at 30%,#3b82f614 0%,#0000 50%),radial-gradient(circle at 70% 30%,#8b5cf60f 0%,#0000 50%);width:200%;height:200%;animation:20s ease-in-out infinite float;position:absolute;top:-50%;left:-50%}@keyframes float{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-20px,-20px)rotate(1deg)}}.login-container{z-index:10;width:100%;max-width:420px;padding:0 1.5rem;position:relative}.login-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);padding:2.5rem}.login-header{text-align:center;margin-bottom:2rem}.login-icon{background:var(--gradient-primary);border-radius:var(--radius-lg);width:64px;height:64px;box-shadow:var(--shadow-glow);justify-content:center;align-items:center;margin:0 auto 1rem;font-size:1.5rem;display:flex}.login-header h1{letter-spacing:-.03em;margin-bottom:.375rem;font-size:1.5rem;font-weight:700}.login-header p{color:var(--text-muted);font-size:.875rem}.login-domain-note{border-radius:var(--radius-sm);color:var(--accent-primary);text-align:center;background:#3b82f614;border:1px solid #3b82f626;margin-bottom:1.5rem;padding:.625rem .875rem;font-size:.8rem}.page-header{margin-bottom:2rem}.page-header h1{letter-spacing:-.03em;margin-bottom:.375rem;font-size:1.75rem;font-weight:700}.page-header p{color:var(--text-secondary);font-size:.9rem}.college-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;display:grid}.college-card{flex-direction:column;gap:.75rem;display:flex}.college-card-icon{background:var(--gradient-primary);border-radius:var(--radius-md);color:#fff;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.25rem;font-weight:700;display:flex}.college-card h3{font-size:1.1rem;font-weight:600}.college-card p{color:var(--text-secondary);font-size:.85rem;line-height:1.4}.college-card-stats{color:var(--text-muted);gap:1rem;font-size:.8rem;display:flex}.booking-layout{grid-template-columns:280px 1fr 280px;gap:1.5rem;min-height:calc(100vh - 140px);display:grid}.booking-panel{background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);height:fit-content;padding:1.5rem}.booking-panel h3{border-bottom:1px solid var(--border-subtle);margin-bottom:1rem;padding-bottom:.75rem;font-size:1rem;font-weight:600}.prof-select{background:var(--bg-input);border:1px solid var(--border-color);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);cursor:pointer;outline:none;margin-bottom:1rem;padding:.625rem .75rem;font-size:.85rem}.prof-select:focus{border-color:var(--accent-primary)}.prof-info-card{border-radius:var(--radius-md);background:#3b82f60d;border:1px solid #3b82f61a;padding:1rem}.prof-info-card .prof-name{margin-bottom:.5rem;font-size:.95rem;font-weight:600}.prof-info-item{color:var(--text-secondary);align-items:center;gap:.5rem;margin-bottom:.375rem;font-size:.8rem;display:flex}.prof-info-item span{color:var(--text-primary)}.room-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.75rem;display:grid}.room-card{border-radius:var(--radius-md);text-align:center;cursor:pointer;transition:all var(--transition-normal);background:var(--bg-card);border:2px solid #0000;padding:1rem}.room-card:hover{background:var(--bg-card-hover);border-color:#3b82f64d}.room-card.selected{border-color:var(--accent-primary);box-shadow:var(--shadow-glow);background:#3b82f61a}.room-card .room-name{margin-bottom:.25rem;font-size:.95rem;font-weight:600}.time-slots{flex-direction:column;gap:.5rem;max-height:500px;display:flex;overflow-y:auto}.time-slots::-webkit-scrollbar{width:4px}.time-slots::-webkit-scrollbar-track{background:0 0}.time-slots::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.time-slot{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;justify-content:space-between;align-items:center;padding:.625rem .875rem;font-size:.8rem;font-weight:500;display:flex}.time-slot.available{background:var(--bg-card);color:var(--text-primary)}.time-slot.available:hover{background:var(--bg-card-hover);border-color:var(--accent-primary)}.time-slot.selected{border-color:var(--accent-primary);color:var(--accent-primary);background:#3b82f626}.time-slot.occupied{color:var(--text-muted);cursor:not-allowed;background:#ef444414;text-decoration:line-through}.time-slot-status{text-transform:uppercase;letter-spacing:.05em;font-size:.7rem;font-weight:600}.modal-overlay{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:200;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);width:100%;max-width:480px;box-shadow:var(--shadow-lg);padding:2rem;animation:.3s cubic-bezier(.4,0,.2,1) slideUp}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal h2{margin-bottom:1.25rem;font-size:1.25rem;font-weight:700}.modal-summary{background:var(--bg-card);border-radius:var(--radius-md);margin-bottom:1.25rem;padding:1rem}.modal-summary-row{justify-content:space-between;align-items:center;padding:.375rem 0;font-size:.85rem;display:flex}.modal-summary-row .label{color:var(--text-muted)}.modal-summary-row .value{color:var(--text-primary);font-weight:600}.modal-actions{gap:.75rem;margin-top:1.5rem;display:flex}.success-container{text-align:center;padding:3rem 1.5rem}.success-icon{border:2px solid var(--accent-success);background:#10b9811a;border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto 1.5rem;font-size:2rem;animation:.4s cubic-bezier(.4,0,.2,1) scaleIn;display:flex}@keyframes scaleIn{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}.success-container h2{color:var(--accent-success);margin-bottom:.5rem;font-size:1.5rem;font-weight:700}.success-container p{color:var(--text-secondary);max-width:360px;margin:0 auto 2rem;font-size:.9rem}.spinner{border:2.5px solid #fff3;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.loading-overlay{z-index:300;background:#0a0e1acc;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.loading-content{text-align:center}.loading-content .spinner{width:40px;height:40px;margin:0 auto 1rem}.loading-content p{color:var(--text-secondary);font-size:.9rem}.empty-state{text-align:center;color:var(--text-muted);padding:3rem}.empty-state-icon{margin-bottom:1rem;font-size:3rem}.error-banner{border-radius:var(--radius-md);color:var(--accent-danger);background:#ef44441a;border:1px solid #ef444433;align-items:center;gap:.5rem;margin-bottom:1rem;padding:.875rem 1rem;font-size:.85rem;display:flex}.success-banner{border-radius:var(--radius-md);color:var(--accent-success);background:#10b9811a;border:1px solid #10b98133;margin-bottom:1rem;padding:.875rem 1rem;font-size:.85rem}@media (max-width:1024px){.booking-layout{grid-template-columns:1fr}}@media (max-width:768px){.main-content{padding:1rem}.navbar{padding:.75rem 1rem}.college-grid{grid-template-columns:1fr}.login-card{padding:1.5rem}}
