@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;600;800&family=Inter:wght@400;600&display=swap";:root{--primary-glow:conic-gradient(from 180deg at 50% 50%, #16abff33 0deg, #0885ff33 55deg, #54d6ff33 120deg, #0071ff33 160deg, transparent 360deg);--background:#0a0c10;--surface:#ffffff0d;--surface-hover:#ffffff1a;--accent:#00f2ff;--accent-secondary:#7000ff;--text-main:#f8faff;--text-dim:#94a3b8;--border:#ffffff1a;--glass-bg:#0f172acc;--glass-border:#ffffff1a}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--background);color:var(--text-main);min-height:100vh;font-family:Inter,system-ui,-apple-system,sans-serif;overflow-x:hidden}h1,h2,h3,.brand{letter-spacing:-.02em;font-family:Outfit,sans-serif;font-weight:800}.glass{background:var(--glass-bg);-webkit-backdrop-filter:blur(12px);border:1px solid var(--glass-border);border-radius:16px}.btn{cursor:pointer;border:none;border-radius:12px;align-items:center;gap:8px;padding:12px 24px;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex}.btn-primary{background:linear-gradient(135deg, var(--accent), var(--accent-secondary));color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00f2ff4d}.gradient-text{background:linear-gradient(135deg,#fff 0%,#94a3b8 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.cyber-grid{background-image:linear-gradient(var(--border) 1px, transparent 1px), linear-gradient(90deg, var(--border) 1px, transparent 1px);z-index:-1;opacity:.2;background-size:40px 40px;position:fixed;inset:0}.app-container{gap:20px;width:100vw;height:100vh;padding:20px;display:flex}.sidebar{flex-direction:column;width:260px;padding:24px;display:flex}.brand{color:var(--accent);align-items:center;gap:12px;margin-bottom:48px;font-size:1.5rem;display:flex}.brand-logo{filter:drop-shadow(0 0 8px var(--accent))}.nav-items{flex-direction:column;flex-grow:1;gap:8px;display:flex}.nav-item{color:var(--text-dim);cursor:pointer;text-align:left;background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;width:100%;padding:12px 16px;font-weight:500;transition:all .2s;display:flex}.nav-item:hover{background:var(--surface);color:var(--text-main)}.nav-item.active{background:var(--surface-hover);color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.nav-footer{border-top:1px solid var(--border);padding-top:24px}.user-profile{align-items:center;gap:12px;display:flex}.avatar{background:var(--accent-secondary);border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.user-name{font-size:.9rem;font-weight:600}.user-role{color:var(--text-dim);font-size:.75rem}.content{flex-direction:column;flex-grow:1;gap:20px;display:flex}.main-header{justify-content:space-between;align-items:center;height:64px;padding:0 24px;display:flex}.header-status{align-items:center;gap:24px;display:flex}.status-pill{background:var(--surface);border-radius:20px;align-items:center;gap:8px;padding:4px 12px;font-size:.75rem;font-weight:800;display:flex}.status-pill.live{color:#00f2ff;box-shadow:0 0 10px #00f2ff33}.status-pill .dot{background:#ff3e3e;border-radius:50%;width:8px;height:8px}.status-pill.live .dot{background:#00f2ff;animation:2s infinite pulse;box-shadow:0 0 8px #00f2ff}@keyframes pulse{0%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}to{opacity:1;transform:scale(1)}}.match-info{color:var(--text-dim);align-items:center;gap:16px;font-size:.9rem;display:flex}.latency{color:#22c55e;align-items:center;gap:4px;display:flex}.btn-icon{cursor:pointer;width:36px;height:36px;color:var(--text-main);border:1px solid var(--border);background:0 0;border-radius:8px;justify-content:center;align-items:center;display:flex}.dashboard-grid{grid-template-columns:1fr 320px;gap:20px;height:calc(100vh - 124px);display:grid}.video-section{border-radius:24px;position:relative;overflow:hidden}.video-placeholder{width:100%;height:100%;color:var(--text-dim);background:#000;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.placeholder-icon{opacity:.2}.video-controls{position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.tab-content{flex-direction:column;gap:32px;padding:32px;display:flex}.subtitle{color:var(--text-dim);margin-top:-24px}.config-grid{grid-template-columns:1fr 1fr;gap:40px;display:grid}.config-group h3{color:var(--accent);margin-bottom:20px;font-size:1rem}.options{flex-direction:column;gap:12px;display:flex}.option-card{background:var(--surface);border:1px solid var(--border);cursor:pointer;color:var(--text-main);text-align:left;border-radius:12px;align-items:center;gap:16px;padding:16px;transition:all .2s;display:flex}.option-card:hover{background:var(--surface-hover);border-color:#fff3}.option-card.active{border-color:var(--accent);background:#00f2ff1a;box-shadow:0 0 15px #00f2ff1a}.option-card p{margin:0;font-weight:600}.option-card span{color:var(--text-dim);font-size:.75rem}.calibration-section{background:linear-gradient(90deg, var(--surface), transparent);justify-content:space-between;align-items:center;padding:24px;display:flex}.calib-info h3{font-size:1.1rem}.calib-info p{color:var(--text-dim);font-size:.85rem}.start-btn{justify-content:center;width:100%;padding:16px;font-size:1.1rem}.calibration-layout{grid-template-columns:400px 1fr;gap:24px;height:calc(100vh - 124px);display:grid}.config-side{overflow-y:auto}.preview-side{border-radius:24px;overflow:hidden;box-shadow:0 0 40px #00f2ff1a}.video-player-container{background:#000;border-radius:24px;flex-direction:column;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.video-stream{flex-grow:1;position:relative}.stream-canvas{background:radial-gradient(circle,#1a1a1a 0%,#000 100%);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.live-video-feed{object-fit:cover;width:100%;height:100%;transform:scaleX(-1)}.camera-error{color:var(--text-dim);text-align:center;flex-direction:column;align-items:center;gap:16px;display:flex}.animate-spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.status-overlay{z-index:10;flex-direction:column;gap:4px;display:flex;position:absolute;top:20px;left:20px}.cam-label{color:var(--accent);border-left:2px solid var(--accent);background:#0009;border-radius:4px;padding:4px 8px;font-size:.7rem;font-weight:800}.resolution{color:var(--text-dim);margin-left:4px;font-size:.6rem}.ar-layer{z-index:5;width:100%;height:100%;position:absolute;top:0;left:0}.path-predicted{fill:none;stroke:#ffffff4d;stroke-width:2px}.path-actual{fill:none;stroke:var(--accent);stroke-width:3px;filter:drop-shadow(0 0 8px var(--accent));stroke-dasharray:1000;stroke-dashoffset:1000px;animation:2s ease-out forwards drawLine}@keyframes drawLine{to{stroke-dashoffset:0}}.ball-marker{filter:drop-shadow(0 0 5px #ffffff80)}.cue-ball{fill:#fff}.object-ball{fill:#ff3e3e}.ar-text{fill:var(--accent);font-family:Outfit;font-size:14px;font-weight:600}.video-watermark{opacity:.3;letter-spacing:.2em;font-size:.6rem;position:absolute;bottom:80px;right:20px}.video-toolbar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);background:#000c;justify-content:space-between;align-items:center;height:60px;padding:0 20px;display:flex}.tool-group{gap:12px;display:flex}.tool-btn{color:var(--text-dim);cursor:pointer;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:8px 12px;font-size:.8rem;font-weight:600;transition:all .2s;display:flex}.tool-btn:hover{background:var(--surface);color:var(--text-main)}.tool-btn.active{color:var(--accent);background:#00f2ff1a}.primary-glow{color:var(--accent);filter:drop-shadow(0 0 5px var(--accent))}.side-panel{flex-direction:column;gap:20px;display:flex}.scoreboard-widget{padding:20px}.score-display{justify-content:space-around;align-items:center;margin-top:16px;display:flex}.player-score{flex-direction:column;align-items:center;gap:4px;display:flex}.player-score .name{color:var(--text-dim);font-size:.75rem}.player-score .value{font-family:Outfit;font-size:2.5rem;font-weight:800}.vs{opacity:.3;font-weight:800}.events-widget{flex-direction:column;flex-grow:1;padding:20px;display:flex;overflow:hidden}.widget-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.badge{background:var(--accent-secondary);letter-spacing:.05em;border-radius:4px;padding:2px 8px;font-size:.6rem}.event-list{flex-direction:column;gap:12px;display:flex;overflow-y:auto}.event-card{background:var(--surface);border-left:3px solid var(--accent);border-radius:12px;gap:12px;padding:12px;display:flex}.event-details{flex-grow:1}.event-msg{font-size:.85rem}.event-time{color:var(--text-dim);font-size:.7rem}.analysis-header{margin-bottom:8px}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;display:grid}.stat-card{align-items:center;gap:16px;padding:20px;transition:transform .3s;display:flex}.stat-card:hover{background:var(--surface-hover);transform:translateY(-5px)}.stat-icon{background:#00f2ff1a;border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;display:flex}.stat-info{flex-direction:column;display:flex}.stat-label{color:var(--text-dim);font-size:.75rem}.stat-value-group{align-items:baseline;gap:8px;display:flex}.stat-value{font-family:Outfit;font-size:1.5rem;font-weight:800}.stat-trend{font-size:.7rem;font-weight:600}.stat-trend.positive{color:#22c55e}.stat-trend.negative{color:#ef4444}.charts-container{margin-top:20px}.chart-item{padding:24px}.chart-item h3{margin-bottom:24px;font-size:1rem}.mock-chart{border-bottom:1px solid var(--border);align-items:flex-end;height:200px;padding-bottom:20px;display:flex}.chart-bars{justify-content:space-between;align-items:flex-end;gap:10px;width:100%;height:100%;display:flex}.bar{background:linear-gradient(to top, var(--accent), var(--accent-secondary));opacity:.6;transform-origin:bottom;border-radius:4px 4px 0 0;flex-grow:1;transition:opacity .3s;animation:1s ease-out forwards growBar}@keyframes growBar{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.bar:hover{opacity:1}.calibration-polygon{fill:#00f2ff33;stroke:var(--accent);stroke-width:2px;stroke-dasharray:4;animation:2s infinite pulsePolygon}@keyframes pulsePolygon{0%{fill:#00f2ff1a}50%{fill:#00f2ff4d}to{fill:#00f2ff1a}}.calibration-handle{fill:var(--accent);stroke:#fff;stroke-width:2px;cursor:crosshair;filter:drop-shadow(0 0 5px var(--accent))}.calibration-label{fill:#fff;pointer-events:none;font-size:12px;font-weight:800}.pulse{animation:1.5s infinite pulseText}@keyframes pulseText{0%{opacity:.5}50%{opacity:1}to{opacity:.5}}
