:root{font-family:system-ui,sans-serif;color:#203e35;background:#f3f6f1}*{box-sizing:border-box}body{margin:0}header{padding:18px max(20px,calc((100% - 540px)/2));display:flex;gap:12px;align-items:center;background:#174b3d;color:white}header small{display:block;opacity:.8}.mark{border:1px solid #a4bda8;border-radius:50%;padding:10px;font-family:serif}main{max-width:540px;margin:auto;padding:24px 18px}section{background:white;border:1px solid #dce5dc;border-radius:20px;padding:24px;margin-bottom:18px}h1{font-size:28px;margin:12px 0}h2{font-size:24px}.eyebrow{font-size:11px;letter-spacing:2px;color:#687e6f}.muted{color:#63776a;line-height:1.6}.small{font-size:12px}label{display:block;margin:16px 0;font-size:14px}input,select,textarea{display:block;width:100%;padding:14px;margin-top:7px;border:1px solid #c8d7cb;border-radius:10px;font:inherit;font-size:16px}button,.file{border:1px solid #bed0c2;background:#f6f9f5;color:#174b3d;border-radius:11px;padding:13px 16px;font:inherit;cursor:pointer;min-height:46px}.primary{background:#174b3d;color:white;width:100%;border:0}.secondary{width:100%;margin-top:12px}.row{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.row .primary{width:auto;flex:1}.file{margin:0;font-size:14px}.bar{display:flex;justify-content:space-between;gap:8px;font-size:13px}#mode{color:#96601d}.camera{position:relative;aspect-ratio:1;background:#172b25;border-radius:16px;overflow:hidden;color:#c7dacb}video{width:100%;height:100%;object-fit:cover}#cameraHint{position:absolute;bottom:18px;text-align:center;width:100%;font-size:13px}article{border:1px solid #bcd3c1;background:#f3f8f1;border-radius:15px;padding:18px;margin-top:18px}dt{font-size:12px;color:#63776a}dd{margin:0 0 12px;overflow-wrap:anywhere}#message,#setupNote{line-height:1.6;overflow-wrap:anywhere}#logout{margin-left:auto;background:transparent;color:white}.install{font-size:13px;line-height:1.7;background:transparent}footer{text-align:center;font-size:12px;color:#63776a;padding:8px 16px 28px}button:disabled{opacity:.5;cursor:wait}[hidden]{display:none!important}details{margin-top:16px}summary{cursor:pointer;padding:8px}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b79855;outline-offset:3px}@media(max-width:380px){section{padding:18px}.row{gap:6px}button{padding:12px}}

img.mark{width:64px;height:64px;object-fit:contain;background:white;border:0;border-radius:50%;padding:3px;flex-shrink:0}

.admin-link{color:white;font-size:13px;margin-left:auto;text-decoration:none;padding:10px;border:1px solid #739384;border-radius:9px}

/* V7.2: persistent scan result above camera, high-contrast status and large actions. */
#scanResult{scroll-margin-top:12px;outline:none}
#message{margin:14px 0;padding:18px;border:2px solid #2563a6;border-left-width:7px;border-radius:12px;background:#edf5ff;color:#123b64;font-size:19px;font-weight:750;line-height:1.45}
#message:empty{display:none}
#message[data-kind="success"]{background:#dcfce7;border-color:#15803d;color:#14532d}
#message[data-kind="warning"]{background:#fff1c2;border-color:#a65c00;color:#653700}
#message[data-kind="error"]{background:#fee2e2;border-color:#b91c1c;color:#7f1d1d}
#person{margin:0 0 20px;background:#fff;border:3px solid #2563a6}
#person[data-status="success"]{border-color:#15803d;background:#f0fdf4}
#person[data-status="already"]{border-color:#a65c00;background:#fffaf0}
#resultLabel{display:block;font-size:22px;font-weight:850;line-height:1.3}
#person[data-status="success"] #resultLabel{color:#14532d}
#person[data-status="already"] #resultLabel{color:#653700}
#person h2{margin:14px 0;font-size:25px;line-height:1.3}
#person dt{font-size:14px}#person dd{font-size:18px}
#confirm,#next{min-height:56px;font-size:19px;font-weight:750}
.camera{margin-top:20px}
@media(max-width:380px){#message{font-size:18px;padding:14px}#resultLabel{font-size:21px}}

.admin-entry-link{display:block;text-align:center;padding:16px;background:#174b3d;color:#fff;border-radius:12px;font-size:20px;font-weight:700;text-decoration:none}
