:root{--bg: #f4f5f7;--card: #fff;--text: #1c1e21;--muted: #6b7280;--accent: #4f46e5;--danger: #dc2626;--border: #e5e7eb}@media (prefers-color-scheme: dark){:root{--bg: #111318;--card: #1b1e26;--text: #e8eaed;--muted: #9aa0ab;--border: #2b2f3a}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:system-ui,sans-serif}.topbar{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;background:var(--card);border-bottom:1px solid var(--border)}.topbar nav{display:flex;gap:16px;align-items:center}.topbar a{color:var(--accent);text-decoration:none}main{max-width:760px;margin:24px auto;padding:0 16px;display:grid;gap:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:20px;display:grid;gap:14px}.card h1,.card h2{margin:0}.narrow{max-width:360px;margin:80px auto}.center{text-align:center;margin-top:80px}label{display:grid;gap:6px;font-size:14px;color:var(--muted)}input,select{padding:10px 12px;border:1px solid var(--border);border-radius:8px;background:var(--bg);color:var(--text);font-size:15px}button{padding:10px 16px;border:0;border-radius:8px;background:var(--accent);color:#fff;font-size:15px;cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;color:var(--accent);padding:4px 8px}button.link.danger{color:var(--danger)}.platforms{display:flex;gap:10px;flex-wrap:wrap}.platform{background:var(--bg);color:var(--text);border:2px solid var(--border)}.platform.active{border-color:var(--accent)}.result{text-align:center;display:grid;gap:8px;justify-items:center}.code{font-size:48px;font-weight:700;letter-spacing:8px;font-variant-numeric:tabular-nums}.row{display:flex;gap:10px;flex-wrap:wrap}.row input{flex:1 1 140px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:8px;border-bottom:1px solid var(--border)}.actions{white-space:nowrap}.error{color:var(--danger);margin:0}.muted{color:var(--muted);margin:0}.stack{display:grid;gap:14px}.stack button{margin-top:6px}.password-field{position:relative;display:block}.password-field input{width:100%;padding-right:44px}.eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);padding:6px;background:none;color:var(--muted);display:flex}.eye:hover{color:var(--text)}
