:root{
  --paper:#FAF6F0;
  --paper-2:#F3ECE1;
  --sand:#EAE0D0;
  --ink:#2B2620;
  --ink-2:#5C534A;
  --ink-3:#8A7F73;
  --line:#DCD1C0;
  --berry:#8c284d;
  --berry-dark:#6e1f3c;
  --berry-tint:#f5e8ed;
  --head:'Rubik', system-ui, sans-serif;
  --sans:'Assistant', system-ui, -apple-system, 'Segoe UI', sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--sans);font-size:18px;line-height:1.7;background:var(--paper);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh}
.wrap{max-width:560px;margin:0 auto;padding:28px 16px 64px}
h1,h2,h3{font-family:var(--head);line-height:1.25;font-weight:700}
h1{font-size:30px;margin-bottom:10px}
h2{font-size:22px;margin-bottom:8px}
p{margin-bottom:12px}
.muted{color:var(--ink-2)}
.small{font-size:15px;color:var(--ink-3)}
.brand{font-family:var(--head);font-weight:700;letter-spacing:2px;font-size:14px;color:var(--berry);margin-bottom:22px}
.card{background:#fffdf9;border:1px solid var(--line);border-radius:16px;padding:20px 18px;margin-bottom:14px}
label{display:block;font-weight:600;margin-bottom:6px}
input{width:100%;font:inherit;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--ink);margin-bottom:14px}
input:focus{outline:2px solid var(--berry);border-color:transparent}
input.code{font-size:28px;letter-spacing:10px;text-align:center;direction:ltr}
input[type=email]{direction:ltr;text-align:right}
.btn{display:inline-block;width:100%;font:inherit;font-weight:700;font-size:18px;border:0;border-radius:999px;padding:14px 22px;background:var(--berry);color:#fff;cursor:pointer;text-align:center;text-decoration:none}
.btn:hover{background:var(--berry-dark)}
.btn:disabled{opacity:.6;cursor:default}
.btn.ghost{background:transparent;color:var(--berry);border:1px solid var(--berry)}
.link{background:none;border:0;color:var(--berry);font:inherit;text-decoration:underline;cursor:pointer;padding:0}
.msg{border-radius:12px;padding:12px 14px;margin-bottom:14px;font-size:16px}
.msg.err{background:var(--berry-tint);color:var(--berry-dark)}
.msg.ok{background:var(--paper-2)}
.count{display:flex;gap:10px;justify-content:center;margin:14px 0 4px;direction:rtl}
.count div{background:var(--paper-2);border-radius:12px;padding:10px 6px;min-width:70px;text-align:center}
.count b{display:block;font-family:var(--head);font-size:30px;color:var(--berry)}
.count span{font-size:14px;color:var(--ink-2)}
.letter{display:flex;align-items:center;gap:14px}
.letter .mark{flex:none;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-family:var(--head);font-weight:800;font-size:20px;background:var(--berry);color:#fff}
.letter.locked .mark{background:var(--sand);color:var(--ink-3)}
.letter.locked{opacity:.85}
.letter h3{font-size:19px;margin-bottom:2px}
.letter p{margin:0;font-size:15px;color:var(--ink-2)}
nav.top{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:right;padding:8px 6px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-weight:700;color:var(--ink-2)}
select{font:inherit;padding:8px;border-radius:10px;border:1px solid var(--line);background:#fff;width:100%;margin-bottom:14px}
.scroll-x{overflow-x:auto}
