:root{color-scheme:light;--paper: #f4f7fb;--ink: #142033;--muted: #526277;--line: #d5dde8;--blue: #12315c;--blue-ink: #ffffff;--target: #d4e6f8;--target-ring: #8eb6e0;--card: #ffffff;--danger: #8d2b2b;font-family:Segoe UI,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink)}button,a.button,input{touch-action:manipulation}button,.button{font:inherit;min-height:64px;border-radius:12px;border:2px solid var(--blue);background:var(--blue);color:var(--blue-ink);padding:.5rem 1rem;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}button.secondary,a.secondary{background:transparent;color:var(--blue)}button.ghost{background:var(--card);color:var(--ink);border-color:var(--line)}button.danger{background:transparent;color:var(--danger);border-color:var(--danger);min-height:48px}button:disabled{opacity:.45;cursor:not-allowed}:focus-visible{outline:3px solid var(--blue);outline-offset:2px}.shell{max-width:40rem;margin:0 auto;padding:max(1rem,env(safe-area-inset-top)) max(1rem,env(safe-area-inset-right)) max(2rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}.brand{display:flex;align-items:center;gap:.75rem;width:max-content;max-width:100%;margin:0 0 1rem;color:var(--ink);font-size:1.125rem;font-weight:700;line-height:1.2;text-decoration:none}.brand img,.tool-mark img{width:4rem;height:4rem;border-radius:1rem;flex:0 0 auto;display:block}.home-title{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.home-title img{width:auto;height:4rem;display:block}.home-title h1{margin:0}.tool-mark{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.tool-mark h2{margin:0}a.tool-card{display:block;color:inherit;text-decoration:none}a.tool-card p{margin-bottom:0}h1,h2,p{margin-top:0}h1{font-size:1.5rem;margin-bottom:.75rem}h2{font-size:1.25rem;margin-bottom:.25rem}.hint,.muted,.empty{color:var(--muted)}.cards{list-style:none;padding:0;margin:1rem 0 0}.card{background:var(--card);border:2px solid var(--line);border-radius:16px;padding:.75rem;margin-bottom:.75rem}.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.top{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;margin-bottom:1rem}.top a{color:var(--blue);font-weight:700;text-decoration:none}.label{font-weight:700;margin-bottom:.35rem}.clock-bar{padding-bottom:.75rem}.clock,.athlete-time,.num{font-variant-numeric:tabular-nums}.clock{font-size:4rem;line-height:1;font-weight:700;color:var(--blue);margin:.25rem 0 .75rem;letter-spacing:-.03em}.athlete-time{margin:0;font-size:1.5rem;font-weight:700;color:var(--blue);white-space:nowrap}.width,.actions,.add,.pos,.presets,.stepper,.cell,.athlete-head{display:flex;gap:.5rem}.width{margin-bottom:1rem}.width button{flex:1}.width button[aria-pressed=true],.pos button[aria-pressed=true],.presets button[aria-pressed=true]{background:var(--blue);color:var(--blue-ink);border-color:var(--blue)}.add{margin:1rem 0}.add input,input.session-name{flex:1;min-width:0;min-height:64px;font:inherit;font-size:1.125rem;padding:0 .75rem;border-radius:12px;border:2px solid var(--line);background:var(--card);color:var(--ink)}input.session-name{display:block;width:100%;margin:0 0 .75rem}.athlete-head{flex-wrap:wrap;justify-content:space-between;align-items:center;row-gap:.5rem}.athlete-title{display:flex;align-items:center;gap:.25rem;flex:1 1 auto;min-width:min-content}.athlete-title h2{margin-bottom:0}button.trash{flex:0 0 auto;width:3rem;height:3rem;min-width:3rem;min-height:3rem;padding:.45rem;border-color:transparent;background:transparent;color:var(--danger)}button.trash svg{width:1.5rem;height:1.5rem;display:block}.card-corner{display:flex;flex-direction:row;align-items:center;gap:.5rem;margin-left:auto}.presets,.pos{flex-wrap:wrap;margin-bottom:.5rem}thead button.col-sort{width:100%;min-width:0;min-height:64px;padding:.25rem 0;border:0;background:transparent;color:var(--ink);font-weight:700;justify-content:flex-start;gap:.35rem;white-space:nowrap}thead button.col-sort[aria-pressed=true]{color:var(--blue)}.presets button,.pos button,.letter{background:var(--card);color:var(--ink);border-color:var(--line)}.presets button{min-height:48px;min-width:64px}.range .pos button,.range .stepper button,.range .finish{min-height:64px;min-width:64px}.bouts{display:flex;flex-direction:column;gap:.75rem;margin-top:.75rem}.bout-row{display:flex;flex-direction:row;align-items:center;gap:.5rem;min-width:0}.hit-target{display:block;min-width:0}.bout-row .hit-target{flex:1 1 auto}button.bout-pos{flex:0 0 auto;width:3rem;min-width:3rem;padding:0;font-weight:700}.target{display:flex;flex-direction:row;align-items:center;gap:.35rem;min-width:0;width:100%}.plate-slot{flex:0 0 auto}.bouts .plate-slot{flex:1 1 0;min-width:0;max-width:4rem}button.plate{width:3.25rem;height:3.25rem;min-width:3.25rem;min-height:3.25rem;padding:0;border-radius:50%;border:2px solid var(--ink);background:var(--card);color:var(--ink);font-size:1.125rem;font-weight:700;font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 .28rem var(--card),inset 0 0 0 .48rem var(--line)}.bouts button.plate{display:block;width:100%;height:auto;aspect-ratio:1;min-width:0;min-height:0;font-size:1rem}button.plate.hit{background:var(--target);color:var(--ink);border-color:var(--target-ring);box-shadow:inset 0 0 0 .22rem var(--card),inset 0 0 0 .4rem var(--target-ring)}button.plate.miss{background:var(--ink);color:var(--blue-ink);border-color:var(--ink);box-shadow:none}button.plate.zero{box-shadow:none}button.plate.zero[aria-pressed=true]{background:var(--target);color:var(--ink);border-color:var(--target-ring)}button.plate[aria-pressed=true]{outline:3px solid var(--target-ring);outline-offset:2px}.letter{min-width:48px;min-height:48px;padding:.25rem}.cell{align-items:center}.cell .target{gap:.2rem}.cell button.plate{width:1.5rem;height:1.5rem;min-width:1.5rem;min-height:1.5rem;font-size:.8rem}textarea.export{display:block;width:100%;min-height:8rem;margin:.75rem 0 0;padding:.75rem;font:inherit;font-size:1rem;line-height:1.4;border-radius:12px;border:2px solid var(--line);background:var(--card);color:var(--ink);resize:vertical}.actions{flex-wrap:wrap;margin-top:1rem}.table-wrap{overflow-x:auto;border:2px solid var(--line);border-radius:12px;background:var(--card)}table{border-collapse:collapse;width:100%;min-width:36rem}th,td{text-align:left;padding:.5rem;border-bottom:1px solid var(--line);vertical-align:middle}.name-col{position:sticky;left:0;background:var(--card);z-index:1;min-width:7rem}thead .name-col{z-index:2}.num{white-space:nowrap;font-weight:700}
