:root{
  --bg:#ffffff; --sub:#f5f7f8; --line:#dfe3e7; --line-strong:#c8cfd5;
  --text:#1b2126; --muted:#5b666f; --accent:#00777a; --accent-hover:#005f61; --accent-bg:#e0f1f1; --on-accent:#ffffff;
  --error:#b42318;
  --sans:"Pretendard",-apple-system,"Apple SD Gothic Neo","Noto Sans KR",sans-serif;
  color-scheme:light dark;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1417; --sub:#141a1e; --line:#262f35; --line-strong:#36414a;
  --text:#e1e6ea; --muted:#9aa5ae; --accent:#55c4c1; --accent-hover:#7ad6d3; --accent-bg:#113131; --on-accent:#0b1a1a;
  --error:#ff8a80;
}}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--bg);color:var(--text);font:15px/1.6 var(--sans);word-break:keep-all}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.top{display:flex;align-items:center;gap:10px;padding:20px 24px;font-size:15px;font-weight:700;color:var(--text);text-decoration:none}
.top .mark{display:block}

main{flex:1;display:flex;justify-content:center;padding:12vh 20px 48px}
.form{width:100%;max-width:360px;display:flex;flex-direction:column}
h1{margin:0;font-size:24px;line-height:1.4;font-weight:700;letter-spacing:-.01em}
h1.solo{margin-bottom:32px}
.lead{margin:8px 0 32px;color:var(--muted)}
.lead strong{font-weight:600;color:var(--text)}

.row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:8px}
label{font-size:14px;font-weight:600}
.hint{margin:2px 0 8px;font-size:13px;color:var(--muted)}
.timer{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.timer.over{color:var(--error);font-weight:600}

input{width:100%;height:48px;padding:0 14px;font:inherit;font-size:16px;color:var(--text);background:var(--bg);border:1px solid var(--line-strong);border-radius:8px}
input::placeholder{color:var(--muted);opacity:.6}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg)}
input[aria-invalid=true]{border-color:var(--error)}
input.code{height:56px;font-size:26px;font-weight:600;letter-spacing:.4em;text-indent:.4em;text-align:center;font-variant-numeric:tabular-nums}
input:disabled{color:var(--muted);background:var(--sub)}

.error{margin:8px 0 0;font-size:13px;font-weight:600;color:var(--error)}
.primary{height:48px;margin-top:16px;font:inherit;font-weight:600;color:var(--on-accent);background:var(--accent);border:0;border-radius:8px;cursor:pointer}
.primary:hover{background:var(--accent-hover)}

.links{display:flex;justify-content:center;gap:8px;margin-top:20px;font-size:14px;color:var(--line-strong)}
.links span{display:inline-flex;gap:8px}
[hidden]{display:none !important}
.link{padding:0;font:inherit;color:var(--muted);background:none;border:0;cursor:pointer;text-decoration:none}
.link:hover{color:var(--text);text-decoration:underline}
.note{margin:32px 0 0;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--muted)}

@media (max-width:480px){
  .top{padding:16px 20px}
  main{padding-top:6vh}
  h1{font-size:22px}
}
