:root{--bg:#fafafa;--surface:#fff;--surface2:#f4f4f5;--border:#e4e4e7;--text:#18181b;--text2:#71717a;--text3:#a1a1aa;--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:#6366f114;--success:#22c55e;--success-light:#22c55e14;--danger:#ef4444;--danger-light:#ef444414;--warning:#f59e0b;--radius:12px;--radius-sm:8px;--radius-xs:6px;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -2px #0000000d;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:var(--primary);text-decoration:none}.btn{border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;font-family:var(--font);border:none;align-items:center;gap:6px;padding:8px 16px;transition:all .15s;display:inline-flex}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-outline{border:1px solid var(--border);color:var(--text);background:#fff}.btn-outline:hover{border-color:var(--primary);color:var(--primary)}.btn-ghost{color:var(--text2);background:0 0}.btn-ghost:hover{background:var(--surface2);color:var(--text)}.btn-sm{padding:6px 12px;font-size:13px}.btn-lg{padding:12px 24px;font-size:16px}.btn-block{justify-content:center;width:100%}.btn:disabled{opacity:.6;cursor:not-allowed}.text-danger{color:var(--danger)!important}.input,select,input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=datetime-local]{border:1px solid var(--border);border-radius:var(--radius-sm);font-size:14px;font-family:var(--font);color:var(--text);background:#fff;width:100%;padding:10px 14px;transition:border .15s}.input:focus,select:focus,input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}select{cursor:pointer}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.card-header h3{font-size:15px;font-weight:600}.card-body{padding:20px}.badge{background:var(--surface2);color:var(--text2);border-radius:20px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.badge-primary{background:var(--primary-light);color:var(--primary)}.alert{border-radius:var(--radius-sm);margin-bottom:12px;padding:10px 14px;font-size:13px}.alert-error{background:var(--danger-light);color:var(--danger)}.empty-state{text-align:center;color:var(--text3);padding:40px 20px}.empty-state span{margin-bottom:12px;font-size:40px;display:block}.loading-screen{justify-content:center;align-items:center;min-height:100vh;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.landing{overflow-x:hidden}.landing-nav{justify-content:space-between;align-items:center;max-width:1200px;margin:0 auto;padding:16px 40px;display:flex}.landing-brand{font-size:20px;font-weight:700}.landing-links{align-items:center;gap:24px;display:flex}.landing-links a{color:var(--text2);font-size:14px}.landing-links a:hover{color:var(--text)}.hero{text-align:center;max-width:800px;margin:0 auto;padding:80px 20px 60px}.hero-badge{background:var(--primary-light);color:var(--primary);border-radius:20px;margin-bottom:24px;padding:6px 16px;font-size:13px;font-weight:500;display:inline-block}.hero h1{letter-spacing:-.03em;margin-bottom:20px;font-size:64px;font-weight:800;line-height:1.1}.gradient-text{background:linear-gradient(135deg, var(--primary), #a855f7);-webkit-text-fill-color:transparent;-webkit-background-clip:text}.hero-sub{color:var(--text2);max-width:600px;margin:0 auto 32px;font-size:18px;line-height:1.6}.hero-actions{justify-content:center;gap:12px;margin-bottom:48px;display:flex}.hero-stats{justify-content:center;gap:48px;display:flex}.stat{text-align:center}.stat-num{font-size:24px;font-weight:700;display:block}.stat-label{color:var(--text3);font-size:13px}.features{max-width:1200px;margin:0 auto;padding:80px 40px}.features h2{text-align:center;margin-bottom:48px;font-size:36px;font-weight:700}.features-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.feature-card{border-radius:var(--radius);border:1px solid var(--border);background:#fff;padding:28px;transition:box-shadow .2s}.feature-card:hover{box-shadow:var(--shadow-lg)}.feature-icon{margin-bottom:16px;font-size:32px;display:block}.feature-card h3{margin-bottom:8px;font-size:16px;font-weight:600}.feature-card p{color:var(--text2);font-size:14px;line-height:1.6}.how{background:var(--surface2);padding:80px 40px}.how h2{text-align:center;margin-bottom:48px;font-size:36px;font-weight:700}.steps{grid-template-columns:repeat(4,1fr);gap:24px;max-width:1000px;margin:0 auto;display:grid}.step{text-align:center}.step-num{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;font-size:20px;font-weight:700;display:flex}.step h3{margin-bottom:8px;font-size:16px;font-weight:600}.step p{color:var(--text2);font-size:14px}.pricing{max-width:1100px;margin:0 auto;padding:80px 40px}.pricing h2{text-align:center;font-size:36px;font-weight:700}.pricing-sub{text-align:center;color:var(--text2);margin-bottom:48px}.pricing-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.price-card{border-radius:var(--radius);border:1px solid var(--border);background:#fff;padding:32px}.price-card.highlight{border-color:var(--primary);box-shadow:var(--shadow-lg);position:relative}.price-card.highlight:before{content:"Most Popular";background:var(--primary);color:#fff;border-radius:20px;padding:4px 16px;font-size:12px;font-weight:600;position:absolute;top:-12px;left:50%;transform:translate(-50%)}.price-card h3{margin-bottom:16px;font-size:18px;font-weight:600}.price-desc{color:var(--text2);margin-bottom:16px;font-size:13px}.price{margin-bottom:24px}.price-amount{font-size:40px;font-weight:800}.price-period{color:var(--text2);font-size:16px}.price-card ul{margin-bottom:24px;list-style:none}.price-card li{color:var(--text2);padding:6px 0;font-size:14px}.landing-footer{text-align:center;color:var(--text3);border-top:1px solid var(--border);padding:40px;font-size:13px}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-card{border-radius:var(--radius);width:100%;max-width:400px;box-shadow:var(--shadow-lg);text-align:center;background:#fff;padding:40px}.auth-brand{color:var(--text);margin-bottom:24px;font-size:20px;font-weight:700;display:block}.auth-card h2{margin-bottom:4px;font-size:24px;font-weight:700}.auth-card>p{color:var(--text2);margin-bottom:24px}.auth-card form{flex-direction:column;gap:12px;display:flex}.auth-alt{color:var(--text2);margin-top:16px;font-size:13px}.auth-card.success{padding:48px}.success-icon{margin-bottom:16px;font-size:48px;display:block}.role-selector{gap:12px;margin-bottom:20px;display:flex}.role-option{border:2px solid var(--border);border-radius:var(--radius);cursor:pointer;text-align:left;background:#fff;flex-direction:column;flex:1;gap:4px;padding:16px;transition:all .15s;display:flex}.role-option:hover{border-color:var(--primary)}.role-option.active{border-color:var(--primary);background:var(--primary-light)}.role-icon{font-size:24px}.role-label{color:var(--text);font-size:14px;font-weight:600}.role-desc{color:var(--text2);font-size:12px}.shell{min-height:100vh;display:flex}.sidebar{background:var(--surface);border-right:1px solid var(--border);z-index:50;flex-direction:column;width:260px;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-brand{align-items:center;gap:10px;padding:20px 24px;font-size:18px;font-weight:700;display:flex}.brand-icon{font-size:24px}.sidebar-nav{flex:1;padding:8px 12px}.nav-item{border-radius:var(--radius-sm);color:var(--text2);align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{background:var(--surface2);color:var(--text)}.nav-item.active{background:var(--primary-light);color:var(--primary)}.nav-icon{text-align:center;width:24px;font-size:18px}.sidebar-footer{border-top:1px solid var(--border);padding:16px}.user-badge{align-items:center;gap:10px;margin-bottom:12px;display:flex}.avatar{background:var(--primary);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.user-info{flex-direction:column;display:flex}.user-name{font-size:14px;font-weight:600}.user-role{color:var(--text3);text-transform:capitalize;font-size:12px}.logout-btn{border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;width:100%;color:var(--text2);font-size:13px;font-family:var(--font);background:0 0;padding:8px}.logout-btn:hover{border-color:var(--danger);color:var(--danger)}.main-content{flex-direction:column;flex:1;margin-left:260px;display:flex}.topbar{border-bottom:1px solid var(--border);z-index:10;background:#fff;align-items:center;gap:16px;padding:16px 24px;display:flex;position:sticky;top:0}.menu-toggle{cursor:pointer;background:0 0;border:none;font-size:20px;display:none}.page-title{flex:1;font-size:18px;font-weight:600}.page-content{flex:1;padding:24px}.stats-row{grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;align-items:center;gap:16px;padding:20px;display:flex}.stat-card-icon{font-size:32px}.stat-card-num{font-size:28px;font-weight:700;display:block}.stat-card-label{color:var(--text2);font-size:13px}.bookings-list{flex-direction:column;display:flex}.booking-item{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:14px 0;display:flex}.booking-item:last-child{border-bottom:none}.booking-item.past{opacity:.5}.booking-item.current{background:var(--primary-light);border-radius:var(--radius-sm);margin:0 -20px;padding:14px 20px}.booking-time{color:var(--text2);min-width:120px;font-size:13px;font-weight:500}.booking-info{flex:1}.booking-title{font-weight:500;display:block}.booking-room,.booking-by{color:var(--text3);font-size:13px}.book-filters{gap:12px;margin-bottom:24px;display:flex}.book-filters select,.book-filters input{max-width:300px}.room-schedule{grid-template-columns:280px 1fr;gap:24px;display:grid}.room-info-card{border:1px solid var(--border);border-radius:var(--radius);background:#fff;padding:20px}.room-info-card h3{margin-bottom:4px;font-size:18px;font-weight:600}.room-info-card p{color:var(--text2);margin-bottom:12px;font-size:13px}.amenities{flex-wrap:wrap;gap:6px;display:flex}.time-slots{flex-direction:column;gap:6px;display:flex}.time-slot{border-radius:var(--radius-sm);border:1px solid var(--border);cursor:pointer;background:#fff;justify-content:space-between;align-items:center;padding:12px 16px;transition:all .15s;display:flex}.time-slot.available:hover{border-color:var(--primary);background:var(--primary-light)}.time-slot.booked{background:var(--surface2);cursor:default;opacity:.7}.slot-label{font-size:14px;font-weight:500}.slot-free{color:var(--success);font-size:13px}.slot-booked{color:var(--text3);font-size:13px}.booking-row{border-bottom:1px solid var(--border);align-items:center;gap:16px;padding:16px;display:flex}.booking-date{color:var(--text2);min-width:100px;font-size:13px;font-weight:500}.booking-details{flex:1}.booking-meta{color:var(--text3);font-size:13px;display:block}.form-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.form-grid input,.form-grid select{width:100%}.form-actions{grid-column:1/-1;gap:8px;display:flex}.rooms-list{margin-top:20px}.room-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px;display:flex}.room-info strong{display:block}.room-info span{color:var(--text2);font-size:13px}.room-actions{gap:8px;display:flex}.invite-card{text-align:center;padding:20px}.invite-card code{background:var(--surface2);border-radius:var(--radius-xs);word-break:break-all;margin:8px 0 16px;padding:8px;font-size:12px;display:block}.qr-img{border-radius:var(--radius-sm)}.team-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 0;display:flex}.team-avatar{background:var(--surface2);width:36px;height:36px;color:var(--text2);border-radius:50%;justify-content:center;align-items:center;font-size:14px;font-weight:600;display:flex}.team-info{flex:1}.team-info strong{font-size:14px;display:block}.team-info span{color:var(--text3);font-size:13px}.settings-actions{gap:12px;margin-top:16px;display:flex}.kiosk{min-height:100vh;font-family:var(--font);flex-direction:column;padding:40px;display:flex}.kiosk.available{background:linear-gradient(135deg,#064e3b 0%,#0f172a 100%)}.kiosk.occupied{background:linear-gradient(135deg,#7f1d1d 0%,#0f172a 100%)}.kiosk-header{justify-content:space-between;align-items:center;margin-bottom:40px;display:flex}.kiosk-header h1{color:#fff;font-size:56px;font-weight:800}.kiosk-status{border-radius:var(--radius);color:#fff;padding:14px 28px;font-size:24px;font-weight:700}.kiosk-status.busy{background:#ef444433}.kiosk-status.free{background:#22c55e33}.kiosk-current{border-radius:var(--radius);background:#ffffff14;margin-bottom:32px;padding:32px}.kiosk-current h2{color:#fff;margin-bottom:8px;font-size:36px}.kiosk-current p{color:#ffffffb3;font-size:20px}.kiosk-schedule{flex:1}.kiosk-schedule h3{color:#fff;margin-bottom:16px;font-size:24px}.kiosk-slot{border-radius:var(--radius-sm);color:#fff;justify-content:space-between;margin-bottom:8px;padding:16px 20px;font-size:18px;display:flex}.kiosk-slot.past{opacity:.3}.kiosk-slot.active{background:#ef444426;border:1px solid #ef44444d}.kiosk-time{text-align:center;color:#ffffff80;padding:20px;font-size:20px}.kiosk-loading{background:#0f172a;justify-content:center;align-items:center;min-height:100vh;display:flex}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{border-radius:var(--radius);width:90%;max-width:480px;box-shadow:var(--shadow-lg);background:#fff;padding:28px}.modal h3{margin-bottom:20px;font-size:18px;font-weight:600}.modal form{flex-direction:column;gap:14px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.checkbox{color:var(--text2);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.modal-actions{justify-content:flex-end;gap:8px;margin-top:8px;display:flex}.text-muted{color:var(--text3);font-size:13px}.rooms-quick-list{flex-wrap:wrap;gap:10px;margin-bottom:16px;display:flex}.room-quick-item{background:var(--surface2);border-radius:var(--radius-sm);flex-direction:column;padding:10px 16px;display:flex}.room-quick-item strong{font-size:14px}.room-quick-item span{color:var(--text2);font-size:12px}.quick-add-form{border-top:1px solid var(--border);padding-top:16px}.quick-add-form h4{margin-bottom:12px;font-size:14px;font-weight:600}.quick-add-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px;display:grid}.quick-add-grid input,.quick-add-grid select{border:1px solid var(--border);border-radius:var(--radius-sm);background:#fff;padding:10px;font-size:14px}.success-msg{color:var(--success);margin-left:12px;font-size:14px;font-weight:500}@media (width<=768px){.sidebar{z-index:100;width:260px;height:100vh;display:none;position:fixed}.sidebar.open{display:flex}.main-content{margin-left:0}.menu-toggle{display:block}.features-grid,.pricing-grid{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.hero h1{font-size:40px}.stats-row,.room-schedule,.form-grid{grid-template-columns:1fr}.book-filters{flex-direction:column}.book-filters select,.book-filters input{max-width:100%}.landing-links{display:none}}.explore-nav{border-bottom:1px solid var(--border);background:#fff;justify-content:space-between;align-items:center;padding:16px 40px;display:flex}.explore-brand{color:var(--text);font-size:20px;font-weight:700}.explore-links{align-items:center;gap:16px;display:flex}.explore-links a{color:var(--text2);font-size:14px}.explore-hero{text-align:center;background:linear-gradient(135deg, var(--primary-light), #a855f70d);padding:60px 20px 40px}.explore-hero h1{margin-bottom:12px;font-size:40px;font-weight:800}.explore-hero p{color:var(--text2);max-width:500px;margin:0 auto 24px;font-size:16px}.explore-filters{justify-content:center;gap:12px;max-width:500px;margin:0 auto;display:flex}.explore-filters select,.explore-filters input{border:1px solid var(--border);border-radius:var(--radius);background:#fff;flex:1;padding:12px 16px;font-size:14px}.explore-loading{justify-content:center;padding:60px;display:flex}.explore-empty{text-align:center;color:var(--text3);grid-column:1/-1;padding:60px;font-size:16px}.explore-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;max-width:1200px;margin:0 auto;padding:40px;display:grid}.explore-card{border:1px solid var(--border);border-radius:var(--radius);overflow:cursor: pointer;background:#fff;transition:all .2s}.explore-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.explore-card-img{background:var(--surface2);height:180px;overflow:hidden}.explore-card-img img{object-fit:cover;width:100%;height:100%}.explore-card-placeholder{background:linear-gradient(135deg, var(--primary-light), var(--surface2));justify-content:center;align-items:center;height:100%;font-size:48px;display:flex}.explore-card-body{padding:16px}.explore-card-body h3{margin-bottom:4px;font-size:16px;font-weight:600}.explore-card-org{color:var(--text3);margin-bottom:8px;font-size:13px}.explore-card-location{color:var(--text2);margin-bottom:12px;font-size:13px}.explore-card-meta{justify-content:space-between;align-items:center;margin-bottom:12px;font-size:14px;display:flex}.explore-card-price{color:var(--primary);font-weight:700}.explore-card-amenities{flex-wrap:wrap;gap:6px;display:flex}.booking-success{text-align:center;padding:20px}.booking-success .success-icon{margin-bottom:16px;font-size:48px;display:block}.booking-success h3{margin-bottom:12px}.booking-success strong{letter-spacing:2px;color:var(--primary);font-size:24px}
