:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#102a43;background:#f7f4ed;font-synthesis:none;--navy:#0b1f33;--ink:#102a43;--paper:#f7f4ed;--white:#fff;--rule:#c9d1d9;--amber:#f4b942;--teal:#16827a;--red:#b93832;--blue:#2b6cb0}*{box-sizing:border-box}body{margin:0;min-width:320px;background:var(--paper)}button,input,select,textarea{font:inherit}button,a{transition:background-color .16s ease,color .16s ease,border-color .16s ease}button{cursor:pointer}svg{width:1.15em;height:1.15em;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topbar{height:76px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(24px,4vw,68px);border-bottom:5px solid var(--amber)}.brand{display:flex;gap:11px;align-items:center;color:inherit;text-decoration:none;font-weight:750;line-height:1}.brand small{font-weight:450;color:#b9c8d6;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:var(--amber);color:var(--navy);font-weight:900;border-radius:6px}.secure{font-size:13px;color:#c9d5df;display:flex;align-items:center;gap:8px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(38px,5vw,68px);line-height:.98;letter-spacing:-.035em}h2{letter-spacing:-.02em}.primary,.secondary,.danger,.button{min-height:44px;border-radius:8px;padding:0 18px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;font-weight:750;text-decoration:none}.primary{background:var(--amber);color:var(--navy)}.primary:hover{background:#ffd06a}.primary:disabled{opacity:.45;cursor:not-allowed}.secondary{background:transparent;border-color:#8da0b0;color:var(--ink)}.secondary:hover{background:#e8ecee}.danger{color:#fff;background:var(--red)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #2b6cb0;outline-offset:2px}.landing{min-height:calc(100vh - 76px);padding:10vh 8vw;display:grid;grid-template-columns:1.3fr .7fr;gap:8vw;align-items:center;background:linear-gradient(100deg,#f7f4ed 0 67%,#e4e9e7 67%)}.landing em{font-family:Georgia,serif;font-weight:400;color:var(--teal)}.landing p{max-width:52ch;font-size:19px;line-height:1.6}.arrival{border-top:8px solid var(--amber);background:var(--navy);color:#fff;padding:34px;display:grid;gap:20px;min-height:230px;align-content:center}.arrival span,.route-label{color:#6f8292;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}.arrival strong{font-size:24px;line-height:1.25}.arrival small{color:#b9c8d6}.admin-shell,.candidate-shell{padding:clamp(30px,5vw,72px);max-width:1500px;margin:auto}.auth{min-height:calc(100vh - 180px);display:grid;grid-template-columns:1fr 430px;gap:10vw;align-items:center}.auth-copy p{font-size:18px;max-width:48ch}.form-panel{background:#fff;padding:36px;border-top:6px solid var(--amber);box-shadow:0 15px 40px #102a4324}label{display:grid;gap:7px;font-size:13px;font-weight:700;margin:16px 0}input,select,textarea{width:100%;border:1px solid #9aabb9;border-radius:6px;background:#fff;color:var(--ink);padding:11px 12px}textarea{resize:vertical}.form-panel .primary{width:100%;margin-top:10px}.notice{padding:12px 14px;border-radius:6px;margin:12px 0;background:#fbe9e7;color:#852c27;border:1px solid #e9b6b2}.notice.success{background:#e5f3f0;color:#0f5e58;border-color:#a5d2cc}.admin-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:34px}.admin-head h1{font-size:48px;margin-bottom:8px}.admin-head p,.detail-title p{color:#536b7d;margin:0}.admin-actions{display:flex;gap:10px}.create-strip,.link-result{background:#e8ecee;border-top:4px solid var(--amber);padding:22px 24px;margin-bottom:28px;display:grid;grid-template-columns:1.25fr repeat(3,1fr) auto;gap:18px;align-items:end}.create-strip h2,.create-strip p{margin-bottom:4px}.create-strip label{margin:0}.link-result{grid-template-columns:1fr 2fr auto}.link-result span{display:block;color:#536b7d;font-size:13px}.candidate-ledger{background:#fff;border-top:1px solid #98a9b6}.ledger-head,.candidate-row{display:grid;grid-template-columns:2fr .8fr .5fr .6fr .8fr;align-items:center;text-align:left;padding:14px 20px;gap:18px}.ledger-head{background:var(--navy);color:#cbd6df;text-transform:uppercase;letter-spacing:.1em;font-size:11px}.candidate-row{width:100%;border:0;border-bottom:1px solid #d4dadd;background:#fff;color:var(--ink)}.candidate-row:hover{background:#f1f3f2}.candidate-row strong,.candidate-row small{display:block}.candidate-row small{color:#6c7e8b;margin-top:4px}.status{font-size:11px;text-transform:uppercase;letter-spacing:.08em;background:#dfe6ea;padding:6px 9px;border-radius:99px;white-space:nowrap}.status.submitted{background:#cde8e4;color:#0b5d56}.status.in_progress{background:#fff0c7;color:#745407}.empty{padding:50px;display:grid;place-items:center;gap:8px;color:#647887}.detail{max-width:1280px}.detail-nav{display:flex;justify-content:space-between}.text-button{border:0;background:transparent;color:var(--blue);padding:6px}.detail-title{display:flex;gap:40px;align-items:end;margin:35px 0}.detail-title h1{font-size:48px;margin-bottom:8px}.detail-title>div:first-child{margin-right:auto}.score-block{display:grid;text-align:right}.score-block strong{font-size:38px}.score-block span{color:#6b7f8e;font-size:12px;text-transform:uppercase}.detail-tabs{display:flex;border-bottom:1px solid #98a9b6;gap:24px}.detail-tabs button{border:0;background:none;padding:14px 2px;border-bottom:4px solid transparent;font-weight:750;color:#536b7d}.detail-tabs button.active{border-color:var(--amber);color:var(--ink)}.detail-tabs b{font-size:10px;background:#dce3e7;padding:3px 6px;border-radius:9px}.section-scores details{background:#fff;border-bottom:1px solid #ccd5da}.section-scores summary{display:flex;justify-content:space-between;padding:20px;cursor:pointer}.section-scores summary b{display:inline-grid;place-items:center;background:var(--navy);color:#fff;width:34px;height:26px;border-radius:4px;margin-right:12px}.breakdown{padding:0 20px 20px}.breakdown>div{display:grid;grid-template-columns:.7fr 1.5fr 1.5fr .5fr;gap:16px;padding:10px;border-bottom:1px solid #e0e5e8;font-size:12px}.break-head{text-transform:uppercase;color:#627685;font-weight:800}.breakdown code{white-space:normal;word-break:break-word}.pass{color:var(--teal);font-weight:800}.fail{color:var(--red);font-weight:800}.timeline{max-width:800px;padding:25px}.timeline>div{display:grid;grid-template-columns:100px 14px 1fr;gap:16px;min-height:70px}.timeline time{font-size:12px;color:#667b8b}.timeline-dot{width:10px;height:10px;background:var(--amber);border-radius:50%;position:relative}.timeline-dot:after{content:"";position:absolute;width:1px;background:#aebcc5;top:11px;bottom:-59px;left:4px}.timeline p{margin:0}.timeline small{display:block;color:#667b8b;margin-top:5px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;padding:24px 0}.gallery figure{margin:0;background:#fff}.gallery img{width:100%;aspect-ratio:16/10;object-fit:cover;background:#d9e1e5}.gallery figcaption{display:flex;justify-content:space-between;padding:10px 12px}.defence-pack{background:#fff;padding:40px;margin-top:24px}.defence-pack>header{display:flex;justify-content:space-between;border-bottom:3px solid var(--navy);padding-bottom:20px}.defence-pack>section{display:grid;grid-template-columns:44px 1fr;gap:18px;padding:25px 0;border-bottom:1px solid #c9d1d9}.defence-num{width:38px;height:38px;background:var(--amber);display:grid;place-items:center;font-weight:900;border-radius:6px}.defence-type{text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:#637788}.defence-pack dl{display:grid;grid-template-columns:140px 1fr;gap:8px;font-size:13px}.defence-pack dt{font-weight:800}.defence-rating{display:flex;gap:18px;align-items:center;background:#edf0f1;padding:10px}.defence-rating label{display:flex;margin:0}.danger-zone{margin-top:50px;padding:22px;border:1px solid #dfaaa7;background:#fff4f3;display:flex;justify-content:space-between}.danger-zone span{display:block;color:#7d5b59;font-size:13px;margin-top:5px}.consent-layout,.device-layout{display:grid;grid-template-columns:minmax(280px,.75fr) minmax(500px,1.25fr);gap:8vw;align-items:start}.consent-intro,.device-layout>div:first-child{position:sticky;top:40px}.consent-intro h1,.device-layout h1{margin:18px 0 24px}.consent-intro p,.device-layout p{font-size:18px;line-height:1.6}.time-note,.privacy-line{border-top:1px solid #a5b3bd;padding-top:18px;color:#566e7f}.consent-sheet{background:#fff;padding:clamp(25px,4vw,48px);border-top:7px solid var(--amber);box-shadow:0 15px 40px #102a431f}.capture-list{display:grid;gap:4px}.capture-list>div{display:flex;gap:14px;align-items:center;background:#edf1f1;padding:14px}.capture-list svg{width:26px;height:26px;color:var(--blue)}.capture-list span,.capture-list strong,.capture-list small{display:block}.capture-list small{color:#5c7282;margin-top:3px}.plain-terms{margin:22px 0;font-size:14px;line-height:1.5}.plain-terms p{margin:7px 0}.check{grid-template-columns:auto 1fr;align-items:start;background:#fff8e5;padding:15px}.check input{width:18px;height:18px;margin:0}.consent-actions{display:flex;justify-content:space-between;margin-top:25px}.check-stack{display:grid;gap:10px}.check-row{min-height:78px;border:1px solid #b1bfc8;background:#fff;display:grid;grid-template-columns:38px 1fr auto;gap:16px;align-items:center;padding:14px 18px;text-align:left;color:var(--ink)}.check-row>span{background:#dfe6e9;width:34px;height:34px;display:grid;place-items:center;border-radius:50%;font-weight:900}.check-row strong,.check-row small{display:block}.check-row small{color:#607686;margin-top:4px}.check-row b{text-transform:uppercase;letter-spacing:.1em;font-size:10px;color:#687c8a}.check-row.actionable:hover:not(:disabled){border-color:var(--blue)}.check-row.complete{border-color:var(--teal)}.check-row.complete>span{background:var(--teal);color:#fff}.check-row.failed{border-color:var(--red)}#camera-preview video{display:block;width:240px;height:150px;object-fit:cover;background:#102a43;border:4px solid #fff}.start{margin-top:10px}.center-state,.finish{max-width:660px;margin:10vh auto;text-align:center}.state-symbol,.finish-mark{width:72px;height:72px;border-radius:50%;display:grid;place-items:center;background:var(--amber);font-size:38px;font-weight:900;margin:0 auto 28px}.finish-mark svg{width:34px;height:34px}.finish p{font-size:18px;line-height:1.6}.finish-meta{display:flex;justify-content:center;gap:20px;margin-top:30px}.finish-meta span{background:#e4ecea;padding:10px 14px;font-size:13px}.route-screen{display:grid;grid-template-columns:.7fr 1.3fr;gap:8vw}.route-screen h1{margin:18px 0}.route-screen p{font-size:17px;line-height:1.5}.route-board{display:grid;gap:5px}.route-strip{display:grid;grid-template-columns:54px 1fr auto;gap:16px;padding:15px;background:#fff;align-items:center;border-left:5px solid #b7c2c9}.route-strip>span{font-weight:900}.route-strip small{display:block;color:#667b8a;margin-top:3px}.route-strip b{text-transform:uppercase;font-size:10px;letter-spacing:.1em}.route-strip.done{opacity:.62;border-color:var(--teal)}.route-strip.next{border-color:var(--amber);background:#fff8e5}.route-strip.later{opacity:.6}.route-board>.primary{margin-top:16px}.candidate-work{max-width:none;padding:0}.workspace{min-height:calc(100vh - 76px)}.work-head{background:#e5e9e8;padding:18px 4vw;display:flex;justify-content:space-between;align-items:center}.work-head>div>span{font-size:22px;font-weight:850}.work-head p{font-size:13px;margin:5px 0 0;max-width:85ch}.timer{min-width:145px;background:var(--navy);color:#fff;padding:10px 14px;display:grid;grid-template-columns:22px 1fr;align-items:center}.timer strong{font-size:21px;font-variant-numeric:tabular-nums}.timer span{font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:#aec0cd;grid-column:2}.mini-route{height:34px;background:var(--navy);padding:0 4vw;display:flex;gap:4px}.mini-route span{color:#7f93a2;padding:9px 18px 7px;font-size:10px;font-weight:900}.mini-route span.active{background:var(--amber);color:var(--navy)}.work-grid{display:grid;grid-template-columns:minmax(0,1fr) 390px;height:calc(100vh - 228px)}.data-work{min-width:0;display:flex;flex-direction:column}.grid-tools{display:grid;grid-template-columns:minmax(220px,1fr) 180px auto;gap:10px;padding:10px 16px;background:#f7f4ed;border-bottom:1px solid #b5c1c8;align-items:center}.grid-tools input,.grid-tools select{padding:8px}.search{position:relative;margin:0}.search svg{position:absolute;left:9px;top:9px}.search input{padding-left:32px}.grid-tools>span{font-size:12px;font-variant-numeric:tabular-nums}.table-wrap{overflow:auto;flex:1;background:#fff}.table-wrap table{border-collapse:collapse;width:100%;font-size:12px;white-space:nowrap;user-select:none}.table-wrap th{position:sticky;top:0;background:var(--navy);color:#fff;z-index:1;text-align:left}.table-wrap th button{border:0;background:none;color:inherit;font-size:10px;text-transform:uppercase;letter-spacing:.06em;padding:11px}.table-wrap td{padding:8px 10px;border-bottom:1px solid #e1e5e7}.table-wrap tr:hover,.table-wrap tr.selected{background:#fff4d4}.table-wrap input{width:15px}.money{text-align:right;font-variant-numeric:tabular-nums}.row-id{font-family:ui-monospace,monospace;font-weight:750}.answer-rail{overflow:auto;border-left:1px solid #9eafb9;background:#eef1f1;padding:15px}.answer-rail details,.answer-sheet{background:#fff;margin-bottom:12px}.answer-rail summary{padding:13px;font-weight:800;cursor:pointer}.policy{padding:0 14px 14px}.policy dl{margin:0}.policy dt{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:#647a89;font-weight:900;margin-top:10px}.policy dd{margin:3px 0;font-size:11px;line-height:1.45}.answer-sheet{padding:15px}.answer-sheet h2{font-size:19px;margin-bottom:4px}.hint{font-size:11px;color:#647988;line-height:1.4}.issue{border:1px solid #c6d0d6;margin:12px 0;padding:9px}.issue legend{font-size:10px;font-weight:900;text-transform:uppercase}.issue label{margin:5px 0;font-size:10px}.issue>div{display:grid;grid-template-columns:1fr 1fr;gap:6px}.issue input,.issue select{padding:7px;font-size:11px}.calculator{padding:0 12px 12px;display:grid;grid-template-columns:1fr auto;gap:6px}.calculator button{border:0;background:var(--navy);color:#fff}.calculator output{grid-column:1/-1;background:#e8ecee;padding:8px;font-variant-numeric:tabular-nums}.submit-section{width:100%}.autosave{text-align:center;color:#607786;font-size:10px;margin:8px}.priority-row{display:grid;grid-template-columns:38px 1fr 1fr;gap:5px;border-top:1px solid #d8dfe2;padding:7px 0}.priority-row input,.priority-row select{padding:6px;font-size:10px}.priority-row>input:last-child{grid-column:2/-1}.priority-row span{font-size:10px}.word-count{text-align:right;font-size:11px;margin-top:5px}.pause-overlay:not(:empty){position:fixed;inset:0;background:#0b1f33ed;display:grid;place-items:center;z-index:10;color:#fff}.pause{text-align:center;max-width:430px}.pause .state-symbol{color:var(--navy)}@media(max-width:900px){.secure{display:none}.landing,.auth,.consent-layout,.device-layout,.route-screen{grid-template-columns:1fr}.landing{background:var(--paper)}.consent-intro,.device-layout>div:first-child{position:static}.create-strip{grid-template-columns:1fr 1fr}.ledger-head,.candidate-row{grid-template-columns:2fr 1fr 1fr}.ledger-head span:nth-child(4),.ledger-head span:nth-child(5),.candidate-row>span:nth-child(4),.candidate-row>span:nth-child(5){display:none}.work-grid{grid-template-columns:1fr;height:auto}.data-work{height:65vh}.answer-rail{border-left:0}.gallery{grid-template-columns:1fr 1fr}}@media print{body>*:not(#app),.topbar,.detail-nav,.detail-tabs,.danger-zone,.secondary{display:none!important}.admin-shell,.defence-pack{padding:0}.defence-pack>section{break-inside:avoid}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;scroll-behavior:auto!important}}.carefulness{display:flex;align-items:center;gap:24px;margin-bottom:16px;padding:11px 16px;background:#e7eceb;font-size:12px}.carefulness>strong{text-transform:uppercase;letter-spacing:.08em}.manual-rubric{display:grid;grid-template-columns:1fr repeat(4,minmax(110px,1fr));gap:12px;align-items:end;margin:16px 20px 20px;padding:14px;background:#edf1f1}.manual-rubric label{margin:0}.manual-rubric select{padding:7px}.manual-rubric strong small{display:block;color:#647887;margin-top:4px}.manual-rubric .rubric-note{grid-column:1 / -2}.manual-rubric button{align-self:end}.manual-rubric time{grid-column:1 / -1;font-size:11px;color:#647887}.score-block em{margin-top:5px;color:#9a6400;font-size:11px;font-style:normal;font-weight:750}.score-block em.final-score{color:#16827a}.field-list{display:grid;grid-template-columns:minmax(75px,auto) 1fr;gap:3px 8px;margin:0}.field-list dt{color:#627685;font-weight:750}.field-list dd{margin:0;overflow-wrap:anywhere}.result-chip{align-self:start;justify-self:start;border-radius:99px;padding:4px 8px;font-weight:800;white-space:nowrap}.result-chip.correct{color:#0f675f;background:#d9efeb}.result-chip.partial{color:#785704;background:#fff0c7}.result-chip.missed,.result-chip.false-positive{color:#8d302b;background:#f8dfdd}.false-positive-row{background:#fff5f4}.muted{color:#7a8b97}.save-defence{margin-top:20px}
