:root{--bg:#f4f6f8;--card:#fff;--ink:#14213d;--mut:#5b6678;--line:#d9dfe7;--pri:#0b5d4b;--pri-ink:#fff;
--ok:#0b7a43;--warn:#9a6700;--bad:#b42318;--warnbg:#fff4d6;--badbg:#fde8e6;--okbg:#e3f5ea}
@media (prefers-color-scheme:dark){:root{--bg:#0f1720;--card:#18222e;--ink:#e8edf3;--mut:#9aa7b8;--line:#2b394a;--pri:#2fae8f;--pri-ink:#04221b;
--ok:#5fd18c;--warn:#f0c24b;--bad:#ff8a80;--warnbg:#3a2f10;--badbg:#3d1b18;--okbg:#12301f}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Naskh Arabic","Segoe UI",Tahoma,sans-serif;line-height:1.7}
.banner{background:var(--warnbg);color:var(--warn);text-align:center;padding:.5rem 1rem;font-weight:600;border-bottom:1px solid var(--line)}
main{max-width:980px;margin:0 auto;padding:1rem}
h1{margin:.5rem 0 0;font-size:1.7rem}h2{font-size:1.1rem;margin:.2rem 0 .6rem}
.sub{color:var(--mut);margin:.2rem 0 1rem}
.uploads{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:700px){.uploads{grid-template-columns:1fr}}
.drop,#results{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem}
.preview{height:190px;border:2px dashed var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;color:var(--mut);overflow:hidden;margin-bottom:.7rem}
.preview img{max-width:100%;max-height:100%}
.btn{display:inline-block;border:1px solid var(--line);border-radius:8px;padding:.5rem 1rem;cursor:pointer;font:inherit;background:var(--card);color:var(--ink);margin-inline-end:.4rem}
.btn.primary{background:var(--pri);color:var(--pri-ink);border-color:var(--pri);font-weight:700}
.btn:focus-visible,select:focus-visible,input:focus-visible{outline:3px solid var(--pri);outline-offset:2px}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.actions{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:1rem 0}
select{font:inherit;padding:.4rem;border-radius:6px;border:1px solid var(--line);background:var(--card);color:var(--ink)}
.busy,.msg{color:var(--mut)}
.alert{border-radius:8px;padding:.7rem 1rem;margin:.6rem 0}
.alert.error{background:var(--badbg);color:var(--bad);font-weight:600}
.alert.warn{background:var(--warnbg);color:var(--warn);list-style:inside}
.err{color:var(--bad);min-height:1.2em;margin:.4rem 0 0}
.fields{display:grid;gap:.7rem}
.field{display:grid;grid-template-columns:150px 1fr auto;gap:.7rem;align-items:center;padding:.6rem;border:1px solid var(--line);border-radius:8px}
@media(max-width:700px){.field{grid-template-columns:1fr}}
.field label{font-weight:700}
.field input{font:inherit;padding:.45rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink);width:100%}
.field input.ltr{direction:ltr;text-align:right}
.field.nf{border-color:var(--bad);background:var(--badbg)}
.field.rv{border-color:var(--warn)}
.field.invalid input{border-color:var(--bad)}
.badge{display:inline-block;border-radius:999px;padding:.1rem .7rem;font-size:.85rem;font-weight:700;white-space:nowrap}
.badge.ok{background:var(--okbg);color:var(--ok)}.badge.rv{background:var(--warnbg);color:var(--warn)}.badge.nf{background:var(--badbg);color:var(--bad)}
.detail{grid-column:1/-1;font-size:.9rem;color:var(--mut)}
.note{color:var(--mut);font-size:.9rem}
.status{border-radius:8px;padding:.6rem 1rem;font-weight:700;margin:.4rem 0}
.status.pending{background:var(--warnbg);color:var(--warn)}.status.done{background:var(--okbg);color:var(--ok)}
.thumbs{display:flex;gap:1rem;flex-wrap:wrap;margin:.6rem 0}.thumbs figure{margin:0;flex:1 1 220px}
.thumbs img{width:100%;max-height:170px;object-fit:contain;border:1px solid var(--line);border-radius:8px;background:var(--bg)}
.thumbs figcaption{color:var(--mut);font-size:.85rem;text-align:center}
.conf{display:inline-block;width:90px;height:8px;border-radius:4px;background:var(--line);vertical-align:middle;margin-inline-start:.4rem;overflow:hidden}
.conf>i{display:block;height:100%;background:var(--ok)}.conf.mid>i{background:var(--warn)}.conf.low>i{background:var(--bad)}
.ack{grid-column:1/-1;font-size:.9rem}.confirm{display:flex;gap:1rem;align-items:center;flex-wrap:wrap;margin:1rem 0;padding-top:.8rem;border-top:1px solid var(--line)}
.btn.secondary{background:var(--card)}
.tips{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem 1rem;margin:0 0 1rem}
.tips summary{font-weight:700;cursor:pointer}.tips li{margin:.2rem 0}
.btn.cam{font-size:1.05rem;padding:.8rem 1.2rem}
.busy{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.busy progress{width:180px;height:10px}
.eng{grid-column:1/-1;font-size:.9rem;color:var(--mut)}.eng b{color:var(--ink)}.field.edited .eng b{color:var(--warn)}
@media(max-width:700px){.btn{min-height:44px}.field input{font-size:1.1rem;min-height:44px}main{padding:.7rem}}
.samples,.realcard{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:.6rem 1rem;margin:0 0 1rem}
.samples h2,.realcard h2{font-size:1rem;margin:.2rem 0}.realcard li,.samples li{margin:.2rem 0}
.realcard button[disabled]{opacity:.6;cursor:not-allowed}
.consent{background:var(--card);border:2px solid var(--warn);border-radius:12px;padding:.8rem 1rem;margin:0 0 1rem}.consent .facts li{margin:.35rem 0}.consent .ack{display:block;margin:.5rem 0}

/* ---- document scanner ---- */
[hidden]{display:none!important}   /* author display rules (flex/block) must never override the hidden attribute */
.btn.big{font-size:1.25rem;padding:1rem 1.5rem;width:100%}
.steps{list-style:none;padding:0;margin:1rem 0}
.steps li{display:flex;align-items:center;gap:.6rem;padding:.55rem 0;border-bottom:1px solid var(--line)}
.steps .dot{width:.95rem;height:.95rem;border-radius:50%;border:2px solid var(--line);flex:none}
.steps li.done .dot{background:#2ecc71;border-color:#2ecc71}
.steps img{height:2.2rem;border-radius:4px;margin-inline-start:auto}
.link{background:none;border:0;color:inherit;text-decoration:underline;cursor:pointer;font:inherit;padding:.2rem .4rem}
.link.light{color:#fff}
.advanced{margin:1rem 0}.advanced label{display:block;margin:.4rem 0}.advanced pre{white-space:pre-wrap;font-size:.8rem}
body.scanning{overflow:hidden}
.scanner{position:fixed;inset:0;background:#000;color:#fff;z-index:50;display:flex;flex-direction:column}
.scan-head{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem}
.viewport{position:relative;flex:1;min-height:0;background:#000}
.viewport video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.viewport canvas{position:absolute;inset:0;width:100%;height:100%}
.accepted{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:700;background:rgba(46,204,113,.35)}
.guide{margin:0;padding:.7rem 1rem;text-align:center;font-weight:700;font-size:1.1rem;min-height:2.6rem}
.hold{height:6px;background:#333;margin:0 1rem}.hold div{height:100%;width:0;background:#2ecc71;transition:width .2s}
.scan-actions{display:flex;align-items:center;justify-content:space-between;padding:.8rem 1rem calc(.8rem + env(safe-area-inset-bottom))}
.scan-actions .spacer{width:6rem}
.shutter{width:4.4rem;height:4.4rem;border-radius:50%;border:4px solid #fff;background:#fff;box-shadow:0 0 0 4px #000 inset;cursor:pointer}
.btn.light{background:#222;color:#fff;border:1px solid #555}
