:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;color:#162333;background:#edf1f4;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}.topbar{height:74px;background:#111e2b;color:#fff;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1600px)/2));border-bottom:4px solid #dc8930}.brand{display:flex;gap:14px;align-items:center;letter-spacing:.09em}.brand strong{font-size:1.15rem;display:block;line-height:1}.brand small{display:block;font-size:.75rem;color:#c3cfda;letter-spacing:.14em;margin-top:5px}.mark{width:47px;height:47px;border:2px solid #e6a051;display:grid;place-items:center;font-size:1.35rem;font-weight:900;letter-spacing:-.09em;position:relative}.mark span{font-size:.75rem;color:#e6a051;position:absolute;right:3px;bottom:2px}.privacy{color:#d6e2ec;border:1px solid #496174;border-radius:20px;padding:8px 14px;font-size:.83rem;font-weight:700;letter-spacing:.02em}main{max-width:1660px;margin:auto;padding:26px 24px 70px}.pagehead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}.pagehead h1{margin:0;font-size:clamp(1.7rem,2vw,2.25rem);letter-spacing:-.03em}.pagehead p{margin:4px 0 0;color:#506171}.inputbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:#fff;border:1px solid #cdd7de;border-radius:12px;padding:12px;margin-bottom:16px;box-shadow:0 2px 9px #152b3a0a}.button{border:1px solid #bdcbd5;background:#f8fafb;color:#183145;border-radius:8px;padding:10px 15px;min-height:42px;font-weight:750;white-space:nowrap}.button:hover{background:#e9f0f5}.button.primary{background:#16354b;color:#fff;border-color:#16354b}.button.primary:hover{background:#245574}.button.ghost{background:transparent}.button.small{padding:8px 12px;min-height:38px;font-size:.9rem}.upload{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.upload input{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden}.upload:focus-within{outline:3px solid #e59a43;outline-offset:2px}.inline{display:flex;align-items:center;gap:8px;margin-left:auto;font-weight:700}.status{font-size:.87rem;color:#526476;max-width:280px;overflow-wrap:anywhere}.workgrid{display:grid;grid-template-columns:minmax(320px,1fr) minmax(400px,1.1fr) minmax(250px,.48fr);gap:16px;align-items:start}.panel{background:#fff;border:1px solid #cbd7df;border-radius:12px;box-shadow:0 2px 10px #20394b0c;padding:17px;min-width:0}.sectiontitle{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;min-height:32px}.sectiontitle>div:first-child{display:flex;align-items:center;gap:10px}.sectiontitle h2{margin:0;font-size:1.1rem;letter-spacing:-.015em}.sectiontitle p{margin:2px 0 0;color:#597080}.step{display:grid;place-items:center;background:#19384e;color:#fff;border-radius:6px;font-size:.9rem;font-weight:800;width:29px;height:29px;flex:none}.hint{font-size:.82rem;color:#637484;text-align:right}.imagebox{position:relative;background:#dce3e6;display:grid;place-items:center;overflow:hidden;border:1px solid #aebbc4;min-height:340px}.imagebox canvas{display:block;max-width:100%;width:auto;height:auto;max-height:610px;touch-action:none;cursor:crosshair}.sourcebox canvas{cursor:move}.empty{position:absolute;text-align:center;color:#536775;padding:28px}.empty[hidden]{display:none}.calcontrols{display:flex;align-items:end;gap:9px;flex-wrap:wrap;margin-top:14px}.calcontrols label{flex:1 1 104px}.calcontrols label span{font-weight:400;color:#637383}label{font-weight:700;font-size:.87rem}input[type=number],input[type=date],input[type=text],select,textarea{width:100%;border:1px solid #b8c7d1;border-radius:6px;background:#fff;color:#14283b;min-height:39px;padding:7px 9px;margin-top:5px;font-size:.96rem}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid #eb9b3b;outline-offset:2px}.calcontrols input{max-width:130px}.instruction{font-size:.84rem;line-height:1.5;color:#586b7a;margin:12px 0 0}.analysisbar{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin-bottom:10px}.analysisbar label{min-width:104px}.mode{display:flex;gap:3px;flex-wrap:wrap;background:#eaf0f3;border-radius:8px;padding:3px}.mode button{border:0;border-radius:6px;background:transparent;color:#28475a;font-size:.82rem;font-weight:750;padding:8px}.mode button.active{background:#173a52;color:#fff;box-shadow:0 1px 4px #132a3c55}.shotadjust{display:flex;align-items:end;gap:8px;flex-wrap:wrap;border:1px solid #c9d7df;border-radius:7px;background:#f2f6f8;padding:9px;margin-top:11px}.shotadjust label:first-child{flex:1;min-width:170px}.shotadjust label:nth-child(2){width:98px}.nudges{display:flex;gap:3px;flex-wrap:wrap}.nudges button{border:1px solid #aabecb;border-radius:5px;background:#fff;padding:7px 9px;font-size:.79rem;font-weight:750;color:#18384e;min-height:38px}.nudges button:hover:not(:disabled){background:#dcebf4}.scanbar{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:12px 0}.scanbar label:first-child{flex:1;min-width:130px;display:flex;align-items:center;gap:7px;flex-wrap:wrap}.scanbar input[type=number]{width:76px;display:inline-block}.scanbar output{font-variant-numeric:tabular-nums}.candidates{border:1px dashed #a8bac6;border-radius:7px;background:#f6f9fa;min-height:45px;padding:9px;color:#536a78;font-size:.84rem;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.candidate{font-size:.8rem;font-weight:700;border:1px solid #7f9aa9;background:#fff;border-radius:6px;padding:7px;color:#183a51}.candidate:hover{background:#dceaf2}.selectedmetrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0 15px}.bigmetric{background:#152d40;color:#fff;padding:15px 10px;border-radius:8px;font-size:1.7rem;font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:-.04em;white-space:nowrap}.bigmetric em{font-size:.9rem;font-style:normal;font-weight:600}.bigmetric small{display:block;color:#cbdbe5;font-size:.76rem;font-weight:650;letter-spacing:0;margin-top:3px;white-space:normal}.results{max-height:540px;overflow:auto}.resultrow{width:100%;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;background:#fff;border:1px solid #dde5e9;border-radius:6px;margin-bottom:6px;padding:8px 10px;color:#1e3344;font-weight:700}.resultrow.chosen{border:2px solid #be6825;background:#fff8ef;padding:7px 9px}.resultrow strong{text-align:right;font-variant-numeric:tabular-nums}.resultrow small{display:block;color:#62788a;font-size:.77rem;font-weight:500;margin-top:2px}.details{margin-top:16px}.details .sectiontitle>div:first-child{display:block}.fields{display:grid;grid-template-columns:repeat(5,minmax(125px,1fr));gap:14px}.summary{margin-top:15px}.summary textarea{display:block;resize:vertical;width:100%;margin-top:7px;min-height:80px}.actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:14px}.actions span{color:#677b87;font-size:.84rem}.printonly{display:none}@media(max-width:1230px){.workgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.metrics{grid-column:1/-1}.results{display:grid;grid-template-columns:repeat(5,1fr);gap:7px;max-height:none}.resultrow{margin:0}.fields{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:780px){.topbar{height:auto;min-height:72px;padding:10px 16px}.privacy{font-size:.68rem;padding:6px 8px;text-align:center;max-width:145px}main{padding:19px 12px 40px}.pagehead{align-items:start}.pagehead p{font-size:.9rem}.pagehead .button{display:none}.inputbar{gap:8px}.inline{margin-left:0}.status{flex-basis:100%}.workgrid{display:block}.workgrid>.panel{margin-bottom:12px}.panel{padding:12px}.sectiontitle{align-items:start}.hint{max-width:150px}.imagebox{min-height:260px}.imagebox canvas{max-height:560px}.results{grid-template-columns:repeat(2,1fr)}.fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.mode{width:100%}.mode button{flex:1}.calcontrols label{flex-basis:90px}.calcontrols .button{flex:1}.scanbar .button{width:100%}}@media(max-width:430px){.brand strong{font-size:.94rem}.brand small{font-size:.58rem}.mark{width:39px;height:39px}.privacy{font-size:.6rem;max-width:105px}.fields{grid-template-columns:1fr 1fr}.fields input{font-size:.87rem}.hint{display:none}}
@media print{@page{size:letter;margin:.48in}body{background:#fff;color:#152333}header,main>.pagehead,main>.inputbar,main>.workgrid,main>.details{display:none!important}main{padding:0;max-width:none}.printonly{display:block}.printhead{display:flex;justify-content:space-between;align-items:center;border-bottom:3px solid #182f42;padding-bottom:10px}.printhead b{display:block;font-size:20px;letter-spacing:.1em}.printhead small{display:block;letter-spacing:.15em;font-size:10px}.printonly h1{font-size:24px;margin:14px 0}.printmeta{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:11px;background:#edf2f5;font-size:11px}.printmeta div{min-width:0;overflow-wrap:anywhere}.printmeta b{display:block;color:#586e7d;font-size:9px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:3px}.printbody{display:grid;grid-template-columns:44% 1fr;gap:18px;margin-top:15px;align-items:start}.printbody img{max-width:100%;max-height:8.2in;object-fit:contain;border:1px solid #a9b5bd}.printbody h2{font-size:15px;border-bottom:1px solid #adc0cc;margin:0 0 7px;padding-bottom:5px}.printbody table{width:100%;border-collapse:collapse;font-size:11px;font-variant-numeric:tabular-nums}.printbody th,.printbody td{padding:5px;border-bottom:1px solid #c9d4da;text-align:right}.printbody th:first-child,.printbody td:first-child{text-align:left}.printbody p{font-size:11px;line-height:1.4}.printbody h2:not(:first-child){margin-top:15px}.printnote{color:#546877;border-top:1px solid #cbd4d9;padding-top:8px}.notes{white-space:normal;overflow-wrap:anywhere}}
.capture{padding:14px;margin-bottom:14px}.captureactions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.cameraStage{position:relative;max-width:620px;margin:14px auto 0;background:#071018;border-radius:14px;overflow:hidden}.cameraStage video{display:block;width:100%;max-height:72vh;object-fit:cover}.guide{position:absolute;inset:7% 8% 17%;pointer-events:none}.guide i{position:absolute;width:27%;height:7px;background:#fff;border:2px solid #102131;box-shadow:0 1px 6px #0008;border-radius:5px;transition:.18s}.guide i:nth-child(1){left:0;top:0}.guide i:nth-child(2){right:0;top:0}.guide i:nth-child(3){left:0;bottom:0}.guide i:nth-child(4){right:0;bottom:0}.cameraStage.ready .guide i{background:#26e07f;border-color:#071c11;box-shadow:0 0 14px #2dff91}.cameraStage.ready .guide i:after{content:'✓';position:absolute;color:#fff;background:#082e1c;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;top:-10px}.cameraPrompt{position:absolute;left:50%;bottom:12%;transform:translateX(-50%);background:#0b1727dd;color:#fff;border:2px solid #fff;border-radius:22px;padding:8px 18px;font-weight:900;letter-spacing:.08em;white-space:nowrap}.cameraStage.ready .cameraPrompt{background:#075d35}.shutter{position:absolute;bottom:3%;left:50%;transform:translateX(-50%);border:3px solid #fff;border-radius:24px;background:#18364e;color:#fff;padding:8px 18px;font-weight:850}.autostatus{margin-top:12px;border-radius:8px;padding:11px 13px;font-weight:750}.autostatus.idle{background:#eef3f6;color:#40586a}.autostatus.working{background:#fff4df;color:#754812}.autostatus.pass{background:#d9f7e7;color:#075d35;border:2px solid #16834d}.autostatus.review{background:#fff0cf;color:#754812;border:2px solid #d78c1c}.autostatus.fail{background:#ffe4e1;color:#8e271d;border:2px solid #c65448}.review{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:14px;border-left:6px solid #16834d}.eyebrow{font-size:.73rem;font-weight:900;letter-spacing:.14em;color:#536b7c}.combined strong{font-size:2rem;display:block;color:#102f44}.combined span{color:#4c6474}.offsets{display:flex;gap:10px;flex-wrap:wrap;margin-top:9px;font-size:.82rem}.offsets span{background:#eef3f6;border-radius:6px;padding:5px 7px}.reviewactions{display:flex;gap:8px;flex-wrap:wrap}.advanced{margin:14px 0}.advanced>summary{cursor:pointer;color:#27495e;font-weight:800;padding:11px 3px}.advancedbody{padding-top:4px}@media(max-width:780px){.review{align-items:flex-start;flex-direction:column}.reviewactions{width:100%}.reviewactions .button{flex:1}}

/* Reliability and accessible field controls. */
[hidden]{display:none!important}
.pagechoice{margin:12px 0;justify-content:flex-start;max-width:420px}
.beta-note{margin:0;color:#344b5b}
.review{flex-wrap:wrap}.review>div:first-child{flex:1 1 220px}
#reviewImage{display:block;max-width:100%;width:180px;height:auto;border:1px solid #aabac5}
.reviewactions{flex:1 1 240px;align-items:flex-start}
.reviewactions .button{white-space:normal}
.button,.mode button,.nudges button,.candidate{min-height:44px}
.mode button,.nudges button,.candidate,.instruction,.hint,.status,.candidates,.actions span,.offsets{font-size:.9rem}
.fields input,.fields select{font-size:1rem;min-width:0}
.actions .button,.captureactions .button{white-space:normal}
.cameraStop{position:absolute;top:12px;right:12px;z-index:2;background:#fff;color:#14283b}
.cameraPrompt{white-space:normal;text-align:center;width:90%;max-width:460px;letter-spacing:.02em;bottom:19%}
.cameraStage video{object-fit:contain}
.results{scrollbar-width:auto;scrollbar-color:#536a7a #eef3f6}
@media(max-width:430px){.mode{display:grid;grid-template-columns:1fr}.mode button{text-align:left}.fields{grid-template-columns:1fr}.shotadjust label:first-child{min-width:0;flex-basis:100%}.captureactions>.button{width:100%}.privacy{font-size:.75rem}.brand small{font-size:.7rem}.reviewactions{flex-basis:100%}.reviewactions .button{flex-basis:100%}.cameraPrompt{font-size:.9rem} }
@media print{main>*:not(#printView){display:none!important}#printView{display:block!important}.printbody{break-inside:avoid}}

#corrected:focus-visible{outline:3px solid #111;outline-offset:-4px;box-shadow:inset 0 0 0 7px #fff}
.sessiontabs{display:flex;gap:8px;border-bottom:2px solid #b7c8d3;margin:0 0 24px;padding-bottom:8px;flex-wrap:wrap}.sessiontabs a{display:inline-flex;align-items:center;min-height:46px;padding:10px 20px;border-radius:7px;text-decoration:none;font-weight:800;color:#17384e;background:#fff;border:1px solid #bdcbd5}.sessiontabs a[aria-current=page]{background:#17384e;color:#fff;border-color:#17384e}.sessiontabs a:focus-visible{outline:3px solid #111;outline-offset:3px}

.workflow{display:flex;gap:12px;margin:0 0 18px;flex-wrap:wrap}.workflow span{display:flex;align-items:center;gap:8px;font-weight:700;background:#fff;border:1px solid #9eb2c1;border-radius:6px;padding:10px 15px}.workflow b{background:#17384e;color:white;border-radius:4px;padding:1px 8px}.accuracy,.history{border-top:2px solid #b7c8d3;margin-top:22px;padding-top:20px}.accuracy h2,.history h2{font-size:1.2rem;margin:0 0 10px}.accuracy p,.history p{color:#40586a}.history>label{display:block;margin-top:16px}.history select{max-width:100%;min-height:48px}.accuracy .fields{grid-template-columns:repeat(2,minmax(0,1fr));max-width:700px}#accuracyResult{font-size:1rem;background:#edf3f8;border:1px solid #9eb2c1;border-radius:6px;padding:14px;margin:14px 0}input,select,textarea{scroll-margin-top:20px}.button,.mode button,.nudges button,input,select{min-height:48px}.button:focus-visible,input:focus,select:focus,textarea:focus{outline:3px solid #111;outline-offset:3px}html{scrollbar-color:#253e54 #edf1f4;scrollbar-width:auto}
@media(max-width:780px){.workflow{gap:6px}.workflow span{font-size:14px;padding:8px 10px}.history .actions .button{flex:1 1 100%;white-space:normal}.accuracy .fields{grid-template-columns:1fr}.nudges{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}.nudges button{font-size:1rem;min-height:50px}.review #reviewImage{width:min(100%,300px)}}
@media print{.printhead .reportlogo{width:3.1in;height:auto;max-height:.95in;object-fit:contain;object-position:left center}.printonly h1{font-size:20px;margin:10px 0}.printbody{grid-template-columns:2.8in 1fr;gap:14px;margin-top:12px}.printbody>img{width:100%;height:auto;max-height:5.4in;object-fit:contain}.printonly h2{font-size:13px;margin:10px 0 4px}.printonly p{font-size:10px;line-height:1.3;overflow-wrap:anywhere}.printonly table{font-size:10px}.printonly .notes{white-space:normal}.printonly .printnote{font-size:9px}.printonly{font-family:Arial,sans-serif}.printmeta{font-size:10px}.printbody{break-inside:avoid}}
.offlinebar{padding:14px 16px;background:#fff;border:2px solid #17384e;border-radius:8px;margin-bottom:18px;display:flex;align-items:center;flex-wrap:wrap;gap:12px}.offlinebar strong{flex:1 1 220px;font-size:1rem}.offlinebar p{flex-basis:100%;margin:0;font-size:14px;color:#40586a;line-height:1.5}.offlinebar .button{white-space:normal}@media(max-width:600px){.offlinebar .button{width:100%}}

/* Range-first capture controls */
.captureactions{display:grid;grid-template-columns:1fr 1fr;gap:16px}.captureactions>.button{min-height:88px;font-size:1.4rem;font-weight:800;border:3px solid #fff}.captureactions>.button:disabled{opacity:.55;cursor:not-allowed}.secondary-capture{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}.secondary-capture .button{min-height:48px}@media(max-width:380px){.captureactions{gap:10px}.captureactions>.button{font-size:1.15rem}}

.comparison-scroll{overflow-x:auto}table{border-collapse:collapse;width:100%}th,td{padding:12px;text-align:left;border-bottom:1px solid #888}summary{cursor:pointer;min-height:48px;padding:12px;font-weight:700}

#captureFlow .captureactions{grid-template-columns:1fr}#garminStep{display:grid;gap:10px}#flowImport{min-height:88px;font-size:1.4rem;font-weight:800;border:3px solid #fff}#garminChoice .button{min-height:64px;font-size:1.15rem;margin:8px}#garminChoice[hidden],#captureFlow[hidden],#garminStep[hidden]{display:none}

/* Profile setup: labels always sit above their controls. */
.profiles > label,.profiles details label:not(.upload){display:flex;flex-direction:column;gap:6px;font-size:1rem;line-height:1.4;margin:18px 0 10px;min-width:0}
.profiles input:not([type=hidden]):not([type=file]),.profiles select{display:block;width:100%;min-width:0;max-width:100%;min-height:48px;padding:10px 12px;border:1px solid #8195a5;border-radius:6px;background:#fff;color:#14283b;font-size:1rem;margin:0}
.profiles .button{white-space:normal;max-width:100%;margin:0 0 10px}
.profiles p{line-height:1.5;overflow-wrap:anywhere}.profile-help{font-size:1rem;color:#344b5b}
@media(max-width:600px){.profiles .button{width:100%}.profiles summary{padding-left:0}.profiles > label:first-child{margin-top:0}}

/* Phone target review: shape and text indicate selection, independent of color. */
.correctedbox{overflow:auto;max-height:75vh;touch-action:pan-x pan-y}.correctedbox canvas{display:block;max-width:none;touch-action:none}.mode button.active{border:3px solid #111;box-shadow:inset 0 0 0 2px #fff}.shotadjust select{min-width:0;width:100%;font-size:1rem}.analysisbar{scroll-margin-top:1rem}button{min-height:48px}#editHelp{font-weight:600}select:focus,button:focus-visible{outline:3px solid #111;outline-offset:3px}

.workflow #photoTargetStep, #cameraStart {width:100%;min-height:72px;padding:18px 20px;font-size:1.2rem;font-weight:800;white-space:normal;border:3px solid #152b3d;touch-action:manipulation;}
.workflow #photoTargetStep:focus-visible {outline:4px solid #111;outline-offset:4px;}
.range-step {margin:0 0 20px;border:2px solid #40576b;scroll-margin-top:12px;}
.range-step>h2 {font-size:1.35rem;margin:0 0 8px;}
.range-step .button {min-height:60px;font-size:1.05rem;white-space:normal;}
.range-step>.button,.range-step>.actions>.button {width:100%;margin:8px 0;}
.step-status {font-weight:700;padding:10px 12px;background:#edf2f6;border:1px solid #506578;}
.range-step.complete {border-width:3px;}
.range-step .panel {box-shadow:none;}
.range-step select,.range-step input {max-width:100%;}
@media print {.step-status,#rangeStep1,#rangeStep2,#rangeStep3,#rangeStep4,#rangeStep5 {display:none;}}
.start-panel {margin-top:1rem;}
.start-panel h1 {margin-bottom:.5rem;}
.start-button {display:block;width:100%;min-height:64px;font-size:1.25rem;font-weight:800;margin:1.25rem 0;}
#moreOptions > summary,.optional-range-step > summary {cursor:pointer;font-weight:700;min-height:44px;padding:.6rem 0;}
[hidden] {display:none !important;}

.review #reviewImage {display:block;width:100%;max-width:none;height:auto;flex:none;}
#reviewZoomPanel {min-width:0;max-width:100%;}
.review-zoom-controls {display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:12px 0;}
.review-zoom-controls .button {min-height:48px;font-weight:700;}
#reviewZoomLevel {font-weight:800;min-width:55px;}
#reviewViewport {overflow:auto;max-height:65vh;border:1px solid #aabac5;touch-action:pan-x pan-y;overscroll-behavior:contain;background:#e7edf1;}
#reviewZoomPanel.expanded-target {position:fixed;inset:0;z-index:1000;background:#fff;color:#132130;padding:16px;max-width:none;overflow:hidden;box-sizing:border-box;}
#reviewZoomPanel.expanded-target #reviewViewport {height:calc(100dvh - 170px);max-height:none;}
.zoom-help {font-size:.9rem;}
#reviewZoomPanel {flex:1 1 100%;width:100%;}

.range-step > h2 {background:#16354b;color:#fff;font-weight:850;padding:14px 16px;border-radius:8px;font-size:1.2rem;margin-top:0;}

/* Range results keep the next action visible without relying on color. */
.quick-results {padding:8px 0 20px;border-bottom:2px solid #111d2a;margin-bottom:18px}
.quick-moa {font-size:clamp(40px,10vw,68px);font-weight:850;line-height:1.15;color:#111d2a}
.quick-actions {display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.quick-actions .button {min-height:70px;font-size:20px;font-weight:800;width:100%}
.practice-option {display:flex!important;align-items:center;gap:12px;font-weight:750;padding:12px;border:2px solid #111d2a;border-radius:8px}
.practice-option input {width:26px!important;height:26px;flex:none}
.practice-help {font-size:14px}
#deeperAnalysis {margin-top:20px;padding-top:12px;border-top:1px solid #aaa}
#deeperAnalysis summary {font-size:19px;font-weight:750;padding:12px}
#quickSaved {font-weight:750}
@media(max-width:360px){.quick-actions {grid-template-columns:1fr}}

.review-shot-choices{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.review-shot-choices .button{flex:1 1 28%;min-height:56px;font-size:18px;font-weight:800;border:2px solid #132130}.review-shot-choices [aria-pressed="true"]{outline:3px solid #111;outline-offset:2px}#reviewEditToggle,#acceptAnalysis{min-height:64px;font-size:20px;width:100%}#reviewZoomPanel.expanded-target{overflow:auto}#reviewZoomPanel.expanded-target #reviewViewport{height:50dvh}#reviewImage{aspect-ratio:auto}#reviewUndo{margin-bottom:12px}

.review-nudge-buttons{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:10px 0}.review-nudge-buttons button{min-height:60px;font-size:20px;font-weight:800;border:2px solid #111}

.quick-actions{grid-template-columns:1fr;margin:14px 0 10px}.quick-actions .button{min-height:80px;font-size:26px;border:3px solid #111}.quick-secondary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}.quick-secondary .button{min-height:54px;font-size:16px;font-weight:700;border:2px solid #132130}.quick-secondary #retake{width:auto}@media(max-width:380px){.quick-secondary{grid-template-columns:1fr}.quick-secondary .button{min-height:48px}}

.development-prompt{font-size:22px;font-weight:850;border:3px solid #111;padding:16px;background:#fff;color:#111}#developmentSetup select{min-height:54px;width:100%}#developmentResults{overflow:auto}

.start-panel .start-button{display:block;width:100%;min-height:76px;margin:12px 0;font-size:23px;font-weight:850;border:3px solid #111}.target-identity{font-size:20px;font-weight:800;border:2px solid #111;padding:12px;color:#111;background:#fff}

#developmentPrintChoices label{display:block;border:1px solid #111;padding:12px;margin:8px 0}#ammoHistoryRows{overflow:auto}#ammoHistoryRows td,#developmentResults td{padding:10px}

/* Full-screen review owns its scrolling; never lock the underlying document. */
#reviewZoomPanel.expanded-target{overflow:auto;overscroll-behavior:contain;touch-action:pan-y;padding-bottom:max(24px,env(safe-area-inset-bottom))}

.review #reviewImage{border:0} /* viewport supplies the border; pointer math uses image pixels only */

/* Garmin matching: readable on a phone, no color-only states. */
.garmin-match-card{border:2px solid #233448;border-radius:8px;padding:16px;margin:16px 0;background:#fff;color:#172b40}
.garmin-match-card h4{font-size:20px;margin:0 0 8px}.garmin-match-card select,.garmin-match-card input:not([type=checkbox]){width:100%;min-width:0;min-height:52px;font-size:16px}
.match-range{display:grid;grid-template-columns:1fr 1fr;gap:12px}.match-photo{display:block;width:100%;height:190px;object-fit:contain;margin:12px 0}
.garmin-match-card table{width:100%;font-size:16px}.garmin-match-card td,.garmin-match-card th{padding:8px;text-align:left;border-bottom:1px solid #d4dbe2}
.match-confirmation{display:flex;gap:12px;align-items:flex-start;padding:16px 0}.match-confirmation input{flex:none;width:24px;height:24px}
#garminMatchSave,#garminMatchPreview{width:100%;min-height:60px;font-size:20px}.garmin-save-overlay:not([hidden]){position:fixed;inset:0;z-index:99999;display:grid;place-content:center;padding:32px;background:#172b40ed;color:white;font-size:24px;text-align:center}
#garminMatching{scroll-margin-top:20px}#savedGarminAssignments p{overflow-wrap:anywhere}

.saved-load-details{border:2px solid #172b40;border-radius:8px;background:#fff;color:#142738;padding:12px;margin:12px 0}.saved-load-details p{margin:4px 0;font-size:16px}.load-ranking{border-top:2px solid #172b40;margin-top:20px;padding-top:12px}.load-ranking th button{min-height:48px}.load-ranking svg g:focus{outline:3px solid #172b40}
.sync-panel{margin:16px 0}.sync-panel button,#exportToComputer{min-height:64px;font-size:20px;font-weight:800;width:100%}.sync-panel p{font-size:16px;line-height:1.5}
.sync-notice{position:fixed;inset:0;z-index:9999;background:rgba(10,25,40,.75);display:grid;place-items:center;padding:22px}.sync-notice[hidden]{display:none}.sync-notice-card{background:#fff;color:#142f43;border-radius:16px;padding:26px;max-width:520px;width:100%;box-shadow:0 12px 45px #0006}.sync-notice-card h2{margin-top:0}.sync-notice-card .button{width:100%;min-height:60px}
.phone-connection-code{display:block;font:700 32px system-ui;letter-spacing:5px;padding:18px;background:#edf4f8;text-align:center;border:2px solid #175772;border-radius:9px;margin:12px 0}.sync-panel>button{margin-bottom:12px}.sync-notice-card button{margin-top:10px}
