:root { --hamelit-accent:#0b5cad; --fg:#1b1f23; --muted:#586069; --accent:#0b5cad; --err:#b00020; --ok:#1e6b2e; --bg:#fff; }
* { box-sizing: border-box; }
body { margin:0; font: 1.05rem/1.5 system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; color:var(--fg); background:var(--bg); }
.skip { position:absolute; left:-999px; } .skip:focus { left:1rem; top:1rem; background:#ffd; padding:.5rem; z-index:9; }
.top { display:flex; justify-content:space-between; align-items:center; padding:.75rem 1rem; border-bottom:1px solid #ddd; }
.brand { margin:0; font-weight:600; } .env { background:#ffb000; color:#000; border-radius:4px; padding:0 .4rem; font-size:.8rem; }
main { max-width: 34rem; margin: 0 auto; padding: 1.5rem 1rem; }
label { display:block; font-weight:600; margin-top:1rem; }
.hint, .small { color:var(--muted); font-size:.95rem; margin:.25rem 0; }
input[type=text] { width:100%; font-size:1.3rem; letter-spacing:.08em; padding:.6rem; border:2px solid #767676; border-radius:6px; text-transform:uppercase; }
input[aria-invalid=true] { border-color:var(--err); }
input:focus, button:focus, a:focus { outline:3px solid #ffbf47; outline-offset:2px; }
button { margin-top:1rem; font-size:1.1rem; padding:.6rem 1.4rem; background:var(--accent); color:#fff; border:0; border-radius:6px; cursor:pointer; min-height:44px; }
.msg { border-left:5px solid; padding:.5rem 1rem; margin:1rem 0; background:#f6f8fa; }
.msg-error { border-color:var(--err); } .msg-ok { border-color:var(--ok); }
.code { font-family: ui-monospace, monospace; letter-spacing:.08em; }
a { color:var(--accent); }
.foot { max-width:34rem; margin:2rem auto; padding:0 1rem; color:var(--muted); font-size:.85rem; }
input[type=email], input[type=password] { width:100%; font-size:1.1rem; padding:.6rem; border:2px solid #767676; border-radius:6px; }
#code[inputmode=numeric] { letter-spacing:.2em; }
button.secondary { background:#fff; color:var(--accent); border:2px solid var(--accent); }
.qr svg { display:block; margin:1rem 0; max-width:100%; height:auto; }
.codes { columns:2; font-size:1.1rem; padding-left:1.2rem; }
.logout { margin-top:2rem; }
h2 { margin-top:1.5rem; font-size:1.2rem; }

/* signup step 2/2 (2026-10-24) */
.step-badge{display:inline-block;font-weight:600;font-size:.85em;padding:.15em .6em;border-radius:1em;background:#e8eefc;color:#1d3d8f;margin:1em 0 0}
.signup-step{border-top:2px solid #1d3d8f;margin-top:1.5em}
.msg-info{background:#f3f6fb;border-left:4px solid #1d3d8f;padding:.5em 1em}

/* devices skeleton (2026-10-24) */
.dev-list{list-style:none;padding:0}
.dev-card{border:1px solid #ddd;border-radius:8px;padding:.75rem 1rem;margin:.75rem 0}
.dev-status{display:inline-block;margin-left:.5rem;font-size:.85em;font-weight:600;padding:.1em .6em;border-radius:1em}
.dev-status.on{background:#e3f4e8;color:#14612d}.dev-status.off{background:#fbe7e7;color:#8a1c1c}
.dev-kv{display:grid;grid-template-columns:max-content 1fr;gap:.25rem 1rem;margin:.5rem 0}
.dev-kv dt{font-weight:600}.dev-kv dd{margin:0}
.sig{display:inline-flex;align-items:flex-end;gap:2px;height:16px;vertical-align:middle}
.sig-bar{display:inline-block;width:4px;background:#ccc;border-radius:1px}
.sig-1{height:25%}.sig-2{height:50%}.sig-3{height:75%}.sig-4{height:100%}.sig-bar.on{background:#14612d}
.dev-options{list-style:none;padding:0}.dev-options button{margin-top:.5rem}
button[disabled]{opacity:.55;cursor:not-allowed}
.soon{font-size:.85em;color:var(--muted);font-style:italic}

/* 040 trusted device checkbox (2026-10-25) */
label.trust-device { display:flex; align-items:center; gap:.5rem; font-weight:400; margin-top:.75rem; }
label.trust-device input { width:auto; margin:0; }
