
:root{color-scheme:light dark;--bg:#fafaf9;--card:#fff;--ink:#1c1917;--mute:#78716c;--line:#e7e5e4;--accent:#1c1917;--onaccent:#fff;--bad:#b91c1c}
@media(prefers-color-scheme:dark){:root{--bg:#0c0a09;--card:#171412;--ink:#f5f5f4;--mute:#a8a29e;--line:#292524;--accent:#f5f5f4;--onaccent:#0c0a09;--bad:#f87171}}
*{box-sizing:border-box}
[hidden]{display:none!important}
body{margin:0;min-height:100vh;min-height:100dvh;display:grid;place-items:center;background:var(--bg);color:var(--ink);font:16px/1.5 -apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;padding:max(24px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(24px,env(safe-area-inset-left))}
main{margin-bottom:6vh;width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:16px;padding:32px 28px}
h1{font-size:24px;line-height:1.2;margin:0 0 4px;letter-spacing:-.01em}
p{margin:0 0 20px;color:var(--mute)}
button,input{font:inherit;border-radius:10px;-webkit-appearance:none;appearance:none}
button{width:100%;padding:12px 16px;border:1px solid var(--line);background:transparent;color:var(--ink);cursor:pointer}
button.primary{background:var(--accent);color:var(--onaccent);border-color:var(--accent);font-weight:600}
button:disabled{opacity:.5;cursor:default}
button.link{width:auto;border:0;padding:4px 0;color:var(--mute);text-decoration:underline}
button.small,.foot button{white-space:nowrap}
button.small{width:auto;min-height:36px;padding:6px 14px;font-size:14px}
@media(hover:hover){button:hover:not(:disabled){background:var(--bg)}
button.primary:hover:not(:disabled){opacity:.88;background:var(--accent)}}
button:active:not(:disabled){transform:scale(.98)}
button:focus-visible,input:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
input:focus{border-color:var(--ink)}
input.code{font:16px ui-monospace,Menlo,monospace;letter-spacing:.08em;text-align:center}
.head{border-bottom:1px solid var(--line);padding-bottom:8px;margin:32px 0 0}
.head h2{margin:0}
.head+.note{margin:8px 0 12px}
.row:last-child{padding-bottom:0}
.addrow{display:flex;gap:8px;margin-top:12px}
.addrow input{flex:1;min-width:0}
.addrow.even>*{flex:1}
.addrow button{min-height:44px}
input,select{min-height:44px}
::placeholder{color:var(--mute);opacity:1}
.foot{display:flex;justify-content:space-between;align-items:center;margin-top:32px;padding-top:16px;border-top:1px solid var(--line)}
.foot button{width:auto}
button.danger{color:var(--bad);border-color:var(--bad)}
.inline{display:flex;gap:8px}
b.host{color:var(--ink);font-weight:600}
select{font:inherit;border-radius:10px;border:1px solid var(--line);color:var(--ink);width:100%;appearance:none;-webkit-appearance:none;padding:10px 36px 10px 14px;background:linear-gradient(45deg,transparent 50%,var(--mute) 50%) calc(100% - 20px) 50%/6px 6px no-repeat,linear-gradient(135deg,var(--mute) 50%,transparent 50%) calc(100% - 14px) 50%/6px 6px no-repeat,var(--card)}

input{width:100%;padding:12px 14px;border:1px solid var(--line);background:transparent;color:var(--ink)}
.stack>*+*{margin-top:12px}
.err{color:var(--bad);margin:12px 0 0;font-size:14px}
.err:empty{margin:0}
.row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0}
.row+.row{border-top:1px solid var(--line)}
.row>div{min-width:0;overflow-wrap:anywhere}
.row small{display:block;color:var(--mute)}
h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--mute);margin:0}
.codes{break-inside:avoid;-webkit-user-select:all;user-select:all;font:15px ui-monospace,Menlo,monospace;columns:2;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:14px 16px;margin:12px 0;list-style:none}
.codes li{padding:2px 0;break-inside:avoid}
.note{font-size:14px;color:var(--mute);margin:12px 0 8px}
@media(max-width:380px){main{padding:24px 20px}}
@media(max-width:340px){.addrow:not(.even){flex-direction:column}.addrow:not(.even) button{width:100%}}
@media print{body{background:#fff;color:#000;display:block}main{border:0;max-width:none}button,.note,h2,.row{display:none}.codes{border:1px solid #000;font-size:18px}}
