:root,[data-theme=dark]{--bg-primary: #090d16;--bg-secondary: #0f172a;--bg-card: rgba(17, 24, 39, .85);--bg-card-hover: rgba(30, 41, 59, .95);--bg-input: rgba(15, 23, 42, .8);--border-color: rgba(255, 255, 255, .12);--border-hover: rgba(255, 255, 255, .28);--border-focus: #38bdf8;--text-primary: #f8fafc;--text-secondary: #cbd5e1;--text-muted: #64748b;--btn-primary-bg: #ffffff;--btn-primary-text: #090d16;--btn-primary-hover: #f1f5f9;--btn-secondary-bg: rgba(255, 255, 255, .08);--btn-secondary-text: #f8fafc;--btn-secondary-hover: rgba(255, 255, 255, .16);--btn-secondary-border: rgba(255, 255, 255, .2);--glass-blur: blur(20px);--shadow-card: 0 12px 36px rgba(0, 0, 0, .65);--shadow-glow: 0 0 25px rgba(56, 189, 248, .25);--map-filter: grayscale(100%) invert(100%) contrast(140%) brightness(85%);--map-popup-bg: #090d16;--map-popup-text: #f8fafc;--map-popup-border: rgba(255, 255, 255, .2);--nav-bg: rgba(9, 13, 22, .92);--badge-live-bg: #090d16;--badge-live-border: #38bdf8;--badge-live-text: #38bdf8;--badge-offline-bg: rgba(245, 158, 11, .12);--badge-offline-border: rgba(245, 158, 11, .4);--badge-offline-text: #f59e0b;--badge-finished-bg: rgba(148, 163, 184, .12);--badge-finished-border: rgba(148, 163, 184, .3);--badge-finished-text: #94a3b8;--accent-cyan: #38bdf8;--accent-emerald: #10b981;--accent-amber: #f59e0b;--accent-rose: #f43f5e;--radius-sm: 8px;--radius-md: 14px;--radius-lg: 20px;--font-sans: "Outfit", "Plus Jakarta Sans", system-ui, -apple-system, sans-serif}[data-theme=light]{--bg-primary: #f1f5f9;--bg-secondary: #ffffff;--bg-card: rgba(255, 255, 255, .95);--bg-card-hover: #ffffff;--bg-input: #ffffff;--border-color: #cbd5e1;--border-hover: #94a3b8;--border-focus: #0284c7;--text-primary: #0f172a;--text-secondary: #334155;--text-muted: #64748b;--btn-primary-bg: #0f172a;--btn-primary-text: #ffffff;--btn-primary-hover: #1e293b;--btn-secondary-bg: #ffffff;--btn-secondary-text: #0f172a;--btn-secondary-hover: #f8fafc;--btn-secondary-border: #cbd5e1;--glass-blur: blur(20px);--shadow-card: 0 10px 25px rgba(15, 23, 42, .08);--shadow-glow: 0 0 20px rgba(2, 132, 199, .18);--map-filter: none;--map-popup-bg: #ffffff;--map-popup-text: #0f172a;--map-popup-border: #cbd5e1;--nav-bg: rgba(255, 255, 255, .92);--badge-live-bg: #eff6ff;--badge-live-border: #0284c7;--badge-live-text: #0284c7;--badge-offline-bg: #fffbeb;--badge-offline-border: #f59e0b;--badge-offline-text: #b45309;--badge-finished-bg: #f1f5f9;--badge-finished-border: #94a3b8;--badge-finished-text: #475569;--accent-cyan: #0284c7;--accent-emerald: #059669;--accent-amber: #d97706;--accent-rose: #e11d48}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-primary);min-height:100vh;overflow-x:hidden;-webkit-font-smoothing:antialiased;transition:background-color .25s ease,color .25s ease}[data-theme=dark] body{background-image:radial-gradient(at 0% 0%,rgba(56,189,248,.04) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(16,185,129,.03) 0px,transparent 50%)}[data-theme=light] body{background-image:radial-gradient(at 0% 0%,rgba(2,132,199,.05) 0px,transparent 50%),radial-gradient(at 100% 100%,rgba(5,150,105,.04) 0px,transparent 50%)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.glass-panel{background:var(--bg-card);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-card);transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}@keyframes pulse-dot{0%{transform:scale(.9);box-shadow:0 0 #38bdf8cc}70%{transform:scale(1.2);box-shadow:0 0 0 10px #38bdf800}to{transform:scale(.9);box-shadow:0 0 #38bdf800}}@keyframes pulse-amber{0%{opacity:.6}50%{opacity:1}to{opacity:.6}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.live-indicator{display:inline-flex;align-items:center;gap:7px;background:var(--badge-live-bg);border:1px solid var(--badge-live-border);color:var(--badge-live-text);padding:4px 12px;border-radius:9999px;font-size:.75rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;box-shadow:0 2px 10px #00000014;white-space:nowrap}.live-indicator .dot{width:8px;height:8px;background:var(--badge-live-text);border-radius:50%;animation:pulse-dot 1.6s infinite}.offline-indicator{display:inline-flex;align-items:center;gap:6px;background:var(--badge-offline-bg);border:1px solid var(--badge-offline-border);color:var(--badge-offline-text);padding:4px 12px;border-radius:9999px;font-size:.75rem;font-weight:700;white-space:nowrap}.offline-indicator .dot{width:8px;height:8px;background:var(--badge-offline-text);border-radius:50%;animation:pulse-amber 1.8s infinite}.online-indicator{display:inline-flex;align-items:center;gap:6px;background:#10b9811f;border:1px solid rgba(16,185,129,.35);color:var(--accent-emerald);padding:5px 14px;border-radius:9999px;font-size:.78rem;font-weight:700}.online-indicator .dot{width:8px;height:8px;background:var(--accent-emerald);border-radius:50%}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--btn-primary-bg);color:var(--btn-primary-text);border:1px solid transparent;padding:10px 18px;border-radius:var(--radius-sm);font-family:inherit;font-size:.875rem;font-weight:700;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 14px #00000026}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px #00000040}.btn-primary:disabled{opacity:.45;cursor:not-allowed;transform:none}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--btn-secondary-bg);color:var(--btn-secondary-text);border:1px solid var(--btn-secondary-border);padding:10px 18px;border-radius:var(--radius-sm);font-family:inherit;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:var(--btn-secondary-hover);border-color:var(--border-hover)}.theme-toggle-btn{display:inline-flex;align-items:center;gap:8px;background:var(--btn-secondary-bg);border:1px solid var(--border-color);color:var(--text-primary);padding:7px 14px;border-radius:9999px;font-family:inherit;font-size:.8rem;font-weight:700;cursor:pointer;transition:all .25s ease}.theme-toggle-btn:hover{background:var(--btn-secondary-hover);border-color:var(--border-hover);transform:translateY(-1px)}.leaflet-container{width:100%;height:100%;border-radius:var(--radius-md);background:var(--bg-primary)!important;font-family:var(--font-sans)!important}.leaflet-tile-pane{filter:var(--map-filter);transition:filter .3s ease}.leaflet-popup-content-wrapper{background:var(--map-popup-bg)!important;color:var(--map-popup-text)!important;border:1px solid var(--map-popup-border)!important;border-radius:14px!important;box-shadow:var(--shadow-card)!important;padding:0!important;overflow:hidden}.leaflet-popup-content{margin:0!important;line-height:normal!important;min-width:280px!important;max-width:380px!important;width:auto!important;word-break:break-word!important;overflow-wrap:anywhere!important}.leaflet-popup-tip{background:var(--map-popup-bg)!important;border:1px solid var(--map-popup-border)!important}.leaflet-custom-tooltip{max-width:340px!important;word-break:break-word!important;overflow-wrap:anywhere!important;white-space:normal!important}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-24px)}to{opacity:1;transform:translate(0)}}@media(max-width:900px){.nav-btn-text{display:none!important}.navbar-clock-center{padding:4px 10px!important}}@media(max-width:680px){.brand-title-box{display:none!important}.navbar-clock-center span:last-child{display:none!important}.floating-drawer{width:calc(100vw - 32px)!important;top:12px!important;left:16px!important;right:16px!important;bottom:12px!important}.map-floating-badge,.map-bottom-tip{display:none!important}}.public-stream-page{width:100%;height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden;background:var(--bg-primary);color:var(--text-primary)}.public-stream-status-dot{width:8px;height:8px;border-radius:50%;background:currentColor;box-shadow:0 0 10px currentColor;animation:pulse-dot 1.6s infinite}.public-stream-content{width:100%;flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:10px;margin:0;padding:10px}@media(min-width:900px)and (orientation:landscape){.public-stream-content.has-side-info{display:grid;grid-template-columns:minmax(0,1fr) minmax(300px,360px);grid-template-rows:minmax(0,1fr);align-items:stretch}.public-stream-content.has-side-info .public-stream-player{grid-column:1;grid-row:1}.public-stream-content.has-side-info .public-stream-info-panel{grid-column:2;grid-row:1;max-height:100%;overflow-y:auto}}.public-stream-player{position:relative;width:100%;flex:1 1 0%;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden;border:1px solid var(--border-color);border-radius:14px;background:#030507;box-shadow:var(--shadow-card)}.public-stream-player video{display:block;width:auto;height:100%;max-width:100%;max-height:100%;object-fit:contain;background:#030507;margin:0 auto}.public-stream-info-panel{position:relative;z-index:1;width:auto;display:flex;flex-direction:column;flex:0 0 auto;gap:16px;padding:20px;border:1px solid var(--border-color);border-radius:14px;color:#f8fafc;background:linear-gradient(160deg,#0f172afa,#070d18f5);box-shadow:var(--shadow-card)}.public-stream-info-summary{display:flex;align-items:center;flex-wrap:wrap;gap:10px 14px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.13)}.public-stream-info-live,.public-stream-info-duration{min-height:28px;display:inline-flex;align-items:center;gap:7px;padding:5px 9px;border:1px solid rgba(255,255,255,.16);border-radius:999px;font-size:.68rem;font-weight:800;letter-spacing:.04em;white-space:nowrap}.public-stream-info-live.is-live{color:#6ee7b7;border-color:#10b98166;background:#10b9811f}.public-stream-info-live.is-offline{color:#fcd34d;border-color:#f59e0b66;background:#f59e0b1f}.public-stream-info-live.is-finished{color:#cbd5e1;background:#94a3b81f}.public-stream-info-live .public-stream-status-dot{width:7px;height:7px}.public-stream-info-folio{min-width:0;display:flex;flex-direction:column;gap:2px}.public-stream-info-folio>span,.public-stream-info-heading>span,.public-stream-info-meta small{color:#cbd5e1b8;font-size:.58rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}.public-stream-info-folio strong{overflow-wrap:anywhere;font-size:.78rem}.public-stream-info-duration{margin-left:auto;color:#bae6fd;background:#0ea5e91f}.public-stream-info-heading{min-width:0;display:flex;flex-direction:column;gap:4px;padding-bottom:0;border-bottom:none}.public-stream-info-heading strong{overflow:hidden;color:#fff;font-size:clamp(.86rem,1.4vw,1.02rem);font-weight:800;text-overflow:ellipsis;white-space:nowrap}.public-stream-info-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-stream-info-meta>div{min-width:0;display:flex;align-items:flex-start;gap:8px;color:#7dd3fc}.public-stream-info-meta>div>span{min-width:0;display:flex;flex-direction:column;gap:3px}.public-stream-info-meta strong{overflow:hidden;color:#f8fafc;font-size:.73rem;font-weight:650;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.public-stream-info-toggle{position:absolute;z-index:6;top:16px;right:16px;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:8px 11px;border:1px solid rgba(255,255,255,.24);border-radius:10px;color:#fff;background:#070d18d1;box-shadow:0 6px 18px #00000040;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font:inherit;font-size:.72rem;font-weight:750;cursor:pointer;transition:background .18s ease,border-color .18s ease,transform .18s ease}.public-stream-info-toggle:hover{transform:translateY(-1px);border-color:#7dd3fca6;background:#082f49eb}.public-stream-player:fullscreen{width:100vw;height:100vh;border-radius:0;border:none;background:#000}.public-stream-player:fullscreen video{width:auto;height:100%;max-width:100vw;max-height:100vh;object-fit:contain}.public-stream-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:24px;text-align:center;color:#fff;background:#030507d1}.public-stream-loading strong{font-size:1rem}.public-stream-loading span{max-width:440px;color:#ffffffb8;font-size:.84rem;line-height:1.5}.public-stream-ended>svg{color:var(--accent-cyan)}.public-stream-spinner{color:var(--accent-cyan);filter:drop-shadow(0 0 12px rgba(56,189,248,.55));animation:spin 1s linear infinite}.public-stream-loading-overlay{background:#030507e6}.public-stream-loading-overlay>svg:not(.public-stream-spinner){color:#fbbf24}.public-stream-audio{position:absolute;z-index:4;right:16px;bottom:16px;display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid rgba(255,255,255,.35);border-radius:10px;color:#fff;background:#080d16e6;font:inherit;font-size:.82rem;font-weight:700;cursor:pointer}.public-stream-eyebrow{color:var(--text-muted);font-size:.67rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}@media(max-width:680px){.public-stream-content{padding:7px;gap:7px}.public-stream-player{min-height:0;border-radius:9px}.public-stream-eyebrow{font-size:.57rem}.public-stream-audio{right:10px;bottom:10px;padding:9px 11px}.public-stream-info-panel{width:auto;gap:9px;padding:14px;border-radius:11px}.public-stream-info-summary{gap:7px 9px}.public-stream-info-live,.public-stream-info-duration{min-height:25px;padding:4px 7px;font-size:.6rem}.public-stream-info-folio strong{font-size:.68rem}.public-stream-info-heading{gap:3px;padding-bottom:0}.public-stream-info-heading>span,.public-stream-info-meta small,.public-stream-info-folio>span{font-size:.52rem}.public-stream-info-meta{gap:8px}.public-stream-info-meta>div{gap:5px}.public-stream-info-meta>div>svg{width:13px;height:13px}.public-stream-info-meta strong{font-size:.65rem}.public-stream-info-toggle{top:10px;right:10px;min-height:34px;padding:7px 9px}}@media(max-width:420px){.public-stream-info-toggle span{display:none}.public-stream-info-toggle{width:36px;padding:0}.public-stream-info-summary{padding-right:35px}.public-stream-info-duration{margin-left:0}.public-stream-info-meta{grid-template-columns:minmax(0,1fr);gap:7px}.public-stream-info-panel{gap:8px;padding:12px}}.drawer-session-list{flex:1 1 0%!important;height:0!important;min-height:0!important;overflow-y:auto!important;overflow-x:hidden!important;overscroll-behavior:contain!important;scrollbar-width:thin!important;scrollbar-color:var(--accent-cyan) rgba(0,0,0,.15)!important}.drawer-session-list::-webkit-scrollbar{width:7px!important;display:block!important}.drawer-session-list::-webkit-scrollbar-track{background:#00000014!important;border-radius:4px!important}.drawer-session-list::-webkit-scrollbar-thumb{background:var(--accent-cyan)!important;border-radius:4px!important}.drawer-session-list::-webkit-scrollbar-thumb:hover{background:#0284c7!important}.video-wall-shell{height:100%;min-height:0;overflow:auto;padding:clamp(.65rem,1.4vw,1.25rem)!important;overscroll-behavior:contain}.video-wall-header{flex-shrink:0}.video-wall-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));align-items:start;align-content:start;gap:clamp(.75rem,1.25vw,1.25rem);padding-bottom:1rem}.video-wall-card{width:100%;min-width:0;height:fit-content;align-self:start}.video-wall-player{width:100%;aspect-ratio:9 / 14;max-height:min(58vh,500px);min-height:260px;flex-shrink:0}.video-wall-player:fullscreen{width:100vw;height:100vh;max-height:none;min-height:0;aspect-ratio:auto;padding:0;display:flex;align-items:center;justify-content:center;border:0}.video-wall-player:fullscreen video{max-width:100vw;max-height:100vh;object-fit:contain!important}.video-wall-error{position:absolute;top:72px;right:14px;bottom:72px;left:14px;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:16px;color:#fff;text-align:center;font-size:.82rem;line-height:1.45;background:#030712d1;border-radius:10px}.live-stream-video-box video{display:block}.live-stream-dialog:fullscreen{width:100vw!important;height:100vh!important;max-width:none!important;max-height:none!important;border:0!important;border-radius:0!important;overflow:hidden!important;box-shadow:none!important;background:#000!important}.live-stream-dialog:fullscreen>.live-stream-video-box{width:100%!important;height:auto!important;max-height:none!important;min-height:0!important;flex:1 1 auto!important;aspect-ratio:auto!important}.live-stream-dialog:fullscreen>.live-stream-video-box video{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}.live-stream-dialog:fullscreen>.live-stream-header,.live-stream-dialog:fullscreen>div:last-child{flex:0 0 auto}@media(max-width:680px){.video-wall-shell{padding:.65rem!important}.video-wall-header{padding:.75rem!important;align-items:flex-start!important}.video-wall-header>div:last-child{width:100%;justify-content:space-between}.video-wall-grid{grid-template-columns:minmax(0,1fr);gap:.85rem}.video-wall-player{max-height:min(62svh,520px);min-height:240px}.live-stream-overlay{padding:8px!important}.live-stream-dialog{max-width:100%!important;max-height:calc(100dvh - 16px);overflow-y:auto}.live-stream-video-box{height:min(58dvh,520px);min-height:220px;aspect-ratio:auto!important;flex-shrink:0}.live-stream-dialog>div:first-child{padding:.75rem!important;gap:8px;align-items:flex-start!important}.live-stream-dialog>div:last-child{padding:.75rem!important}}.leaflet-custom-tooltip{background:var(--bg-card)!important;border:1px solid var(--border-color)!important;color:var(--text-primary)!important;border-radius:10px!important;box-shadow:0 10px 25px #00000073!important;padding:6px 10px!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}.leaflet-custom-tooltip:before{border-top-color:var(--border-color)!important}.map-floating-actions{z-index:1200!important;pointer-events:none}.map-floating-actions>button{min-height:40px;white-space:nowrap;pointer-events:auto}.training-map-root:fullscreen{width:100vw!important;height:100vh!important;height:100dvh!important;max-width:none!important;border-radius:0!important;z-index:9999!important;background:var(--bg-primary)!important}.training-map-root:fullscreen .leaflet-container{border-radius:0!important}.training-map-root:fullscreen .map-floating-actions{right:max(12px,env(safe-area-inset-right))!important;bottom:max(72px,calc(env(safe-area-inset-bottom) + 60px))!important;z-index:1200!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:stretch!important;gap:8px!important}.training-map-root:fullscreen .map-floating-actions>button{min-height:44px;justify-content:flex-start}.training-map-root:fullscreen .leaflet-control-attribution{font-size:9px;line-height:1.2;padding:2px 5px;margin:0 4px 4px 0}@media(max-width:680px){.map-floating-actions{right:max(12px,env(safe-area-inset-right))!important;bottom:max(72px,calc(env(safe-area-inset-bottom) + 60px))!important;flex-direction:column!important;align-items:stretch!important;gap:7px!important}.map-floating-actions>button{min-height:42px;justify-content:flex-start}}
