/* Shoot Expert — Field Equipment Index. UI only; operational modules retain ownership of state. */
@font-face{font-family:"IBM Plex Sans";src:url("assets/fonts/ibm-plex-sans-400.ttf") format("truetype");font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("assets/fonts/ibm-plex-sans-600.ttf") format("truetype");font-style:normal;font-weight:500 600;font-display:swap}
@font-face{font-family:"IBM Plex Sans";src:url("assets/fonts/ibm-plex-sans-700.ttf") format("truetype");font-style:normal;font-weight:700 900;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("assets/fonts/barlow-condensed-600.ttf") format("truetype");font-style:normal;font-weight:500 600;font-display:swap}
@font-face{font-family:"Barlow Condensed";src:url("assets/fonts/barlow-condensed-700.ttf") format("truetype");font-style:normal;font-weight:700 900;font-display:swap}
:root{--ink:#172b25;--muted:#4e6058;--paper:#eceee7;--surface:#fbfcf7;--forest:#16392e;--forest-hover:#234d3e;--line:#bcc7bb;--ochre:#e2b657;--focus:#a66b13;--line-soft:#d8ded3;--radius:12px;font-family:"IBM Plex Sans",sans-serif;color:var(--ink);background:var(--paper);font-synthesis:none;accent-color:var(--forest);color-scheme:light;scrollbar-color:#7c9080 #e1e7dc}
body{background:var(--paper);line-height:1.5}button,input,select,textarea{font-family:inherit}button,a,input,select,textarea,summary{-webkit-tap-highlight-color:transparent}button,a,summary{touch-action:manipulation}button{font-weight:600}button:disabled{cursor:default;opacity:.5}a{color:var(--forest-hover);text-underline-offset:4px;text-decoration-thickness:1px}a:hover{text-decoration-thickness:2px}::selection{background:var(--ochre);color:var(--ink)}input,textarea{caret-color:var(--forest)}input::placeholder,textarea::placeholder{color:#617166;opacity:1}input,select,textarea{border-color:#899c8e;border-radius:6px;background:var(--surface);color:var(--ink);font-size:16px;min-height:46px;box-shadow:none}textarea{padding:12px;max-width:100%;line-height:1.5}input[type=checkbox],input[type=radio]{min-height:0;accent-color:var(--forest)}:is(button,a,input,select,textarea,summary):focus-visible{outline:3px solid var(--focus);outline-offset:3px}h1,h2,h3{font-family:"Barlow Condensed","IBM Plex Sans",sans-serif;letter-spacing:0;line-height:1.12;font-weight:700;text-wrap:balance}h1{font-size:42px}h2{font-size:29px}h3{font-size:23px}p,li{overflow-wrap:break-word}table{font-variant-numeric:tabular-nums}th{font-weight:600}button{transition:background-color 140ms ease-out,color 140ms ease-out,border-color 140ms ease-out}button:active:not(:disabled){transform:translateY(1px)}summary{min-height:44px;align-content:center}summary::marker{color:var(--forest)}
.shell{max-width:1120px;padding:0 28px}.view{max-width:790px;padding:22px 0 64px}.view>h1,.view h1{font-size:40px;margin-bottom:12px}.back,.all-tools{font-size:13px;letter-spacing:.025em;font-weight:600;min-height:44px;display:inline-flex;align-items:center;margin-bottom:14px;text-decoration:none}.back:hover,.all-tools:hover{text-decoration:underline}.view>.sub{max-width:68ch;color:var(--muted);font-size:15px;line-height:1.6}.panel{background:var(--surface);border-color:var(--line);border-radius:var(--radius);padding:22px;margin:20px 0}.panel h2{font-size:28px}.panel h3{font-size:23px}.panel p,.panel li{color:var(--muted);line-height:1.65}.panel .note{font-size:13px}.panel>.panel{background:transparent;border:0;border-top:1px solid var(--line);border-radius:0;padding:18px 0;margin-bottom:0}.note,.sub{color:var(--muted)}.note a{font-weight:600}.btn{border-radius:6px;background:var(--forest);color:#fff;min-height:46px;padding:11px 17px;font-weight:600;letter-spacing:.01em;border:1px solid transparent}.btn.secondary{background:#e1e7dc;color:var(--forest);border-color:transparent}.btn.secondary:hover{background:#d1ddcd}.btn:not(.secondary):hover{background:var(--forest-hover)}.actions{gap:8px 10px}.tabs button{border-radius:6px;background:var(--surface);border-color:var(--line);color:var(--forest)}.tabs button[aria-pressed=true]{background:var(--forest);border-color:var(--forest);color:#fff}.resource-list{border-color:var(--line);border-radius:var(--radius);background:var(--surface)}.resource-list a,.resource-list button{padding:17px 18px;border-color:var(--line-soft);color:var(--forest)}.resource-list a:hover,.resource-list button:hover{background:#e7ede3}.support{background:#e1e7dc;border-radius:var(--radius)}.timer,.aft-run-time,.cft-time,.cft-shared-clock,.whtr-number,.result{font-family:"Barlow Condensed",sans-serif;font-variant-numeric:tabular-nums;letter-spacing:.005em;font-weight:600}.timer-ms{color:var(--muted)}.timer{font-size:72px;line-height:1.05}.count{font-variant-numeric:tabular-nums}.skip-link{background:var(--forest);border-radius:6px;z-index:100}details{scroll-margin-top:20px}details[open]>summary{margin-bottom:8px}.form-grid{gap:16px}.form-grid label{font-size:13px}.form-grid input,.form-grid select{margin-top:6px}hr{border:0;border-top:1px solid var(--line)}
/* The home is an equipment index, with direct tools and no promotional hero. */
.hero{padding:38px 0 25px;display:grid;grid-template-columns:1fr minmax(240px,350px);gap:20px 40px;align-items:end;border-bottom:2px solid var(--forest)}.hero h1{font-family:"Barlow Condensed",sans-serif;font-size:64px;line-height:.98;letter-spacing:0;text-transform:uppercase;margin:0;max-width:600px;color:var(--forest)}.hero .note{grid-column:1;margin:0}.tool-search{position:relative;grid-column:2;grid-row:1 / span 2;align-self:end}.tool-search-label{font-size:12px;font-weight:600;display:block;margin:0 0 7px;color:var(--muted)}.hero .tool-search input{width:100%;max-width:none;margin:0;background:var(--surface);min-height:48px;border:1px solid #7c9080;border-radius:6px;padding:12px 42px 12px 14px}.search-icon{position:absolute;right:13px;bottom:14px;pointer-events:none;color:var(--forest)}.tool-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:26px 30px;margin:28px 0 0}.tool-group{min-width:0}.tool-group:first-child{grid-column:1/-1}.tool-group h2{font-family:"Barlow Condensed",sans-serif;font-size:25px;font-weight:600;margin:0 0 10px;color:var(--forest);letter-spacing:.025em}.tool-group .tool-grid{display:grid;grid-template-columns:1fr;gap:0;border-top:1px solid var(--line)}.tool-group:first-child .tool-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border:0}.tool{position:relative;display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:14px;min-height:76px;padding:15px 2px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent;color:var(--ink);text-decoration:none;transition:background-color 140ms ease-out,color 140ms ease-out}.tool strong{font-size:16px;line-height:1.25;font-weight:600;min-width:0;flex:1}.tool-icon{width:25px;height:25px;flex:none;color:var(--forest);stroke-width:1.6}.tool .tile-arrow{width:18px;height:18px;color:var(--forest);flex:none}.tool-group:first-child .tool{min-height:114px;padding:19px;background:var(--forest);color:#fff;border:0;border-radius:8px}.tool-group:first-child .tool-icon,.tool-group:first-child .tile-arrow{color:var(--ochre)}.tool-group:first-child .tool strong{font-size:19px;max-width:150px}.tool-group:first-child .tool:last-child{background:#dce5d5;color:var(--forest)}.tool-group:first-child .tool:last-child .tool-icon,.tool-group:first-child .tool:last-child .tile-arrow{color:var(--forest)}.tool-group .tool:is([href="#ols-pay"],[href="#land-navigation"],[href="#convoy"],[href="#promotion"],[href="#leader-pme"],[href="#first-aid"],[href="#weapons"],[href="#pmcs"]){background:transparent;border-color:var(--line)}.tool:hover{background:#e1e7dc;border-color:var(--line);color:var(--forest)}.tool-group:first-child .tool:hover{background:var(--forest-hover);color:white}.tool-group:first-child .tool:last-child:hover{background:#cbdac3;color:var(--forest)}.tool:active{background:#d1ddcd}.tool-group[hidden],.tool[hidden]{display:none}#tool-search-status{font-size:14px;margin:18px 0 30px}.home-view{padding-bottom:20px}
/* Fitness grading keeps the compact controls and durable roster behavior. */
.aft-view,.cft-view{padding-top:12px}.aft-title-row h1,.cft-title-row h1{font-family:"Barlow Condensed",sans-serif;font-size:32px;line-height:1.08}.aft-title-row{margin:0 0 12px}.cft-title-row{margin-bottom:8px}.aft-title-row .aft-brief-link,.cft-instructions{font-size:12px;color:var(--forest)}.aft-profiles{padding:10px 12px;margin:12px 0}.aft-roster-heading h2{font-family:"IBM Plex Sans",sans-serif;font-size:14px;font-weight:600}.aft-person-row,.aft-person-row.aft-person-active{min-height:64px;padding-left:12px;border-radius:0}.aft-person-row.aft-person-active{background:#dfe9db;box-shadow:inset 0 0 0 1px var(--forest);border-radius:6px}.aft-person-select{min-height:64px}.aft-person-select .aft-person-identity strong{font-size:14px}.aft-person-select .aft-person-identity small{font-size:11px;color:var(--muted)}.aft-person-row .aft-person-select>.aft-person-limits{font-size:12px}.aft-standards>div,.aft-modes{background:#dce3d7;border-color:var(--line);border-radius:8px}.aft-standards>div:before,.aft-modes:before{background:var(--forest);border-radius:5px}.aft-standards button,.aft-modes button{border-radius:5px;color:var(--forest);font-weight:600}.aft-standards button[aria-pressed=true],.aft-modes button[aria-pressed=true]{color:white}.aft-settings .aft-standards button{font-size:12px}.aft-frozen{background:var(--paper)}.aft-frozen .aft-tabs{background:var(--forest);border:0;box-shadow:none;max-width:850px;gap:3px;padding-top:8px;padding-inline:10px}.aft-frozen .aft-tabs button{background:transparent;color:#e3ebde;border:0;border-radius:5px;font-size:11px}.aft-frozen .aft-tabs button[aria-selected=true],.aft-frozen .aft-tabs button[aria-pressed=true]{background:var(--ochre);color:#263122}.aft-tabs .aft-event-icon{width:20px;height:20px}.aft-selected-summary{background:#dfe9db;border:1px solid var(--forest);border-radius:6px;color:var(--ink)}.aft-run,.aft-settings{border-radius:var(--radius)}.aft-run .timer,.aft-plank-iteration>.timer{font-size:54px}.aft-run-person-controls .aft-run-time{font-size:27px;line-height:1}.aft-run-person-controls .btn{font-size:12px;border-radius:5px}.aft-run-person{padding:13px 0;grid-template-columns:minmax(0,1fr) 160px}.aft-run-person-heading strong{font-size:14px}.aft-run-person-heading>span,.aft-run-person-heading small{font-size:11px;color:var(--muted)}.aft-guide h2{font-size:29px}.aft-guide h3{font-size:23px}.aft-guide-rule{border-left:0;border-top:2px solid var(--forest);border-radius:0;background:#e1e7dc}.aft-results-table{font-variant-numeric:tabular-nums}.aft-results-table th{font-size:12px;font-weight:600}.aft-results-table td{font-size:14px}.aft-result-soldier h3{font-size:25px}.aft-result-soldier{padding:22px 0}.aft-record-page{max-width:740px;padding:28px 18px}.aft-record-page h1{font-size:38px}.aft-record-page>p{max-width:65ch}.cft-roster{padding:14px}.cft-roster-heading h2{font-family:"IBM Plex Sans",sans-serif;font-size:15px}.cft-roster-heading>span{font-size:12px}.cft-timing-header{gap:14px;padding:14px 0 12px;border-bottom:1px solid var(--line)}.cft-timing-header .cft-shared-clock{font-size:48px;line-height:1}.cft-time{font-size:24px;line-height:1;letter-spacing:.015em}.cft-soldier{min-height:70px;padding:10px 0;grid-template-columns:minmax(0,1fr) 100px 70px;gap:3px 10px}.cft-soldier-name{font-size:15px;padding-left:0}.cft-soldier-name strong{font-weight:600}.cft-soldier input{border-radius:5px;padding:8px;font-size:16px}.cft-actions>.btn{font-weight:600;font-size:15px;min-height:46px}.cft-complete{font-family:"IBM Plex Sans",sans-serif;font-size:12px;font-weight:600}.cft-confirm{border-radius:8px}.cft-sequence{padding-left:22px}.cft-help summary{min-height:44px}.cft-soldiers{margin:4px 0 12px}
/* Reference tools and workbench share typography, input surfaces and selection. */
.pmcs-model{border-radius:10px;border-color:var(--line);background:var(--surface)}.pmcs-model-copy{padding:17px}.pmcs-model h2{font-size:29px}.pmcs-model p{color:var(--muted)}.pmcs-model span{color:var(--forest)}.pmcs-model.pmcs-needs-tm{border:1px solid #b58a35;background:#fbf5e6}.pmcs-model>img{background:#e1e7dc}.pmcs-photo img{border-radius:8px;background:#e1e7dc}.pmcs-model:hover{border-color:var(--forest)}.pmcs-phases,.m1078-progress{background:var(--paper)}.pmcs-phases button{border-radius:6px;font-size:14px}.pmcs-phases button[aria-pressed=true]{background:var(--forest);color:white;border-color:var(--forest)}.pmcs-interval-title{font-size:28px}.m1078-section{border-radius:10px;border-color:var(--line)}.m1078-section>summary{background:#e1e7dc;font-family:"Barlow Condensed",sans-serif;font-size:25px}.m1078-item{background:var(--surface)}.m1078-item.is-checked{background:#e4eddf}.m1078-check strong{font-weight:600}.m1078-source-safety,.m1078-criteria{border-left:0;border-top:2px solid #a66b13;border-radius:0}.m1078-criteria{border-top-color:#9c3029}.m1078-source-safety{background:#f2eddf}.m1078-task-heading h2,.m1078-focused-task h2{font-size:29px}.m1078-identity-locked{background:#dfe9db}.pmcs-pending-badge{background:#f3ddb0;color:#5d3b05}.radio-card,.packing-item,.convoy-item{border-color:var(--line)}.radio-controls,.radio-mode,.radio-steps{border-radius:8px}.radio-view h2,.packing-view h2,.landnav-view h2,.convoy-view h2,.promotion-view h2,.support-view h2,.pay-view h2,.tricare-view h2,.retirement-view h2,.tsp-view h2,.firstaid-view h2{font-size:28px}.radio-view h3,.packing-view h3,.landnav-view h3,.convoy-view h3,.promotion-view h3,.support-view h3,.pay-view h3,.tricare-view h3,.retirement-view h3,.tsp-view h3,.firstaid-view h3{font-size:23px}.whtr-number{font-size:68px}.whtr-result{border-radius:8px}.whtr-result p{color:inherit}.smart-card{border-color:var(--line)}
/* IWQ is its own document but speaks the same application language. */
.app{max-width:790px;background:var(--paper);box-shadow:none}.app main{padding:20px 24px 30px}.iwq-heading{padding:20px 24px!important;background:var(--forest)!important;color:#fff;border-bottom:0!important}.iwq-heading h1{font-family:"Barlow Condensed",sans-serif;font-size:46px!important;letter-spacing:.01em!important}.iwq-heading .all-tools{color:#e2ebdd!important;margin-bottom:8px}.app header{background:var(--surface);border-color:var(--line);padding:22px 24px}.app h2{font-family:"Barlow Condensed",sans-serif;font-size:34px;letter-spacing:0;line-height:1.12}.app h3{font-family:"Barlow Condensed",sans-serif;font-size:24px;letter-spacing:0}.app .card,.app .position{background:var(--surface);border-color:var(--line);border-radius:10px}.app .position{padding:17px}.app .card p,.app .intro{color:var(--muted)}.app .section-label,.app .optic-label{font-size:11px;color:var(--muted)}.app .notice,.app .group-gate{border-left:0;border-top:2px solid var(--forest);border-radius:0;background:#e1e7dc;color:var(--ink)}.app nav{background:var(--forest);max-width:790px;backdrop-filter:none;border:0;padding-top:8px}.app nav button{color:#d0ddcc;font-family:"IBM Plex Sans",sans-serif;font-size:11px;border-radius:5px}.app nav button[aria-current=page]{background:var(--ochre);color:#243122}.app .stat strong,.app .standard>strong{font-family:"Barlow Condensed",sans-serif;letter-spacing:0;font-variant-numeric:tabular-nums}.app .standard-6{background:var(--forest);border-color:var(--forest)}.app .iwq-references{padding-inline:24px}.app .target-dialog{background:var(--forest)}.app .back{padding-bottom:0}.app .iv-section>h2{font-size:29px}.app .iv-title h2{font-size:36px}.app :is(.card,.standard,.notice,.group-gate) p{color:inherit}.app .skip-link{z-index:100}.app .target-open{border-radius:8px}.app .target-open>span{background:var(--forest)}
@media(hover:hover) and (pointer:fine){.tool:hover .tile-arrow{transform:translateX(3px)}.tile-arrow{transition:transform 140ms ease-out}.btn:hover{filter:none}}
@media(max-width:650px){.shell{padding:0 16px}.hero{padding:26px 0 20px;display:block}.hero h1{font-size:52px}.hero .note{margin-top:10px}.tool-search{margin-top:22px}.hero .tool-search input{min-height:48px}.tool-search-label{font-size:12px;margin-bottom:6px}.tool-groups{grid-template-columns:1fr;gap:25px;margin-top:24px}.tool-group:first-child{grid-column:auto}.tool-group h2{font-size:24px;margin-bottom:8px}.tool-group .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 18px}.tool-group:first-child .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tool{min-height:78px;padding:13px 0;gap:9px}.tool strong{font-size:14px}.tool-icon{width:23px;height:23px}.tool .tile-arrow{width:16px;height:16px}.tool-group:first-child .tool{min-height:110px;padding:15px;display:grid;grid-template-columns:1fr auto;gap:10px}.tool-group:first-child .tool .tool-icon{grid-column:1;grid-row:1;width:24px;height:24px}.tool-group:first-child .tool .tile-arrow{grid-column:2;grid-row:1}.tool-group:first-child .tool strong{grid-column:1/-1;font-size:17px;max-width:150px}.tool-group:first-child .tool:last-child{grid-column:1/-1;min-height:68px;display:flex;gap:12px}.tool-group:first-child .tool:last-child strong{max-width:none;flex:1;font-size:16px}.view{padding-top:12px}.view>h1,.view h1{font-size:36px}.panel{padding:18px;margin:16px 0}.panel h2{font-size:27px}.panel h3{font-size:23px}.view>.sub{font-size:14px}.back{margin-bottom:10px}.aft-title-row h1,.cft-title-row h1{font-size:29px}.aft-title-row .aft-brief-link,.cft-instructions{font-size:11px}.aft-title-row{gap:6px}.aft-profiles{padding:9px 10px;margin:10px 0}.aft-view .aft-settings{padding:12px}.aft-run{padding:12px}.aft-run-person{grid-template-columns:minmax(0,1fr) 154px;gap:3px 8px}.aft-run-person-controls .aft-run-time{font-size:25px}.aft-run-person-heading strong{font-size:13px}.aft-run-person-controls .btn{min-width:56px;padding-inline:4px}.aft-run-person-heading>span,.aft-run-person-heading small{font-size:10px}.aft-standards button{font-size:12px}.cft-roster{padding:12px}.cft-timing-header .cft-shared-clock{font-size:43px}.cft-soldier{grid-template-columns:minmax(0,1fr) 75px 59px;gap:3px 7px;min-height:68px}.cft-time{font-size:23px}.cft-soldier-name{font-size:14px}.cft-complete{font-size:11px}.cft-actions>.btn{font-size:14px}.cft-title-row{gap:6px}.cft-instructions{max-width:110px;text-align:right}.pmcs-model h2{font-size:26px}.pmcs-model-copy{padding:15px}.m1078-section>summary{font-size:23px}.app main{padding:20px 16px 28px}.iwq-heading{padding:15px 16px!important}.iwq-heading h1{font-size:40px!important}.app header{padding:20px 16px}.app .iwq-references{padding-inline:16px}.app h2{font-size:32px}.app .iv-title h2{font-size:32px}.app .group-card h3{font-size:19px}.app .group-card p{font-size:13px}.app .group-card{border-radius:8px}.app nav{padding-inline:6px}}
@media(max-width:370px){.shell{padding:0 12px}.hero h1{font-size:47px}.tool-group .tool-grid{gap:0 12px}.tool-icon{width:20px;height:20px}.tool strong{font-size:13px}.tool{gap:7px}.cft-soldier{grid-template-columns:minmax(0,1fr) 70px 55px;gap:3px 5px}.cft-time{font-size:21px}.aft-run-person{grid-template-columns:minmax(0,1fr) 142px}.aft-run-person-controls .aft-run-time{font-size:23px}.aft-title-row h1,.cft-title-row h1{font-size:26px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
[hidden]{display:none!important}
/* Semantic result surfaces override generic panels, including their direct copy. */
.ols-view .ols-total{background:var(--forest);color:#fff;border-color:var(--forest)}.ols-total h2,.ols-total p,.ols-total li,.ols-total .note{color:inherit}.ols-total>strong{font-family:"Barlow Condensed",sans-serif;letter-spacing:0;font-weight:600;font-size:52px}.ols-view .panel h2{font-family:"IBM Plex Sans",sans-serif;font-size:14px;line-height:1.4;font-weight:600}.pay-amount,.pay-checks dd,.tsp-total,.retirement-stack strong{font-family:"Barlow Condensed",sans-serif;letter-spacing:0;font-variant-numeric:tabular-nums}.panel .whtr-result p{color:inherit}.m1078-task-mode .m1078-criteria,.m1078-task-mode .m1078-criteria p,.m1078-task-mode .m1078-criteria li{color:#a32020}.firstaid-alert p,.firstaid-alert li,.firstaid-danger p,.firstaid-danger li{color:inherit}.cft-view .cft-pass{color:#275435}.cft-view .cft-over,.cft-view .cft-error{color:#9b342c}.panel .pay-error,.panel .pmcs-error,.panel .whtr-error{color:#9c3029}.aft-view{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}.aft-view .aft-roster-heading h2,.cft-view .cft-roster-heading h2{font-family:"IBM Plex Sans",sans-serif;font-size:15px;font-weight:600;line-height:1.3}.aft-view .aft-profiles>.note{font-size:11px}.pmcs-model .pmcs-vehicle-graphic{padding:10px 0 10px 12px}.pmcs-model .pmcs-vehicle-graphic figcaption{font-size:11px;line-height:1.4;margin:6px 0 0;color:var(--muted)}.pmcs-model:has(.pmcs-vehicle-graphic){gap:8px}.pmcs-model .pmcs-model-copy{padding-left:12px}.pmcs-view>.pmcs-vehicle-graphic{padding:16px;background:var(--surface);border-radius:10px}.pmcs-view>.pmcs-vehicle-graphic figcaption{margin-top:12px;max-width:65ch}.pmcs-vehicle-graphic img{mix-blend-mode:multiply}.m1078-task-mode .m1078-criteria{background:transparent;border:0}.m1078-source-safety p{color:inherit}
/* Lap actions span the roster row so the action and count stay on one line. */
.aft-run-person .aft-lap-controls{grid-column:1/-1;gap:12px;margin-top:7px}.aft-lap-controls button{min-width:100px;white-space:nowrap;padding-inline:12px}.aft-lap-controls>span{font-size:12px}
