@import"https://fonts.googleapis.com/css2?family=Syne:wght@700;800&family=Plus+Jakarta+Sans:wght@300;400;500;600;700;800&display=swap";body{margin:0;padding:0;width:100%;height:100vh;overflow-x:hidden;font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;height:100%}:root{--ch-bg-form: #f8fafc;--ch-green-deep: #0f5132;--ch-green-primary: #16a34a;--ch-green-mid: #22c55e;--ch-green-light: #dcfce7;--ch-green-accent: #4ade80;--ch-green-badge: #86efac;--ch-text-dark: #0f172a;--ch-text-muted: #64748b;--ch-text-label: #475569;--ch-border: #e2e8f0;--ch-white: #ffffff}*{box-sizing:border-box;margin:0;padding:0}body{overflow-x:hidden}.ch-shell{width:100%;height:100vh;overflow:hidden;position:relative;font-family:Plus Jakarta Sans,sans-serif}.ch-visual-panel{position:absolute;width:50%;height:100%;background:var(--ch-green-deep);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:60px;transition:left .65s cubic-bezier(.76,0,.24,1);will-change:left}.ch-shell[data-view=login] .ch-visual-panel{left:0}.ch-shell[data-view=signup] .ch-visual-panel{left:50%}.ch-emoji-grid{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(7,1fr);z-index:1}.ch-emoji-cell{display:flex;align-items:center;justify-content:center;font-size:48px;opacity:.07;filter:grayscale(1) brightness(10)}.ch-gradient-overlay{position:absolute;inset:0;background:radial-gradient(circle at 30% 50%,rgba(132,204,22,.15),transparent 50%),radial-gradient(circle at 80% 20%,rgba(0,0,0,.3),transparent 40%);z-index:2}.ch-fade-bottom{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(to top,var(--ch-green-deep),transparent);z-index:2}.ch-visual-content{position:relative;z-index:3;max-width:520px;width:100%}.ch-logo-row{display:flex;align-items:center;gap:12px;margin-bottom:24px}.ch-logo-icon{width:42px;height:42px;background:var(--ch-green-mid);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:24px}.ch-logo-text{font-family:Syne,sans-serif;font-size:28px;font-weight:800;line-height:1}.ch-logo-court{color:var(--ch-white)}.ch-logo-hub{color:var(--ch-green-mid)}.ch-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 16px;background:#22c55e26;border:1px solid rgba(34,197,94,.3);border-radius:20px;margin-bottom:32px}.ch-badge-dot{width:8px;height:8px;background:var(--ch-green-badge);border-radius:50%;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.ch-badge-text{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:1px;color:var(--ch-green-badge)}.ch-hero-title{font-family:Syne,sans-serif;font-size:56px;font-weight:800;line-height:1.1;color:var(--ch-white);margin:0 0 20px}.ch-hero-title .accent{color:var(--ch-green-accent)}.ch-hero-subtitle{font-size:16px;font-weight:400;line-height:1.6;color:#ffffff80;margin:0 0 40px}.ch-sport-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:40px}.ch-sport-tag{display:flex;align-items:center;gap:8px;padding:10px 16px;background:#ffffff12;border:1px solid rgba(255,255,255,.1);border-radius:20px;font-size:14px;font-weight:500;color:var(--ch-white);transition:all .3s ease;cursor:default}.ch-sport-tag:hover{background:#22c55e26;border-color:#22c55e4d}.ch-cta-row{display:flex;align-items:center;gap:12px;margin-top:60px}.ch-cta-text{font-size:14px;color:#ffffff80}.ch-cta-btn{background:transparent;border:1.5px solid rgba(255,255,255,.35);color:var(--ch-white);padding:10px 20px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .3s ease;font-family:Plus Jakarta Sans,sans-serif}.ch-cta-btn:hover{background:#ffffff1a;border-color:#fff9}.ch-form-panel{position:absolute;width:50%;height:100%;background:var(--ch-bg-form);overflow:hidden;display:flex;align-items:center;justify-content:center;padding:60px;transition:left .65s cubic-bezier(.76,0,.24,1);will-change:left}.ch-shell[data-view=login] .ch-form-panel{left:50%}.ch-shell[data-view=signup] .ch-form-panel{left:0}.ch-form-panel:before{content:"";position:absolute;inset:0;background-image:linear-gradient(to right,rgba(34,197,94,.08) 1px,transparent 1px),linear-gradient(to bottom,rgba(34,197,94,.08) 1px,transparent 1px);background-size:40px 40px;z-index:1;pointer-events:none}.ch-emoji-watermark{position:absolute;inset:0;display:grid;grid-template-columns:repeat(6,1fr);grid-template-rows:repeat(7,1fr);z-index:1;opacity:.025}.ch-form-content{position:relative;z-index:2;width:100%;max-width:420px}.ch-form-viewport{position:relative;overflow:hidden;min-height:500px}.ch-form-inner{position:absolute;top:0;left:0;right:0;opacity:0;transform:translate(50px);transition:all .42s cubic-bezier(.4,0,.2,1);pointer-events:none}.ch-form-inner.active{position:relative;opacity:1;transform:translate(0);pointer-events:all}.ch-form-inner.exiting{opacity:0;transform:translate(-50px)}.ch-step-dots{display:flex;gap:8px;margin-bottom:24px;justify-content:center}.ch-dot{height:6px;width:20px;background:var(--ch-border);border-radius:3px;transition:all .3s ease}.ch-dot.active{width:36px;background:var(--ch-green-primary)}.ch-icon-box{width:60px;height:60px;background:var(--ch-green-light);border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px;margin:0 auto 20px}.ch-form-title{font-family:Syne,sans-serif;font-size:32px;font-weight:800;color:var(--ch-text-dark);margin:0 0 8px;text-align:center}.ch-form-subtitle{font-size:14px;font-weight:400;color:var(--ch-text-muted);margin:0 0 32px;text-align:center;line-height:1.5}.ch-error-box{background:#fee;border:1px solid #fcc;color:#c33;padding:12px 16px;border-radius:8px;font-size:13px;margin-bottom:20px;text-align:center}.ch-field{margin-bottom:20px;position:relative}.ch-field label{display:block;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--ch-text-label);margin-bottom:8px}.ch-field input{width:100%;padding:13px 15px;background:var(--ch-white);border:1.5px solid var(--ch-border);border-radius:10px;font-size:14px;font-family:Plus Jakarta Sans,sans-serif;color:var(--ch-text-dark);transition:all .2s ease}.ch-field input:focus{outline:none;border-color:var(--ch-green-primary);box-shadow:0 0 0 3px #16a34a1a}.ch-field input::placeholder{color:var(--ch-text-muted);opacity:.6}.ch-forgot-link{position:absolute;right:0;top:0;font-size:12px;color:var(--ch-green-primary);text-decoration:none;font-weight:600}.ch-forgot-link:hover{text-decoration:underline}.ch-field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.ch-btn-primary{width:100%;padding:14px;background:var(--ch-green-primary);color:var(--ch-white);border:none;border-radius:11px;font-size:15px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;box-shadow:0 4px 14px #16a34a59;transition:all .2s ease;margin-top:8px}.ch-btn-primary:hover:not(:disabled){background:#15803d;transform:translateY(-1px);box-shadow:0 6px 20px #16a34a73}.ch-btn-primary:active:not(:disabled){transform:translateY(0)}.ch-btn-primary:disabled{opacity:.6;cursor:not-allowed}.ch-divider{display:flex;align-items:center;gap:16px;margin:24px 0;color:var(--ch-text-muted);font-size:13px}.ch-divider:before,.ch-divider:after{content:"";flex:1;height:1px;background:var(--ch-border)}.ch-btn-outline{width:100%;padding:12px;background:var(--ch-white);color:var(--ch-text-dark);border:1.5px solid var(--ch-border);border-radius:10px;font-size:14px;font-weight:600;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;margin-top:12px}.ch-btn-outline:hover:not(:disabled){border-color:var(--ch-green-primary);background:var(--ch-green-light);color:var(--ch-green-primary)}.ch-btn-outline:disabled{opacity:.6;cursor:not-allowed}.ch-bottom-note{text-align:center;margin-top:24px;font-size:14px;color:var(--ch-text-muted)}.ch-bottom-note button{background:none;border:none;color:var(--ch-green-primary);font-weight:600;cursor:pointer;text-decoration:underline;font-family:Plus Jakarta Sans,sans-serif;padding:0}.ch-bottom-note button:hover{color:#15803d}.ch-otp-row{display:flex;gap:10px;justify-content:center;margin:24px 0}.ch-otp-box{width:52px;height:56px;text-align:center;font-family:Syne,sans-serif;font-size:22px;font-weight:700;color:var(--ch-green-primary);background:var(--ch-white);border:1.5px solid var(--ch-border);border-radius:10px;transition:all .2s ease}.ch-otp-box:focus{outline:none;border-color:var(--ch-green-primary);box-shadow:0 0 0 3px #16a34a1a}.ch-resend-note{text-align:center;margin-top:20px;font-size:13px;color:var(--ch-text-muted)}.ch-resend-note button{background:none;border:none;color:var(--ch-green-primary);font-weight:600;cursor:pointer;text-decoration:underline;font-family:Plus Jakarta Sans,sans-serif;padding:0}.ch-resend-note button:hover{color:#15803d}@media(max-width:860px){.ch-visual-panel{display:none}.ch-form-panel{width:100%;left:0!important}}@media(max-width:480px){.ch-form-panel{padding:30px 20px}.ch-form-title{font-size:26px}.ch-hero-title{font-size:42px}.ch-field-row{grid-template-columns:1fr}.ch-otp-box{width:44px;height:50px;font-size:20px}}.ch-role-cards{display:flex;flex-direction:column;gap:16px;margin:32px 0}.ch-role-card{position:relative;width:100%;padding:24px;background:var(--ch-white);border:2px solid var(--ch-border);border-radius:16px;cursor:pointer;transition:all .3s ease;text-align:left;font-family:Plus Jakarta Sans,sans-serif;display:flex;flex-direction:column;gap:8px}.ch-role-card:hover{border-color:var(--ch-green-primary);background:var(--ch-green-light);transform:translateY(-2px);box-shadow:0 8px 24px #16a34a26}.ch-role-icon{font-size:40px;margin-bottom:8px}.ch-role-card h3{font-family:Syne,sans-serif;font-size:20px;font-weight:700;color:var(--ch-text-dark);margin:0}.ch-role-card p{font-size:14px;color:var(--ch-text-muted);margin:0;line-height:1.5}.ch-role-arrow{position:absolute;right:24px;top:50%;transform:translateY(-50%);font-size:24px;color:var(--ch-green-primary);opacity:0;transition:all .3s ease}.ch-role-card:hover .ch-role-arrow{opacity:1;transform:translateY(-50%) translate(4px)}@media(max-width:480px){.ch-role-card{padding:20px}.ch-role-icon{font-size:32px}.ch-role-card h3{font-size:18px}}.user-layout{display:flex;min-height:100vh;background:#f8fafc}.user-sidebar{width:260px;background:#fff;border-right:1px solid #e2e8f0;display:flex;flex-direction:column;position:fixed;left:0;top:0;bottom:0;z-index:100;transition:transform .3s ease}.sidebar-header{padding:24px 20px;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;justify-content:space-between}.logo{display:flex;align-items:center;gap:12px}.logo-icon{width:40px;height:40px;background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:22px}.logo-text{font-family:Syne,sans-serif;font-size:24px;font-weight:800;line-height:1}.logo-court{color:#0f172a}.logo-hub{color:#16a34a}.sidebar-close{display:none;width:32px;height:32px;border:none;background:#f1f5f9;border-radius:8px;cursor:pointer;font-size:18px;color:#64748b}.sidebar-nav{flex:1;padding:20px 12px;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;text-decoration:none;color:#64748b;font-size:15px;font-weight:600;font-family:Plus Jakarta Sans,sans-serif;transition:all .2s ease;margin-bottom:4px}.nav-item:hover{background:#f1f5f9;color:#0f172a}.nav-item.active{background:#dcfce7;color:#16a34a}.nav-icon{font-size:20px;width:24px;display:flex;align-items:center;justify-content:center}.nav-label{flex:1}.sidebar-footer{padding:20px 12px;border-top:1px solid #e2e8f0}.logout-btn{width:100%;display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:10px;border:none;background:transparent;color:#ef4444;font-size:15px;font-weight:600;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease}.logout-btn:hover{background:#fee2e2}.user-main{flex:1;margin-left:260px;display:flex;flex-direction:column}.mobile-header{display:none;align-items:center;justify-content:space-between;padding:16px 20px;background:#fff;border-bottom:1px solid #e2e8f0;position:sticky;top:0;z-index:50}.menu-toggle{width:40px;height:40px;border:none;background:#f1f5f9;border-radius:8px;cursor:pointer;font-size:20px;color:#64748b;display:flex;align-items:center;justify-content:center}.mobile-logo{font-family:Syne,sans-serif;font-size:20px;font-weight:800}.mobile-spacer{width:40px}.user-content{flex:1}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:90}@media(max-width:768px){.user-sidebar{transform:translate(-100%)}.user-sidebar.open{transform:translate(0)}.sidebar-close{display:flex;align-items:center;justify-content:center}.user-main{margin-left:0}.mobile-header{display:flex}.sidebar-overlay{display:block}}.user-dashboard{min-height:100vh;background:#f7f9f8}.search-hero{background:linear-gradient(135deg,#1a5c2a,#2d7a3e 55%,#3fa855);padding:60px 40px 120px;position:relative;overflow:visible}.search-hero:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(255,255,255,.1),transparent 50%),radial-gradient(circle at 80% 20%,rgba(0,0,0,.2),transparent 40%);pointer-events:none}.search-hero-content{max-width:1200px;margin:0 auto;position:relative;z-index:1}.search-title{font-family:Syne,sans-serif;font-size:48px;font-weight:800;color:#fff;margin:0 0 12px;text-align:center;letter-spacing:-1px}.search-subtitle{font-family:DM Sans,sans-serif;font-size:15px;color:#ffffffbf;text-align:center;margin:0 0 40px;font-weight:400}.search-form{background:#fff;border-radius:16px;padding:32px;box-shadow:0 20px 60px #00000026;overflow:visible}.search-filters-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:24px;overflow:visible}.filter-group{display:flex;flex-direction:column;gap:8px;position:relative;overflow:visible}.filter-group:nth-child(3){z-index:100}.filter-group:nth-child(4){z-index:200}.filter-label{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#475569;margin-bottom:4px}.filter-input-text{width:100%;padding:12px 16px;border:2px solid #e2e8f0;border-radius:12px;font-size:14px;font-family:Plus Jakarta Sans,sans-serif;background:#f8fafc;transition:all .2s ease}.filter-input-text:focus{outline:none;border-color:#16a34a;background:#fff;box-shadow:0 0 0 3px #16a34a1a}.filter-input-text::placeholder{color:#94a3b8}.filter-item{position:relative;display:flex;align-items:center;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;transition:all .2s ease}.filter-item:hover{border-color:#16a34a}.filter-item.date-filter{display:flex;align-items:center;gap:6px;padding:8px 12px}.filter-item.time-filter{display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer}.date-display{font-size:13px;font-weight:600;color:#0f172a;cursor:pointer;padding:4px 8px;border-radius:6px;transition:all .2s ease;white-space:nowrap;text-align:center;flex:1;min-width:120px}.date-display:hover{background:#e2e8f0}.time-display{font-size:13px;font-weight:600;color:#0f172a;padding:4px 8px;border-radius:6px;transition:all .2s ease;white-space:nowrap;flex:1;text-align:left}.dropdown-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid #e2e8f0;border-radius:8px;font-size:12px;color:#64748b;cursor:pointer;transition:all .2s ease}.dropdown-btn:hover{background:#16a34a;color:#fff;border-color:#16a34a}.date-nav-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;font-size:18px;font-weight:700;color:#64748b;cursor:pointer;transition:all .2s ease;flex-shrink:0}.date-nav-btn:hover{background:#16a34a;color:#fff;border-color:#16a34a}.calendar-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:#dcfce7;border:1px solid #16a34a;border-radius:8px;font-size:16px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.calendar-btn:hover{background:#16a34a;transform:scale(1.05)}.date-picker-dropdown{position:absolute;top:calc(100% + 8px);left:0;background:#fff;border:2px solid #16a34a;border-radius:12px;padding:12px;box-shadow:0 8px 24px #00000026;z-index:2000}.date-picker-input{padding:10px 12px;border:2px solid #e2e8f0;border-radius:8px;font-size:14px;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease}.date-picker-input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.time-slot-dropdown{position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border:2px solid #16a34a;border-radius:12px;padding:16px;box-shadow:0 8px 24px #00000026;z-index:3000;min-width:350px}.time-slot-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid #e2e8f0}.period-tabs{display:flex;gap:6px;background:#f8fafc;padding:4px;border-radius:8px}.period-tab{padding:6px 16px;background:transparent;border:none;border-radius:6px;font-size:13px;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif}.period-tab:hover{background:#e2e8f0;color:#0f172a}.period-tab.active{background:#16a34a;color:#fff}.clear-btn{padding:6px 12px;background:#fee2e2;border:none;border-radius:6px;font-size:12px;font-weight:600;color:#dc2626;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif}.clear-btn:hover{background:#fecaca}.time-slots-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-height:300px;overflow-y:auto;scrollbar-width:none;-ms-overflow-style:none}.time-slots-grid::-webkit-scrollbar{display:none}.time-slot-btn{padding:10px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:8px;font-size:13px;font-weight:600;color:#475569;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif;white-space:nowrap}.time-slot-btn:hover:not(:disabled){border-color:#16a34a;background:#dcfce7;color:#16a34a}.time-slot-btn.selected{background:#16a34a;border-color:#16a34a;color:#fff}.time-slot-btn.disabled,.time-slot-btn:disabled{background:#f1f5f9;border-color:#e2e8f0;color:#cbd5e1;cursor:not-allowed;opacity:.5}.search-btn{width:100%;padding:14px 32px;background:#16a34a;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;white-space:nowrap}.search-btn:hover:not(:disabled){background:#15803d;transform:translateY(-2px);box-shadow:0 8px 24px #16a34a4d}.search-btn:disabled{opacity:.6;cursor:not-allowed}.search-results{max-width:1200px;margin:0 auto;padding:40px}.results-header{display:flex;align-items:baseline;gap:12px;margin-bottom:24px}.results-title{font-family:Syne,sans-serif;font-size:22px;font-weight:700;color:#0f1f14;margin:0;letter-spacing:-.3px}.results-count{font-family:DM Sans,sans-serif;font-size:13px;font-weight:500;color:#7a8c7e;background:#d4e6d8;padding:2px 10px;border-radius:20px}.courts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px}.court-card{background:#fff;border-radius:14px;overflow:hidden;border:1.5px solid #d4e6d8;transition:all .2s ease;cursor:pointer}.court-card:hover{transform:translateY(-3px);box-shadow:0 8px 40px #1a5c2a29;border-color:#3a9c50}.court-image{position:relative;width:100%;height:140px;overflow:hidden;background:linear-gradient(135deg,#c8e6c9,#a5d6a7);display:flex;align-items:center;justify-content:center}.court-image img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.court-card:hover .court-image img{transform:scale(1.05)}.court-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#c8e6c9,#a5d6a7);font-size:42px}.court-badge{position:absolute;top:10px;right:10px;background:#fff;color:#1a5c2a;padding:3px 10px;border-radius:20px;font-family:DM Sans,sans-serif;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px}.court-content{padding:16px}.court-name{font-family:Syne,sans-serif;font-size:16px;font-weight:700;color:#0f1f14;margin:0 0 4px;letter-spacing:-.2px}.court-location{font-family:DM Sans,sans-serif;font-size:13px;color:#7a8c7e;margin:0 0 12px;display:flex;align-items:center;gap:2px}.court-features{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px;display:none}.feature-tag{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#e6f4ea;border-radius:6px;font-family:DM Sans,sans-serif;font-size:12px;font-weight:600;color:#3a4a3e}.court-footer{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.court-price{display:flex;align-items:baseline;gap:2px}.price-label{display:none}.price-value{font-family:Syne,sans-serif;font-size:18px;font-weight:700;color:#1a5c2a;letter-spacing:-.3px}.price-value span{font-family:DM Sans,sans-serif;font-size:12px;font-weight:400;color:#7a8c7e}.court-rating{display:flex;align-items:center;gap:4px;font-family:DM Sans,sans-serif;font-size:13px;font-weight:600;color:#f59e0b}.court-actions{display:flex;gap:0;width:100%}.btn-view,.btn-book{flex:1;padding:10px 16px;border-radius:8px;font-family:DM Sans,sans-serif;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;border:none;text-align:center}.btn-view{display:none}.btn-book{width:100%;background:#e6f4ea;color:#1a5c2a}.btn-book:hover{background:#3a9c50;color:#fff}.spinner{width:48px;height:48px;border:4px solid #e2e8f0;border-top-color:#16a34a;border-radius:50%;animation:spin .8s linear infinite;margin:0 auto 20px}@keyframes spin{to{transform:rotate(360deg)}}.loading-state p{font-size:16px;color:#64748b}.empty-state{text-align:center;padding:80px 20px}.empty-state p{font-size:16px;color:#64748b;margin:0}@media(max-width:1024px){.search-filters-grid{grid-template-columns:repeat(2,1fr)}.courts-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.time-slots-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:768px){.search-hero{padding:40px 20px}.search-title{font-size:36px}.search-subtitle{font-size:16px}.search-form{padding:20px}.search-filters-grid{grid-template-columns:1fr}.filter-item.date-filter{flex-wrap:nowrap;justify-content:space-between}.date-display{font-size:12px;min-width:100px}.date-nav-btn{width:28px;height:28px;font-size:16px}.calendar-btn{width:28px;height:28px;font-size:14px}.time-slot-dropdown{min-width:100%}.time-slots-grid{grid-template-columns:repeat(2,1fr)}.search-results{padding:24px 20px}.results-title{font-size:24px}.courts-grid{grid-template-columns:1fr}.court-actions{flex-direction:column;width:100%}.btn-view,.btn-book{width:100%}}.court-image[data-sport=badminton],.court-image[data-sport=Badminton]{background:linear-gradient(135deg,#c8e6c9,#a5d6a7)}.court-image[data-sport=football],.court-image[data-sport=Football],.court-image[data-sport=futsal],.court-image[data-sport=Futsal]{background:linear-gradient(135deg,#bbdefb,#90caf9)}.court-image[data-sport="table tennis"],.court-image[data-sport="Table Tennis"],.court-image[data-sport=tabletennis]{background:linear-gradient(135deg,#ffe0b2,#ffcc80)}.court-image[data-sport=basketball],.court-image[data-sport=Basketball]{background:linear-gradient(135deg,#f8bbd0,#f48fb1)}.court-image[data-sport=tennis],.court-image[data-sport=Tennis]{background:linear-gradient(135deg,#fff9c4,#fff59d)}.court-image[data-sport=cricket],.court-image[data-sport=Cricket]{background:linear-gradient(135deg,#d1c4e9,#b39ddb)}.court-image[data-sport=padel],.court-image[data-sport=Padel]{background:linear-gradient(135deg,#ffccbc,#ffab91)}.court-image[data-sport=volleyball],.court-image[data-sport=Volleyball]{background:linear-gradient(135deg,#b2dfdb,#80cbc4)}.court-details{max-width:1400px;margin:0 auto;padding:40px}.back-btn{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;background:#fff;border:2px solid #e2e8f0;border-radius:10px;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s ease;margin-bottom:24px;font-family:Plus Jakarta Sans,sans-serif}.back-btn:hover{border-color:#16a34a;color:#16a34a;background:#dcfce7}.gallery-section{margin-bottom:40px}.main-image{width:100%;height:500px;border-radius:16px;overflow:hidden;background:#e2e8f0;margin-bottom:16px}.main-image img{width:100%;height:100%;object-fit:cover}.image-placeholder{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(135deg,#e2e8f0,#cbd5e1);font-size:80px}.image-placeholder p{font-size:18px;color:#64748b;margin-top:16px}.thumbnail-strip{display:flex;gap:12px;overflow-x:auto;padding-bottom:8px}.thumbnail{flex-shrink:0;width:120px;height:80px;border-radius:8px;overflow:hidden;cursor:pointer;border:3px solid transparent;transition:all .2s ease}.thumbnail:hover{border-color:#16a34a}.thumbnail.active{border-color:#16a34a;box-shadow:0 0 0 2px #16a34a33}.thumbnail img{width:100%;height:100%;object-fit:cover}.details-grid{display:grid;grid-template-columns:1fr 380px;gap:40px}.details-main{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.court-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #e2e8f0}.court-title{font-family:Syne,sans-serif;font-size:36px;font-weight:800;color:#0f172a;margin:0 0 8px}.court-location{font-size:16px;color:#64748b;margin:0;display:flex;align-items:center;gap:4px}.court-price-box{display:flex;flex-direction:column;align-items:flex-end;padding:16px 20px;background:#dcfce7;border-radius:12px}.price-label{font-size:12px;color:#15803d;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.price-amount{font-family:Syne,sans-serif;font-size:32px;font-weight:800;color:#16a34a}.court-tags{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:32px}.tag{padding:8px 16px;background:#f1f5f9;border-radius:8px;font-size:14px;font-weight:600;color:#475569}.tag-primary{background:#dcfce7;color:#16a34a}.section{margin-bottom:32px}.section-title{font-family:Syne,sans-serif;font-size:24px;font-weight:700;color:#0f172a;margin:0 0 16px}.section-text{font-size:16px;line-height:1.7;color:#475569;margin:0}.specs-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.spec-item{display:flex;align-items:center;gap:12px;padding:16px;background:#f8fafc;border-radius:12px}.spec-icon{font-size:28px;width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border-radius:10px}.spec-label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.spec-value{font-size:16px;font-weight:700;color:#0f172a}.videos-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px}.video-item video{width:100%;border-radius:12px;background:#000}.property-info{padding:20px;background:#f8fafc;border-radius:12px}.property-info h3{font-family:Syne,sans-serif;font-size:20px;font-weight:700;color:#0f172a;margin:0 0 8px}.property-info p{font-size:14px;color:#64748b;margin:0 0 8px}.property-desc{margin-top:12px;padding-top:12px;border-top:1px solid #e2e8f0;color:#475569!important}.booking-sidebar{position:sticky;top:20px;height:fit-content}.booking-card{background:#fff;border-radius:16px;padding:28px;box-shadow:0 4px 16px #0000001a;border:2px solid #e2e8f0}.booking-title{font-family:Syne,sans-serif;font-size:24px;font-weight:700;color:#0f172a;margin:0 0 8px}.booking-subtitle{font-size:14px;color:#64748b;margin:0 0 24px}.price-display{display:flex;flex-direction:column;align-items:center;padding:24px;background:linear-gradient(135deg,#dcfce7,#bbf7d0);border-radius:12px;margin-bottom:24px}.price-from{font-size:12px;color:#15803d;text-transform:uppercase;letter-spacing:.5px;font-weight:600}.price-big{font-family:Syne,sans-serif;font-size:48px;font-weight:800;color:#16a34a;line-height:1;margin:8px 0}.price-per{font-size:14px;color:#15803d;font-weight:600}.btn-book-now{width:100%;padding:16px;background:#16a34a;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;margin-bottom:20px}.btn-book-now:hover{background:#15803d;transform:translateY(-2px);box-shadow:0 8px 24px #16a34a4d}.booking-features{display:flex;flex-direction:column;gap:12px}.feature{font-size:14px;color:#475569;display:flex;align-items:center;gap:8px}.loading-container,.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;padding:40px}.error-icon{font-size:80px;margin-bottom:20px}.error-container h2{font-family:Syne,sans-serif;font-size:28px;font-weight:700;color:#0f172a;margin:0 0 20px}.btn-back{padding:12px 24px;background:#16a34a;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif}.btn-back:hover{background:#15803d;transform:translateY(-1px)}@media(max-width:1024px){.details-grid{grid-template-columns:1fr}.booking-sidebar{position:static}.specs-grid{grid-template-columns:1fr}}@media(max-width:768px){.court-details{padding:20px}.main-image{height:300px}.details-main{padding:20px}.court-header{flex-direction:column;gap:16px}.court-price-box{width:100%;align-items:center}.court-title{font-size:28px}.price-big{font-size:40px}.videos-grid{grid-template-columns:1fr}}.book-court{max-width:1400px;margin:0 auto;padding:40px}.booking-container{display:grid;grid-template-columns:1fr 400px;gap:32px;margin-top:24px}.booking-main{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.page-title{font-family:Syne,sans-serif;font-size:32px;font-weight:800;color:#0f172a;margin:0 0 8px}.page-subtitle{font-size:16px;color:#64748b;margin:0 0 32px}.booking-section{margin-bottom:32px;padding-bottom:32px;border-bottom:1px solid #e2e8f0}.booking-section:last-child{border-bottom:none}.section-title{font-family:Syne,sans-serif;font-size:20px;font-weight:700;color:#0f172a;margin:0 0 16px;display:flex;align-items:center;gap:8px}.section-note{font-size:14px;color:#64748b;margin:0 0 16px;line-height:1.5}.date-input{width:100%;max-width:300px;padding:14px 16px;border:2px solid #e2e8f0;border-radius:12px;font-size:15px;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease}.date-input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.date-selector{display:flex;align-items:center;gap:12px;padding:16px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:12px;transition:all .2s ease}.date-selector:hover{border-color:#16a34a}.date-display-large{flex:1;font-size:18px;font-weight:700;color:#0f172a;cursor:pointer;padding:12px 20px;background:#fff;border-radius:10px;transition:all .2s ease;text-align:center;border:2px solid transparent}.date-display-large:hover{background:#dcfce7;border-color:#16a34a}.date-nav-btn{width:48px;height:48px;display:flex;align-items:center;justify-content:center;background:#fff;border:2px solid #e2e8f0;border-radius:10px;font-size:24px;font-weight:700;color:#64748b;cursor:pointer;transition:all .2s ease;flex-shrink:0}.date-nav-btn:hover{background:#16a34a;color:#fff;border-color:#16a34a;transform:scale(1.05)}.calendar-btn-large{padding:12px 20px;background:#16a34a;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif;white-space:nowrap;flex-shrink:0}.calendar-btn-large:hover{background:#15803d;transform:translateY(-1px);box-shadow:0 4px 12px #16a34a4d}.date-picker-inline{margin-top:16px;padding:16px;background:#fff;border:2px solid #16a34a;border-radius:12px;box-shadow:0 4px 12px #0000001a}.date-picker-input-large{width:100%;padding:14px 16px;border:2px solid #e2e8f0;border-radius:10px;font-size:16px;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease}.date-picker-input-large:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.no-slots{padding:40px;text-align:center;color:#64748b;font-size:16px;background:#f8fafc;border-radius:12px}.slots-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px}.slot-btn{padding:16px;background:#fff;border:2px solid #e2e8f0;border-radius:12px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:6px;font-family:Plus Jakarta Sans,sans-serif}.slot-btn:hover:not(:disabled){border-color:#16a34a;background:#dcfce7}.slot-btn.selected{border-color:#16a34a;background:#dcfce7;box-shadow:0 0 0 3px #16a34a1a}.slot-btn:disabled{opacity:.5;cursor:not-allowed;background:#f8fafc}.slot-time{font-size:16px;font-weight:700;color:#0f172a}.slot-status{font-size:12px;font-weight:600;color:#64748b}.slot-btn.selected .slot-status{color:#16a34a}.slot-btn:disabled .slot-status{color:#ef4444}.duration-selector{display:flex;gap:12px;flex-wrap:wrap}.duration-btn{padding:12px 24px;background:#fff;border:2px solid #e2e8f0;border-radius:10px;font-size:15px;font-weight:600;color:#475569;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif}.duration-btn:hover{border-color:#16a34a;background:#dcfce7;color:#16a34a}.duration-btn.selected{border-color:#16a34a;background:#16a34a;color:#fff}.file-upload{display:flex;align-items:center;gap:12px}.file-label{flex:1;display:flex;align-items:center;gap:12px;padding:14px 18px;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:12px;cursor:pointer;transition:all .2s ease}.file-label:hover{border-color:#16a34a;background:#dcfce7}.file-icon{font-size:24px}.file-text{font-size:14px;color:#64748b;font-weight:500}.file-remove{width:40px;height:40px;background:#fee2e2;border:none;border-radius:10px;color:#ef4444;font-size:18px;cursor:pointer;transition:all .2s ease;flex-shrink:0}.file-remove:hover{background:#fecaca}.booking-summary{position:sticky;top:20px;background:#fff;border-radius:16px;padding:28px;box-shadow:0 4px 16px #0000001a;border:2px solid #e2e8f0;height:fit-content}.summary-title{font-family:Syne,sans-serif;font-size:22px;font-weight:700;color:#0f172a;margin:0 0 20px;padding-bottom:16px;border-bottom:2px solid #e2e8f0}.summary-item{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.summary-label{font-size:14px;color:#64748b;font-weight:500}.summary-value{font-size:15px;color:#0f172a;font-weight:700;text-align:right}.summary-divider{height:1px;background:#e2e8f0;margin:20px 0}.summary-total{margin-top:20px;padding-top:20px;border-top:2px solid #e2e8f0}.summary-total .summary-label{font-size:16px;color:#0f172a;font-weight:700}.summary-total .summary-value{font-family:Syne,sans-serif;font-size:28px;color:#16a34a}.btn-confirm-booking{width:100%;padding:16px;background:#16a34a;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;margin-top:24px}.btn-confirm-booking:hover:not(:disabled){background:#15803d;transform:translateY(-2px);box-shadow:0 8px 24px #16a34a4d}.btn-confirm-booking:disabled{opacity:.6;cursor:not-allowed}.summary-note{font-size:12px;color:#64748b;text-align:center;margin:16px 0 0;line-height:1.5}@media(max-width:1024px){.booking-container{grid-template-columns:1fr}.booking-summary{position:static}}@media(max-width:768px){.book-court,.booking-main,.booking-summary{padding:20px}.page-title{font-size:24px}.date-selector{flex-wrap:wrap;justify-content:center}.date-display-large{width:100%;order:-1;margin-bottom:12px;font-size:16px}.date-nav-btn{width:44px;height:44px;font-size:20px}.calendar-btn-large{flex:1}.slots-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr))}.duration-selector{display:grid;grid-template-columns:repeat(2,1fr)}.duration-btn{width:100%}}.slots-grid-multi{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;-webkit-user-select:none;user-select:none}.slot-btn-multi{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 12px;background:#f8fafc;border:2px solid #e2e8f0;border-radius:10px;cursor:pointer;transition:all .2s ease;font-family:DM Sans,sans-serif}.slot-btn-multi:hover{border-color:#3a9c50;background:#e6f4ea;transform:translateY(-2px)}.slot-btn-multi.selected{background:#3a9c50;border-color:#3a9c50;color:#fff}.slot-btn-multi.selected .slot-price{color:#ffffffe6}.slot-time-range{font-size:14px;font-weight:600;font-family:Syne,sans-serif}.slot-price{font-size:12px;font-weight:500;color:#64748b}.section-hint{font-size:13px;color:#64748b;margin-bottom:16px;font-family:DM Sans,sans-serif}.calendar-btn-book{padding:10px 20px;background:#3a9c50;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:DM Sans,sans-serif}.calendar-btn-book:hover{background:#2d7a3e}.summary-divider{height:1px;background:#e2e8f0;margin:16px 0}.btn-confirm-booking{width:100%;padding:14px;background:#3a9c50;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;transition:all .2s ease;font-family:Syne,sans-serif;margin-top:20px}.btn-confirm-booking:hover:not(:disabled){background:#2d7a3e;transform:translateY(-2px);box-shadow:0 6px 20px #3a9c504d}.btn-confirm-booking:disabled{background:#cbd5e1;cursor:not-allowed;transform:none}.booking-note{font-size:12px;color:#64748b;text-align:center;margin-top:12px;line-height:1.5;font-family:DM Sans,sans-serif}.file-upload-area{margin-top:12px}.file-input{display:none}.file-label{display:flex;align-items:center;gap:10px;padding:12px 16px;background:#f8fafc;border:2px dashed #cbd5e1;border-radius:10px;cursor:pointer;transition:all .2s ease;font-family:DM Sans,sans-serif}.file-label:hover{border-color:#3a9c50;background:#e6f4ea}.file-icon{font-size:20px}.file-text{font-size:14px;font-weight:500;color:#475569}.user-bookings{max-width:1200px;margin:0 auto;padding:40px}.bookings-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:32px}.btn-new-booking{padding:12px 24px;background:#16a34a;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease}.btn-new-booking:hover{background:#15803d;transform:translateY(-1px);box-shadow:0 6px 20px #16a34a4d}.filter-tabs{display:flex;gap:8px;margin-bottom:32px;padding:6px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #00000014}.filter-tab{flex:1;padding:12px 20px;background:transparent;border:none;border-radius:8px;font-size:14px;font-weight:600;color:#64748b;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif}.filter-tab:hover{background:#f1f5f9;color:#0f172a}.filter-tab.active{background:#16a34a;color:#fff}.bookings-list{display:flex;flex-direction:column;gap:20px}.booking-card{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #00000014;border:2px solid transparent;transition:all .3s ease}.booking-card:hover{border-color:#16a34a;box-shadow:0 8px 24px #0000001f}.booking-main-info{display:grid;grid-template-columns:1fr 2fr;gap:24px;margin-bottom:20px;padding-bottom:20px;border-bottom:1px solid #e2e8f0}.court-info{display:flex;gap:16px;align-items:flex-start}.court-thumb{width:100px;height:100px;border-radius:12px;overflow:hidden;flex-shrink:0;background:#e2e8f0}.court-thumb img{width:100%;height:100%;object-fit:cover}.court-details{flex:1}.court-name{font-family:Syne,sans-serif;font-size:20px;font-weight:700;color:#0f172a;margin:0 0 8px}.court-location{font-size:14px;color:#64748b;margin:0;display:flex;align-items:center;gap:4px}.booking-details{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.detail-item{display:flex;align-items:flex-start;gap:12px}.detail-icon{font-size:24px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#f8fafc;border-radius:10px;flex-shrink:0}.detail-label{font-size:12px;color:#64748b;text-transform:uppercase;letter-spacing:.5px;font-weight:600;margin-bottom:4px}.detail-value{font-size:15px;font-weight:700;color:#0f172a}.booking-footer{display:flex;justify-content:space-between;align-items:center}.status-badge{padding:8px 16px;border-radius:8px;font-size:13px;font-weight:700;display:inline-flex;align-items:center;gap:6px}.status-pending{background:#fef3c7;color:#d97706}.status-confirmed{background:#dcfce7;color:#16a34a}.status-cancelled{background:#fee2e2;color:#dc2626}.status-completed{background:#e0e7ff;color:#4f46e5}.booking-actions{display:flex;gap:10px}.btn-view-court,.btn-cancel{padding:10px 20px;border-radius:10px;font-size:14px;font-weight:600;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;border:none}.btn-view-court{background:#f1f5f9;color:#475569}.btn-view-court:hover{background:#e2e8f0;color:#0f172a}.btn-cancel{background:#fee2e2;color:#dc2626}.btn-cancel:hover{background:#fecaca}.empty-state{text-align:center;padding:80px 20px;background:#fff;border-radius:16px;box-shadow:0 2px 8px #00000014}.empty-icon{font-size:80px;margin-bottom:20px;opacity:.5}.empty-state h3{font-family:Syne,sans-serif;font-size:24px;font-weight:700;color:#0f172a;margin:0 0 8px}.empty-state p{font-size:16px;color:#64748b;margin:0 0 24px}.btn-browse{padding:12px 24px;background:#16a34a;color:#fff;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:Plus Jakarta Sans,sans-serif}.btn-browse:hover{background:#15803d;transform:translateY(-1px)}.loading-state{text-align:center;padding:80px 20px}@media(max-width:1024px){.booking-main-info{grid-template-columns:1fr}.booking-details{grid-template-columns:repeat(2,1fr)}}@media(max-width:768px){.user-bookings{padding:20px}.bookings-header{flex-direction:column;gap:16px}.btn-new-booking{width:100%}.filter-tabs{flex-direction:column}.booking-card{padding:16px}.booking-details{grid-template-columns:1fr}.booking-footer{flex-direction:column;gap:16px;align-items:stretch}.booking-actions{width:100%;flex-direction:column}.btn-view-court,.btn-cancel{width:100%}}.user-profile{max-width:1200px;margin:0 auto;padding:40px}.profile-header{margin-bottom:32px}.profile-container{display:grid;grid-template-columns:1fr 350px;gap:32px}.profile-card{background:#fff;border-radius:16px;padding:32px;box-shadow:0 2px 8px #00000014}.profile-avatar{display:flex;align-items:center;gap:20px;padding-bottom:32px;margin-bottom:32px;border-bottom:2px solid #e2e8f0}.avatar-circle{width:80px;height:80px;background:linear-gradient(135deg,#16a34a,#22c55e);border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0}.avatar-text{font-family:Syne,sans-serif;font-size:36px;font-weight:800;color:#fff}.avatar-info h2{font-family:Syne,sans-serif;font-size:24px;font-weight:700;color:#0f172a;margin:0 0 8px}.user-role{font-size:14px;color:#64748b;margin:0;display:flex;align-items:center;gap:6px}.error-message{padding:14px 18px;background:#fee2e2;border:1px solid #fecaca;border-radius:10px;color:#dc2626;font-size:14px;margin-bottom:20px}.success-message{padding:14px 18px;background:#dcfce7;border:1px solid #bbf7d0;border-radius:10px;color:#16a34a;font-size:14px;margin-bottom:20px}.profile-form{display:flex;flex-direction:column;gap:32px}.form-section{display:flex;flex-direction:column;gap:20px}.section-title{font-family:Syne,sans-serif;font-size:18px;font-weight:700;color:#0f172a;margin:0 0 8px}.form-field{display:flex;flex-direction:column;gap:8px}.form-field label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#475569}.form-field input{padding:14px 16px;border:2px solid #e2e8f0;border-radius:12px;font-size:15px;font-family:Plus Jakarta Sans,sans-serif;color:#0f172a;transition:all .2s ease}.form-field input:focus{outline:none;border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.form-field input:disabled{background:#f8fafc;color:#94a3b8;cursor:not-allowed}.field-note{font-size:12px;color:#64748b;font-style:italic}.form-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #e2e8f0}.btn-cancel,.btn-save{padding:12px 24px;border-radius:10px;font-size:15px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;border:none}.btn-cancel{background:#f1f5f9;color:#475569}.btn-cancel:hover{background:#e2e8f0;color:#0f172a}.btn-save{background:#16a34a;color:#fff}.btn-save:hover:not(:disabled){background:#15803d;transform:translateY(-1px);box-shadow:0 6px 20px #16a34a4d}.btn-save:disabled{opacity:.6;cursor:not-allowed}.profile-stats{display:flex;flex-direction:column;gap:16px}.stats-title{font-family:Syne,sans-serif;font-size:20px;font-weight:700;color:#0f172a;margin:0 0 8px}.stat-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;display:flex;align-items:center;gap:16px;border:2px solid transparent;transition:all .2s ease}.stat-card:hover{border-color:#16a34a;transform:translateY(-2px);box-shadow:0 4px 12px #0000001f}.stat-icon{width:56px;height:56px;background:#dcfce7;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0}.stat-content{flex:1}.stat-value{font-family:Syne,sans-serif;font-size:32px;font-weight:800;color:#0f172a;line-height:1;margin-bottom:4px}.stat-label{font-size:13px;color:#64748b;font-weight:600}.btn-view-bookings{width:100%;padding:14px;background:#16a34a;color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;font-family:Plus Jakarta Sans,sans-serif;cursor:pointer;transition:all .2s ease;margin-top:8px}.btn-view-bookings:hover{background:#15803d;transform:translateY(-1px);box-shadow:0 6px 20px #16a34a4d}@media(max-width:1024px){.profile-container{grid-template-columns:1fr}.profile-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stats-title,.btn-view-bookings{grid-column:1 / -1}}@media(max-width:768px){.user-profile,.profile-card{padding:20px}.profile-avatar{flex-direction:column;text-align:center}.avatar-info h2{text-align:center}.user-role{justify-content:center}.form-actions{flex-direction:column}.btn-cancel,.btn-save{width:100%}.profile-stats{grid-template-columns:1fr}}.chatbot-test-container{max-width:800px;margin:0 auto;padding:20px;height:calc(100vh - 40px);display:flex;flex-direction:column}.chatbot-config{background:#fff;border-radius:8px;padding:30px;box-shadow:0 2px 8px #0000001a}.chatbot-config h2{margin-bottom:10px;color:#333}.config-help{color:#666;margin-bottom:30px;line-height:1.6}.config-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-weight:600;color:#333}.config-input{padding:12px;border:1px solid #ddd;border-radius:6px;font-size:14px;font-family:monospace}.config-input:focus{outline:none;border-color:#4caf50}.form-group small{color:#666;font-size:12px}.config-button{padding:12px 24px;background:#4caf50;color:#fff;border:none;border-radius:6px;font-size:16px;font-weight:600;cursor:pointer;transition:background .3s}.config-button:hover:not(:disabled){background:#45a049}.config-button:disabled{background:#ccc;cursor:not-allowed}.config-examples{margin-top:30px;padding:20px;background:#f5f5f5;border-radius:6px}.config-examples h3{margin-bottom:10px;color:#333}.config-examples ul{margin-left:20px;color:#666;line-height:1.8}.chatbot-header{background:#fff;padding:15px 20px;border-radius:8px 8px 0 0;box-shadow:0 2px 4px #0000001a;display:flex;justify-content:space-between;align-items:center}.chatbot-header h2{margin:0;font-size:20px;color:#333}.chatbot-info{display:flex;gap:10px;align-items:center;font-size:12px;color:#666}.new-chat-button,.config-button-small{padding:6px 12px;background:#2196f3;color:#fff;border:none;border-radius:4px;font-size:12px;cursor:pointer;transition:background .3s}.new-chat-button:hover,.config-button-small:hover{background:#1976d2}.chatbot-messages{flex:1;overflow-y:auto;padding:20px;background:#f5f5f5;display:flex;flex-direction:column;gap:15px}.message-system{text-align:center;padding:8px}.message-system .message-content{display:inline-block;padding:6px 12px;background:#e3f2fd;color:#1976d2;border-radius:12px;font-size:12px}.message-user{align-self:flex-end;max-width:70%}.message-user .message-content{background:#4caf50;color:#fff;padding:12px 16px;border-radius:18px 18px 4px;word-wrap:break-word}.message-bot{align-self:flex-start;max-width:70%}.message-bot .message-content{background:#fff;color:#333;padding:12px 16px;border-radius:18px 18px 18px 4px;box-shadow:0 1px 2px #0000001a;word-wrap:break-word}.message-time{font-size:10px;color:#999;margin-top:4px;padding:0 8px}.message-buttons{display:flex;flex-direction:column;gap:8px;margin-top:12px}.message-button{padding:10px 16px;background:#f0f0f0;border:1px solid #ddd;border-radius:8px;cursor:pointer;transition:all .2s;text-align:left;font-size:14px}.message-button:hover{background:#e0e0e0;border-color:#4caf50}.message-list{display:flex;flex-direction:column;gap:8px;margin-top:12px}.message-list-item{padding:12px;background:#f9f9f9;border:1px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s}.message-list-item:hover{background:#f0f0f0;border-color:#4caf50;transform:translate(4px)}.list-item-title{font-weight:600;color:#333;margin-bottom:4px}.list-item-description{font-size:12px;color:#666}.typing-indicator{display:flex;gap:4px;padding:12px 16px}.typing-indicator span{width:8px;height:8px;background:#999;border-radius:50%;animation:typing 1.4s infinite}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{transform:translateY(0);opacity:.7}30%{transform:translateY(-10px);opacity:1}}.chatbot-input{background:#fff;padding:15px 20px;display:flex;gap:10px;align-items:flex-end;box-shadow:0 -2px 4px #0000001a}.chatbot-input textarea{flex:1;padding:12px;border:1px solid #ddd;border-radius:20px;resize:none;font-family:inherit;font-size:14px}.chatbot-input textarea:focus{outline:none;border-color:#4caf50}.send-button{padding:12px 24px;background:#4caf50;color:#fff;border:none;border-radius:20px;font-weight:600;cursor:pointer;transition:background .3s}.send-button:hover:not(:disabled){background:#45a049}.send-button:disabled{background:#ccc;cursor:not-allowed}.chatbot-suggestions{background:#fff;padding:10px 20px;border-radius:0 0 8px 8px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.chatbot-suggestions p{margin:0;font-size:12px;color:#666;font-weight:600}.chatbot-suggestions button{padding:6px 12px;background:#f0f0f0;border:1px solid #ddd;border-radius:12px;font-size:12px;cursor:pointer;transition:all .2s}.chatbot-suggestions button:hover{background:#e0e0e0;border-color:#4caf50}.chatbot-messages::-webkit-scrollbar{width:6px}.chatbot-messages::-webkit-scrollbar-track{background:#f1f1f1}.chatbot-messages::-webkit-scrollbar-thumb{background:#888;border-radius:3px}.chatbot-messages::-webkit-scrollbar-thumb:hover{background:#555}:root{--color-primary: #10b981;--color-primary-dark: #059669;--color-primary-darker: #047857;--color-primary-light: #34d399;--color-primary-lighter: #6ee7b7;--color-primary-pale: #d1fae5;--color-primary-bg: #ecfdf5;--color-secondary: #065f46;--color-secondary-dark: #064e3b;--color-white: #ffffff;--color-black: #000000;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-success: #10b981;--color-success-bg: #d1fae5;--color-error: #ef4444;--color-error-bg: #fee2e2;--color-warning: #f59e0b;--color-warning-bg: #fef3c7;--color-info: #3b82f6;--color-info-bg: #dbeafe;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1);--shadow-green: 0 5px 20px rgba(16, 185, 129, .3);--transition-fast: .15s ease-in-out;--transition-base: .2s ease-in-out;--transition-slow: .3s ease-in-out;--font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-family);font-size:var(--font-size-base);line-height:1.5;color:var(--color-gray-900);background-color:var(--color-white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-error{color:var(--color-error)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.bg-primary{background-color:var(--color-primary)}.bg-primary-light{background-color:var(--color-primary-bg)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.ib-page-container{min-height:100vh;background-color:var(--color-gray-50)}.ib-page-header{background:var(--color-white);padding:var(--spacing-xl);border-bottom:1px solid var(--color-gray-200);display:flex;justify-content:space-between;align-items:center}.ib-page-header h1{margin:0;color:var(--color-gray-900);font-size:var(--font-size-2xl);font-weight:700}.ib-page-content{padding:var(--spacing-xl);max-width:1400px;margin:0 auto}.ib-btn-primary{padding:12px 24px;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-darker) 100%);color:var(--color-white);border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:transform var(--transition-base),box-shadow var(--transition-base);font-family:var(--font-family);text-decoration:none;display:inline-block}.ib-btn-primary:hover{transform:translateY(-2px);box-shadow:var(--shadow-green)}.ib-btn-secondary{padding:12px 24px;background:var(--color-white);color:var(--color-gray-700);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:all var(--transition-base);font-family:var(--font-family);text-decoration:none;display:inline-block}.ib-btn-secondary:hover{background:var(--color-gray-50)}@media(max-width:768px){.ib-page-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-md)}.ib-page-content{padding:var(--spacing-lg)}}#root{width:100%;height:100%;margin:0;padding:0}body{margin:0;padding:0;overflow-x:hidden}
