@layer reset{*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;tab-size:4;background-color:var(--cal-canvas-subtle)}body{background-color:var(--cal-canvas-subtle);min-block-size:100dvh;color:var(--cal-ink-body);font-family:var(--font-sans);letter-spacing:-.011em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;font-size:15px;line-height:1.5;overflow-x:hidden}input,button,select,textarea{font:inherit;color:inherit}button{cursor:pointer;-webkit-user-select:none;user-select:none;background:0 0;border:none}}@layer tokens{:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--cal-canvas:#fff;--cal-canvas-subtle:#f7f7f8;--cal-surface-card:#fff;--cal-surface-hover:#f1f2f4;--cal-surface-active:#e5e7eb;--cal-ink:#0f172a;--cal-ink-body:#334155;--cal-ink-muted:#64748b;--cal-ink-subtle:#94a3b8;--cal-border:#e2e8f0;--cal-border-hover:#cbd5e1;--cal-border-focus:#e04f16;--cal-primary:#e04f16;--cal-primary-hover:#c2410c;--cal-primary-subtle:#fff7ed;--cal-brand-accent:#e04f16;--cal-brand-accent-subtle:#fff7ed;--cal-success:#059669;--cal-success-subtle:#ecfdf5;--cal-error:#be123c;--cal-error-subtle:#fff1f2;--cal-warning:#d97706;--cal-warning-subtle:#fffbeb;--font-display:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, "SF Mono", Menlo, Monaco, Consolas, monospace;--radius-sm:4px;--radius-md:6px;--radius-lg:10px;--radius-pill:9999px;--cal-transition:.18s cubic-bezier(.16, 1, .3, 1);--cal-shadow-sm:0 1px 2px #0f172a0a;--cal-shadow-card:0 1px 3px #0f172a0f, 0 1px 2px #0f172a0a;--cal-shadow-modal:0 20px 35px -8px #0f172a24, 0 8px 16px -6px #0f172a14}}@layer base{h1,h2,h3,h4{font-family:var(--font-sans);color:var(--cal-ink);letter-spacing:-.025em;font-weight:600;line-height:1.15}#root{flex-direction:column;min-block-size:100dvh;display:flex}}@layer layout{.cal-container{flex-direction:column;gap:20px;inline-size:100%;max-inline-size:1040px;margin-inline:auto;padding-block:clamp(20px,3vi,36px);padding-inline:clamp(16px,3vi,28px);display:flex}.cal-split-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (width<=680px){.cal-split-grid{grid-template-columns:1fr;gap:12px}}.cal-controls-grid{grid-template-columns:1.2fr .8fr;gap:16px;display:grid}@media (width<=860px){.cal-controls-grid{grid-template-columns:1fr}}}@layer components{.cal-header{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);box-shadow:none;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.cal-header .cal-brand{align-items:center;gap:12px;display:flex}.cal-header .cal-brand .brand-title{letter-spacing:.2em;text-transform:uppercase;color:var(--cal-ink);font-size:13px;font-weight:600}.cal-header .cal-brand .game-badge{border-radius:var(--radius-sm);background:var(--cal-canvas-subtle);border:1px solid var(--cal-border);color:var(--cal-ink-muted);padding:3px 8px;font-size:12px;font-weight:500}.cal-header .cal-brand .pin-pill{font-family:var(--font-mono);border-radius:var(--radius-sm);background:var(--cal-primary-subtle);color:var(--cal-primary);border:1px solid #e04f1640;padding:3px 8px;font-size:12px;font-weight:600}.cal-header .header-user-info{align-items:center;gap:12px;display:flex}.cal-header .header-user-info .user-role-text{color:var(--cal-ink-muted);font-size:13px}.cal-header .header-user-info .user-role-text strong{color:var(--cal-ink);font-weight:600}.cal-btn-primary{background-color:var(--cal-primary);color:#fff;border-radius:var(--radius-md);min-height:40px;transition:all var(--cal-transition);border:none;justify-content:center;align-items:center;gap:8px;padding:8px 18px;font-size:14px;font-weight:600;display:inline-flex;box-shadow:0 1px 2px #e04f1633}.cal-btn-primary:hover:not(:disabled){background-color:var(--cal-primary-hover);transform:translateY(-1px);box-shadow:0 3px 8px #e04f1647}.cal-btn-primary:active:not(:disabled){transform:scale(.98);box-shadow:0 1px 2px #e04f1633}.cal-btn-primary:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.cal-btn-secondary{background-color:var(--cal-canvas);color:var(--cal-ink-body);border:1px solid var(--cal-border);border-radius:var(--radius-md);min-height:38px;transition:all var(--cal-transition);box-shadow:var(--cal-shadow-sm);justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:600;display:inline-flex}.cal-btn-secondary:hover:not(:disabled){background-color:var(--cal-surface-hover);border-color:var(--cal-border-hover);color:var(--cal-ink);transform:translateY(-1px)}.cal-btn-secondary:active:not(:disabled){background-color:var(--cal-surface-active);transform:scale(.98)}.cal-btn-secondary:disabled{opacity:.4;cursor:not-allowed;transform:none}.cal-btn-subtle{color:var(--cal-ink-muted);border-radius:var(--radius-sm);transition:all var(--cal-transition);align-items:center;gap:6px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.cal-btn-subtle:hover{color:var(--cal-ink);background:var(--cal-surface-hover)}.cal-segmented{background:var(--cal-canvas-subtle);border:1px solid var(--cal-border);border-radius:var(--radius-sm);gap:2px;padding:2px;display:inline-flex}.cal-segmented .seg-btn{color:var(--cal-ink-muted);border-radius:var(--radius-sm);transition:background-color var(--tesla-transition), color var(--tesla-transition);align-items:center;gap:6px;padding:6px 14px;font-size:13px;font-weight:500;display:inline-flex}.cal-segmented .seg-btn.active{color:var(--cal-ink);border:1px solid var(--cal-border);background:#fff}.cal-segmented .seg-btn:hover:not(.active){color:var(--cal-ink)}.cal-turn-notice{border-radius:var(--radius-md);border:1px solid var(--cal-border);background:var(--cal-canvas);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:12px 18px;font-size:13px;display:flex}.cal-turn-notice.turn-mine{background:var(--cal-primary-subtle);color:var(--cal-primary);border-color:#e04f1659}.cal-turn-notice.turn-mine strong{color:var(--cal-primary)}.cal-turn-notice.turn-other{border-color:var(--cal-border);background:var(--cal-canvas-subtle);color:var(--cal-ink-muted)}.cal-turn-notice.turn-other strong{color:var(--cal-ink)}.cal-turn-notice .notice-event{font-size:13px;font-weight:600}.cal-turn-notice .notice-event.bust{color:var(--cal-error)}.cal-turn-notice .notice-event.max{color:var(--cal-primary)}.cal-turn-notice .notice-event.win{color:var(--cal-success)}.cal-player-card{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);box-shadow:var(--cal-shadow-card);transition:border-color var(--cal-transition), box-shadow var(--cal-transition);flex-direction:column;gap:16px;padding:24px;display:flex;position:relative}.cal-player-card.active-turn{border-top:3px solid var(--cal-primary);border-color:var(--cal-border-hover);box-shadow:0 4px 14px #e04f161f}.cal-player-card .card-top{justify-content:space-between;align-items:center;display:flex}.cal-player-card .card-top .player-badge-group{align-items:center;gap:8px;display:flex}.cal-player-card .card-top .player-badge-group .p-name{color:var(--cal-ink);font-size:16px;font-weight:700}.cal-player-card .card-top .player-badge-group .you-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);background:var(--cal-primary-subtle);color:var(--cal-primary);padding:2px 6px;font-size:10px;font-weight:700}.cal-player-card .card-top .turn-tag{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-sm);background:var(--cal-primary);color:#fff;padding:3px 8px;font-size:10px;font-weight:700}.cal-player-card .card-top .legs-tag{color:var(--cal-ink-muted);font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.cal-player-card .score-value{font-family:var(--font-sans);letter-spacing:-.03em;font-variant-numeric:tabular-nums;text-align:center;color:var(--cal-ink);padding-block:8px;font-size:clamp(56px,8vi,84px);font-weight:600;line-height:1}.cal-player-card .score-value.finish-range{color:var(--cal-primary)}.cal-player-card .checkout-banner{background:var(--cal-primary-subtle);border-radius:var(--radius-sm);border:1px solid #e04f1640;justify-content:space-between;align-items:center;padding:8px 12px;font-size:13px;display:flex}.cal-player-card .checkout-banner .label{color:var(--cal-ink-muted);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:600}.cal-player-card .checkout-banner .formula{color:var(--cal-primary);font-weight:700;font-family:var(--font-mono)}.cal-player-card .metrics-row{border-block-start:1px solid var(--cal-border);grid-template-columns:1fr 1fr;padding-block-start:12px;display:grid}.cal-player-card .metrics-row .metric-cell{flex-direction:column;align-items:center;display:flex}.cal-player-card .metrics-row .metric-cell .m-title{color:var(--cal-ink-subtle);text-transform:uppercase;letter-spacing:.05em;font-size:11px;font-weight:500}.cal-player-card .metrics-row .metric-cell .m-val{color:var(--cal-ink);font-variant-numeric:tabular-nums;font-size:15px;font-weight:600}.turn-locked-overlay{opacity:.45;pointer-events:none;-webkit-user-select:none;user-select:none;filter:grayscale(.2)}.cal-panel{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);box-shadow:none;flex-direction:column;gap:12px;padding:18px;display:flex}.cal-panel .panel-head{justify-content:space-between;align-items:center;display:flex}.cal-panel .panel-head .head-title{letter-spacing:.04em;text-transform:uppercase;color:var(--cal-ink-muted);font-size:13px;font-weight:600}.cal-panel .quick-btn-grid{grid-template-columns:repeat(auto-fit,minmax(58px,1fr));gap:8px;display:grid}.cal-panel .quick-throw-btn{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-sm);color:var(--cal-ink);font-variant-numeric:tabular-nums;transition:all var(--cal-transition);box-shadow:var(--cal-shadow-sm);padding-block:10px;font-size:14px;font-weight:600}.cal-panel .quick-throw-btn:hover:not(:disabled){background:var(--cal-surface-hover);border-color:var(--cal-border-hover);transform:translateY(-1px)}.cal-panel .quick-throw-btn:active:not(:disabled){background:var(--cal-surface-active);transform:scale(.96)}.cal-panel .quick-throw-btn.btn-bust{color:var(--cal-error)}.cal-panel .quick-throw-btn.btn-max{color:var(--cal-primary);background:var(--cal-primary-subtle);border-color:#e04f1659;font-weight:700}.cal-keypad-panel{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);box-shadow:var(--cal-shadow-card);flex-direction:column;gap:12px;padding:18px;display:flex}.cal-keypad-panel .input-group{gap:8px;display:flex}.cal-keypad-panel .input-group .cal-number-input{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-sm);font-variant-numeric:tabular-nums;color:var(--cal-ink);text-align:center;transition:border-color var(--cal-transition);outline:none;flex:1;padding:9px 14px;font-size:18px;font-weight:600}.cal-keypad-panel .input-group .cal-number-input:focus{border-color:var(--cal-primary);background:#fff;box-shadow:0 0 0 3px #e04f1626}.cal-keypad-panel .input-group .cal-number-input::placeholder{color:var(--cal-ink-subtle);font-size:13px;font-weight:400}.cal-keypad-panel .keypad-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.cal-keypad-panel .key-btn{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-sm);height:46px;color:var(--cal-ink);font-variant-numeric:tabular-nums;transition:all var(--cal-transition);box-shadow:var(--cal-shadow-sm);justify-content:center;align-items:center;font-size:16px;font-weight:600;display:flex}.cal-keypad-panel .key-btn:hover:not(:disabled){background:var(--cal-surface-hover);border-color:var(--cal-border-hover);transform:translateY(-1px)}.cal-keypad-panel .key-btn:active:not(:disabled){background:var(--cal-surface-active);transform:scale(.96)}.cal-keypad-panel .key-btn.action-key{color:var(--cal-ink-muted);font-size:13px}.cal-history-box{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);box-shadow:none;flex-direction:column;gap:10px;padding:16px 20px;display:flex}.cal-history-box .hist-title{text-transform:uppercase;letter-spacing:.12em;color:var(--cal-ink-muted);font-size:11px;font-weight:500}.cal-history-box .hist-scroll{flex-direction:column;gap:4px;max-block-size:160px;display:flex;overflow-y:auto}.cal-history-box .hist-row{border-radius:var(--radius-sm);background:var(--cal-canvas-subtle);font-variant-numeric:tabular-nums;grid-template-columns:60px 1fr 1fr;padding:6px 12px;font-size:13px;display:grid}.cal-history-box .hist-row .col-kolo{color:var(--cal-ink-subtle);font-weight:500}.cal-history-box .hist-row .col-h1,.cal-history-box .hist-row .col-h2{text-align:center;color:var(--cal-ink);font-weight:600}.cal-lobby-wrapper{justify-content:center;align-items:center;min-block-size:85dvh;padding:16px;display:flex}.cal-lobby-card{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);inline-size:100%;max-inline-size:440px;box-shadow:none;flex-direction:column;gap:22px;padding:clamp(24px,4vi,40px);display:flex}.cal-lobby-card .lobby-brand-block{text-align:center;flex-direction:column;gap:6px;display:flex}.cal-lobby-card .lobby-brand-block .app-heading{letter-spacing:-.01em;color:var(--cal-ink);font-size:22px;font-weight:500}.cal-lobby-card .lobby-brand-block .app-subheading{color:var(--cal-ink-muted);font-size:14px}.cal-lobby-card .cal-alert-error{background:var(--cal-error-subtle);color:#991b1b;border-radius:var(--radius-sm);border:1px solid #fca5a5;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.cal-lobby-card .form-block{flex-direction:column;gap:12px;display:flex}.cal-lobby-card .cal-input-field{border:1px solid var(--cal-border);border-radius:var(--radius-sm);color:var(--cal-ink);inline-size:100%;transition:border-color var(--tesla-transition);background:#fff;outline:none;padding:10px 14px;font-size:14px}.cal-lobby-card .cal-input-field:focus{border-color:var(--cal-primary)}.cal-lobby-card .cal-input-field::placeholder{color:var(--cal-ink-subtle)}.cal-lobby-card .cal-input-field.pin-code-input{font-family:var(--font-mono);letter-spacing:.25em;text-align:center;font-size:20px;font-weight:600}.cal-lobby-card .cal-separator{text-transform:uppercase;letter-spacing:.12em;color:var(--cal-ink-subtle);align-items:center;gap:12px;font-size:11px;display:flex}.cal-lobby-card .cal-separator:before,.cal-lobby-card .cal-separator:after{content:"";background:var(--cal-border);flex:1;block-size:1px}.cal-waiting-card{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);text-align:center;inline-size:100%;max-inline-size:450px;box-shadow:none;flex-direction:column;align-items:center;gap:18px;padding:clamp(28px,4vi,44px);display:flex}.cal-waiting-card .waiting-title{color:var(--cal-ink);letter-spacing:-.01em;font-size:20px;font-weight:500}.cal-waiting-card .waiting-desc{color:var(--cal-ink-muted);font-size:14px}.cal-waiting-card .pin-display-card{background:var(--cal-canvas-subtle);border:1px solid var(--cal-border);border-radius:var(--radius-sm);flex-direction:column;align-items:center;gap:4px;inline-size:100%;padding:16px 24px;display:flex}.cal-waiting-card .pin-display-card .p-label{text-transform:uppercase;letter-spacing:.15em;color:var(--cal-ink-muted);font-size:11px;font-weight:500}.cal-waiting-card .pin-display-card .p-digits{font-family:var(--font-display);letter-spacing:.25em;color:var(--cal-ink);font-variant-numeric:tabular-nums;font-size:38px;font-weight:500}.cal-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:100;background:#11182773;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.cal-modal-backdrop .cal-modal-dialog{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-lg);text-align:center;inline-size:100%;max-inline-size:400px;box-shadow:var(--cal-shadow-modal);flex-direction:column;align-items:center;gap:14px;padding:32px 28px;display:flex}.cal-modal-backdrop .cal-modal-dialog .win-heading{color:var(--cal-ink);font-size:22px;font-weight:700}.cal-modal-backdrop .cal-modal-dialog .win-desc{color:var(--cal-ink-muted);font-size:14px}.cal-modal-backdrop .cal-modal-dialog .modal-btn-stack{flex-direction:column;gap:8px;inline-size:100%;margin-block-start:10px;display:flex}.cal-video-section{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-lg);box-shadow:var(--cal-shadow-sm);flex-direction:column;gap:14px;padding:16px;display:flex}.cal-video-section .video-section-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.cal-video-section .video-section-header .video-title-group{flex-direction:column;gap:6px;display:flex}.cal-video-section .video-section-header .video-title-group .video-heading-row{align-items:center;gap:8px;display:flex}.cal-video-section .video-section-header .video-title-group .video-heading-row .heading-icon{color:var(--cal-ink)}.cal-video-section .video-section-header .video-title-group .video-heading-row .video-heading{color:var(--cal-ink);letter-spacing:-.015em;font-size:15px;font-weight:700}.cal-video-section .video-section-header .video-title-group .video-heading-row .cal-mode-toggle-btn{border-radius:var(--radius-pill);color:#52525b;cursor:pointer;transition:all var(--cal-transition);background:#f4f4f5;border:1px solid #e4e4e7;align-items:center;gap:5px;margin-left:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.cal-video-section .video-section-header .video-title-group .video-heading-row .cal-mode-toggle-btn:hover{color:var(--cal-ink);background:#e4e4e7}.cal-video-section .video-section-header .video-title-group .video-heading-row .cal-mode-toggle-btn.mode-active{color:var(--cal-primary);background:#e04f161f;border-color:#e04f1659}.cal-video-section .video-section-header .video-title-group .video-badges-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.cal-video-section .video-section-header .cal-status-pill{border-radius:var(--radius-pill);align-items:center;gap:6px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-flex}.cal-video-section .video-section-header .cal-status-pill.status-online{color:#065f46;background:#ecfdf5;border:1px solid #a7f3d0}.cal-video-section .video-section-header .cal-status-pill.status-connecting{color:#b45309;background:#fffbeb;border:1px solid #fde68a}.cal-video-section .video-section-header .cal-status-pill.status-waiting{color:#71717a;background:#f4f4f5;border:1px solid #e4e4e7}.cal-video-section .video-section-header .cal-status-pill .pill-dot{background:#a1a1aa;border-radius:50%;width:6px;height:6px}.cal-video-section .video-section-header .cal-status-pill .pill-dot.dot-active{background:#10b981;box-shadow:0 0 6px #10b981}.cal-video-section .video-section-header .cal-status-pill .pill-dot.dot-connecting{background:#f59e0b;animation:1.4s infinite pulseLiveDot;box-shadow:0 0 6px #f59e0b}.cal-video-section .video-section-header .btn-connected-state{color:#065f46!important;background:#ecfdf5!important;border-color:#a7f3d0!important}.cal-video-section .video-error-banner{color:#991b1b;border-radius:var(--radius-md);background:#fef2f2;border:1px solid #fecaca;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:500;display:flex}.cal-video-section .darts-dual-video-grid{grid-template-columns:1.15fr .85fr;gap:16px;width:100%;display:grid}@media (width<=768px){.cal-video-section .darts-dual-video-grid{grid-template-columns:1fr;gap:12px}}.cal-video-section .darts-dual-video-grid .darts-video-card{border:1px solid var(--cal-border);border-radius:var(--radius-lg);aspect-ratio:4/3;box-shadow:var(--cal-shadow-sm);background:#090d16;flex-direction:column;display:flex;position:relative;overflow:hidden}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:5;background:#090d16e0;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:8px 12px;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .card-badge-tag{letter-spacing:.04em;color:#f8fafc;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .card-badge-tag .live-dot{background:#64748b;border-radius:50%;width:7px;height:7px}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .card-badge-tag .live-dot.live-pulsing{background:var(--cal-primary);box-shadow:0 0 8px var(--cal-primary);animation:1.6s infinite pulseLiveDot}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .card-top-actions{align-items:center;gap:6px;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .video-action-icon-btn{color:#cbd5e1;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--cal-transition), background var(--cal-transition);justify-content:center;align-items:center;padding:4px;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .video-action-icon-btn:hover{color:#fff;background:#ffffff1a}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .video-action-text-btn{color:#fdba74;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--cal-transition);background:#e04f1626;border:1px solid #e04f1659;align-items:center;gap:4px;padding:3px 8px;font-size:11px;font-weight:600;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-card-top-bar .video-action-text-btn:hover{color:#fff;background:#e04f1640}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box{background:#020617;flex:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-video-media{object-fit:cover;width:100%;height:100%;display:block}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport{text-align:center;color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:20px;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .empty-viewport-icon{color:#475569}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .empty-viewport-title{color:#f8fafc;margin:0;font-size:14px;font-weight:600}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .empty-viewport-sub{color:#94a3b8;max-width:280px;margin:0;font-size:12px;line-height:1.45}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .empty-viewport-actions{flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;margin-top:6px;display:flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .qr-open-btn{min-height:32px;padding:6px 14px;font-size:12px}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .reconnect-btn{color:#f8fafc;border-radius:var(--radius-md);cursor:pointer;min-height:32px;transition:all var(--cal-transition);background:#ffffff14;border:1px solid #ffffff26;align-items:center;gap:6px;padding:6px 12px;font-size:12px;display:inline-flex}.cal-video-section .darts-dual-video-grid .darts-video-card .video-viewport-box .stream-empty-viewport .reconnect-btn:hover{color:#fff;background:#ffffff29;border-color:#ffffff4d}.modal-header-row{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.modal-header-row .modal-title-wrap{color:var(--cal-ink);align-items:center;gap:8px;display:flex}.modal-header-row .modal-title-wrap .modal-heading{margin:0;font-size:16px;font-weight:700}.modal-header-row .modal-close-btn{color:var(--cal-ink-muted);border-radius:var(--radius-sm);justify-content:center;align-items:center;padding:4px;display:flex}.modal-header-row .modal-close-btn:hover{color:var(--cal-ink);background:var(--cal-surface-hover)}.modal-desc{color:var(--cal-ink-muted);margin-bottom:14px;font-size:13px;line-height:1.45}.modal-cam-success-badge{color:#065f46;border-radius:var(--radius-md);background:#ecfdf5;border:1px solid #a7f3d0;align-items:center;gap:8px;margin-bottom:12px;padding:8px 12px;font-size:12px;font-weight:600;display:flex}.qr-image-wrapper{border:1px solid var(--cal-border);border-radius:var(--radius-md);background:#fff;justify-content:center;align-items:center;width:fit-content;margin:8px auto;padding:12px;display:flex}.qr-image-wrapper .qr-img{border-radius:4px;display:block}.qr-copy-row{gap:8px;width:100%;margin-top:10px;display:flex}.qr-copy-row .copy-input{padding:8px 10px;font-size:12px}.qr-copy-row .copy-btn{white-space:nowrap}.modal-icon-center{justify-content:center;align-items:center;margin-bottom:6px;display:flex}.modal-icon-center.text-amber{color:#d97706}.modal-icon-center.text-emerald{color:#059669}.streamer-mobile-app{color:#fff;z-index:9999;width:100vw;height:100dvh;min-height:100dvh;max-height:100dvh;font-family:var(--cal-font-sans);-webkit-user-select:none;user-select:none;background:#09090b;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.streamer-mobile-app .streamer-top-hud{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:30;background:#09090beb;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.streamer-mobile-app .streamer-top-hud .hud-badge-group{align-items:center;gap:8px;display:flex}.streamer-mobile-app .streamer-top-hud .hud-badge-group .hud-live-pill{color:#fed7aa;border-radius:var(--radius-pill);letter-spacing:.06em;background:#e04f1633;border:1px solid #e04f1673;align-items:center;gap:6px;padding:3px 8px;font-size:11px;font-weight:700;display:inline-flex}.streamer-mobile-app .streamer-top-hud .hud-badge-group .hud-live-pill .live-dot-pulse{background:#e04f16;border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulseLiveDot;box-shadow:0 0 6px #e04f16}.streamer-mobile-app .streamer-top-hud .hud-badge-group .hud-title{color:#f1f5f9;font-size:13px;font-weight:600}.streamer-mobile-app .streamer-top-hud .hud-actions-group{align-items:center;gap:8px;display:flex}.streamer-mobile-app .streamer-top-hud .hud-actions-group .hud-icon-btn{color:#f8fafc;border-radius:var(--radius-md);cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.streamer-mobile-app .streamer-top-hud .hud-actions-group .hud-icon-btn:active{background:#ffffff29;transform:scale(.96)}.streamer-mobile-app .streamer-top-hud .hud-actions-group .hud-close-btn{color:#f8fafc;border-radius:var(--radius-md);cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;align-items:center;gap:5px;padding:6px 12px;font-size:12px;font-weight:600;display:flex}.streamer-mobile-app .streamer-top-hud .hud-actions-group .hud-close-btn:active{background:#ffffff29;transform:scale(.96)}.streamer-mobile-app .streamer-video-container{background:#09090b;flex:1;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative;overflow:hidden}.streamer-mobile-app .streamer-video-container .streamer-video-feed{object-fit:cover;width:100%;height:100%;display:block}.streamer-mobile-app .streamer-video-container .streamer-loading-overlay{text-align:center;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;background:#09090be0;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:24px;display:flex;position:absolute;inset:0}.streamer-mobile-app .streamer-video-container .streamer-loading-overlay .streamer-loading-icon{color:var(--cal-primary)}.streamer-mobile-app .streamer-video-container .streamer-loading-overlay .streamer-loading-title{color:#f8fafc;margin:0;font-size:15px;font-weight:600}.streamer-mobile-app .streamer-video-container .streamer-loading-overlay .streamer-error-box{color:#fca5a5;border-radius:var(--radius-md);background:#ef444426;border:1px solid #ef44444d;align-items:center;gap:6px;max-width:300px;padding:8px 12px;font-size:12px;line-height:1.35;display:flex}.streamer-mobile-app .streamer-video-container .streamer-loading-overlay .streamer-activate-btn{background:var(--cal-primary);color:#fff;border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:6px;margin-top:6px;padding:10px 18px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 4px 14px #e04f1659}.streamer-mobile-app .streamer-video-container .streamer-loading-overlay .streamer-activate-btn:hover,.streamer-mobile-app .streamer-video-container .streamer-loading-overlay .streamer-activate-btn:active{background:var(--cal-primary-hover);transform:translateY(-1px)}.streamer-mobile-app .streamer-video-container .streamer-presence-pill{z-index:25;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:var(--radius-pill);white-space:nowrap;color:#f1f5f9;background:#0f172ae0;border:1px solid #ffffff1f;align-items:center;gap:8px;padding:6px 14px;font-size:12px;font-weight:600;display:flex;position:absolute;bottom:16px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #00000080}.streamer-mobile-app .streamer-video-container .streamer-presence-pill .pill-dot{background:#64748b;border-radius:50%;width:7px;height:7px}.streamer-mobile-app .streamer-video-container .streamer-presence-pill .pill-dot.dot-active{background:#10b981;animation:1.5s infinite pulseLiveDot;box-shadow:0 0 8px #10b981}.streamer-mobile-app .streamer-bottom-controls{padding:12px 16px calc(12px + env(safe-area-inset-bottom,12px));-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:30;background:#09090bf2;border-top:1px solid #ffffff14}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid{flex-wrap:wrap;justify-content:center;align-items:center;gap:10px;display:flex}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .stream-ctrl-btn{border-radius:var(--radius-md);color:#f8fafc;cursor:pointer;background:#ffffff14;border:1px solid #ffffff24;flex-direction:column;justify-content:center;align-items:center;gap:4px;min-width:72px;padding:8px 12px;font-family:inherit;transition:all .15s;display:flex}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .stream-ctrl-btn:hover,.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .stream-ctrl-btn:active{background:#ffffff29;transform:translateY(-1px)}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .stream-ctrl-btn.active-torch{border-color:var(--cal-primary);color:#fed7aa;background:#e04f1640}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .stream-ctrl-btn.active-warn{color:#fca5a5;background:#ef444440;border-color:#ef444499}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .stream-ctrl-btn .ctrl-label{white-space:nowrap;font-size:11px;font-weight:600}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .zoom-toggle-group{border-radius:var(--radius-md);background:#ffffff14;border:1px solid #ffffff24;align-items:center;gap:3px;padding:3px;display:flex}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .zoom-toggle-group .zoom-btn{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;padding:6px 10px;font-family:inherit;font-size:12px;font-weight:700;transition:all .15s}.streamer-mobile-app .streamer-bottom-controls .controls-button-grid .zoom-toggle-group .zoom-btn.active-zoom{background:var(--cal-primary);color:#fff}@keyframes pulseLiveDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.85)}}.brand-badge-pill{text-transform:uppercase;letter-spacing:.05em;border-radius:var(--radius-pill);background:var(--cal-canvas-subtle);border:1px solid var(--cal-border);color:var(--cal-ink-muted);align-items:center;margin-bottom:8px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.lobby-nickname-section{text-align:left;flex-direction:column;gap:6px;margin-bottom:20px;display:flex}.lobby-nickname-section .lobby-field-label{color:var(--cal-ink);font-size:13px;font-weight:600}.lobby-nickname-section .nickname-input-wrap{align-items:center;display:flex;position:relative}.lobby-nickname-section .nickname-input-wrap .input-avatar-icon{pointer-events:none;font-size:16px;position:absolute;left:12px}.lobby-nickname-section .nickname-input-wrap .nickname-input{padding-left:38px;font-size:15px;font-weight:600}.lobby-main-actions{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.lobby-main-actions .action-btn-lg{flex:1;min-width:200px;padding:12px 18px;font-size:15px}.lobby-main-actions .pin-join-form{flex:1;gap:8px;min-width:220px;display:flex}.lobby-main-actions .pin-join-form .pin-code-input{text-align:center;max-width:110px;font-family:var(--font-mono);letter-spacing:2px;text-transform:uppercase;font-weight:700}.public-tables-header{border-bottom:1px solid var(--cal-border-subtle);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;display:flex}.public-tables-header .tables-title{color:var(--cal-ink);font-size:14px;font-weight:700}.public-tables-header .tables-live-indicator{color:var(--cal-ink-muted);align-items:center;gap:6px;font-size:12px;display:inline-flex}.public-tables-header .tables-live-indicator .dot-live{background:#22c55e;border-radius:50%;width:7px;height:7px}.public-tables-list{flex-direction:column;gap:10px;max-height:380px;padding-right:4px;display:flex;overflow-y:auto}.public-tables-list .tables-empty-state{text-align:center;background:var(--cal-canvas-subtle);border:1px dashed var(--cal-border);border-radius:var(--radius-lg);padding:36px 20px}.public-tables-list .tables-empty-state .empty-icon{margin-bottom:8px;font-size:32px;display:block}.public-tables-list .tables-empty-state .empty-lead{color:var(--cal-ink);margin:0 0 4px;font-size:14px;font-weight:600}.public-tables-list .tables-empty-state .empty-sub{color:var(--cal-ink-muted);margin:0;font-size:13px}.public-tables-list .public-table-card{background:var(--cal-canvas);border:1px solid var(--cal-border);border-radius:var(--radius-md);transition:border-color var(--tesla-transition);justify-content:space-between;align-items:center;gap:14px;padding:14px 16px;display:flex}.public-tables-list .public-table-card:hover{border-color:var(--cal-border-hover)}.public-tables-list .public-table-card .table-info-left{text-align:left;flex-direction:column;gap:6px;display:flex}.public-tables-list .public-table-card .table-info-left .table-top-line{flex-wrap:wrap;align-items:baseline;gap:10px;display:flex}.public-tables-list .public-table-card .table-info-left .table-top-line .table-name{color:var(--cal-ink);font-size:15px;font-weight:500}.public-tables-list .public-table-card .table-info-left .table-top-line .table-host{color:var(--cal-ink-muted);font-size:13px}.public-tables-list .public-table-card .table-info-left .table-top-line .table-host strong{color:var(--cal-ink)}.public-tables-list .public-table-card .table-info-left .table-tags-line{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.public-tables-list .public-table-card .table-action-right .table-join-btn{white-space:nowrap;padding:8px 16px;font-size:13px}.public-tables-list .public-table-card .table-action-right .table-status-busy{color:var(--cal-ink-muted);background:var(--cal-canvas-subtle);border:1px solid var(--cal-border);border-radius:var(--radius-sm);white-space:nowrap;padding:4px 8px;font-size:12px;font-weight:500}.tag-cam-required{font-weight:500;background:var(--cal-brand-blue-subtle)!important;color:var(--cal-primary)!important;border-color:#3e6ae140!important}.lobby-footer-actions{border-top:1px solid var(--cal-border);text-align:center;margin-top:18px;padding-top:14px}.modal-field-block{text-align:left;flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.modal-field-block .modal-label{color:var(--cal-ink);font-size:13px;font-weight:500}.modal-checkbox-block{text-align:left;margin:16px 0 10px}.modal-checkbox-block .checkbox-row{color:var(--cal-ink);cursor:pointer;align-items:center;gap:8px;font-size:13px;font-weight:500;display:inline-flex}.modal-checkbox-block .checkbox-row input[type=checkbox]{width:16px;height:16px;accent-color:var(--cal-primary);cursor:pointer}.join-request-banner{background:var(--cal-canvas);border:1px solid var(--cal-primary);border-radius:var(--radius-md);text-align:left;box-shadow:none;margin-bottom:20px;padding:16px}.join-request-banner .request-banner-head{align-items:flex-start;gap:12px;margin-bottom:12px;display:flex}.join-request-banner .request-banner-head .req-bell-wrap{color:#16a34a;border-radius:var(--radius-sm);background:#dcfce7;justify-content:center;align-items:center;padding:6px;display:flex}.join-request-banner .request-banner-head .req-title{color:#166534;font-size:15px;font-weight:700;display:block}.join-request-banner .request-banner-head .req-desc{color:#15803d;margin:2px 0 0;font-size:13px}.join-request-banner .request-action-row{gap:10px;display:flex}.join-request-banner .request-action-row .req-accept-btn{flex:1;background:var(--cal-primary)!important}.join-request-banner .request-action-row .req-accept-btn:hover{background:var(--cal-primary-hover)!important}.join-request-banner .request-action-row .req-reject-btn{background:#fff!important}.waiting-pulse-orb{background:var(--cal-primary-subtle);border:1.5px solid #e04f1640;border-radius:50%;justify-content:center;align-items:center;width:60px;height:60px;margin:0 auto;display:inline-flex}.waiting-pulse-orb .pulse-lg{background:var(--cal-primary);border-radius:50%;width:18px;height:18px;animation:1.8s infinite pulse-ring;box-shadow:0 0 #e04f1699}@keyframes pulse-ring{0%{transform:scale(.95);box-shadow:0 0 #e04f1699}70%{transform:scale(1);box-shadow:0 0 0 12px #e04f1600}to{transform:scale(.95);box-shadow:0 0 #e04f1600}}.waiting-share-actions{flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:10px;display:flex}.invite-url-preview{font-size:12px;font-family:var(--font-mono);color:var(--cal-ink-muted);word-break:break-all;margin:4px 0 16px}.rule-badge-group{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}}@layer utilities;
