*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}:root{--bg: #0f172a;--panel: #1e293b;--panel2: #334155;--text: #f1f5f9;--dim: #94a3b8;--teamA: #2563eb;--teamA-dark: #1d4ed8;--teamB: #dc2626;--teamB-dark: #b91c1c;--accent: #10b981;--warn: #f59e0b;--danger: #ef4444}html,body{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Apple SD Gothic Neo,Noto Sans KR,sans-serif;overscroll-behavior:none;-webkit-user-select:none;user-select:none}#app{height:100dvh;display:flex;flex-direction:column;max-width:900px;margin:0 auto}button{font:inherit;color:inherit;border:0;border-radius:12px;cursor:pointer}input,select{font:inherit;border-radius:8px;border:1px solid var(--panel2);background:var(--panel);color:var(--text);padding:10px;width:100%}h1{font-size:20px}h2{font-size:17px}h3{font-size:15px;color:var(--dim)}.screen{flex:1;display:flex;flex-direction:column;padding:16px;gap:14px;overflow-y:auto}.topbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.topbar .back{background:var(--panel);padding:10px 14px;border-radius:10px}.card{background:var(--panel);border-radius:14px;padding:14px;display:flex;flex-direction:column;gap:10px}.row{display:flex;gap:10px;align-items:center}.grow{flex:1}.btn{background:var(--panel2);padding:14px;font-size:16px;font-weight:600}.btn.primary{background:var(--accent);color:#052e22}.btn.warn{background:var(--warn);color:#3a2200}.btn.danger{background:var(--danger)}.btn:disabled{opacity:.35;cursor:default}.list-item{background:var(--panel);border-radius:12px;padding:14px;display:flex;justify-content:space-between;align-items:center;gap:8px}.muted{color:var(--dim);font-size:13px}.banner{background:#14532d;border:1px solid var(--accent);border-radius:12px;padding:12px;font-size:14px}.banner.warn{background:#451a03;border-color:var(--warn)}.rally{display:flex;flex-direction:column;height:100%;gap:10px;padding:12px}.scoreboard{display:flex;align-items:center;justify-content:center;gap:14px;padding:6px 0}.scoreboard .pts{font-size:56px;font-weight:800;font-variant-numeric:tabular-nums;min-width:84px;text-align:center}.scoreboard .mid{font-size:30px;color:var(--dim)}.statusline{text-align:center;font-size:14px;color:var(--dim)}.serve-badge{display:inline-block;padding:2px 10px;border-radius:999px;font-weight:700;font-size:13px}.serve-A{background:var(--teamA)}.serve-B{background:var(--teamB)}.tap-zone{flex:1;display:flex;gap:12px;min-height:0}.tap-btn{flex:1;border-radius:20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:22px;font-weight:800;color:#fff;touch-action:manipulation}.tap-btn small{font-size:13px;font-weight:500;opacity:.85}.tap-btn.A{background:linear-gradient(180deg,var(--teamA),var(--teamA-dark))}.tap-btn.B{background:linear-gradient(180deg,var(--teamB),var(--teamB-dark))}.tap-btn:active{filter:brightness(1.2)}.tap-btn{position:relative}.tap-btn.serving{animation:servePulse 1.5s ease-in-out infinite}.tap-btn.serving:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:20px;border:3px solid rgba(255,255,255,.92);pointer-events:none}.serve-flag{position:absolute;top:12px;left:12px;display:inline-flex;align-items:center;gap:4px;background:#fde047;color:#1a1a1a;font-size:15px;font-weight:800;line-height:1;padding:6px 12px;border-radius:999px;box-shadow:0 2px 10px #00000059}@keyframes servePulse{0%,to{box-shadow:0 0 0 4px #fde047,0 0 20px 4px #fde04766}50%{box-shadow:0 0 0 5px #fde047,0 0 36px 10px #fde047bf}}.bottombar{display:flex;gap:10px}.bottombar .btn{flex:1;padding:16px 10px}.chips{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}.chip{background:var(--panel);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--dim)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;display:flex;align-items:center;justify-content:center;z-index:50;padding:20px}.dialog{background:var(--panel);border-radius:16px;padding:20px;width:100%;max-width:420px;display:flex;flex-direction:column;gap:14px;max-height:85dvh;overflow-y:auto}.dialog h2{text-align:center}.dialog .actions{display:flex;gap:10px}.dialog .actions .btn{flex:1}.fullnotice{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--warn);color:#3a2200;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;z-index:60;text-align:center;padding:24px}.fullnotice h1{font-size:28px}.lineup-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.slot{background:var(--panel2);border-radius:10px;padding:8px;text-align:center;font-size:13px}.slot.filled{background:var(--panel);border:1px solid var(--accent)}.slot .roman{color:var(--dim);font-size:11px}.roster-pick{display:flex;flex-wrap:wrap;gap:6px}.roster-pick .btn{padding:8px 12px;font-size:14px}.roster-pick .btn.used{opacity:.3}.drawer{position:fixed;left:0;right:0;bottom:0;background:var(--panel);border-radius:16px 16px 0 0;max-height:75dvh;display:flex;flex-direction:column;z-index:40;box-shadow:0 -8px 30px #00000080}.drawer .head{padding:14px;display:flex;justify-content:space-between;align-items:center}.drawer .body{overflow-y:auto;padding:0 14px 14px;display:flex;flex-direction:column;gap:8px}.event-row{background:var(--panel2);border-radius:10px;padding:10px;display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:14px}.event-row.revoked{opacity:.4;text-decoration:line-through}.event-row .mini{display:flex;gap:6px}.event-row .mini .btn{padding:6px 10px;font-size:12px}table.result{width:100%;border-collapse:collapse}table.result th,table.result td{padding:8px;text-align:center;border-bottom:1px solid var(--panel2);font-variant-numeric:tabular-nums}table.result th{color:var(--dim);font-weight:500;font-size:13px}@media (min-width: 640px){.scoreboard .pts{font-size:84px}.tap-btn{font-size:30px}}
