:root{color-scheme:dark;--td-bg:#131719;--td-panel:#202629;--td-text:#f8fafb;--td-muted:#bbc6cb;--td-line:#49565b;--td-gold:#f0cb81}
*{box-sizing:border-box}body{margin:0;background:var(--td-bg);color:var(--td-text);font-family:system-ui,-apple-system,"Noto Sans KR",sans-serif;line-height:1.55}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.5}button:focus-visible,a:focus-visible{outline:3px solid var(--td-gold);outline-offset:5px}[hidden]{display:none!important}.td-main{width:min(740px,100%);margin:auto;padding:28px 18px 40px}.td-header,.td-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.td-header{margin-bottom:22px}h1,h2,p{margin:0}h1{font-size:30px;letter-spacing:-1px}h2{font-size:24px}.td-eyebrow{font-size:12px;font-weight:800;letter-spacing:2px;color:var(--td-gold)}.td-back{color:var(--td-text);font-size:15px;white-space:nowrap;text-underline-offset:5px}.td-session{display:grid;gap:5px;border:1px solid var(--td-line);border-radius:14px;padding:16px 20px;margin-bottom:18px;font-size:15px;color:var(--td-muted)}.td-session strong{color:var(--td-text);font-size:18px;overflow-wrap:anywhere}.td-card{background:var(--td-panel);border:1px solid var(--td-line);border-radius:20px;padding:26px;margin-bottom:18px}.td-card>.td-eyebrow{display:block;margin-bottom:8px}.td-lead{font-size:21px;font-weight:650;margin:16px 0 10px;word-break:keep-all}.td-hint{font-size:14px;color:var(--td-muted)}.td-primary,.td-secondary{display:block;width:100%;min-height:64px;border-radius:12px;border:0;font-weight:800;font-size:20px;padding:15px;margin-top:22px;touch-action:manipulation}.td-primary{background:#f6f7f3;color:#151b1e}.td-primary span{margin-right:8px}.td-secondary{background:#343f44;color:white;border:1px solid #6b7b83;margin-top:12px;font-size:17px}.td-status{margin:18px 0 8px;color:var(--td-gold);font-weight:600;white-space:pre-line;overflow-wrap:anywhere}.td-status[data-error=true]{color:#ffb9b2}.td-video-frame{position:relative;overflow:hidden;border:1px solid var(--td-line);border-radius:14px;background:#000;aspect-ratio:4/3}.td-video-frame video{width:100%;height:100%;object-fit:cover}.td-finder{position:absolute;inset:13% 20%;border:3px solid #fff;border-radius:12px;box-shadow:0 0 0 120px #0003;pointer-events:none}.td-privacy{border-top:1px solid var(--td-line);margin-top:22px;padding-top:18px;font-size:12px}.td-small{min-height:44px;padding:8px 12px;border:1px solid var(--td-line);border-radius:8px;background:transparent;color:var(--td-text);font-size:14px;white-space:nowrap}.td-history{margin-top:16px}.td-history-row{padding:15px 0;border-top:1px solid var(--td-line);display:flex;align-items:center;justify-content:space-between;gap:12px}.td-history-row strong{display:block;overflow-wrap:anywhere}.td-history-row small{display:block;font-size:12px;color:var(--td-muted)}.td-history-row .td-badge{font-size:13px;white-space:nowrap;border-radius:6px;padding:6px 9px;background:#38464d;color:#fff}.td-badge[data-status=CONFIRMED]{background:#204d3c;color:#bff4db}.td-badge[data-status=REJECTED]{background:#593431;color:#ffd3cb}.td-history-actions{display:flex;gap:8px;align-items:center}@media(max-width:420px){.td-main{padding:20px 12px}.td-card{padding:20px}h1{font-size:26px}h2{font-size:22px}.td-lead{font-size:19px}.td-history-row{align-items:flex-start}.td-history-actions{flex-direction:column;align-items:flex-end}.td-header{gap:8px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

.td-countdown{margin:22px 0;padding:22px 16px;border:1px solid var(--td-gold);border-radius:14px;background:#151d20;text-align:center}.td-countdown>strong{display:block;overflow-wrap:anywhere;color:var(--td-gold)}.td-clock{font-size:56px;font-weight:850;line-height:1.3;font-variant-numeric:tabular-nums}.td-clock small{font-size:18px;margin-left:6px;color:var(--td-muted)}.td-countdown progress{display:block;width:100%;height:12px;accent-color:var(--td-gold);margin:14px 0}.td-countdown p{font-size:15px;margin-bottom:16px}.td-countdown[data-ready=true]{border-color:#8fe8ba}.td-countdown[data-ready=true] strong{color:#8fe8ba}.td-header h1{font-size:clamp(20px,4.5vw,30px)}
.td-team-card{padding:22px}.td-team-card h2{font-size:22px}.td-team-count{font-size:13px;white-space:nowrap;color:var(--td-gold)}.td-team-card>.td-hint{margin-top:10px}.td-team-sync{font-size:12px}.td-team-sync[data-error=true]{color:#ffb9b2}.td-team-capture{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:16px;border:1px solid var(--td-line);border-radius:12px;background:#151d20}.td-team-capture>div:first-child{min-width:0}.td-team-capture strong{overflow-wrap:anywhere}.td-team-phase{display:block;font-size:13px;color:var(--td-muted);margin-top:5px}.td-team-clock{display:flex;align-items:baseline;gap:5px;flex-shrink:0;font-variant-numeric:tabular-nums;color:var(--td-gold)}.td-team-clock strong{font-size:38px;line-height:1}.td-team-clock span{font-size:14px}.td-team-capture[data-ready=true]{border-color:#8fe8ba}.td-team-capture[data-ready=true] .td-team-clock{color:#8fe8ba}@media(max-width:420px){.td-team-card{padding:18px}.td-team-card h2{font-size:20px}.td-team-capture{padding:14px;gap:10px}.td-team-clock strong{font-size:34px}}

.td-scan-actions{display:grid;gap:12px;margin:22px 0}.td-scan-actions .td-primary{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;margin:0;min-height:76px;padding:14px 12px}.td-scan-actions strong{font-size:20px}.td-scan-actions small{font-size:13px;font-weight:500}.td-scan-actions .td-search{background:#eadfd0;color:#23201c}.td-scan-actions .td-revive{background:#9ed8c3;color:#132b22}.td-instructions{margin:16px 0}.td-instructions summary{cursor:pointer;color:var(--td-muted);font-size:14px}.td-instructions .td-hint{margin-top:12px}.td-scan-actions button:disabled{cursor:not-allowed}

html.td-camera-open,html.td-camera-open body{overflow:hidden;overscroll-behavior:none}
.td-camera{position:fixed;inset:0;width:min(600px,calc(100% - 24px));max-width:none;max-height:calc(100% - 24px);margin:auto;padding:0;border:1px solid var(--td-line);border-radius:20px;background:var(--td-panel);color:var(--td-text);box-shadow:0 24px 80px #0009;overflow:auto;overscroll-behavior:contain}
.td-camera:not([open]){display:none}
.td-camera::backdrop{background:#080d12d9}
.td-camera-panel{display:grid;grid-template-rows:auto minmax(96px,1fr) auto;gap:14px;height:min(620px,calc(100vh - 32px));height:min(620px,calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));padding:18px}
.td-camera-header{display:flex;align-items:center;justify-content:space-between;gap:10px}
.td-camera-header h2{font-size:22px;line-height:1.3}
.td-camera-header .td-small{flex-shrink:0;background:#343f44;min-height:44px}
.td-camera .td-video-frame{min-height:96px;aspect-ratio:auto}
.td-camera .td-video-frame video{display:block}
.td-camera-state{position:absolute;inset:0;display:grid;place-items:center;padding:24px;background:#12191deb;text-align:center;color:var(--td-muted);font-size:16px}
.td-camera .td-video-frame[data-state=ready] .td-camera-state{display:none}
.td-camera-guide .td-status{margin:0 0 8px;font-size:15px}
.td-camera-guide .td-hint{font-size:13px}
@media(max-height:480px){.td-camera-panel{gap:8px;padding:12px;grid-template-rows:auto minmax(96px,1fr) auto}.td-camera-header h2{font-size:20px}.td-camera-guide .td-status{font-size:14px;margin-bottom:4px}.td-camera-guide .td-hint{font-size:12px}}
