:root{--bg:#090b12;--card:#111521;--line:#27304a;--text:#f6f7fb;--muted:#9ba5bf;--teal:#18c8bd;--purple:#9239b8;--danger:#ff9e9e}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top,#15192a 0,#090b12 45%);color:var(--text);font-family:Inter,Segoe UI,Arial,sans-serif}.shell{width:min(760px,94vw);margin:auto;padding:24px 0 50px}.brand{display:flex;align-items:center;gap:14px;margin-bottom:20px}.mark{width:62px;height:62px;border:3px solid var(--teal);border-radius:50%;display:grid;place-items:center;color:var(--teal);font-size:32px;font-weight:800}.word{font-size:46px;line-height:.85;font-style:italic;font-weight:800;color:var(--purple)}.pay{margin-top:7px;letter-spacing:.28em;color:var(--teal);font-size:12px}.card{background:rgba(17,21,33,.94);border:1px solid var(--line);border-radius:20px;padding:18px;margin-bottom:16px;box-shadow:0 20px 60px rgba(0,0,0,.28)}.camera{position:relative;aspect-ratio:4/3;background:#020307;border-radius:15px;overflow:hidden;border:1px solid var(--line)}video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}.guide{position:absolute;inset:15% 26%;border:2px dashed rgba(255,255,255,.5);border-radius:28px;display:grid;place-items:center;pointer-events:none}.guide span{font-size:76px;opacity:.14}.actions{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}button{border:0;border-radius:12px;padding:12px 16px;background:linear-gradient(135deg,var(--teal),#0caea6);color:#071112;font-weight:800;cursor:pointer}button.ghost{background:#20263a;color:white;border:1px solid #34405f}.mini{padding:7px 10px;font-size:12px}button:disabled{opacity:.45;cursor:not-allowed}h2,h3{margin:5px 0 8px}p{color:var(--muted);margin-top:0}label{display:block;color:#bac2d5;font-size:13px;margin:10px 0 5px}input{width:100%;background:#0b0f19;border:1px solid #303a57;border-radius:10px;padding:12px;color:white;font-size:16px}.result{margin-top:14px;padding:15px;border-radius:13px;background:#0b0f19;border:1px solid #2e3854;min-height:66px}.ok{font-size:23px;font-weight:900}.meta{color:var(--muted);margin-top:5px}.err{color:var(--danger)}.hidden{display:none}canvas{display:none}.row{display:flex;align-items:center;justify-content:space-between;gap:10px}.history{display:grid;gap:8px}.history-item{display:flex;justify-content:space-between;gap:12px;padding:10px;border-bottom:1px solid #252d42;color:#c8cee0}.history-item span:last-child{color:var(--muted)}footer{text-align:center;color:#78829c;font-size:12px;padding-top:8px}
