#precision-app{max-width:800px;margin:0 auto;padding:28px 0 48px}#precision-app .back-link{margin-bottom:20px}#precision-app h1{font-size:clamp(30px,5vw,44px)}#precision-app input,#precision-app select,#precision-app button{font:inherit;color:var(--text);background:#192119;border:1px solid #617252;border-radius:9px;min-height:44px;padding:10px;max-width:100%}#precision-app button{cursor:pointer}#precision-app button:hover{background:#303e29}#precision-app :focus-visible{outline:3px solid var(--green);outline-offset:3px}#precision-app label{display:flex;flex-direction:column;gap:6px;color:var(--muted);min-width:0}#precision-app details,.precision-shooter{background:#1c241b;border:1px solid #46513a;border-radius:16px;padding:16px;margin-bottom:16px}#precision-app summary{cursor:pointer;font-weight:650;min-height:44px;padding:8px 0}#precision-app p{color:var(--muted);line-height:1.5}.precision-fields{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:8px 4px}.precision-fields .full{grid-column:1/-1}#precision-add{display:flex;gap:10px;align-items:end;flex-wrap:wrap;margin:20px 0}#precision-add label{flex:1;min-width:140px}#precision-count{width:7ch;flex-shrink:0;padding-bottom:12px}.precision-actions{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:12px 0}.precision-actions h2{font-size:20px}.precision-shooter header{display:flex;align-items:center;gap:10px}.precision-shooter header input{flex:1;min-width:0;font-weight:650}.precision-shooter output{display:block;margin:14px 0;color:var(--green);font-weight:650}.precision-zones{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.precision-chips{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}#precision-app .precision-chips .counted{background:#354e30;border-color:var(--green)}.precision-entry{display:flex;gap:8px;align-items:end;flex-wrap:wrap}.precision-entry label{flex:1}.precision-details{display:grid;grid-template-rows:0fr;transition:grid-template-rows 350ms ease-in-out}.precision-details.open{grid-template-rows:1fr}.precision-details>div{overflow:hidden;min-height:0}.precision-scroll{overflow-x:auto}#precision-app table{border-collapse:collapse;width:100%;margin:12px 0;white-space:nowrap}#precision-app th,#precision-app td{padding:9px;border:1px solid #46513a;text-align:left}#precision-app dialog{color:var(--text);background:var(--bg);border:1px solid #617252;border-radius:16px;width:min(950px,95vw);max-height:90svh}#precision-app dialog::backdrop{background:#000a}#precision-app button:disabled{opacity:.5;cursor:default}@media(max-width:480px){.precision-fields{grid-template-columns:1fr}.precision-zones{grid-template-columns:repeat(3,1fr)}}@media(prefers-reduced-motion:reduce){.precision-details{transition:none}}
#precision-app [hidden]{display:none!important}
#precision-app>.lead{margin-bottom:24px}

#precision-settings{background:#1c241b;border:1px solid #46513a;border-radius:16px;padding:16px;margin-bottom:16px}
.precision-settings-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
.precision-settings-heading h2{font-size:17px;margin:0}
#precision-app .precision-expand{width:46px;min-width:46px;height:46px;min-height:46px;flex-shrink:0;display:grid;place-items:center;padding:0;background:#ffffff08;border-color:#617253;color:var(--green);border-radius:9px}
.precision-expand svg{width:22px;height:22px;transition:transform 800ms ease-in-out}
.precision-expand[aria-expanded="true"] svg{transform:rotate(180deg)}
#precision-app .precision-expand[aria-expanded="true"]{background:#c1d99a18;border-color:var(--green)}
#precision-app button{font-size:1rem}
#precision-app .precision-remove,#precision-app #precision-delete-all{border-color:#77534e;color:#edc5bd;background:#ffffff08;padding:10px 12px}
.precision-shooter .precision-actions{flex-wrap:wrap}
.precision-reset-actions{display:flex;gap:8px;margin-left:auto;max-width:100%}
#precision-app .precision-reset-actions button{padding:10px 8px}
@media(hover:hover){#precision-app .precision-expand:hover{background:#c1d99a22;border-color:var(--green)}}
@media(prefers-reduced-motion:reduce){.precision-expand svg{transition:none}}

#precision-shooters{display:flex;flex-direction:column;gap:16px}

#precision-shooters .precision-shooter{margin-bottom:0;position:relative}
#precision-app .drag-handle{width:44px;min-width:44px;padding:0;border:0;background:transparent;color:var(--muted);font-size:26px;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}
.precision-shooter .shooter-index{color:var(--green);font:14px ui-monospace,monospace}
#precision-shooters.sorting-list .dragging{z-index:20;border-color:var(--green);box-shadow:0 16px 38px #0008}
.sorting-shooters{user-select:none;-webkit-user-select:none;cursor:grabbing}
#precision-app .sorting-list .drag-handle{cursor:grabbing}
@media(max-width:480px){.precision-shooter header{gap:6px}}

/* Keep focus outlines inside the animated clipping area, including field labels. */
.precision-details>div{padding-inline:6px}
.precision-details.open>div{padding-block:6px}
.precision-zone-scroll{padding:6px}
/* Fit touch targets to the available card width, with at most six columns. */
.precision-zones{grid-template-columns:repeat(auto-fit,minmax(min(100%,max(88px,calc((100% - 40px)/6))),1fr));gap:8px}
#precision-app .precision-zones button{min-width:0;padding:10px 6px;min-height:52px;touch-action:manipulation}

.precision-report-metadata{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 24px;margin-bottom:24px}
.precision-metadata-label{font-size:12px;color:var(--muted);margin-bottom:6px}
.precision-metadata-value{font-size:14px;color:var(--text);line-height:1.5;overflow-wrap:anywhere}
@media(max-width:699px){.precision-report-metadata{grid-template-columns:repeat(2,minmax(0,1fr))}}
.precision-person-result{margin-top:24px}
.precision-person-result h3{font-size:20px;margin-bottom:8px}
#precision-app .precision-shot-table{width:auto;min-width:100%;font-variant-numeric:tabular-nums}
#precision-app .precision-shot-table th,#precision-app .precision-shot-table td{padding:6px 8px;text-align:center}
#precision-app .precision-shot-table th:first-child,#precision-app .precision-shot-table td:first-child{width:1%;text-align:left}
.precision-best{background:#354e30}
.precision-worst{background:#593832}
#precision-app .precision-shot-table .precision-total-spacer{border:0;background:transparent}
.precision-score-total{font-weight:700}

#precision-app #precision-dialog{width:min(1100px,calc(100% - 24px));max-height:calc(100dvh - 24px);padding:20px;background:#172019}
.precision-report-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.precision-report-toolbar h2{font-size:22px;margin:0;flex:1 1 220px}
.precision-report-buttons{display:flex;align-items:center;gap:16px;margin-left:auto}
.precision-result-controls{display:flex;align-items:flex-end;justify-content:space-between;flex-wrap:wrap;gap:16px;margin:20px 0 28px}
.precision-control-label{font-size:14px;color:var(--muted);margin-bottom:6px}
.precision-report-type{display:flex;padding:4px;border:1px solid #51604b;border-radius:14px;gap:4px}
#precision-app .precision-report-type button{border-color:transparent;background:transparent}
#precision-app .precision-report-type button[aria-pressed="true"]{background:#354b32;border-color:#9ab881}
#precision-app #precision-create-pdf{margin-left:auto;background:var(--green);color:#172019;border-color:var(--green);font-weight:700;padding:12px 16px}
#precision-app button[aria-disabled="true"]{cursor:default}
#precision-report>h2{font-size:clamp(26px,4vw,32px);line-height:1.2;margin:0 0 22px;overflow-wrap:anywhere}
@media(max-width:480px){#precision-app #precision-dialog{padding:14px}.precision-report-toolbar h2{font-size:18px}.precision-report-buttons{gap:8px}}

#precision-app .precision-competition-table th,#precision-app .precision-competition-table td{padding:6px 8px;font-variant-numeric:tabular-nums}
#precision-app .precision-competition-table th:first-child,#precision-app .precision-competition-table td:first-child{width:1%}

.precision-pdf-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:flex-end;margin-left:auto}
#precision-download-pdf{display:inline-flex;align-items:center;font:inherit;font-size:1rem;min-height:44px;padding:10px;border:1px solid #617252;border-radius:9px;background:#192119;color:var(--text)}
#precision-pdf-message{text-align:right}

@media(max-width:480px){#precision-settings{padding:12px}}
#precision-app .precision-save-note,#precision-app .precision-reorder-note{font-size:12px;color:var(--muted);line-height:1.6}
#precision-app .precision-save-note{margin:14px 0 13px}
#precision-app .precision-reorder-note{margin:0 0 14px}

#precision-app #precision-save-error{color:#ffc1b9;font-size:13px;line-height:1.5;margin-bottom:0}
#precision-app #precision-settings label{font-size:14px;font-weight:400;color:var(--text)}
#precision-app #precision-add label{font-weight:600}
#precision-settings input,#precision-settings select{font-size:16px;font-weight:400}
#precision-app #precision-settings label:has([data-setting="mode"]),#precision-app #precision-settings label:has([data-setting="count"]),#precision-app #precision-settings label:has([data-setting="max"]){line-height:20px}
@media(max-width:480px){#precision-app #precision-settings label:has([data-setting="mode"]),#precision-app #precision-settings label:has([data-setting="count"]),#precision-app #precision-settings label:has([data-setting="max"]){font-size:12px;line-height:18px}}
#precision-add{display:grid;grid-template-columns:minmax(0,1fr) auto 64px;gap:8px;align-items:end}
#precision-add label{min-width:0}
#precision-app #precision-add>button{font-size:16px;font-weight:650;min-height:48px;padding:12px 16px;background:var(--green);color:#172015;border-color:var(--line)}
#precision-count{width:100%;max-width:none;min-width:0;height:48px;min-height:48px;padding:0;display:flex;align-items:center;justify-content:center;text-align:center;font-size:12px;color:var(--muted);white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
@media(max-width:699px){#precision-app #precision-add>button{font-size:12px;padding:10px 8px}}
@media(max-width:480px){#precision-add{grid-template-columns:minmax(0,1fr) auto 48px}#precision-app #precision-add>button{font-size:11px;padding:8px 5px}#precision-count{font-size:11px}}
#precision-app details.precision-help{margin:16px 0;padding:0;border:0;border-radius:0;background:transparent;color:var(--muted);font-size:14px;line-height:1.7}
#precision-app .precision-help summary{min-height:48px;padding:0;align-content:center;font-weight:400;color:var(--green)}
#precision-app .precision-help p{margin:8px 0;line-height:1.7}
#precision-app .precision-help ol{padding-left:24px;margin:8px 0}
#precision-app .precision-help li+li{margin-top:10px}
@media(max-width:699px){.precision-entry{display:grid;grid-template-columns:minmax(0,1fr) auto auto}.precision-entry>button:last-child{grid-column:1/-1;justify-self:end}.precision-entry input{width:100%;min-width:0}}
.precision-test-row{display:flex;align-items:center;gap:16px}
.precision-test-row>p{flex:1;min-width:0}
#precision-app #precision-test-data{display:block;flex-shrink:0;margin:0 0 0 auto;background:#ffffff08;border:1px solid #617253;color:var(--text);opacity:1;font-size:12px;padding:10px 12px;min-height:44px}
@media(max-width:699px){#precision-app #precision-test-data{padding:10px 8px}}
