@font-face{font-family:Pretendard;font-weight:45 920;font-style:normal;font-display:swap;src:url(/fonts/PretendardVariable.woff2)format("woff2-variations")}@font-face{font-family:Pinkfong;font-weight:100 900;font-style:normal;font-display:swap;src:url(/fonts/PinkfongBabyShark-Bold.ttf)format("truetype");unicode-range:U+11??,U+3130-318F,U+A960-A97F,U+AC00-D7A3,U+D7B0-D7FF}:root{--bg:#0f172a;--bg-card:#1e293b;--bg-card-hover:#263548;--bg-input:#334155;--border:#475569;--text:#f1f5f9;--text-muted:#94a3b8;--text-dim:#64748b;--team-a:#3b82f6;--team-a-bg:#3b82f626;--team-a-rgb:59, 130, 246;--team-b:#ef4444;--team-b-bg:#ef444426;--team-b-rgb:239, 68, 68;--accent:#3b82f6;--accent-hover:#2563eb;--danger:#ef4444;--danger-hover:#dc2626;--success:#22c55e;--warning:#f59e0b;--radius:12px;--radius-sm:8px;--shadow:0 4px 24px #0000004d;--shadow-sm:0 2px 8px #0003}*{box-sizing:border-box;margin:0;padding:0}.num-stepper{border:1px solid var(--border);background:var(--bg-input);border-radius:10px;align-items:stretch;height:48px;display:inline-flex;overflow:hidden}.num-stepper-input{text-align:center;width:72px;color:var(--text);appearance:textfield;background:0 0;border:none;font-size:20px;font-weight:700}.num-stepper-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.num-stepper-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.num-stepper-arrows{border-left:1px solid var(--border);flex-direction:column;display:flex}.num-stepper-arrow{width:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0;transition:background .12s,color .12s;display:flex}.num-stepper-arrow:first-child{border-bottom:1px solid var(--border)}.num-stepper-arrow:hover{color:var(--text);background:var(--bg-card-hover)}.num-stepper-arrow:active{background:var(--bg-input)}.num-stepper-arrow svg{width:14px;height:14px;display:block}.break-dur-grid{align-items:flex-end;gap:8px;display:flex}.break-dur-cell{flex-direction:column;flex:1 1 0;align-items:center;gap:5px;min-width:0;display:flex}.break-dur-label{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:600}.break-dur-stepper{border:1px solid var(--border);background:var(--bg-input);border-radius:10px;align-items:stretch;width:100%;height:44px;display:inline-flex;overflow:hidden}.break-dur-input{text-align:center;min-width:0;color:var(--text);-moz-appearance:textfield;background:0 0;border:none;flex:1 1 0;padding:0;font-size:18px;font-weight:700}.break-dur-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.break-dur-input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.break-dur-arrows{border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;display:flex}.break-dur-arrow{width:26px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0;display:flex}.break-dur-arrow:first-child{border-bottom:1px solid var(--border)}.break-dur-arrow:hover{color:var(--text);background:var(--bg-card-hover)}.break-dur-arrow:active{background:var(--bg-input)}.break-dur-arrow svg{width:12px;height:12px;display:block}html,body,#root{background:var(--bg);height:100%;color:var(--text);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:manipulation;font-family:Pretendard,-apple-system,BlinkMacSystemFont,system-ui,sans-serif}input,textarea,[contenteditable]{-webkit-user-select:text;user-select:text}body{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);overscroll-behavior:none}.result-page-wrap{height:100%;overflow-y:auto}@supports (-webkit-touch-callout:none){html,body,#root{height:-webkit-fill-available}}.app-container{flex-direction:column;max-width:1280px;height:100%;margin:0 auto;padding:20px 24px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;white-space:nowrap;border:none;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-family:inherit;font-size:15px;font-weight:600;transition:all .15s;display:inline-flex}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){background:var(--danger-hover)}.btn-secondary{background:var(--bg-card);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-card-hover)}.btn-ghost{color:var(--text-muted);background:0 0;border:1px solid #0000}.btn-ghost:hover:not(:disabled){background:var(--bg-card)}.btn-sm{border-radius:6px;padding:6px 12px;font-size:13px}.btn-lg{border-radius:var(--radius);padding:16px 32px;font-size:20px}.btn-score{border-radius:var(--radius);letter-spacing:-.5px;min-width:120px;padding:16px 28px;font-size:22px;font-weight:800}.btn-team-a{background:var(--team-a);color:var(--team-a-fg,#fff)}.btn-team-a:hover{filter:brightness(.88)}.btn-team-b{background:var(--team-b);color:var(--team-b-fg,#fff)}.btn-team-b:hover{filter:brightness(.88)}.tabs{background:var(--bg-card);border-radius:var(--radius);gap:4px;margin-bottom:20px;padding:4px;display:flex}.tab{border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;flex:1;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s}.tab:hover{color:var(--text);background:var(--bg-card-hover)}.tab.active{background:var(--accent);color:#fff}.tab.tab-team-a.active{background:var(--team-a);color:var(--team-a-fg,#fff)}.tab.tab-team-b.active{background:var(--team-b);color:var(--team-b-fg,#fff)}.card{background:var(--bg-card);border-radius:var(--radius);box-shadow:var(--shadow-sm);padding:24px}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:999999;width:100vw;height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left));box-sizing:border-box;background:#030712b8;justify-content:center;align-items:center;animation:.2s ease-out modal-overlay-in;display:flex;position:fixed;inset:0}@keyframes modal-overlay-in{0%{opacity:0}to{opacity:1}}.modal{scrollbar-width:thin;scrollbar-color:#94a3b84d transparent;background:linear-gradient(#1f2b42 0%,#1b2638 100%);border:1px solid #94a3b82e;border-radius:20px;flex:none;max-width:640px;min-height:0;max-height:86dvh;padding:28px 28px 22px;animation:.24s cubic-bezier(.2,.9,.3,1.1) modal-pop-in;position:relative;overflow-y:auto;box-shadow:0 24px 64px #0000008c,0 0 0 1px #94a3b81f,inset 0 1px #ffffff0a;width:100%!important;min-width:320px!important;display:block!important}.modal-overlay>.modal{display:block!important}.modal-overlay>.modal>h2,.modal-overlay>.modal>h2>span,.modal h2,.modal h2 span{color:var(--text)!important}@media (width>=1024px){.modal{max-width:900px;max-height:calc(100vh - 24px);padding:24px 28px 20px}.modal.modal-large{min-height:600px}.modal.modal-large>h2{margin-bottom:14px;padding-bottom:10px}.modal.modal-large>.modal-actions{margin-top:14px;padding-top:12px}}@keyframes modal-pop-in{0%{opacity:0;transform:translateY(16px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal h2{letter-spacing:-.5px;border-bottom:1px solid #94a3b826;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;font-size:22px;font-weight:800;display:flex}.modal h2:before{content:"";background:linear-gradient(180deg, var(--accent), #60a5fa);border-radius:2px;flex-shrink:0;width:4px;height:20px}.modal-actions{border-top:1px solid #94a3b826;justify-content:flex-end;gap:10px;margin-top:22px;padding-top:18px;display:flex}.modal-actions .btn{min-width:96px}.room-exists-modal h2:before,.leave-room-modal h2:before{display:none}.room-exists-modal h2,.leave-room-modal h2{border-bottom:none;justify-content:center;margin-bottom:12px;padding-bottom:0}.form-group{margin-bottom:16px}.form-group label{color:var(--text-muted);letter-spacing:.3px;text-transform:uppercase;margin-bottom:6px;font-size:13px;font-weight:600;display:block}.form-group input,.form-group select{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;color:var(--text);padding:10px 14px;font-family:inherit;font-size:15px;transition:border-color .15s}.form-group input:focus,.form-group select:focus{border-color:var(--accent);outline:none;box-shadow:0 0 0 3px #3b82f633}.form-row{gap:16px;display:flex}.form-row .form-group{flex:1}@media (width<=768px){.form-row-format{flex-direction:column}}.scoreboard{background:var(--bg-card);box-shadow:var(--shadow);border-radius:16px;justify-content:center;align-items:center;gap:40px;margin-bottom:12px;padding:32px 56px;display:flex}.scoreboard.scoreboard-grid{grid-template-rows:auto auto auto;grid-template-columns:1fr auto 1fr;place-items:center;gap:12px 40px;display:grid}.scoreboard-cp-arrow,.scoreboard-cp-arrow.arrow-a,.scoreboard-cp-arrow.arrow-b{-webkit-user-select:none;user-select:none;text-align:center;cursor:pointer;background:0 0;border:none;border-radius:8px;padding:6px 10px;font-family:inherit;font-size:24px;font-weight:800;line-height:1;transition:transform .25s,background .15s;color:var(--warning)!important}.scoreboard-cp-arrow.arrow-a{transform:translate(-2px)}.scoreboard-cp-arrow.arrow-b{transform:translate(2px)}.scoreboard-cp-arrow:hover{background:#f59e0b1f}.scoreboard-cp-arrow:active{background:#f59e0b38}.scoreboard .team-score{flex-direction:column;align-items:center;gap:12px;min-width:200px;display:flex}.scoreboard .team-name{letter-spacing:-.5px;font-size:36px;font-weight:800}.team-name-cell{flex-direction:column;align-items:center;gap:8px;width:100%;display:flex}.scoreboard.scoreboard-grid .score{text-align:center;width:100%}.tactical-row{gap:6px;display:flex}.tactical-btn{letter-spacing:.5px;color:#ffe14d;cursor:pointer;white-space:nowrap;background:#ffe14d1a;border:1.5px solid #ffe14d;border-radius:8px;padding:5px 12px;font-family:inherit;font-size:12px;font-weight:800;transition:background .15s,opacity .15s}.tactical-btn:active{background:#ffe14d47}.tactical-btn.blocked{cursor:not-allowed}.tactical-btn.used{opacity:.28;border-color:var(--border);color:var(--text-dim);background:0 0}.tactical-btn.stoppable{opacity:.9;cursor:pointer;border-style:dashed;border-color:var(--danger);color:var(--danger);background:#ef44441a}.scoreboard .score{letter-spacing:-6px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";font-size:168px;font-weight:900;line-height:1}.cp-indicator{background:var(--bg-input);border:1px solid var(--border);border-radius:14px;flex-shrink:0;justify-content:center;align-items:center;gap:12px;min-width:180px;padding:14px 24px;display:inline-flex;transform:translateY(24px)}.cp-label{color:var(--text-muted);letter-spacing:1.5px;font-size:24px;font-weight:800}.cp-arrow{color:#0000;text-align:center;width:26px;font-size:26px;font-weight:700;line-height:1;transition:color .25s}.cp-arrow-left.active{color:var(--team-a)}.cp-arrow-right.active{color:var(--team-b)}.cp-chip{letter-spacing:1.2px;border:1.5px solid var(--border);color:var(--text-dim);-webkit-user-select:none;user-select:none;cursor:pointer;background:0 0;border-radius:999px;justify-content:center;align-items:center;min-width:60px;padding:6px 14px;font-family:inherit;font-size:13px;font-weight:800;transition:all .2s;display:inline-flex}.cp-chip:hover{border-color:var(--text-muted);color:var(--text-muted)}.cp-chip:active{transform:scale(.96)}.cp-chip.active.cp-chip-a{background:var(--team-a-bg);border-color:var(--team-a);color:var(--team-a);box-shadow:0 0 0 3px rgba(var(--team-a-rgb), .18)}.cp-chip.active.cp-chip-b{background:var(--team-b-bg);border-color:var(--team-b);color:var(--team-b);box-shadow:0 0 0 3px rgba(var(--team-b-rgb), .18)}.game-timer{flex-direction:column;align-items:center;gap:10px;display:flex}.game-timer-display{letter-spacing:2px;color:var(--text);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";cursor:pointer;background:0 0;border:none;border-radius:8px;margin:0;padding:4px 8px;font-family:inherit;font-size:48px;font-weight:800;line-height:1;transition:background .15s}.game-timer-display:hover{background:#ffffff0a}.game-timer-display.expired{color:var(--danger)}.scoreboard-quarter-mid{letter-spacing:-.5px;color:var(--warning);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:4px 10px;font-family:inherit;font-size:36px;font-weight:800;line-height:1;transition:background .15s}button.scoreboard-quarter-mid:hover{background:#f59e0b1f}button.scoreboard-quarter-mid:active{background:#f59e0b38}.game-timer-controls{align-items:center;gap:6px;display:flex}.btn-timer{border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;min-height:34px;padding:7px 14px;font-family:inherit;font-size:13px;font-weight:700;transition:all .15s;display:inline-flex}.btn-timer:hover:not(:disabled){background:var(--bg-card-hover)}.btn-timer:disabled{opacity:.4;cursor:not-allowed}.btn-timer-start{background:var(--success);border-color:var(--success);color:#fff;min-width:78px}.btn-timer-start:hover:not(:disabled){background:#16a34a;border-color:#16a34a}.btn-timer-pause{background:var(--warning);border-color:var(--warning);color:#fff;min-width:78px}.btn-timer-pause:hover:not(:disabled){background:#d97706;border-color:#d97706}.btn-timer-reset,.btn-timer-settings,.btn-timer-break{min-width:34px;padding:7px 10px;font-size:16px}.btn-timer-break.break-active{background:var(--warning);border-color:var(--warning);color:#1a1205}.icon-line{vertical-align:middle;width:1.25em;height:1.25em;display:block}.btn-timer-break{justify-content:center;align-items:center;display:inline-flex}.timer-adjust-display{text-align:center;letter-spacing:3px;font-variant-numeric:tabular-nums;font-feature-settings:"tnum";color:var(--text);margin:8px 0 18px;font-size:56px;font-weight:800;line-height:1}.timer-adjust-grid{grid-template-rows:auto auto;grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.btn-timer-adjust{border:2px solid var(--border);cursor:pointer;background:var(--bg-input);color:var(--text);letter-spacing:.5px;-webkit-user-select:none;user-select:none;border-radius:10px;padding:16px 8px;font-family:inherit;font-size:17px;font-weight:800;transition:all .12s}.btn-timer-adjust:hover{border-color:var(--accent);background:var(--bg-card-hover)}.btn-timer-adjust:active{transform:scale(.96)}.btn-timer-adjust.plus{color:var(--success);border-color:#22c55e66}.btn-timer-adjust.plus:hover{border-color:var(--success);background:#22c55e1a}.btn-timer-adjust.minus{color:var(--danger);border-color:#ef444466}.btn-timer-adjust.minus:hover{border-color:var(--danger);background:#ef44441a}.player-table{border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius);width:100%;overflow:hidden}.player-table th,.player-table td{text-align:center;border-bottom:1px solid #4755694d;padding:8px 12px;font-size:14px}.player-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;background:#ffffff0d;font-size:12px;font-weight:600}.team-info-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.team-info-actions{align-items:center;gap:8px;display:flex}.player-table td input{color:var(--text);text-align:center;background:0 0;border:none;width:100%;font-family:inherit;font-size:14px}.player-table td input:focus{background:var(--bg-input);border-radius:4px;outline:none}.position-grid{grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:16px;display:grid}.position-slot{border:2px dashed var(--border);border-radius:var(--radius-sm);text-align:center;cursor:pointer;background:0 0;padding:14px 8px;transition:all .15s}.position-slot:hover{border-color:var(--text-muted)}.position-slot.filled{border-style:solid;border-color:var(--accent);background:var(--team-a-bg)}.position-slot.editing{border-color:var(--warning);box-shadow:0 0 0 3px #f59e0b33}.position-slot .pos-label{color:var(--text);margin-bottom:4px;font-size:15px;font-weight:800}.position-slot .player-name{color:var(--text-muted);font-size:15px}.position-slot.filled .player-name{color:var(--accent);font-weight:600}.lineup-a .position-slot.filled{border-color:var(--team-a);background:var(--team-a-bg)}.lineup-a .position-slot.filled .player-name{color:var(--team-a)}.lineup-b .position-slot.filled{border-color:var(--team-b);background:var(--team-b-bg)}.lineup-b .position-slot.filled .player-name{color:var(--team-b)}.action-bar{flex-wrap:wrap;align-items:center;gap:8px;padding:16px 0;display:flex}.action-bar .spacer{flex:1}.step-nav{justify-content:space-between;align-items:center;margin-top:auto;padding:20px 0;display:flex}.result-table{border-collapse:collapse;background:var(--bg-card);border-radius:var(--radius);width:100%;margin-bottom:20px;overflow:hidden}.result-table th,.result-table td{text-align:center;border-bottom:1px solid #4755694d;padding:12px 16px;font-size:15px}.result-table th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;background:#ffffff0d;font-size:13px;font-weight:600}.result-table .result-time-row td{color:var(--text-muted);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";background:#ffffff06;border-top:1px solid #47556966;font-size:13px}.win{background:linear-gradient(110deg,#f59e0b 0% 40%,#fef9c3 50%,#f59e0b 60% 100%) 0 0/220% 100%;-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;font-weight:800;animation:2.6s cubic-bezier(.5,.1,.5,.9) infinite win-shine}.lose{color:#f59e0b;opacity:.55;font-weight:800}.draw{color:var(--text-muted);font-weight:700}.result-badge{letter-spacing:2px;margin-top:4px;font-size:40px;font-weight:900;line-height:1;display:inline-block}.result-badge.win{background:linear-gradient(110deg,#f59e0b 0% 40%,#fef9c3 50%,#f59e0b 60% 100%) 0 0/220% 100%;-webkit-text-fill-color:transparent;color:#0000;-webkit-background-clip:text;background-clip:text;animation:2.6s cubic-bezier(.5,.1,.5,.9) infinite win-shine}.result-badge.lose{color:#f59e0b;opacity:.55}.result-badge.draw{color:var(--text-muted)}@keyframes win-shine{0%{background-position:220%}60%{background-position:-120%}to{background-position:-120%}}.landing{background:radial-gradient(ellipse at top, #3b82f61a, transparent 60%), var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.landing-card{background:var(--bg-card);border:1px solid var(--border);text-align:center;border-radius:20px;width:100%;max-width:440px;padding:32px 28px;box-shadow:0 20px 60px #0006}.landing-logo{border-radius:18px;width:80px;height:80px;margin:0 auto 16px;overflow:hidden;box-shadow:0 8px 24px #0006}.landing-logo img{object-fit:cover;width:100%;height:100%;display:block}.landing-title{letter-spacing:-.5px;margin-bottom:6px;font-size:26px;font-weight:900}.landing-subtitle{color:var(--text-muted);margin-bottom:28px;font-size:14px}.landing-actions{flex-direction:column;gap:10px;display:flex}.landing-join{text-align:left;margin-top:8px}.landing-label{color:var(--text-muted);margin-bottom:8px;font-size:13px;display:block}.landing-input{background:var(--bg-input);border:1px solid var(--border);width:100%;color:var(--text);text-align:center;letter-spacing:2px;border-radius:10px;margin-bottom:14px;padding:14px 16px;font-family:inherit;font-size:18px;font-weight:700}.landing-input:focus{border-color:var(--accent);outline:none}.landing-error{color:var(--danger);text-align:center;white-space:pre-wrap;margin-bottom:12px;font-size:13px;line-height:1.5}.landing-created{animation:.3s landing-fade-in}@keyframes landing-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.landing-created-label{color:var(--success);letter-spacing:.3px;margin-bottom:8px;font-size:13px;font-weight:700}.landing-created-code{letter-spacing:4px;color:var(--accent);background:var(--bg-input);border-radius:16px;margin-bottom:14px;padding:28px 20px;font-size:56px;font-weight:900}.landing-created-hint{color:var(--text-muted);margin-bottom:20px;font-size:13px;line-height:1.5}.landing-main-actions{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px;display:grid}.landing-btn-full{width:100%;margin-bottom:8px}.landing-view-row{flex-direction:column;align-items:stretch;gap:6px;margin-bottom:8px;display:flex}.landing-view-label{color:var(--text-muted);letter-spacing:.3px;text-align:center;padding:2px 0;font-size:13px;font-weight:700}.landing-view-buttons{grid-template-columns:1fr 1fr;gap:8px;display:grid}.landing-view-buttons .btn{width:100%}.landing-divider{color:var(--text-dim);letter-spacing:.5px;align-items:center;gap:10px;margin:14px 0 10px;font-size:11px;display:flex}.landing-divider:before,.landing-divider:after{content:"";background:var(--border);flex:1;height:1px}.room-exists-modal{text-align:center;max-width:420px;min-height:0;padding:36px 28px 24px}.room-exists-icon{border:2px solid var(--warning);width:64px;height:64px;color:var(--warning);background:#f59e0b26;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:30px;font-weight:900;display:flex}.room-exists-title{letter-spacing:-.5px;margin-bottom:12px;font-size:20px;font-weight:800}.room-exists-desc{color:var(--text-muted);margin-bottom:24px;font-size:14px;line-height:1.6}.room-exists-code{color:var(--warning);letter-spacing:1px;font-size:16px;font-weight:900}.room-exists-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.leave-room-modal{text-align:center;max-width:400px;min-height:0;padding:36px 28px 24px}.leave-room-icon{border:2px solid var(--accent);width:64px;height:64px;color:var(--accent);background:#3b82f61f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:28px;font-weight:900;display:flex;transform:rotate(0)}.leave-room-title{letter-spacing:-.5px;margin-bottom:12px;font-size:20px;font-weight:800}.leave-room-desc{color:var(--text-muted);margin-bottom:24px;font-size:14px;line-height:1.7}.leave-room-code{color:var(--accent);letter-spacing:1px;font-size:16px;font-weight:900}.leave-room-note{color:var(--text-dim);margin-top:6px;font-size:12px;line-height:1.6;display:inline-block}.leave-room-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.home-btn{transition:all .2s;position:relative}.home-btn-active{border:1px solid var(--warning);letter-spacing:.3px;font-weight:800;animation:.4s home-pulse;color:var(--warning)!important;background:#f59e0b2e!important}@keyframes home-pulse{0%{transform:scale(1)}50%{transform:scale(1.06)}to{transform:scale(1)}}.home-confirm-modal{text-align:center;max-width:400px;min-height:0;padding:36px 28px 24px}.home-confirm-icon{border:2px solid var(--accent);width:64px;height:64px;color:var(--accent);background:#3b82f61f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:32px;font-weight:900;display:flex}.home-confirm-title{letter-spacing:-.5px;justify-content:center;margin-bottom:12px;font-size:20px;font-weight:800}.home-confirm-modal h2:before{display:none}.home-confirm-title{border-bottom:none;padding-bottom:0}.home-confirm-desc{color:var(--text-muted);margin-bottom:24px;font-size:14px;line-height:1.7}.home-confirm-desc b{color:var(--text)}.home-confirm-sub{color:var(--text-dim);font-size:12px}.home-confirm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.goal-undo-btn{color:var(--warning);letter-spacing:.3px}.goal-undo-btn:disabled{color:var(--text-dim);opacity:.4}.reset-score-btn{color:var(--warning);letter-spacing:.5px;font-weight:800}.reset-score-btn:disabled{color:var(--text-dim);opacity:.4}.remote-buzzer-btn{color:var(--warning);letter-spacing:.3px;cursor:pointer;white-space:nowrap;background:#f59e0b1f;border:1px solid #f59e0b66;border-radius:8px;justify-content:center;align-items:center;gap:4px;padding:6px 12px;font-size:13px;font-weight:700;line-height:1;transition:background .15s,transform .1s;display:inline-flex}.remote-buzzer-btn:hover:not(:disabled){background:#f59e0b33}.remote-buzzer-btn:active:not(:disabled){transform:scale(.96)}.remote-buzzer-btn:disabled{color:var(--text-dim);cursor:not-allowed;opacity:.5;background:0 0;border-color:#ffffff14}.remote-buzzer-flash{box-shadow:0 0 0 3px #f59e0b59;background:var(--warning)!important;color:#1a1409!important;border-color:var(--warning)!important}@media (width<=768px){.remote-buzzer-btn{padding:5px 9px;font-size:11px}}.goal-undo-modal{text-align:center;max-width:420px;min-height:0;padding:36px 28px 24px}.goal-undo-icon{border:2px solid var(--warning);width:64px;height:64px;color:var(--warning);background:#f59e0b26;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:30px;font-weight:900;display:flex}.goal-undo-title{letter-spacing:-.5px;justify-content:center;margin-bottom:12px;font-size:20px;font-weight:800}.goal-undo-modal h2:before{display:none}.goal-undo-title{border-bottom:none;padding-bottom:0}.goal-undo-desc{color:var(--text);margin-bottom:24px;font-size:16px;line-height:1.7}.goal-undo-team{letter-spacing:-.3px;font-size:18px;font-weight:900}.goal-undo-pos{color:var(--warning);margin-left:4px;font-weight:800}.goal-undo-name{color:var(--text-muted);font-weight:600}.goal-undo-sub{color:var(--text-dim);margin-top:8px;font-size:12px;display:inline-block}.goal-undo-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.sub-btn-a{color:var(--team-a)!important;border:2px solid var(--team-a)!important}.sub-btn-a:hover{background:var(--team-a-bg)!important}.sub-btn-b{color:var(--team-b)!important;border:2px solid var(--team-b)!important}.sub-btn-b:hover{background:var(--team-b-bg)!important}.share-modal{text-align:center;max-width:420px;min-height:0}.share-modal h2{justify-content:center}.share-modal-lead{color:var(--text-muted);margin-bottom:14px;font-size:13px}.share-modal-code{letter-spacing:4px;color:var(--accent);text-shadow:0 2px 16px #3b82f666;background:linear-gradient(#3b82f624,#3b82f60f);border:1px solid #3b82f64d;border-radius:14px;margin:0 0 14px;padding:24px 16px;font-size:52px;font-weight:900}.share-modal-hint{color:var(--text-dim);margin-bottom:18px;font-size:12px;line-height:1.6}.share-modal-hint b{color:var(--text-muted)}.download-modal{max-width:460px;min-height:0}.download-modal-lead{color:var(--text-muted);margin-bottom:16px;font-size:13px}.download-modal-options{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}.download-option{background:var(--bg-input);cursor:pointer;text-align:left;width:100%;color:var(--text);border:1px solid #94a3b833;border-radius:12px;align-items:center;gap:14px;padding:14px 16px;font-family:inherit;transition:all .15s;display:flex}.download-option:hover{border-color:var(--accent);background:#2a3550;transform:translateY(-1px)}.download-option:active{transform:translateY(0)scale(.98)}.download-option-icon{letter-spacing:.5px;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:13px;font-weight:900;display:flex}.download-option-icon-html{color:#fff;background:linear-gradient(135deg,#3b82f6,#60a5fa)}.download-option-icon-img{color:#fff;background:linear-gradient(135deg,#22c55e,#16a34a)}.download-option-icon-pdf{color:#fff;background:linear-gradient(135deg,#ef4444,#b91c1c)}.download-option-icon-xlsx{color:#fff;background:linear-gradient(135deg,#10b981,#047857);font-size:11px}.download-option-body{flex:1;min-width:0}.download-option-title{margin-bottom:2px;font-size:15px;font-weight:700}.download-option-desc{color:var(--text-muted);font-size:12px}.result-download-section{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin:28px 0 20px;padding:20px}.result-download-title{color:var(--text-muted);letter-spacing:.3px;margin-bottom:12px;font-size:14px;font-weight:700}.result-download-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.result-download-grid{grid-template-columns:1fr}}.result-actions{align-items:center;gap:10px;margin-top:20px;padding-bottom:40px;display:flex}.result-actions .spacer{flex:1}.result-signature-section{background:var(--bg-card);border:1px solid var(--border);border-radius:14px;margin:28px 0 20px;padding:20px}.result-signature-title{color:var(--text-muted);letter-spacing:.3px;margin-bottom:12px;font-size:14px;font-weight:700}.result-signature-grid{grid-template-columns:1fr 1fr;gap:14px;display:grid}@media (width<=640px){.result-signature-grid{grid-template-columns:1fr}}.signature-card{background:var(--bg-input);border:1px solid #94a3b833;border-radius:12px;transition:all .15s;overflow:hidden}.signature-card-a{border-color:#2563eb59}.signature-card-b{border-color:#dc262659}.signature-card-header{background:#0f172a40;border-bottom:1px solid #94a3b826;align-items:baseline;gap:8px;padding:10px 14px;display:flex}.signature-card-team{font-size:15px;font-weight:800}.signature-card-role{color:var(--text-muted);letter-spacing:.3px;font-size:11px}.signature-card-name{color:var(--text);margin-left:auto;font-size:13px;font-weight:700}.signature-card-body{cursor:pointer;background:#fff;justify-content:center;align-items:center;height:120px;transition:background .15s;display:flex}.signature-card-body:hover{background:#f8fafc}.signature-card-image{object-fit:contain;max-width:100%;max-height:100%}.signature-card-empty{color:#94a3b8;flex-direction:column;align-items:center;gap:6px;font-size:13px;font-weight:500;display:flex}.signature-card-empty-icon{color:#cbd5e1;font-size:28px}.signature-modal{max-width:560px;min-height:0}.signature-hint{color:var(--text-muted);text-align:center;margin-bottom:14px;font-size:13px}.signature-canvas-wrap{background:#fff;border:2px dashed #94a3b866;border-radius:10px;margin-bottom:16px;position:relative;overflow:hidden}.signature-canvas{touch-action:none;cursor:crosshair;background:#fff;width:100%;height:220px;display:block}.signature-baseline{pointer-events:none;background:#94a3b859;height:1px;position:absolute;bottom:40px;left:10%;right:10%}.signature-actions{align-items:center;gap:8px;display:flex}.signature-actions .spacer{flex:1}@media (width<=640px){.signature-canvas{height:180px}}.room-banner{background:linear-gradient(90deg,#3b82f61f,#3b82f60a);border:1px solid #3b82f64d;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;padding:10px 14px;display:flex}.room-banner-view{background:linear-gradient(90deg,#94a3b81f,#94a3b80a);border-color:#94a3b84d}.room-banner-left{align-items:center;gap:12px;min-width:0;display:flex}.room-banner-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:10px;height:10px}.room-banner-dot.syncing{background:var(--success);animation:1.6s ease-in-out infinite room-pulse}.room-banner-dot.offline{background:var(--warning)}.room-banner-dot.error{background:var(--danger)}.room-banner-dot.idle{background:var(--text-dim)}@keyframes room-pulse{0%,to{opacity:1}50%{opacity:.4}}.room-banner-info{flex-direction:column;gap:2px;min-width:0;display:flex}.room-banner-label{color:var(--text-muted);letter-spacing:.3px;font-size:11px}.room-banner-code{color:var(--accent);letter-spacing:1px;font-size:18px;font-weight:900}.room-banner-actions{flex-shrink:0;gap:6px;display:flex}@media (width<=768px){.room-banner{flex-wrap:wrap;gap:8px;padding:8px 10px}.room-banner-code{font-size:15px}.room-banner-label{font-size:10px}.room-banner-actions .btn{padding:4px 8px;font-size:10px}}.view-mode{background:var(--bg);height:100dvh;color:var(--text);-webkit-user-select:none;user-select:none;flex-direction:column;gap:20px;padding:20px 28px;display:flex;position:relative;overflow:hidden}.view-cursor-hidden,.view-cursor-hidden *{cursor:none!important}.view-mode.font-pinkfong .view-team-name,.view-mode.font-pinkfong .view-quarter-mid{font-family:Pinkfong,Pretendard,sans-serif!important}.view-exit-hotspot{color:#94a3b866;cursor:pointer;background:#94a3b814;border:1px solid #94a3b82e;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;padding:0;font-family:inherit;font-size:11px;font-weight:700;transition:all .2s;display:flex}.view-exit-hotspot:hover{color:var(--text-muted);background:#94a3b829}.view-exit-active{font-size:12px;animation:.4s exit-pulse;border-color:var(--danger)!important;color:var(--danger)!important;background:#ef444433!important}@keyframes exit-pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}.view-sync-mini{background:var(--success);z-index:10;opacity:.5;border-radius:50%;width:5px;height:5px;position:fixed;bottom:8px;right:8px}.view-sync-mini.view-sync-syncing{background:var(--success)}.view-sync-mini.view-sync-offline{background:var(--warning)}.view-sync-mini.view-sync-error{background:var(--danger)}.view-sync-mini.view-sync-idle{background:var(--text-dim)}.view-buzzer-toggle{color:#94a3b8b3;cursor:pointer;-webkit-user-select:none;user-select:none;background:#94a3b814;border:1px solid #94a3b82e;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-right:6px;padding:0;font-family:inherit;font-size:14px;line-height:1;transition:all .2s;display:flex}.view-buzzer-toggle:hover{color:var(--text);background:#94a3b829}.view-buzzer-toggle.view-buzzer-on{color:var(--success);background:#22c55e2e;border-color:#22c55e80}.view-buzzer-toggle.view-buzzer-on:hover{background:#22c55e47}.view-mirror-toggle{color:#94a3b8b3;cursor:pointer;-webkit-user-select:none;user-select:none;background:#94a3b814;border:1px solid #94a3b82e;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-right:6px;padding:0;font-family:inherit;font-size:14px;line-height:1;transition:all .2s;display:flex}.view-mirror-toggle:hover{color:var(--text);background:#94a3b829}.view-mirror-toggle.view-mirror-on{color:#60a5fa;background:#3b82f62e;border-color:#3b82f680}.view-mirror-toggle.view-mirror-on:hover{background:#3b82f647}.view-buzzer-manual{width:28px;height:28px;color:var(--warning);cursor:pointer;-webkit-user-select:none;user-select:none;background:#f59e0b24;border:1px solid #f59e0b66;border-radius:50%;justify-content:center;align-items:center;margin-right:6px;padding:0;font-family:inherit;font-size:14px;line-height:1;transition:all .15s;display:flex}.view-buzzer-manual:hover{background:#f59e0b40}.view-buzzer-manual:active{background:var(--warning);color:#1a1409;transform:scale(.92)}.exit-confirm-modal,.download-done-modal{text-align:center;max-width:380px;min-height:0;padding:36px 28px 24px}.download-done-icon{border-radius:50%;justify-content:center;align-items:center;width:68px;height:68px;margin:0 auto 16px;font-size:34px;font-weight:900;display:flex}.download-done-ok{border:2px solid var(--success);color:var(--success);background:#22c55e24}.download-done-err{border:2px solid var(--danger);color:var(--danger);background:#ef44441f}.download-done-spin{border:2px solid var(--warning);color:var(--warning);background:#f59e0b1f;font-size:28px;animation:1.1s linear infinite dl-spin}@keyframes dl-spin{to{transform:rotate(360deg)}}.download-done-title{letter-spacing:-.5px;justify-content:center;margin-bottom:8px;font-size:20px;font-weight:800}.download-done-desc{color:var(--text-muted);font-size:14px;line-height:1.5}.download-done-desc b{color:var(--text)}.download-done-actions{justify-content:center;margin-top:20px;display:flex}.download-done-actions .btn{min-width:120px}.exit-confirm-icon{border:2px solid var(--danger);width:64px;height:64px;color:var(--danger);background:#ef44441f;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;font-size:30px;font-weight:900;display:flex}.exit-confirm-title{letter-spacing:-.5px;justify-content:center;margin-bottom:12px;font-size:20px;font-weight:800}.exit-confirm-modal h2:before{display:none}.exit-confirm-title{border-bottom:none;padding-bottom:0}.exit-confirm-desc{color:var(--text-muted);margin-bottom:24px;font-size:14px;line-height:1.7}.exit-confirm-actions{grid-template-columns:1fr 1fr;gap:10px;display:grid}.view-header{justify-content:space-between;align-items:center;display:flex}.view-header-actions{align-items:center;gap:6px;display:flex}.view-meta{color:var(--text-muted);align-items:center;gap:16px;font-size:14px;display:flex}.view-tournament{color:var(--text);font-size:16px;font-weight:700}.view-quarter{color:var(--warning);letter-spacing:.3px;background:#f59e0b26;border:1px solid #f59e0b73;border-radius:999px;padding:4px 12px;font-weight:800}.view-sync{font-size:10px}.view-sync-syncing{color:var(--success)}.view-sync-offline{color:var(--warning)}.view-sync-error{color:var(--danger)}.view-sync-idle{color:var(--text-dim)}.view-code{letter-spacing:1px;font-family:Pretendard,sans-serif;font-weight:700}.view-scoreboard{background:var(--bg-card);border-radius:24px;flex:auto;grid-template-rows:auto auto auto;grid-template-columns:1fr auto 1fr;align-content:center;place-items:center;gap:clamp(2px,.4vh,8px) clamp(24px,5vw,80px);min-height:0;padding:clamp(16px,3vh,48px) clamp(20px,3vw,48px);display:grid}.view-vs-mid{color:var(--warning);letter-spacing:-.5px;text-align:center;font-size:28px;font-weight:800;line-height:1;display:none}.view-quarter-mid{letter-spacing:-.5px;color:#fff;font-size:clamp(28px,5vh,78px);font-weight:800;line-height:1}.view-cp-arrow-mid{letter-spacing:0;text-align:center;-webkit-user-select:none;user-select:none;color:var(--warning);font-size:clamp(32px,4.6vh,56px);font-weight:800;line-height:1;transition:transform .25s}.view-cp-arrow-mid.arrow-a{transform:translate(-2px)}.view-cp-arrow-mid.arrow-b{transform:translate(2px)}.view-team{flex-direction:column;justify-self:center;align-items:center;gap:clamp(8px,1.5vh,22px);min-width:0;display:flex}.view-team-name{letter-spacing:-1px;font-size:clamp(28px,5vh,78px);font-weight:800;line-height:1}.view-team-name.view-team-a,.view-score.view-team-a{color:var(--team-a)}.view-team-name.view-team-b,.view-score.view-team-b{color:var(--team-b)}.view-score{letter-spacing:-.06em;font-size:clamp(140px,28vh,400px);font-weight:900;line-height:.9}.view-center{flex-direction:column;align-items:center;gap:clamp(10px,1.6vh,24px);display:flex}.view-cp{background:var(--bg-input);border:1px solid var(--border);border-radius:14px;align-items:center;gap:clamp(8px,1vw,16px);padding:clamp(8px,1.4vh,18px) clamp(14px,1.8vw,32px);display:inline-flex}.view-cp-label{color:var(--text-muted);letter-spacing:1.5px;font-size:clamp(16px,2.4vh,32px);font-weight:800}.view-cp-arrow{color:#0000;text-align:center;width:clamp(18px,2.6vh,36px);font-size:clamp(18px,2.6vh,36px);transition:color .3s}.view-cp-arrow.active-a{color:var(--team-a)}.view-cp-arrow.active-b{color:var(--team-b)}.view-cp-chip{letter-spacing:1.5px;border:2px solid var(--border);color:var(--text-dim);-webkit-user-select:none;user-select:none;background:0 0;border-radius:999px;justify-content:center;align-items:center;min-width:clamp(70px,8vw,120px);padding:clamp(6px,1vh,12px) clamp(14px,2vw,28px);font-size:clamp(16px,2.2vh,28px);font-weight:800;transition:all .3s;display:inline-flex}.view-cp-chip.active.view-cp-chip-a{background:var(--team-a-bg);border-color:var(--team-a);color:var(--team-a);box-shadow:0 0 0 4px rgba(var(--team-a-rgb), .22)}.view-cp-chip.active.view-cp-chip-b{background:var(--team-b-bg);border-color:var(--team-b);color:var(--team-b);box-shadow:0 0 0 4px rgba(var(--team-b-rgb), .22)}.view-mode-v2 .view-cp-chip{color:#ffe14d24;background:0 0;border-color:#ffe14d1a}.view-mode-v2 .view-cp-chip.active{color:#ffe14d;background:#ffe14d24;border-color:#ffe14d;box-shadow:0 0 0 4px #ffe14d38}.view-mode-v2 .view-cp-arrow-mid{color:#ffe14d!important}.view-timer{letter-spacing:4px;color:var(--text);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";background:var(--bg-input);border:1px solid var(--border);border-radius:20px;padding:clamp(14px,2.2vh,28px) clamp(24px,3vw,52px);font-size:clamp(72px,14vh,220px);font-weight:800;line-height:1}.view-v2-timer-row{justify-content:center;align-items:center;padding:clamp(8px,1.4vh,18px) clamp(16px,3vw,40px) 0;display:flex;position:relative}.view-tc-marks{flex-direction:column;justify-content:center;align-items:center;gap:clamp(6px,1.1vh,18px);display:flex}.view-tc-chip{letter-spacing:.5px;white-space:nowrap;border-radius:.3em;padding:.18em .5em;font-size:clamp(28px,4.4vh,68px);font-weight:900;line-height:1}.view-tc-chip-a{background:var(--team-a);color:#0b1020}.view-tc-chip-b{background:var(--team-b);color:#0b1020}.view-timer-wrap{justify-content:center;align-items:center;display:inline-flex;position:relative}.view-timer-wrap>.view-tc-marks{position:absolute;top:50%;transform:translateY(-50%)}.view-timer-wrap>.view-tc-marks:first-child{margin-right:clamp(10px,1.6vw,30px);right:100%}.view-timer-wrap>.view-tc-marks:last-child{margin-left:clamp(10px,1.6vw,30px);left:100%}.view-mode-v2 .view-timer-wrap>.view-tc-marks:first-child{margin-right:clamp(16px,2.6vw,64px)}.view-mode-v2 .view-timer-wrap>.view-tc-marks:last-child{margin-left:clamp(16px,2.6vw,64px)}.view-v2-timer{letter-spacing:4px;color:var(--text);font-variant-numeric:tabular-nums;font-feature-settings:"tnum";background:var(--bg-input);border:1px solid var(--border);border-radius:16px;padding:clamp(8px,1.5vh,18px) clamp(20px,3vw,40px);font-size:clamp(128px,22vh,320px);font-weight:800;line-height:1}.view-v2-timer.expired{color:var(--danger);border-color:var(--danger);background:#ef444414}.view-break-timer{color:#ffe14d!important;background:#ffe14d1f!important;border-color:#ffe14d!important}.view-break-time{color:#ffe14d!important}.view-break-tactical{letter-spacing:0;flex-direction:row;justify-content:center;align-items:center;gap:.3em;line-height:1.08;color:#ffe14d!important;font-size:clamp(24px,4.4vh,60px)!important;display:flex!important}.view-bt-dot-slot{flex:none;justify-content:center;align-items:center;width:1.8em;line-height:1;display:inline-flex}.view-bt-dot{flex-shrink:0;font-size:1.4em;line-height:1}.view-bt-label{white-space:normal;text-align:center;max-width:6em;font-weight:800}.clock-sep{display:inline-block;transform:translateY(-.1em)}.view-vs-large{color:var(--text-muted);letter-spacing:2px;text-align:center;font-size:clamp(72px,13.5vh,195px);font-style:italic;font-weight:800;line-height:1}.view-attack-arrow-big{text-align:center;color:#ffe14d;-webkit-user-select:none;user-select:none;font-size:clamp(90px,18vh,280px);font-weight:800;line-height:1}.view-attack-arrow-big.arrow-a{transform:translate(-4px)}.view-attack-arrow-big.arrow-b{transform:translate(4px)}.view-mode-v2 .view-lineups{display:none}.view-mode-v2 .view-scoreboard{flex:auto;min-height:0}.view-mode-v2 .view-score{font-size:clamp(180px,38vh,520px)}.view-mode-v2 .view-team-name{font-family:Pretendard,sans-serif;font-size:clamp(80px,13vh,220px);font-weight:900}.view-mode-v2 .view-quarter-mid{color:#fff;font-family:Pretendard,sans-serif;font-size:clamp(60px,10vh,170px);font-weight:900}.view-timer.expired{color:var(--danger);border-color:#ef444480}.view-timer-btn{letter-spacing:1.5px;cursor:pointer;color:#fff;-webkit-user-select:none;user-select:none;border:2px solid #0000;border-radius:10px;min-width:clamp(72px,7vw,110px);margin-left:clamp(10px,1.4vw,22px);padding:clamp(6px,1vh,10px) clamp(16px,1.8vw,28px);font-family:inherit;font-size:clamp(14px,1.8vh,22px);font-weight:800;transition:background .15s,transform 80ms}.view-timer-btn:active:not(:disabled){transform:scale(.96)}.view-timer-btn:disabled{opacity:.35;cursor:not-allowed}.view-timer-btn-start{background:var(--success);border-color:var(--success)}.view-timer-btn-start:hover:not(:disabled){background:#16a34a;border-color:#16a34a}.view-timer-btn-stop{background:var(--danger);border-color:var(--danger)}.view-timer-btn-stop:hover:not(:disabled){background:#dc2626;border-color:#dc2626}.view-lineups{flex:none;grid-template-columns:1fr 1fr;gap:20px;display:grid}.view-lineup{background:var(--bg-card);border-radius:16px;flex-direction:column;gap:clamp(4px,.8vh,10px);padding:clamp(14px,2.2vh,26px) clamp(16px,2vw,28px);display:flex}.view-player{align-items:center;gap:clamp(10px,1.2vw,18px);padding:clamp(3px,.4vh,8px) 0;font-size:clamp(18px,2.4vh,30px);font-weight:600;display:flex}.view-pos{letter-spacing:.5px;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:clamp(44px,5vw,64px);height:clamp(28px,3.5vh,38px);font-size:clamp(12px,1.6vh,18px);font-weight:800;display:inline-flex}.view-pos-a{background:var(--team-a-bg);color:var(--team-a)}.view-pos-b{background:var(--team-b-bg);color:var(--team-b)}.view-player .view-name{flex:none;min-width:clamp(70px,8vw,130px)}.view-foul{color:var(--warning);white-space:nowrap;box-sizing:border-box;flex-shrink:0;justify-content:center;align-items:center;min-width:clamp(56px,6vw,86px);margin-left:4px;font-size:clamp(14px,1.8vh,22px);font-weight:700;display:inline-flex}.view-captain{background:var(--warning);color:#1a1409;letter-spacing:0;vertical-align:middle;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:clamp(22px,2.6vh,32px);height:clamp(22px,2.6vh,32px);margin-left:clamp(6px,.8vw,12px);font-size:clamp(11px,1.4vh,16px);font-weight:900;display:inline-flex;box-shadow:0 0 0 2px #f59e0b4d}.view-captain-empty{visibility:hidden;box-shadow:none!important;background:0 0!important}.view-name{align-items:center;gap:0;display:inline-flex}.view-caution{white-space:nowrap;box-sizing:border-box;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;min-width:clamp(56px,6vw,86px);padding:2px 8px;font-size:clamp(11px,1.4vh,16px);font-weight:700;display:inline-flex}.view-caution-warn{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b66}.view-caution-susp{color:#fcd34d;background:#f59e0b59;border:1px solid #f59e0bb3}.view-caution-expel{background:var(--warning);color:#1a1409;border:1px solid var(--warning)}.view-caution-empty{color:#0000!important;background:0 0!important}.view-stats{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:clamp(4px,.5vw,8px);margin-left:auto;display:inline-flex}.view-stat-chip{white-space:nowrap;letter-spacing:.3px;border-radius:4px;align-items:center;gap:2px;padding:2px 8px;font-size:clamp(11px,1.4vh,17px);font-weight:700;display:inline-flex}.view-stat-a{background:var(--team-a-bg);color:var(--team-a)}.view-stat-b{background:var(--team-b-bg);color:var(--team-b)}@media (width<=900px) and (orientation:portrait){.view-score{letter-spacing:-6px;font-size:140px}.view-team-name,.view-quarter-mid{font-size:28px}.view-scoreboard{gap:12px 16px;padding:20px}.view-lineups{grid-template-columns:1fr}}@media (width<=600px) and (orientation:portrait){.view-mode{gap:8px;padding:8px 10px}.view-meta{flex-wrap:nowrap;gap:6px;min-width:0;overflow:hidden}.view-tournament{letter-spacing:0;text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.view-quarter{flex-shrink:0;font-size:13px;font-weight:700}.view-timer-btn{letter-spacing:1px;border-radius:8px;flex-shrink:0;min-width:60px;margin-left:6px;padding:5px 12px;font-size:12px}.view-buzzer-toggle,.view-exit-hotspot{width:24px;height:24px;font-size:12px}.view-header-actions{flex-shrink:0;gap:4px}.view-scoreboard{border-radius:14px;flex:auto;grid-template-rows:auto auto auto auto;grid-template-areas:"nameA quarter nameB""scoreA vs scoreB""cpA arrow cpB""timer timer timer";align-content:space-evenly;gap:0 8px;min-height:0;padding:18px 6px}.view-team-name.view-team-a{grid-area:nameA}.view-team-name.view-team-b{grid-area:nameB}.view-quarter-mid{grid-area:quarter}.view-score.view-team-a{grid-area:scoreA}.view-score.view-team-b{grid-area:scoreB}.view-vs-mid{grid-area:vs;font-size:28px;display:block}.view-cp-chip.view-cp-chip-a{grid-area:cpA}.view-cp-chip.view-cp-chip-b{grid-area:cpB}.view-cp-arrow-mid{grid-area:arrow}.view-timer{grid-area:timer}.view-cp-arrow-mid{font-size:32px}.view-quarter-mid{letter-spacing:-.3px;font-size:22px}.view-team-name{letter-spacing:-.3px;font-size:22px;line-height:1}.view-score{letter-spacing:-4px;font-size:92px;line-height:.9}.view-cp-chip{letter-spacing:.8px;border-width:1.5px;min-width:52px;padding:3px 12px;font-size:11px}.view-cp-chip.active.view-cp-chip-a{box-shadow:0 0 0 2px rgba(var(--team-a-rgb), .18)}.view-cp-chip.active.view-cp-chip-b{box-shadow:0 0 0 2px rgba(var(--team-b-rgb), .18)}.view-timer{letter-spacing:2px;border-radius:12px;padding:10px 14px;font-size:44px}.view-lineups{flex:auto;grid-template-columns:1fr 1fr;align-items:stretch;gap:6px;min-height:0}.view-lineup{border-radius:10px;justify-content:space-around;gap:0;padding:10px 8px}.view-player{grid-template:"pos name foul.caution""stats stats stats stats stats"/auto 1fr 38px 12px 30px;align-items:center;gap:1px 5px;padding:2px 0;line-height:1.3;display:grid;overflow:hidden}.view-pos{border-radius:4px;flex-shrink:0;grid-area:pos;width:30px;height:18px;font-size:10px}.view-player .view-name{text-overflow:ellipsis;white-space:nowrap;grid-area:name;min-width:0;font-size:12px;overflow:hidden}.view-foul{text-align:center;white-space:nowrap;grid-area:foul;min-width:38px;margin-left:0;font-size:10px}.view-foul-empty{color:#0000}.view-captain{width:14px;height:14px;margin-left:3px;font-size:8px;box-shadow:0 0 0 1px #f59e0b4d}.view-caution{text-align:center;white-space:nowrap;grid-area:caution;min-width:30px;padding:0;font-size:9px;font-weight:800}.view-caution-warn,.view-caution-susp,.view-caution-expel{background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.view-caution-warn{color:#fbbf24!important}.view-caution-susp{color:#f59e0b!important}.view-caution-expel{font-weight:900;text-decoration:underline;color:#fbbf24!important}.view-caution-empty{color:#0000!important;background:0 0!important;border:none!important}.view-stats{flex-wrap:wrap;grid-area:stats;justify-content:flex-start;gap:3px;margin-left:0;padding-left:35px;display:flex}.view-stat-chip{border-radius:3px;padding:1px 5px;font-size:9px;line-height:1.4}}@media (width<=900px) and (orientation:landscape){.view-mode{gap:6px;padding:6px 12px;overflow:hidden}.view-meta{flex-wrap:nowrap;gap:8px;min-width:0;overflow:hidden}.view-tournament{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:11px;overflow:hidden}.view-quarter{flex-shrink:0;font-size:13px;font-weight:700}.view-timer-btn{border-radius:8px;flex-shrink:0;min-width:56px;margin-left:4px;padding:4px 12px;font-size:12px}.view-buzzer-toggle,.view-exit-hotspot{width:22px;height:22px;font-size:11px}.view-header-actions{flex-shrink:0;gap:4px}.view-scoreboard{border-radius:16px;flex:1.3 0 0;gap:10px 16px;min-height:0;padding:6px 12px}.view-cp-arrow-mid{font-size:36px}.view-quarter-mid{letter-spacing:-.3px;font-size:22px}.view-team-name{font-size:22px;line-height:1}.view-score{letter-spacing:-4px;font-size:110px;line-height:.85}.view-cp-chip{border-width:1.5px;min-width:48px;padding:2px 10px;font-size:11px}.view-timer{letter-spacing:2px;border-radius:12px;padding:6px 14px;font-size:56px}.view-lineups{flex:1 1 0;grid-template-columns:1fr 1fr;align-items:stretch;gap:6px;min-height:0}.view-lineup{border-radius:8px;justify-content:space-around;gap:0;padding:6px 8px}.view-player{flex-wrap:nowrap;align-items:center;gap:5px;padding:0;font-size:12px;line-height:1.3;display:flex;overflow:hidden}.view-player .view-caution{margin-left:8px}.view-pos{border-radius:3px;flex-shrink:0;width:26px;height:16px;font-size:9px}.view-player .view-name{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;max-width:60px;font-size:12px;overflow:hidden}.view-foul{text-align:center;white-space:nowrap;flex-shrink:0;min-width:32px;margin-left:0;font-size:9px}.view-foul-empty{color:#0000}.view-captain{width:12px;height:12px;margin-left:2px;font-size:7px;box-shadow:0 0 0 1px #f59e0b4d}.view-caution{text-align:center;white-space:nowrap;flex-shrink:0;min-width:26px;padding:0;font-size:9px;font-weight:800}.view-caution-warn,.view-caution-susp,.view-caution-expel{background:0 0!important;border:none!important;border-radius:0!important;padding:0!important}.view-caution-warn{color:#fbbf24!important}.view-caution-susp{color:#f59e0b!important}.view-caution-expel{font-weight:900;text-decoration:underline;color:#fbbf24!important}.view-caution-empty{color:#0000!important;background:0 0!important;border:none!important}.view-stats{flex-wrap:nowrap;flex-shrink:0;gap:2px;margin-left:auto;display:flex;overflow:hidden}.view-stat-chip{border-radius:3px;padding:1px 4px;font-size:9px;line-height:1.4}}.room-badge{background:var(--bg-input);color:var(--text-muted);letter-spacing:.5px;border-radius:999px;align-items:center;gap:8px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.room-badge-code{color:var(--accent);font-weight:800}.room-badge-dot{background:var(--success);border-radius:50%;width:8px;height:8px}.room-badge-dot.offline{background:var(--warning)}.room-badge-dot.error{background:var(--danger)}.ptr-container{transform-origin:top;z-index:1200;pointer-events:none;flex-direction:column;align-items:center;gap:6px;margin-left:-28px;display:flex;position:fixed;top:-60px;left:50%}.ptr-circle{background:var(--bg-card);border:1px solid var(--border);border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:background .2s,border-color .2s;display:flex;box-shadow:0 4px 16px #0006}.ptr-circle.ptr-ready{background:var(--accent);border-color:var(--accent)}.ptr-arrow{color:var(--text-muted);font-size:22px;transition:transform .18s,color .2s;display:inline-block}.ptr-ready .ptr-arrow{color:#fff}.ptr-spinner{color:#fff;font-size:22px;animation:.8s linear infinite ptr-spin;display:inline-block}@keyframes ptr-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ptr-label{color:var(--text-muted);background:var(--bg-card);white-space:nowrap;border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}.install-prompt{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));background:var(--bg-card);border:1px solid var(--border);z-index:1100;border-radius:14px;align-items:center;gap:12px;width:440px;max-width:calc(100vw - 24px);padding:12px 16px;animation:.35s cubic-bezier(.2,.9,.3,1.1) install-slide-in;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 12px 36px #0000008c}@keyframes install-slide-in{0%{opacity:0;transform:translate(-50%,30px)}to{opacity:1;transform:translate(-50%)}}.install-prompt-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;display:flex;overflow:hidden}.install-prompt-icon img{object-fit:cover;width:100%;height:100%;display:block}.install-prompt-text{flex:1;min-width:0}.install-prompt-title{color:var(--text);letter-spacing:-.3px;font-size:14px;font-weight:800}.install-prompt-desc{color:var(--text-muted);margin-top:2px;font-size:12px}@media (width<=480px){.install-prompt{gap:10px;width:auto;padding:10px 12px;left:12px;right:12px;transform:none}@keyframes install-slide-in{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}}.recording-main{flex:1;grid-template-columns:1fr 1fr;gap:16px;min-height:0;display:grid}.recording-main-3col{flex:1;grid-template-rows:1fr;grid-template-columns:1fr 220px 1fr;gap:12px;min-height:0;display:grid}@media (width>=1400px){.app-container{max-width:1400px}}@media (width>=769px) and (width<=1440px),(width>=769px) and (hover:none) and (pointer:coarse){.view-timer{letter-spacing:2px;padding:clamp(10px,1.6vh,18px) clamp(18px,2.2vw,32px);font-size:clamp(56px,9vh,110px)}.view-caution{border-radius:6px;min-width:clamp(48px,5vw,64px);padding:2px 6px;font-size:clamp(11px,1.3vh,14px)}.app-container:not(.result-page-wrap)>.scoreboard{flex:auto;gap:clamp(16px,3vw,36px);min-height:0;margin-bottom:clamp(6px,1vh,12px);padding:clamp(16px,4vh,56px) clamp(20px,4vw,48px);overflow:hidden}.scoreboard{gap:clamp(16px,3vw,36px);margin-bottom:clamp(6px,1vh,12px);padding:clamp(16px,4vh,56px) clamp(20px,4vw,48px)}.result-page-wrap .scoreboard{flex:none;gap:32px;min-height:0;margin-bottom:28px;padding:28px 40px;overflow:visible}.result-page-wrap .scoreboard .team-score{flex:none;gap:8px;min-width:180px}.result-page-wrap .scoreboard .team-name{font-size:28px}.result-page-wrap .scoreboard .score{letter-spacing:-3px;font-size:110px;line-height:1}.result-page-wrap .scoreboard .vs{font-size:22px}.result-page-wrap .result-badge{margin-top:6px;font-size:36px}.scoreboard .team-score{flex:1;gap:clamp(4px,1vh,10px);min-width:0}.scoreboard .team-name{font-size:clamp(20px,4.2vh,38px)}.scoreboard .score{letter-spacing:-.04em;font-size:clamp(80px,20vh,200px);line-height:1}.scoreboard.scoreboard-grid{gap:clamp(4px,1vh,12px) clamp(20px,3vw,40px);padding:clamp(10px,2vh,22px) clamp(20px,4vw,48px)}.scoreboard.scoreboard-grid .score{font-size:clamp(64px,14vh,140px);line-height:.9}.scoreboard.scoreboard-grid .team-name,.scoreboard.scoreboard-grid .scoreboard-quarter-mid{font-size:clamp(18px,3.2vh,32px)}.scoreboard.scoreboard-grid .game-timer{gap:clamp(4px,1vh,10px)}.scoreboard.scoreboard-grid .game-timer-display{padding:2px 6px;font-size:clamp(28px,5vh,48px)}.cp-indicator{min-width:clamp(110px,12vw,170px);padding:clamp(8px,1.5vh,14px) clamp(14px,1.8vw,24px);transform:translateY(clamp(8px,2vh,22px))}.cp-label{font-size:clamp(16px,2.6vh,26px)}.cp-arrow{width:clamp(18px,2.8vh,28px);font-size:clamp(18px,2.8vh,28px)}.recording-main-3col{flex:none;grid-template-rows:auto;min-height:0}.recording-main-3col>.team-panel{align-self:start;overflow:hidden}.recording-main-3col>.score-log-panel{align-self:start;height:340px;max-height:340px}.team-panel{padding:14px}.team-panel h3{display:none}.team-panel .score-buttons{margin-bottom:10px}.team-panel .score-buttons .btn{padding:8px 16px;font-size:14px}.team-panel{overflow:hidden}.team-panel .lineup-item{gap:8px;padding:4px 0;font-size:13px}.team-panel .lineup-item .pos-badge{width:36px;height:22px;font-size:11px}.team-panel .lineup-item .player-info{flex:0 0 80px;font-size:13px}.team-panel .lineup-item .foul-badge,.team-panel .lineup-item .foul-badge.foul-badge-tap,.team-panel .lineup-item .foul-badge.foul-badge-empty{text-align:center;box-sizing:border-box;border-radius:4px;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;width:52px;min-width:52px;max-width:52px;margin:0;padding:2px 0;font-size:12px;display:inline-flex}.team-panel .lineup-item .caution-badge,.team-panel .lineup-item .caution-badge.caution-warning,.team-panel .lineup-item .caution-badge.caution-suspend,.team-panel .lineup-item .caution-badge.caution-expel,.team-panel .lineup-item .caution-badge.caution-badge-empty{text-align:center;box-sizing:border-box;border-radius:4px;flex-grow:0;flex-shrink:0;justify-content:center;align-items:center;width:52px;min-width:52px;max-width:52px;margin:0;padding:2px 0;font-size:10px;display:inline-flex}.team-panel .stat-btn{padding:2px 8px;font-size:10px}.team-panel .stat-buttons-inline{flex-shrink:0;gap:3px;margin-left:auto}}@media (width<=768px){.app-container{padding:8px 10px}.quarter-indicator{gap:4px}.quarter-indicator .quarter-dot{min-width:32px;padding:3px 8px;font-size:11px}.mobile-hide-on-phone{display:none!important}.scoreboard{border-radius:14px;gap:10px;margin-bottom:8px;padding:32px 14px}.scoreboard .team-score{flex:1;gap:6px;min-width:0}.scoreboard .team-name{letter-spacing:-.3px;font-size:22px;font-weight:800}.scoreboard .score{letter-spacing:-4px;text-align:center;box-sizing:border-box;flex-shrink:0;width:130px;font-size:108px;line-height:1}.scoreboard-quarter-mid{font-size:22px}.scoreboard.scoreboard-grid{grid-template-columns:1fr 150px 1fr;justify-items:center;gap:6px 12px;padding:6px 14px}.cp-indicator{border-radius:10px;flex-shrink:0;gap:6px;min-width:96px;padding:8px 12px;transform:translateY(14px)}.cp-label{letter-spacing:.3px;font-size:14px}.cp-arrow{width:16px;font-size:16px}.cp-chip{letter-spacing:.8px;min-width:48px;padding:4px 10px;font-size:11px}.game-timer{border-radius:10px;flex:0 auto;gap:6px;min-width:0;padding:8px 10px}.game-timer-display{letter-spacing:1px;font-size:26px}.btn-timer{min-height:28px;padding:4px 8px;font-size:11px}.btn-timer-start,.btn-timer-pause{min-width:52px}.btn-timer-reset,.btn-timer-settings,.btn-timer-break{min-width:28px;padding:4px 6px;font-size:13px}.recording-main-3col{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr 1fr;gap:6px}.recording-main-3col>.team-panel{grid-row:1}.recording-main-3col>.score-log-panel{grid-area:2/1/auto/-1;min-height:80px;max-height:110px}.team-panel{border-radius:10px;padding:8px 6px}.team-panel h3{text-align:center;margin-bottom:4px;font-size:13px}.score-buttons{gap:4px;margin-bottom:6px}.score-buttons .btn{flex:1;min-width:0;padding:8px 0;font-size:14px;font-weight:800}.team-panel .lineup-item{grid-template:"pos name foul""stats stats stats"/26px 1fr minmax(40px,auto);align-items:center;gap:1px 5px;padding:3px 4px;font-size:11px;display:grid}.team-panel .lineup-item .pos-badge{flex-shrink:0;grid-area:pos;align-self:center;width:26px;height:18px;font-size:9px}.team-panel .lineup-item .player-info{white-space:nowrap;text-overflow:ellipsis;flex:none;grid-area:name;align-self:center;min-width:0;font-size:11px;font-weight:600;line-height:1.2;overflow:hidden}.team-panel .lineup-item .foul-badge{min-width:0;color:var(--warning);white-space:nowrap;flex-shrink:0;grid-area:foul;align-self:center;font-size:10px;font-weight:700;line-height:1.2}.team-panel .lineup-item .caution-badge{padding:1px 3px;font-size:8px}.team-panel .stat-buttons-inline{grid-area:stats;grid-template-columns:1fr 1fr 1fr;gap:3px;width:100%;margin:0;padding-left:0;display:grid}.team-panel .stat-btn{text-align:center;white-space:nowrap;border-radius:3px;flex-shrink:0;min-width:0;padding:1px 0;font-size:9px;line-height:1.4}.score-log-header{letter-spacing:0;padding:4px 2px;font-size:9px}.score-log-row{padding:0 2px;font-size:10px;line-height:18px}.score-log-col{font-size:11px}.score-log-col-narrow{width:18px;font-size:9px}.score-log-quarter-mark{letter-spacing:0;padding:1px 2px;font-size:9px}.action-bar{flex-wrap:unset;grid-template-columns:repeat(5,1fr);gap:4px;padding:6px 0 8px;display:grid;overflow:visible}.action-bar::-webkit-scrollbar{display:none}.action-bar .spacer{display:none}.action-bar .btn{white-space:nowrap;min-width:0;padding:7px 4px;font-size:11px}.action-bar>button:nth-child(7){grid-column:1;margin-top:6px}.action-bar>button:nth-child(8){grid-column:2;margin-top:6px}.action-bar>button:nth-child(9){grid-column:3;margin-top:6px}.action-bar>button:nth-child(10){grid-column:4;margin-top:6px}.action-bar>button:nth-child(11){grid-column:5;margin-top:6px}.room-badge{padding:3px 8px;font-size:10px}.tabs{gap:2px;padding:3px}.tabs .tab{word-break:keep-all;white-space:normal;text-align:center;justify-content:center;align-items:center;min-width:0;min-height:40px;padding:8px 2px;font-size:11px;line-height:1.2;display:flex;overflow:hidden}.position-grid{grid-template-columns:repeat(7,1fr);gap:4px}.position-slot{border-width:1.5px;border-radius:6px;min-width:0;padding:8px 2px;overflow:hidden}.position-slot .pos-label{letter-spacing:0;margin-bottom:3px;font-size:11px}.position-slot .player-name{white-space:nowrap;text-overflow:ellipsis;font-size:11px;line-height:1.2;overflow:hidden}.player-table-scroll{-webkit-overflow-scrolling:touch;margin:0 -4px;padding:0 4px;overflow-x:auto}.player-table-scroll::-webkit-scrollbar{height:4px}.player-table-scroll::-webkit-scrollbar-thumb{background:#94a3b859;border-radius:2px}.player-table-scroll .player-table{width:max-content;min-width:600px}.player-table-scroll .player-table th,.player-table-scroll .player-table td{white-space:nowrap;padding:6px 10px;font-size:12px}.player-table-scroll .player-table th{font-size:11px}.result-table th,.result-table td{white-space:nowrap;padding:6px 4px;font-size:12px}.result-table th{font-size:11px}.player-select-grid.row-7{gap:4px}.player-select-grid.row-7 .player-select-btn{text-overflow:clip;flex-direction:column;justify-content:center;align-items:center;gap:2px;min-width:0;min-height:46px;padding:6px 1px;font-size:11px;line-height:1.2;display:flex;overflow:visible}.player-select-grid.row-7 .player-select-btn .psbtn-pos{color:var(--text);letter-spacing:.3px;margin-right:0;font-size:11px;font-weight:800}.player-select-grid.row-7 .player-select-btn .psbtn-name{white-space:nowrap;text-overflow:clip;letter-spacing:-.3px;font-size:9px;font-weight:600;overflow:visible}}@media (width<=420px){.scoreboard{padding:26px 10px}.scoreboard .score{letter-spacing:-3px;width:110px;font-size:90px}.scoreboard .team-name{font-size:18px}.scoreboard-quarter-mid{font-size:19px}.scoreboard.scoreboard-grid{grid-template-columns:1fr 130px 1fr;column-gap:8px}.cp-indicator{min-width:80px;padding:6px 10px;transform:translateY(11px)}.cp-label{font-size:12px}.cp-arrow{width:14px;font-size:14px}.cp-chip{min-width:42px;padding:3px 8px;font-size:10px}.game-timer{gap:4px;padding:6px 8px}.game-timer-display{letter-spacing:.5px;font-size:22px}.btn-timer{min-height:24px;padding:3px 6px;font-size:10px}.btn-timer-start,.btn-timer-pause{min-width:44px}.btn-timer-reset,.btn-timer-settings,.btn-timer-break{min-width:24px;padding:3px 5px;font-size:12px}.team-panel{padding:8px 6px}.team-panel h3{font-size:12px}.score-buttons .btn{padding:8px 0;font-size:13px}.lineup-item{padding:5px 3px}.lineup-item .pos-badge{width:26px;height:20px;font-size:9px}.lineup-item .player-info{font-size:11px}.lineup-item .foul-badge{font-size:10px}.stat-buttons-inline{gap:3px;padding-left:32px}.stat-btn{padding:2px 0;font-size:9px}.recording-main-3col>.score-log-panel{min-height:80px;max-height:110px}.action-bar .btn{padding:6px 2px;font-size:10px}}.score-log-panel{background:var(--bg-card);border-radius:var(--radius);flex-direction:column;min-height:0;display:flex;overflow:hidden}.score-log-header{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);background:#ffffff0d;align-items:center;padding:8px 4px;font-size:11px;font-weight:700;display:flex}.score-log-body{scrollbar-width:thin;scrollbar-color:#94a3b859 transparent;flex:1;padding:2px 0;overflow-y:auto}.score-log-body::-webkit-scrollbar{width:6px;height:6px}.team-panel::-webkit-scrollbar{width:6px;height:6px}.modal::-webkit-scrollbar{width:6px;height:6px}.score-log-body::-webkit-scrollbar-track{background:0 0}.team-panel::-webkit-scrollbar-track{background:0 0}.modal::-webkit-scrollbar-track{background:0 0}.score-log-body::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px;transition:background .15s}.team-panel::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px;transition:background .15s}.modal::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px;transition:background .15s}.score-log-body::-webkit-scrollbar-thumb:hover{background:#94a3b88c}.team-panel::-webkit-scrollbar-thumb:hover{background:#94a3b88c}.modal::-webkit-scrollbar-thumb:hover{background:#94a3b88c}@media (width<=768px){.score-log-body::-webkit-scrollbar{width:0;height:0;display:none}.team-panel::-webkit-scrollbar{width:0;height:0;display:none}.score-log-body,.team-panel{scrollbar-width:none;-ms-overflow-style:none}}.team-panel,.modal{scrollbar-width:thin;scrollbar-color:#94a3b84d transparent}.score-log-row{border-bottom:1px solid #47556926;align-items:center;padding:1px 4px;font-size:13px;display:flex}.score-log-row:hover{background:#ffffff08}.score-log-col{text-align:center;flex:1;font-size:14px;font-weight:600}.score-log-col-narrow{text-align:center;width:28px;color:var(--text-muted);font-size:12px}.score-log-cp{color:var(--text);font-weight:700}.score-log-cp-only{opacity:.9;background:#ffffff05}.cp-decision{border:1px solid #94a3b840;border-radius:10px;margin-top:16px;padding:12px}.cp-decision-q{color:#fff;flex-wrap:wrap;align-items:center;margin-bottom:10px;font-size:14px;display:flex}.cp-decision-btns{flex-direction:column;gap:8px;display:flex}.cp-decision-btn{color:var(--text);cursor:pointer;text-align:left;background:0 0;border:1.5px solid #94a3b84d;border-radius:8px;align-items:center;gap:4px;padding:10px 12px;font-size:13px;font-weight:600;transition:border-color .1s,background .1s;display:flex}.cp-decision-btn.selected{border-color:var(--accent);background:#6366f124}.cp-dot{vertical-align:middle;border:1px solid #ffffff59;border-radius:50%;width:11px;height:11px;display:inline-block}.score-log-quarter-mark{text-align:center;color:var(--accent);border-top:1px solid var(--accent);letter-spacing:1px;background:#3b82f61a;padding:2px 4px;font-size:11px;font-weight:800}.team-panel{background:var(--bg-card);border-radius:var(--radius);flex-direction:column;min-height:0;padding:20px;display:flex;overflow-y:auto}.team-panel h3{letter-spacing:-.5px;margin-bottom:16px;font-size:20px;font-weight:800}.team-panel.team-a{border-top:3px solid var(--team-a)}.team-panel.team-a h3{color:var(--team-a)}.team-panel.team-b{border-top:3px solid var(--team-b)}.team-panel.team-b h3{color:var(--team-b)}.score-buttons{gap:10px;margin-bottom:16px;display:flex}.lineup-list{flex:1}.lineup-item{border-bottom:1px solid #47556933;align-items:center;gap:12px;padding:8px 0;font-size:16px;display:flex}.lineup-item .pos-badge{letter-spacing:.5px;border-radius:4px;justify-content:center;align-items:center;width:42px;height:28px;font-size:13px;font-weight:800;display:inline-flex}.team-a .pos-badge{background:var(--team-a-bg);color:var(--team-a)}.team-b .pos-badge{background:var(--team-b-bg);color:var(--team-b)}.lineup-item .player-info{flex:0 0 110px;font-weight:500}.pos-badge-tap{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;transition:all .1s}.pos-badge-tap:active{transform:scale(1.15);box-shadow:0 0 0 3px #f59e0b66}.stat-buttons-inline{gap:3px;margin-left:auto;display:flex}.stat-btn{border:1px solid var(--border);color:var(--text-muted);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;background:0 0;border-radius:4px;padding:3px 10px;font-family:inherit;font-size:12px;font-weight:600;transition:all .1s}.stat-btn:active{border-color:var(--success);color:var(--success);background:#22c55e33;transform:scale(1.05)}.lineup-item .foul-badge{color:var(--warning);min-width:54px;font-size:14px;font-weight:600}.foul-badge-tap{cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation;border-radius:4px;padding:2px 6px;transition:all .15s}.foul-badge-tap:hover{background:#f59e0b26}.foul-badge-tap:active{color:var(--danger);background:#ef444433;transform:scale(.9)}.lineup-item .caution-badge{text-align:center;white-space:nowrap;border-radius:4px;flex-shrink:0;min-width:48px;padding:2px 8px;font-size:11px;font-weight:700}.caution-warning{color:#fbbf24;background:#f59e0b26;border:1px solid #f59e0b66}.caution-suspend{color:#fcd34d;background:#f59e0b59;border:1px solid #f59e0bb3}.caution-expel{background:var(--warning);color:#1a1409;border:1px solid var(--warning)}.caution-badge-empty{color:#0000!important;background:0 0!important}.page-header{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.page-header h1{letter-spacing:-1px;font-size:28px;font-weight:800}.player-select-grid{flex-wrap:wrap;gap:8px;display:flex}.player-select-grid.row-7{flex-wrap:nowrap;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.player-select-grid.row-7 .player-select-btn{flex-direction:column;justify-content:center;align-items:center;gap:3px;min-width:0;min-height:56px;padding:10px 4px;font-size:13px;display:flex;overflow:hidden}.player-select-grid.row-7 .player-select-btn .psbtn-pos{color:var(--text);letter-spacing:.3px;margin-right:0;font-size:13px;font-weight:800}.player-select-grid.row-7 .player-select-btn .psbtn-name{white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.2px;max-width:100%;font-size:11px;font-weight:600;overflow:hidden}.player-select-btn .psbtn-pos{margin-right:4px}.player-select-btn{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);cursor:pointer;padding:10px 16px;font-family:inherit;font-size:14px;font-weight:500;transition:all .15s}.player-select-btn:hover{border-color:var(--accent);background:var(--team-a-bg)}.player-select-btn.danger:hover{border-color:var(--danger);background:var(--team-b-bg)}.quarter-indicator{align-items:center;gap:6px;margin-bottom:16px;display:flex}.quarter-dot{background:var(--bg-input);color:var(--text-dim);cursor:default;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px 16px;font-size:13px;font-weight:700;line-height:1;display:inline-flex}.quarter-dot.active{background:var(--warning);color:#1a1409;font-weight:800;box-shadow:0 0 0 2px #f59e0b66,0 0 12px #f59e0b59}.quarter-dot.completed{color:var(--text-muted);background:#94a3b82e}.format-select{gap:8px;display:flex}.format-select-btn{background:var(--bg-input);color:var(--text-muted);border:1px solid var(--border,#94a3b840);cursor:pointer;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 12px;font-size:14px;font-weight:700;transition:border-color .15s,color .15s,background .15s;display:flex}.format-select-btn:hover:not(:disabled){border-color:var(--warning);color:var(--text)}.format-select-btn.active{border-color:var(--warning);color:var(--warning);background:#f59e0b1f}.format-select-btn:disabled{opacity:.5;cursor:not-allowed}.format-select-sub{color:var(--text-dim);font-size:11px;font-weight:500}.format-select-note{color:var(--text-dim);margin-top:6px;font-size:12px}.team-color-picker{display:inline-block;position:relative}.team-color-swatch{align-items:center;gap:6px;display:inline-flex}.team-color-dot{border:1px solid #94a3b866;border-radius:50%;flex-shrink:0;width:14px;height:14px;display:inline-block}.team-color-popover{z-index:100;background:linear-gradient(#1f2b42 0%,#1b2638 100%);border:1px solid #94a3b840;border-radius:12px;min-width:240px;padding:14px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 16px 40px #00000073}.team-color-popover-label{color:var(--text-muted);letter-spacing:.2px;margin-bottom:6px;font-size:12px}.team-color-grid{grid-template-columns:repeat(5,1fr);gap:6px;display:grid}.team-color-chip{cursor:pointer;border:2px solid #0000;border-radius:6px;width:28px;height:28px;padding:0;transition:transform .1s,border-color .1s}.team-color-chip:hover{transform:scale(1.08)}.team-color-chip.selected{border-color:#fff;box-shadow:0 0 0 2px #ffffff40}.team-color-hex-row{gap:6px;display:flex}.team-color-hex-input{background:var(--bg-input);border:1px solid var(--border);color:var(--text);border-radius:6px;flex:1;min-width:0;padding:6px 10px;font-family:inherit;font-size:13px}.team-color-hex-input:focus{border-color:var(--accent);outline:none}.team-color-hex-error{color:var(--danger);margin-top:6px;font-size:11px}.team-color-popover-foot{border-top:1px solid #94a3b82e;justify-content:space-between;align-items:center;margin-top:12px;padding-top:10px;display:flex}.team-color-warn{color:var(--warning);font-size:11px}@media (width<=768px){.team-color-popover{z-index:1000;width:min(320px,100vw - 32px);min-width:0;position:fixed;top:50%;left:50%;right:auto;transform:translate(-50%,-50%)}}@supports (-webkit-touch-callout:none){.view-mode{gap:6px;padding:6px 18px}.view-scoreboard{row-gap:clamp(2px,.7dvh,10px);padding:clamp(6px,1.2dvh,22px) clamp(16px,3vw,40px)}.view-team-name,.view-quarter-mid{font-size:clamp(18px,3.4dvh,48px)}.view-score{letter-spacing:-.02em;font-size:clamp(96px,18dvh,280px)}.view-timer{font-size:clamp(50px,9dvh,140px)}.view-mode-v2 .view-team-name{font-size:clamp(40px,7dvh,116px)}.view-mode-v2 .view-quarter-mid{font-size:clamp(36px,5.8dvh,98px)}.view-mode-v2 .view-score{font-size:clamp(116px,23dvh,380px)}.view-v2-timer{font-size:clamp(72px,12dvh,184px)}.view-vs-large{font-size:clamp(44px,8dvh,116px)}.view-attack-arrow-big{font-size:clamp(56px,11dvh,150px)}}.view-score,.view-team-name,.view-cp-chip.active{filter:brightness(1.18)saturate(1.05)}.view-mode{background:#000}.view-scoreboard{background:0 0}.view-timer,.view-v2-timer{background:#000}@media (width<=768px){.sub-help-detail{display:none}}
