@import url('/css/brand-fonts.css');
:root{color-scheme:dark;--bg:#090d18;--panel:#111a2a;--edge:#29384a;--ink:#f5f7fb;--muted:#a7b6c7;--cyan:#00dff7;--pink:#ee287c;--radius:16px}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 90% 0,#162d40 0,transparent 40%),var(--bg);color:var(--ink);font:16px/1.6 var(--font-body)}a{color:var(--cyan);overflow-wrap:anywhere;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select,textarea,summary{touch-action:manipulation}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--cyan);outline-offset:4px}[hidden]{display:none!important}.top{max-width:1240px;margin:auto;padding:23px 32px;display:flex;align-items:center;gap:24px;border-bottom:1px solid var(--edge);font-size:.85rem}.top img{display:block;object-fit:contain;width:125px;height:54px}.top span{color:var(--muted);margin-right:auto}.top>a:last-child{white-space:nowrap}.wrap{width:min(940px,100% - 48px);margin:56px auto 80px}.compact{max-width:620px}h1{font-size:clamp(2.2rem,5vw,3.7rem);line-height:1.06;letter-spacing:-.04em;margin:12px 0 24px}h2{line-height:1.2}h3{margin:8px 0 12px}p{overflow-wrap:anywhere}.intro{font-size:1.12rem;color:var(--muted);max-width:700px}.eyebrow{color:var(--cyan);font-size:.72rem;letter-spacing:.15em;font-weight:800}.panel{min-width:0;margin:30px 0;padding:26px;background:var(--panel);border:1px solid var(--edge);border-radius:var(--radius)}legend{color:var(--cyan);padding:0 10px;font-weight:750}.grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.field{display:flex;flex-direction:column;gap:8px;min-width:0;margin:0 0 17px}.field>span{font-weight:600;font-size:.92rem}input:not([type=checkbox]),select,textarea{width:100%;min-width:0;border:1px solid #46566b;border-radius:9px;background:#090f1c;color:var(--ink);padding:12px 14px;min-height:48px}textarea{resize:vertical}input[type=file]{font-size:.84rem;padding:9px}input::file-selector-button{border:0;padding:8px;border-radius:5px;background:#dffbff;color:#092533;margin-right:12px}input[aria-invalid=true]{border-color:#ff7191}small,.muted{color:var(--muted);font-size:.86rem}.check{display:flex;gap:13px;align-items:flex-start;margin:22px 0;font-size:.94rem}.check input{accent-color:var(--cyan);width:21px;height:21px;flex:none;margin-top:3px}.guardian{padding:22px 0 0;border-top:1px solid var(--edge);margin-top:15px}.primary,.secondary,.danger{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:46px;padding:11px 20px;border:1px solid var(--edge);border-radius:9px;font-weight:700;text-decoration:none}.primary{background:var(--cyan);color:#062335;border-color:var(--cyan)}.secondary{background:#1b2a40;color:#e7f8ff}.danger{background:#4c1829;color:#ffc7d4;border-color:#963954}.wide{width:100%}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.notice{padding:16px 18px;border:1px solid #3f617b;background:#14283a;border-radius:10px;margin:18px 0;font-size:.92rem;overflow-wrap:anywhere}.notice.error{border-color:#a84b67;background:#361c29;color:#ffd1de}.notice.success{border-color:#3f967d;background:#103329;color:#c1ffe3}.photo-box{background:#0b1321;border:1px solid var(--edge);padding:22px;border-radius:12px}.photo-preview,.camera{display:block;max-width:100%;width:300px;max-height:320px;object-fit:contain;border-radius:12px;margin:16px auto}.camera{transform:scaleX(-1)}.qr-box{padding:22px;border:1px solid var(--edge);border-radius:12px;max-width:100%;margin-top:20px}.qr-code{width:232px;max-width:100%;padding:16px;background:white;border-radius:10px}.qr-code img,.qr-code canvas{max-width:100%;height:auto}.upload-row{padding:14px 0;display:flex;align-items:center;flex-wrap:wrap;gap:10px 20px;border-bottom:1px solid var(--edge)}.upload-row>a,.upload-row>span{flex:1 1 160px}.upload-row button{padding:7px 12px;font-size:.83rem}.upload-list{margin-bottom:24px}.attachment{padding-top:18px}.prewrap{white-space:pre-wrap}details{padding:18px;border:1px solid var(--edge);border-radius:10px}summary{cursor:pointer;font-weight:700}.review-dialog{background:var(--panel);color:var(--ink);border:1px solid var(--edge);border-radius:18px;width:min(560px,100% - 32px);padding:28px;max-height:90dvh;overflow:auto}.review-dialog::backdrop{background:#030814da;backdrop-filter:blur(5px)}.protocol{font-size:clamp(1.35rem,5vw,2rem);color:var(--cyan);font-weight:800;letter-spacing:.06em}.footer{color:var(--muted);max-width:1000px;margin:0 auto;padding:26px;text-align:center;font-size:.8rem;border-top:1px solid var(--edge)}.honeypot{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.modality-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:36px 0}.modality-card{display:block;padding:28px;border:1px solid var(--edge);background:linear-gradient(130deg,#142d40,#111526);border-radius:16px;color:var(--ink);text-decoration:none}.modality-card:hover{border-color:var(--cyan)}.modality-card>span:last-child{color:var(--cyan);font-size:.86rem}.skip{position:fixed;top:-100px;z-index:99;background:#fff;color:#000;padding:15px}.skip:focus{top:10px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.stat{padding:20px;background:var(--panel);border:1px solid var(--edge);border-radius:12px}.stat strong{display:block;font-size:2rem;color:var(--cyan)}.table-wrap{overflow:auto;border:1px solid var(--edge);border-radius:12px}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:.88rem}td,th{padding:14px 16px;text-align:left;border-bottom:1px solid var(--edge)}th{background:#19283b;color:#bbd4e8}.admin-wrap{width:min(1240px,100% - 48px)}.badge{display:inline-block;padding:3px 9px;background:#263a51;border-radius:6px;font-size:.75rem}.filter-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.admin-detail{background:#0c1525;padding:24px;border:1px solid var(--edge);border-radius:16px;margin-top:24px}.keyvalues{display:grid;grid-template-columns:minmax(120px,1fr) 2fr;gap:6px 20px}.keyvalues dt{color:var(--muted)}.keyvalues dd{margin:0;overflow-wrap:anywhere;white-space:pre-wrap}.private-image{display:block;max-width:100%;max-height:360px;object-fit:contain;margin:15px 0}.privacy-warning{border-left:3px solid var(--pink);padding-left:15px}.login{max-width:480px;margin:auto}.empty{text-align:center;padding:40px;color:var(--muted)}@media(max-width:640px){.top{padding:15px 20px;gap:15px}.top span{display:none}.top>a:last-child{margin-left:auto;font-size:.8rem}.wrap,.admin-wrap{width:calc(100% - 32px);margin-top:34px}.grid,.modality-grid,.filter-row{grid-template-columns:1fr}.panel{padding:18px 16px}.photo-box{padding:16px}.actions>*{flex:1 1 auto}.stats{grid-template-columns:1fr 1fr}.stat{padding:13px}.keyvalues{grid-template-columns:1fr;gap:0}.keyvalues dd{margin-bottom:15px}.admin-detail{padding:16px}h1{font-size:2.4rem}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}

/* Typography shared with the landing; sizes/layout are intentionally preserved. */
h1,h2,h3{font-family:var(--font-display);font-weight:800}
button,.primary,.secondary,.danger,legend,.eyebrow,.badge,.status,.verification-state,th,.tabs{font-family:var(--font-ui)}
input::file-selector-button{font-family:var(--font-ui)}
.protocol,.stat strong,.number,.date,.time{font-family:var(--font-numeric);font-variant-numeric:tabular-nums}
.correction-panel{margin:1.5rem 0;padding:1rem;border:1px solid #635183;border-radius:8px}
.correction-panel form{margin:1rem 0}.prewrap{white-space:pre-wrap}
.status.correction,.verification-state.correction{color:#d6adff}
.status.pending,.verification-state.pending{color:#e3c374}
.status.verified,.verification-state.verified{color:#00dff7}
.attachment-state .upload-row{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;overflow-wrap:anywhere}.attachment-state button{min-height:44px}.photo-confirmation{border:1px solid #394b60;border-radius:12px;padding:16px;margin:18px 0}.photo-confirmation legend{font-weight:700}.photo-confirmation input[type=radio]{width:24px;height:24px;flex:0 0 24px}.proposal-values dt{color:#00d8ed;font-weight:700;margin-top:1rem}.proposal-values dd{margin:.3rem 0 1rem;overflow-wrap:anywhere}.review-dialog{max-height:90dvh;overflow-y:auto}.attachment-state .upload-row>span{min-width:0;overflow-wrap:anywhere}
/* APP15: progress is measured during transfer; validation remains indeterminate. */
.upload-progress{margin:1rem 0;padding:1rem;border:1px solid #365261;border-radius:.6rem;background:#112735}
.upload-progress[hidden]{display:none}
.upload-progress progress{display:block;width:100%;height:1rem;accent-color:#00cbe4}
.upload-progress-item p{overflow-wrap:anywhere}
.upload-progress-item + .upload-progress-item{margin-top:1rem}
button:disabled{cursor:wait;opacity:.6}
