:root{--navy:#143D6F;--teal:#01BABD;--bg:#f4f6f8;--card:#fff;--line:#dde3ea;--ok:#1a8a4a;--warn:#c47a00;--bad:#c0392b;--muted:#5a6b7b}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:#1c2b3a;font:16px/1.4 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;padding-bottom:env(safe-area-inset-bottom)}
header#top{background:var(--navy);color:#fff;padding:12px 14px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:5}
.brand b{color:var(--teal)}
#who{font-size:12px;opacity:.85;max-width:55%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
main{max-width:640px;margin:0 auto;padding:10px 10px 16px}
.pad{padding:16px}.muted{color:var(--muted)}.small{font-size:13px}
h1{font-size:20px;margin:8px 0}h2{font-size:17px;margin:12px 0 6px}
.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0}
a{color:var(--navy)}
label{display:block;font-size:14px;color:var(--muted);margin:10px 0 4px}
input[type=text],input[type=email],input[type=tel],input[type=number],input:not([type]){width:100%;font-size:16px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}
input:disabled{background:#eef1f4;color:#555}
button,.btn{font:inherit;min-height:48px;padding:10px 16px;border-radius:10px;border:1px solid var(--navy);background:#fff;color:var(--navy);cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}
button.primary,.btn.primary{background:var(--navy);color:#fff}
button.danger{border-color:var(--bad);color:var(--bad)}
button:disabled{opacity:.45}
.block{display:flex;width:100%}
.row{display:flex;gap:8px;flex-wrap:wrap}.row>*{flex:1}
.seg{display:flex;gap:6px;flex-wrap:wrap}
.seg button{flex:1;min-width:30%;padding:8px}
.seg button.on{background:var(--navy);color:#fff}
.chip{display:inline-block;padding:2px 10px;border-radius:99px;font-size:13px;background:#e6ebf0;color:#334}
.chip.in_progress{background:#fff2d6;color:#8a5a00}.chip.submitted{background:#dbeafe;color:#1d4e9a}
.chip.sent_back{background:#fde2de;color:var(--bad)}.chip.complete{background:#d9f3e2;color:var(--ok)}
.bar{height:10px;background:#e3e8ee;border-radius:99px;overflow:hidden}.bar>i{display:block;height:100%;background:var(--teal)}
.bcard{display:block;text-decoration:none;color:inherit}
.bcard .top{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.bcard .code{font-size:22px;font-weight:700;color:var(--navy)}
details{background:var(--card);border:1px solid var(--line);border-radius:12px;margin:10px 0}
details details{background:#fafcfd;margin:10px 0 0}
summary{padding:14px 12px;font-weight:600;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:8px;min-height:48px;align-items:center}
summary::-webkit-details-marker{display:none}
details>.in{padding:0 12px 12px}
.tick{color:var(--ok)}.todo{color:var(--warn)}
.slots{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.slot{border:1px solid var(--line);border-radius:10px;padding:8px;background:#fff}
.slot .nm{font-weight:600;font-size:14px}
.slot .hint{font-size:12px;color:var(--muted);min-height:30px}
.thumb{width:100%;aspect-ratio:4/3;padding:0;border:1px dashed var(--navy);background:#eef3f8;overflow:hidden;border-radius:8px;font-size:14px}
.thumb img{width:100%;height:100%;object-fit:cover;display:block}
.slot .st{font-size:12px;margin-top:4px}.st.bad{color:var(--bad)}.st.warn{color:var(--warn)}
.slot .lnk{font-size:13px;background:none;border:0;min-height:36px;padding:4px;text-decoration:underline}
.note{background:#fde2de;border:1px solid #f3b4ab;color:#7a1f14;border-radius:8px;padding:8px;margin:8px 0;font-size:14px}
.notein{margin-top:8px}.notein input{font-size:14px;padding:8px}
.missing{font-size:14px;margin:4px 0;padding:0;list-style:none}.missing li{padding:6px 0;border-bottom:1px solid var(--line)}.missing a{text-decoration:none}
.sticky{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:min(640px,100%);box-sizing:border-box;z-index:4;background:linear-gradient(transparent,var(--bg) 30%);padding:14px 10px calc(10px + env(safe-area-inset-bottom))}
#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:14px;background:#223;color:#fff;padding:8px 14px;border-radius:99px;font-size:13px;opacity:0;transition:.2s;pointer-events:none;z-index:30}
#toast.show{opacity:.92}
#overlay{position:fixed;inset:0;background:#000;z-index:20;display:flex;flex-direction:column;color:#fff}
#overlay[hidden]{display:none}
.cam-top{padding:10px 14px;font-size:14px;background:rgba(0,0,0,.6)}
.cam-top .hint{opacity:.8;font-size:12px}
.cam-main{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;overflow:hidden}
.cam-main video,.cam-main img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.cam-bar{padding:12px 14px calc(12px + env(safe-area-inset-bottom));background:rgba(0,0,0,.7);display:flex;flex-direction:column;gap:10px}
.cam-bar .row button{flex:1}
.shutter{width:72px;height:72px;border-radius:50%;border:5px solid #fff;background:var(--teal);align-self:center;padding:0}
.cam-bar input[type=range]{width:100%}
.cam-err{padding:20px;font-size:15px;line-height:1.5;color:#fff;overflow:auto}
.cam-err li{margin:6px 0}
#overlay.light{background:#000}
.lb img{width:100%;height:100%;object-fit:contain}

/* addendum 1: friendly, big-target UI */
button.big,.btn.big{min-height:56px;font-size:18px;font-weight:600}
.seg button{min-height:52px}
.help{font-size:13px;color:var(--muted);margin:4px 0 0}
#help{max-width:640px;margin:0 auto;padding:0 10px 24px}
#help details{background:transparent;border:0}
#help summary{justify-content:flex-start;font-weight:500;color:var(--navy);text-decoration:underline;padding:8px 4px}
#help p{margin:0 4px 8px;font-size:14px}
.step h1{margin-top:0}
.exwrap{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin:10px 0 6px}
.exwrap{position:relative}.exwrap.photo::after{content:"Example";position:absolute;top:8px;left:8px;background:#1f3a5f;color:#fff;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px}
.ex{display:block;width:100%;height:auto}
.good{margin:6px 0}
.badrow{display:flex;gap:10px;align-items:center;margin:8px 0}.badrow img{width:34%;border-radius:8px;border:1px solid var(--line);flex:none}.badrow p{margin:0}
.safe{background:#e6f5ec;border:1px solid #b6e0c5;color:#14532d;border-radius:10px;padding:10px;margin:10px 0}
.slot.big{border:0;padding:0;margin-top:10px}
.slot.big .thumb{aspect-ratio:16/9;font-size:16px}
ul.tidy{padding-left:20px;margin:6px 0}ul.tidy li{margin:4px 0}
ol.steps4{list-style:none;padding:0;margin:8px 0}
ol.steps4.card{padding:6px 12px}
ol.steps4 li{display:flex;gap:12px;align-items:center;padding:8px 0}
.stp{display:flex;gap:12px;align-items:center;text-decoration:none;color:inherit;width:100%;min-height:48px}
.n{flex:none;width:34px;height:34px;border-radius:50%;background:var(--navy);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700}
.n.ok{background:var(--ok)}
.ritem{display:flex;justify-content:space-between;align-items:center;gap:8px;min-height:52px;padding:8px 12px;margin:6px 0;background:#fff;border:1px solid var(--line);border-radius:10px;text-decoration:none;color:inherit}
.ritem .rl{font-weight:600}.badges{display:flex;gap:4px;flex-wrap:wrap;justify-content:flex-end}
.badge{font-size:12px;border-radius:99px;padding:2px 8px;white-space:nowrap}
.badge.ok{background:#d9f3e2;color:var(--ok)}.badge.warn{background:#ffe9c7;color:#9a5a00}.badge.bad{background:#fde2de;color:var(--bad)}
.exrow{display:flex;gap:10px;align-items:center}.exrow img{width:90px;border-radius:6px;flex:none}.exrow div{flex:1}
.welcome h2{margin-top:16px}
#queue{background:#fff2d6;border-bottom:1px solid #e8c36a;color:#6a4a00;padding:8px 14px;font-size:14px;position:sticky;top:48px;z-index:4}
#queue[hidden]{display:none}
.err{outline:2px solid var(--bad);outline-offset:1px}

.testtag{display:inline-block;margin-left:4px;padding:1px 8px;border-radius:6px;font-size:12px;font-weight:700;background:#6b3fa0;color:#fff;vertical-align:middle}
.bname{font-size:15px;font-weight:600;color:var(--muted)}
.bcard.test{background:#f3ecfb;border-color:#b79ad8}
.stepper{display:flex;align-items:center;justify-content:center;gap:18px;margin:8px 0}
.stepper button{width:72px;min-height:72px;font-size:36px;padding:0}
.stepper output{min-width:90px;text-align:center;font-size:48px;font-weight:700;color:var(--navy)}
.warnbox{background:#fff2d6;border-color:#e8c36a;color:#6a4a00}
a.btn[aria-disabled=true]{opacity:.45}
.sticky .need{margin:0 0 6px;text-align:center}
.ritem.nocams{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 12px}
.ritem.nocams button{min-height:40px;padding:4px 12px}
