:root{--bg: #0a0a0a;--accent: #ffd700;--accent-dim: #ffb800;--text: #f5f5f0;--text-muted: #a0a0a0;--card: rgba(20, 20, 20, .85);--booked: #ffd700;--blocked: #2a2a2a;--border: rgba(255, 215, 0, .25);--font-display: "Archivo Black", sans-serif;--font-mono: "JetBrains Mono", monospace}*{box-sizing:border-box;margin:0;padding:0}body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-display);letter-spacing:.02em}.mono{font-family:var(--font-mono)}.app-shell{min-height:100vh;display:flex;flex-direction:column;position:relative;overflow-x:hidden}.bg-sketches{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.06}.bg-sketch{position:absolute;animation:drift 30s ease-in-out infinite alternate}.bg-sketch.paddle{top:10%;left:5%;animation-delay:0s}.bg-sketch.pool{top:50%;right:8%;animation-delay:-10s}.bg-sketch.snooker{bottom:15%;left:40%;animation-delay:-20s}@keyframes drift{0%{transform:translate(0) rotate(0)}to{transform:translate(24px,-16px) rotate(3deg)}}.nav-bar{position:relative;z-index:10;display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--border);background:#0a0a0ae6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-wrap:wrap}.nav-brand{font-family:var(--font-display);color:var(--accent);font-size:1.1rem;margin-right:auto}.nav-links{display:flex;gap:.5rem;flex-wrap:wrap}.nav-links a{color:var(--text-muted);text-decoration:none;padding:.4rem .75rem;border-radius:4px;font-size:.9rem;transition:color .2s,box-shadow .2s}.nav-links a:hover,.nav-links a.active{color:var(--accent);box-shadow:0 0 12px #ffd7004d}.main-content{position:relative;z-index:1;flex:1;padding:1.5rem;max-width:1600px;margin:0 auto;width:100%}.card{background:var(--card);border:1px solid var(--border);border-radius:8px;padding:1.25rem;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:box-shadow .25s,border-color .25s}.card:hover{border-color:#ffd70080;box-shadow:0 0 20px #ffd70026}.btn{font-family:inherit;cursor:pointer;border:none;border-radius:4px;padding:.55rem 1.1rem;font-weight:600;transition:transform .15s,box-shadow .15s}.btn-primary{background:var(--accent);color:var(--bg)}.btn-primary:hover{box-shadow:0 0 16px #ffd70080}.btn-primary:active{animation:pulse .3s ease}@keyframes pulse{0%,to{box-shadow:0 0 8px #ffd70066}50%{box-shadow:0 0 24px #ffd700cc}}.btn-ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn-ghost:hover{border-color:var(--accent);color:var(--accent)}.btn-danger{background:#4a1515;color:#faa;border:1px solid #662222}.form-group{margin-bottom:1rem}.form-group label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.35rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.6rem .75rem;background:#141414;border:1px solid #333;border-radius:4px;color:var(--text);font-family:var(--font-mono);font-size:.9rem}.form-group input[type=date]::-webkit-calendar-picker-indicator,.form-group input[type=time]::-webkit-calendar-picker-indicator{filter:invert(1)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 12px #ffd70040}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem}.modal{background:#111;border:1px solid var(--accent);border-radius:8px;padding:1.5rem;max-width:480px;width:100%;max-height:90vh;overflow-y:auto;animation:slideIn .25s ease}@keyframes slideIn{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}.modal h2{margin-bottom:1rem;color:var(--accent)}.modal-actions{display:flex;gap:.75rem;margin-top:1.25rem;justify-content:flex-end}.error-msg{color:#ff6b6b;font-size:.85rem;margin-top:.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:1rem}.login-card{width:100%;max-width:400px}.login-card h1{color:var(--accent);margin-bottom:.25rem}.login-card p{color:var(--text-muted);margin-bottom:1.5rem;font-size:.9rem}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;flex-wrap:wrap;gap:1rem}.page-header h1{color:var(--accent)}.date-nav{display:flex;align-items:center;gap:.75rem}.date-nav span{font-family:var(--font-mono);min-width:180px;text-align:center}.grid-wrap{overflow-x:auto}.slot-grid{width:100%;border-collapse:collapse;font-size:.8rem}.slot-grid th,.slot-grid td{border:1px solid #222;padding:0;min-width:120px;height:44px;vertical-align:top}.slot-grid th{background:#111;color:var(--accent);padding:.5rem;font-size:.75rem;position:sticky;top:0;z-index:2}.slot-grid .time-col{min-width:56px;background:#111;color:var(--text-muted);font-family:var(--font-mono);font-size:.7rem;padding:.35rem;position:sticky;left:0;z-index:1}.slot-cell{cursor:pointer;transition:box-shadow .2s;position:relative}.slot-cell.empty:hover{background:#ffd70014;box-shadow:inset 0 0 12px #ffd70033;animation:slotPulse 1.5s ease infinite}@keyframes slotPulse{0%,to{box-shadow:inset 0 0 4px #ffd7001a}50%{box-shadow:inset 0 0 14px #ffd70040}}.slot-cell.booked{background:var(--booked);color:var(--bg);cursor:pointer;padding:.25rem .35rem;font-weight:600;font-size:.7rem}.slot-cell.blocked{background:var(--blocked);color:var(--text-muted);cursor:default;text-align:center}.slot-cell.covered{border-top:none}.data-table{width:100%;border-collapse:collapse;font-size:.85rem}.data-table th,.data-table td{padding:.6rem .75rem;border-bottom:1px solid #222;text-align:left}.data-table th{color:var(--accent-dim);font-size:.75rem;text-transform:uppercase}.data-table tr:hover td{background:#ffd7000a}.badge{display:inline-block;padding:.15rem .5rem;border-radius:3px;font-size:.7rem;font-weight:600}.badge-confirmed{background:#ffd70033;color:var(--accent)}.badge-cancelled{background:#ff646426;color:#f88}.filters{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.filters input,.filters select{padding:.45rem .6rem;background:#141414;border:1px solid #333;color:var(--text);border-radius:4px;font-family:var(--font-mono);font-size:.85rem}.stats-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin-bottom:1.5rem}.stat-card .value{font-family:var(--font-mono);font-size:1.75rem;color:var(--accent);font-weight:600}.stat-card .label{font-size:.8rem;color:var(--text-muted);margin-top:.25rem}.chart-card{margin-top:1.5rem;min-height:280px}.period-toggle{display:flex;gap:.5rem}.period-toggle button{padding:.4rem .8rem;background:#1a1a1a;border:1px solid #333;color:var(--text-muted);cursor:pointer;border-radius:4px}.period-toggle button.active{border-color:var(--accent);color:var(--accent);box-shadow:0 0 10px #ffd70033}.court-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.guest-list{display:flex;flex-direction:column;gap:1rem}.guest-item{display:flex;align-items:center;justify-content:space-between;padding:1rem;border:1px solid #222;border-radius:6px;flex-wrap:wrap;gap:.75rem}.guest-item.inactive{opacity:.5}.count-up{animation:countUp .6s ease}@keyframes countUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cuebot-wrap{position:fixed;bottom:1.5rem;right:1.5rem;z-index:200;display:flex;flex-direction:column;align-items:flex-end;gap:.75rem;pointer-events:none}.cuebot-fab{pointer-events:all;display:flex;align-items:center;gap:.4rem;padding:.55rem 1rem .55rem .85rem;background:var(--accent);color:#0a0a0a;border:none;border-radius:50px;cursor:pointer;font-family:inherit;font-weight:700;font-size:.88rem;letter-spacing:.02em;box-shadow:0 4px 20px #ffd70073;transition:transform .18s,box-shadow .18s}.cuebot-fab:hover{transform:translateY(-2px);box-shadow:0 6px 28px #ffd700a6}.cuebot-fab-icon{font-size:1.05rem}.cuebot-fab-label{font-family:var(--font-display);font-size:.82rem}.cuebot-panel{pointer-events:all;width:480px;background:#111;border:1px solid var(--border);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 48px #000000b3,0 0 0 1px #ffd7001f;animation:cuebotIn .2s ease}@keyframes cuebotIn{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cuebot-header{display:flex;align-items:center;justify-content:space-between;padding:.7rem .9rem;background:#ffd7000d;border-bottom:1px solid var(--border);flex-shrink:0}.cuebot-ai-badge{font-size:.65rem;font-weight:700;color:#4ade80;background:#4ade801f;border:1px solid rgba(74,222,128,.3);padding:1px 6px;border-radius:10px;letter-spacing:.04em}.cuebot-icon-btn{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:.95rem;padding:.2rem .4rem;border-radius:4px;transition:color .18s,background .18s;line-height:1}.cuebot-icon-btn:hover{color:var(--text);background:#ffffff0f}.cuebot-messages{flex:1;overflow-y:auto;padding:.85rem;display:flex;flex-direction:column;gap:.7rem;min-height:300px;max-height:400px;scroll-behavior:smooth}.cuebot-messages::-webkit-scrollbar{width:4px}.cuebot-messages::-webkit-scrollbar-thumb{background:#333;border-radius:2px}.cuebot-welcome{padding:.25rem 0}.cuebot-suggestions{display:flex;flex-direction:column;gap:.4rem}.cuebot-suggestion{text-align:left;padding:.45rem .75rem;background:#ffd7000a;border:1px solid var(--border);border-radius:7px;color:var(--text-muted);cursor:pointer;font-family:inherit;font-size:.82rem;transition:border-color .18s,color .18s,background .18s}.cuebot-suggestion:hover{border-color:var(--accent);color:var(--accent);background:#ffd70014}.cuebot-msg{display:flex;gap:.45rem;align-items:flex-start}.cuebot-msg--user{flex-direction:row-reverse}.cuebot-avatar{font-size:1rem;flex-shrink:0;margin-top:.12rem}.cuebot-bubble{padding:.5rem .75rem;border-radius:10px;font-size:.845rem;line-height:1.55;white-space:pre-wrap;word-break:break-word;max-width:84%}.cuebot-msg--user .cuebot-bubble{background:var(--accent);color:#0a0a0a;border-radius:10px 10px 2px;font-weight:500}.cuebot-msg--bot .cuebot-bubble{background:#191919;border:1px solid #2a2a2a;border-radius:10px 10px 10px 2px;color:var(--text)}.cuebot-msg--error .cuebot-bubble{background:#ff464614;border-color:#ff464640;color:#f88}.cuebot-typing{display:flex!important;gap:5px;align-items:center;padding:.65rem .85rem!important}.cuebot-typing span{width:7px;height:7px;background:var(--text-muted);border-radius:50%;animation:cueDot 1.2s infinite ease-in-out}.cuebot-typing span:nth-child(2){animation-delay:.2s}.cuebot-typing span:nth-child(3){animation-delay:.4s}@keyframes cueDot{0%,80%,to{transform:scale(.75);opacity:.45}40%{transform:scale(1.2);opacity:1}}.cuebot-input-row{display:flex;gap:.5rem;padding:.65rem .75rem;border-top:1px solid var(--border);background:#0d0d0d;flex-shrink:0}.cuebot-input{flex:1;padding:.5rem .7rem;background:#1a1a1a;border:1px solid #333;border-radius:7px;color:var(--text);font-family:inherit;font-size:.875rem;outline:none;transition:border-color .18s}.cuebot-input:focus{border-color:var(--accent);box-shadow:0 0 0 2px #ffd7001a}.cuebot-input:disabled{opacity:.55;cursor:not-allowed}.cuebot-send{padding:.5rem .8rem;background:var(--accent);color:#0a0a0a;border:none;border-radius:7px;cursor:pointer;font-size:1rem;font-weight:700;transition:opacity .18s,box-shadow .18s;line-height:1}.cuebot-send:hover:not(:disabled){box-shadow:0 0 14px #ffd70080}.cuebot-send:disabled{opacity:.35;cursor:not-allowed}.seat-map{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:.5rem;margin-top:1rem}.seat-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:6px;border:2px solid #333;cursor:pointer;font-family:var(--font-mono);font-size:.75rem;font-weight:600;transition:transform .15s,box-shadow .15s;position:relative}.seat-cell.free{background:var(--accent);color:var(--bg);border-color:var(--accent-dim)}.seat-cell.occupied{background:var(--accent);color:var(--bg);border-color:var(--accent-dim);cursor:pointer}.seat-cell.reserved{background:#2a2a2a;color:var(--text-muted);border-color:#444}.seat-cell:hover{transform:scale(1.05);box-shadow:0 0 12px #ffd7004d}.seat-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:#111;border:1px solid var(--border);padding:.5rem .75rem;border-radius:4px;font-size:.7rem;white-space:nowrap;z-index:10;pointer-events:none;opacity:0;transition:opacity .2s}.seat-cell:hover .seat-tooltip{opacity:1}.action-boxes{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin:1.5rem 0}.action-box{padding:2rem 1.5rem;text-align:center;cursor:pointer;border:2px solid var(--border);border-radius:8px;background:var(--card);transition:border-color .2s,box-shadow .2s,transform .15s}.action-box:hover{border-color:var(--accent);box-shadow:0 0 24px #ffd70033;transform:translateY(-2px)}.action-box h2{color:var(--accent);margin-bottom:.5rem}.action-box p{color:var(--text-muted);font-size:.85rem}.row-overdue td{background:#ff464626!important}.row-overdue td:first-child{border-left:3px solid #ff6b6b}.branch-switcher select{padding:.4rem .75rem;background:#141414;border:1px solid var(--border);color:var(--accent);border-radius:4px;font-family:var(--font-mono);font-size:.85rem}.th-sortable{cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}.th-sortable:hover{color:var(--accent)}.filter-icon{opacity:.5;margin-left:.25rem;font-size:.65rem}.badge-active{background:#4ade8026;color:#4ade80}.badge-pending{background:#ffd70026;color:var(--accent)}.badge-inactive{background:#ff646426;color:#f88}.photo-preview{width:120px;height:120px;object-fit:cover;border-radius:8px;border:1px solid var(--border)}.tabs{display:flex;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}.tabs button{padding:.45rem 1rem;background:#1a1a1a;border:1px solid #333;color:var(--text-muted);cursor:pointer;border-radius:4px}.tabs button.active{border-color:var(--accent);color:var(--accent)}.activity-feed{display:flex;flex-direction:column;gap:.5rem;max-height:320px;overflow-y:auto}.activity-item{padding:.6rem .75rem;border-left:3px solid var(--accent);background:#ffd70008;font-size:.85rem}.activity-item .time{color:var(--text-muted);font-size:.75rem;font-family:var(--font-mono)}@keyframes slideInToast{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:640px){.seat-map{grid-template-columns:repeat(auto-fill,minmax(56px,1fr))}.nav-links{width:100%}}
