:root{color:#202722;font-synthesis:none;text-rendering:optimizelegibility;--ink:#202722;--muted:#69746d;--line:#d5dbd6;--surface:#fff;--surface-soft:#f5f7f5;--header:#182720;--green:#226a50;--green-dark:#174c39;--green-soft:#e2f0e9;--gold:#c4953a;--red:#b74646;--red-soft:#fae8e8;--blue:#376b9c;--shadow:0 12px 30px #19261f17;background:#edf0ec;font-family:Inter,Pretendard,Noto Sans KR,Apple SD Gothic Neo,sans-serif}*{box-sizing:border-box}html{background:#edf0ec;min-width:320px;min-height:100%}body{letter-spacing:0;background:#edf0ec;min-width:320px;min-height:100vh;margin:0}button,input{font:inherit;letter-spacing:0}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}svg{stroke-width:2px;width:18px;height:18px}.edge-loading{min-height:100vh;color:var(--green-dark);place-content:center;justify-items:center;gap:12px;display:grid}.edge-loading svg{width:28px;height:28px}.edge-loading span{color:var(--muted);font-size:.85rem}.spin{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.edge-shell{min-height:100vh}.edge-header{z-index:20;color:#fff;background:var(--header);border-bottom:1px solid #ffffff17;align-items:center;min-height:68px;padding:10px 24px;display:flex;position:sticky;top:0;box-shadow:0 5px 16px #131e1824}.edge-brand{flex:none;align-items:center;gap:11px;min-width:260px;display:flex}.edge-mark{color:#f3c861;background:#ffffff12;border:1px solid #ffffff4d;border-radius:6px;place-items:center;width:38px;height:38px;font-size:.82rem;font-weight:900;display:grid}.edge-brand div{gap:3px;display:grid}.edge-brand strong{font-size:.94rem}.edge-brand span:last-child{color:#aab9b0;font-size:.72rem}.edge-nav{background:#ffffff0f;border:1px solid #ffffff14;border-radius:6px;align-items:center;gap:4px;margin:0 auto;padding:4px;display:flex}.edge-nav button{color:#b8c5bd;background:0 0;border:0;border-radius:4px;align-items:center;gap:7px;min-height:38px;padding:0 14px;font-size:.8rem;font-weight:800;display:inline-flex}.edge-nav button:hover,.edge-nav button.active{color:#1e2b24;background:#fff}.edge-nav button span{color:#fff;background:var(--green);border-radius:50%;place-items:center;min-width:20px;height:20px;font-size:.68rem;display:grid}.edge-health{color:#c2cec6;flex:none;justify-content:flex-end;align-items:center;gap:8px;min-width:150px;font-size:.76rem;font-weight:800;display:flex}.status-dot{background:#9b5656;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #b7464624}.status-dot.online{background:#4fc08b;box-shadow:0 0 0 4px #4fc08b24}.edge-main{width:min(1580px,100% - 40px);margin:0 auto;padding:22px 0 46px}.edge-alert{color:#7d2c2c;background:var(--red-soft);border:1px solid #e2b8b8;border-radius:6px;align-items:center;gap:10px;margin-bottom:14px;padding:11px 13px;font-size:.82rem;font-weight:700;display:flex}.edge-alert span{flex:1}.edge-alert button{color:inherit;background:0 0;border:0;padding:4px;display:grid}.edge-workspace{grid-template-columns:minmax(0,1fr) minmax(290px,350px);align-items:start;gap:16px;display:grid}.session-bar{border:1px solid var(--line);min-height:72px;box-shadow:var(--shadow);background:#fff;border-left:4px solid #aab3ad;border-radius:7px;grid-template-columns:minmax(180px,.8fr) minmax(300px,1.4fr) auto;align-items:center;gap:18px;margin-bottom:12px;padding:10px 12px 10px 16px;display:grid}.session-bar.active{border-left-color:#43a778}.session-state{align-items:center;gap:11px;display:flex}.session-state>div{gap:3px;display:grid}.session-state strong{font-size:.9rem}.session-indicator{background:#aab3ad;border-radius:50%;width:11px;height:11px;box-shadow:0 0 0 5px #808c841f}.session-bar.active .session-indicator{background:#3cb477;box-shadow:0 0 0 5px #3cb47721}.session-metrics{align-items:center;gap:24px;display:flex}.session-metrics>div{grid-template-columns:20px auto;align-items:center;column-gap:7px;display:grid}.session-metrics svg{color:var(--green);grid-row:1/3}.session-metrics span{color:var(--muted);font-size:.61rem;font-weight:800}.session-metrics strong{font-size:.78rem}.start-session-button,.end-session-button{border-radius:5px;justify-content:center;align-items:center;gap:8px;min-width:152px;min-height:44px;padding:0 16px;font-size:.76rem;font-weight:900;display:inline-flex}.start-session-button{border:1px solid var(--green-dark);color:#fff;background:var(--green-dark)}.start-session-button svg{fill:currentColor}.end-session-button{color:#8d3030;background:#fff5f5;border:1px solid #ca8585}.end-session-button svg{fill:currentColor;width:14px;height:14px}.video-workspace,.scoreboard-panel,.recent-section,.library-section,.configuration-panel,.system-status-grid article{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow);border-radius:7px}.video-workspace{min-width:0;overflow:hidden}.video-toolbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:16px;min-height:68px;padding:10px 14px;display:flex}.video-toolbar>div:first-child{gap:3px;min-width:0;display:grid}.video-toolbar strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.section-kicker{color:var(--green);text-transform:uppercase;font-size:.64rem;font-weight:900}.video-toolbar-actions,.replay-actions{align-items:center;gap:8px;display:flex}.primary-button,.secondary-button,.icon-button{border-radius:5px;justify-content:center;align-items:center;gap:7px;min-height:40px;font-size:.76rem;font-weight:850;display:inline-flex}.primary-button{border:1px solid var(--green-dark);color:#fff;background:var(--green-dark);padding:0 15px}.primary-button:hover{background:#113d2e}.secondary-button{border:1px solid var(--line);color:var(--ink);background:#fff;padding:0 13px}.secondary-button:hover{background:var(--surface-soft);border-color:#aab5ad}.icon-button{border:1px solid var(--line);width:40px;color:var(--muted);background:#fff;padding:0}.icon-button.danger:hover{color:var(--red);background:var(--red-soft);border-color:#e0b4b4}.video-stage{aspect-ratio:16/9;background:#101713;place-items:center;min-height:320px;display:grid;position:relative;overflow:hidden}.video-stage video{object-fit:contain;background:#101713;width:100%;height:100%}.video-empty{color:#8b9990;justify-items:center;gap:10px;display:grid}.video-empty svg{width:38px;height:38px}.video-empty strong{font-size:.78rem}.video-overlay-status{pointer-events:none;justify-content:space-between;align-items:center;display:flex;position:absolute;top:12px;left:12px;right:12px}.video-overlay-status span,.video-overlay-status time{color:#fff;background:#0d1410c2;border:1px solid #fff3;border-radius:4px;align-items:center;gap:6px;min-height:28px;padding:0 9px;font-size:.67rem;font-weight:850;display:inline-flex}.video-overlay-status svg{color:#52ca91;width:12px;height:12px}.capture-bar{background:#202a24;border-top:1px solid #2e3933;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.capture-range{align-items:center;gap:8px;display:flex}.capture-range label{color:#bdc8c0;align-items:center;gap:6px;font-size:.68rem;font-weight:750;display:flex}.capture-range input{color:#fff;text-align:right;background:#131b16;border:1px solid #455149;border-radius:4px;width:58px;height:34px}.capture-button{color:#1e291f;background:#f0c86b;border-color:#d6ac54;min-width:150px}.capture-button:hover{background:#dfb44f}.scoreboard-panel{overflow:hidden}.scoreboard-heading{border-bottom:1px solid var(--line);gap:12px;padding:15px;display:grid}.scoreboard-heading>div:first-child{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.scoreboard-heading strong{font-size:.9rem}.mode-control{background:#edf0ec;border-radius:5px;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;padding:4px;display:grid}.mode-control button{min-height:34px;color:var(--muted);background:0 0;border:0;border-radius:4px;font-size:.7rem;font-weight:850}.mode-control button.active{color:#fff;background:var(--green-dark)}.players{background:var(--surface-soft);gap:7px;padding:12px;display:grid}.player-score{border:1px solid var(--line);background:#fff;border-left:4px solid #0000;border-radius:5px;grid-template-columns:minmax(0,1fr) auto;align-items:center;min-height:92px;padding:12px 16px;display:grid}.player-score.active{border-color:#97b9a8;border-left-color:var(--green);box-shadow:0 4px 12px #1e5e461f}.player-score div{gap:5px;display:grid}.player-score span{color:var(--muted);font-size:.59rem;font-weight:900}.player-score.active span{color:var(--green)}.player-score strong{text-overflow:ellipsis;white-space:nowrap;font-size:.9rem;overflow:hidden}.player-score b{color:#17231c;text-align:right;min-width:64px;font-size:2.6rem;line-height:1}.score-actions{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;padding:12px;display:grid}.score-actions button,.reset-game{border:1px solid var(--line);min-height:44px;color:var(--ink);background:#fff;border-radius:5px;justify-content:center;align-items:center;gap:7px;font-size:.74rem;font-weight:850;display:inline-flex}.score-actions .score-point{border-color:var(--green);color:#fff;background:var(--green)}.reset-game{width:calc(100% - 24px);color:var(--muted);background:var(--surface-soft);margin:0 12px 12px}.recent-section,.library-section{margin-top:16px;padding:14px}.section-heading{justify-content:space-between;align-items:center;gap:14px;margin-bottom:12px;display:flex}.section-heading>div{gap:2px;display:grid}.section-heading h2{margin:0;font-size:1rem}.section-heading>span{min-width:28px;height:28px;color:var(--green-dark);background:var(--green-soft);border-radius:50%;place-items:center;font-size:.72rem;font-weight:900;display:grid}.recent-grid{grid-template-columns:repeat(5,minmax(160px,1fr));gap:8px;padding-bottom:3px;display:grid;overflow-x:auto}.recent-card{border:1px solid var(--line);min-height:62px;color:var(--ink);text-align:left;background:#fff;border-radius:5px;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px;display:grid}.recent-card:hover{background:var(--surface-soft);border-color:#92aa9d}.recent-play{color:#fff;background:var(--green-dark);border-radius:50%;place-items:center;width:34px;height:34px;display:grid}.recent-play svg{fill:currentColor;width:14px;height:14px}.recent-card div{gap:3px;min-width:0;display:grid}.recent-card strong,.recent-card span,.recent-card time{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.recent-card strong{font-size:.75rem}.recent-card div span,.recent-card time{color:var(--muted);font-size:.63rem}.empty-row{min-height:90px;color:var(--muted);background:var(--surface-soft);border:1px dashed #c8d0ca;border-radius:5px;place-items:center;font-size:.76rem;display:grid}.library-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.replay-card{border:1px solid var(--line);background:#fff;border-radius:6px;min-width:0;overflow:hidden}.replay-card.selected{border-color:var(--green);box-shadow:0 0 0 2px #226a501f}.replay-preview{aspect-ratio:16/8;background:#111713;border:0;width:100%;padding:0;display:block;position:relative;overflow:hidden}.replay-preview video{object-fit:cover;opacity:.72;width:100%;height:100%}.replay-preview>span{color:#fff;background:#101813b8;border:1px solid #ffffff73;border-radius:50%;place-items:center;width:42px;height:42px;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.replay-preview svg{fill:currentColor}.replay-card-body{gap:12px;padding:12px;display:grid}.replay-title{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.replay-title>div{gap:3px;min-width:0;display:grid}.replay-title strong{font-size:.82rem}.replay-title div span{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.65rem;overflow:hidden}.analysis-status{color:#4f5b53;background:#e8ece9;border-radius:4px;flex:none;padding:4px 7px;font-size:.61rem;font-weight:900}.status-pending,.status-uploading,.status-processing{color:#785814;background:#f8edcf}.status-completed{color:var(--green-dark);background:var(--green-soft)}.status-failed{color:#8b3232;background:var(--red-soft)}.replay-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0;display:grid}.replay-card dl div{gap:3px;display:grid}.replay-card dt{color:var(--muted);text-transform:uppercase;font-size:.59rem;font-weight:850}.replay-card dd{margin:0;font-size:.7rem;font-weight:800}.replay-actions .primary-button,.replay-actions .secondary-button{flex:1;min-width:0}.system-layout{gap:16px;display:grid}.system-status-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.system-status-grid article{align-items:center;gap:12px;min-height:86px;padding:14px;display:flex;position:relative;overflow:hidden}.system-status-grid article>svg{width:25px;height:25px;color:var(--green);flex:none}.system-status-grid article>div:not(.storage-track){gap:5px;min-width:0;display:grid}.system-status-grid span{color:var(--muted);font-size:.65rem;font-weight:800}.system-status-grid strong{align-items:center;gap:5px;font-size:.79rem;display:inline-flex}.system-status-grid strong.offline{color:#8a5d29}.system-status-grid strong.online{color:var(--green)}.system-status-grid strong svg{width:14px;height:14px}.storage-track{background:#e2e6e3;border-radius:2px;height:3px;position:absolute;bottom:11px;left:51px;right:14px;overflow:hidden}.storage-track i{background:var(--gold);height:100%;display:block}.configuration-panel{padding:16px}.central-pairing-panel{gap:14px;display:grid}.central-connection-badge{color:#785814;background:#f8edcf;border-radius:4px;align-self:center;padding:5px 8px;font-size:.64rem;font-weight:900}.central-connection-badge.central-connected{color:var(--green-dark);background:var(--green-soft)}.central-connection-badge.central-auth_failed{color:#8b3232;background:var(--red-soft)}.central-pairing-form{grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;display:grid}.central-pairing-form label{color:#4f5b53;gap:6px;font-size:.68rem;font-weight:850;display:grid}.central-pairing-form input{border:1px solid var(--line);letter-spacing:0;text-transform:uppercase;border-radius:5px;height:42px;padding:0 11px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.86rem;font-weight:850}.central-paired-state{flex-wrap:wrap;justify-content:space-between;align-items:end;gap:12px;display:flex}.central-paired-state dl{flex-wrap:wrap;gap:18px 30px;margin:0;display:flex}.central-paired-state dl div{gap:3px;display:grid}.central-paired-state dt{color:var(--muted);font-size:.62rem;font-weight:800}.central-paired-state dd{margin:0;font-size:.72rem;font-weight:850}.central-connection-error{color:#8b3232;flex-basis:100%;margin:0;font-size:.68rem}.session-history-list{display:grid}.session-history-list article{border-top:1px solid var(--line);grid-template-columns:minmax(190px,1fr) minmax(300px,1.4fr);align-items:center;gap:20px;min-height:66px;padding:10px 4px;display:grid}.session-history-list article:first-child{border-top:0}.session-history-list article>div{gap:3px;display:grid}.session-history-list strong{font-size:.76rem}.session-history-list span,.session-history-list dt{color:var(--muted);font-size:.62rem}.session-history-list dl{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0;display:grid}.session-history-list dl div{gap:3px;display:grid}.session-history-list dt{font-weight:800}.session-history-list dd{margin:0;font-size:.72rem;font-weight:850}.configuration-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:14px;display:grid}.configuration-grid label{color:#4f5b53;gap:6px;font-size:.68rem;font-weight:850;display:grid}.configuration-grid input{border:1px solid var(--line);width:100%;height:42px;color:var(--ink);background:#fff;border-radius:5px;outline:0;padding:0 11px}.configuration-grid input:focus{border-color:var(--green);box-shadow:0 0 0 3px #226a501c}.configuration-grid .wide-field{grid-column:1/-1}.edge-bottom-nav{display:none}@media (width<=1120px){.edge-brand{min-width:220px}.edge-health{min-width:110px}.library-grid,.system-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=900px){.edge-header{position:static}.edge-nav{display:none}.edge-health{margin-left:auto}.edge-main{width:min(100% - 24px,760px);padding-bottom:92px}.edge-workspace{grid-template-columns:1fr}.session-bar{grid-template-columns:minmax(150px,.8fr) minmax(240px,1.2fr) auto;gap:12px}.session-metrics{gap:12px}.scoreboard-panel{grid-template-columns:minmax(220px,.85fr) minmax(0,1.15fr);display:grid}.scoreboard-heading{grid-column:1/-1}.players,.score-actions{align-content:start}.reset-game{align-self:start}.edge-bottom-nav{z-index:30;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));background:#182720;border:1px solid #ffffff24;border-radius:7px;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:6px;display:grid;position:fixed;left:12px;box-shadow:0 12px 28px #0f181347}.edge-bottom-nav button{color:#aebbb3;background:0 0;border:0;border-radius:5px;align-content:center;place-items:center;gap:3px;min-height:52px;font-size:.64rem;font-weight:800;display:grid}.edge-bottom-nav button.active{color:#1b2a22;background:#fff}}@media (width<=640px){.edge-header{min-height:60px;padding:9px 12px}.edge-brand{min-width:0}.edge-brand strong{font-size:.82rem}.edge-brand span:last-child{text-overflow:ellipsis;white-space:nowrap;max-width:190px;overflow:hidden}.edge-mark{width:34px;height:34px}.edge-health{min-width:auto}.edge-health span:last-child{display:none}.edge-main{width:100%;padding:10px 10px 90px}.central-pairing-form{grid-template-columns:1fr}.central-pairing-form button,.central-paired-state>button{width:100%}.central-paired-state{align-items:stretch}.session-bar{grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:0;padding:10px}.session-metrics{border-top:1px solid var(--line);grid-area:2/1/auto/-1;justify-content:space-between;padding-top:9px}.start-session-button,.end-session-button{min-width:130px}.video-toolbar{min-height:62px;padding:9px 10px}.secondary-button{min-width:40px;padding:0 10px}.video-stage{min-height:210px}.capture-bar{flex-direction:column;align-items:stretch}.capture-range{justify-content:space-between}.capture-button{width:100%}.scoreboard-panel{display:block}.players{grid-template-columns:repeat(2,minmax(0,1fr))}.player-score{grid-template-columns:1fr;min-height:118px}.player-score b{text-align:left;min-width:0;font-size:2.3rem}.recent-section,.library-section{margin-top:10px;padding:10px}.recent-grid{grid-template-columns:repeat(5,230px)}.library-grid,.configuration-grid,.system-status-grid{grid-template-columns:1fr}.session-history-list article{grid-template-columns:1fr;gap:9px}.replay-preview{aspect-ratio:16/7}}
