.login[data-v-57b0d7f0]{padding-top:8vh}.hero[data-v-57b0d7f0]{text-align:center;margin-bottom:20px}.hero img[data-v-57b0d7f0]{border-radius:16px;margin-bottom:10px}.hero p[data-v-57b0d7f0]{margin:6px 0 0}.seg[data-v-57b0d7f0]{width:100%}.seg button[data-v-57b0d7f0]{flex:1}.start h1[data-v-a4fdbdff]{margin-bottom:8px}.start p[data-v-a4fdbdff]{margin:0 0 16px}.custom[data-v-a4fdbdff]{margin-top:12px}.custom .input[data-v-a4fdbdff]{flex:1}.stepper .btn[data-v-a4fdbdff]{min-width:48px;padding:0;font-size:1.3rem}.stepper-value[data-v-a4fdbdff]{min-width:2ch;text-align:center;font-weight:800;font-size:1.2rem}.made-title[data-v-a4fdbdff]{margin:18px 0 10px}.make-grid[data-v-a4fdbdff]{display:grid;grid-template-columns:repeat(auto-fill,minmax(56px,1fr));gap:8px}.make-grid.dense[data-v-a4fdbdff]{grid-template-columns:repeat(auto-fill,minmax(44px,1fr))}.make-btn[data-v-a4fdbdff]{aspect-ratio:1;min-height:48px;border:1px solid var(--border);border-radius:14px;background:var(--surface-2);font-size:1.25rem;font-weight:800;font-variant-numeric:tabular-nums;cursor:pointer;touch-action:manipulation}.make-btn[data-v-a4fdbdff]:active{transform:scale(.96)}.make-btn.perfect[data-v-a4fdbdff]{background:var(--accent-soft);border-color:var(--accent)}.set-dist[data-v-a4fdbdff]{flex:1;font-weight:600}.set-pct[data-v-a4fdbdff]{width:3.5em;text-align:right}.session[data-v-6e9aeec8]{padding:0;overflow:hidden}.session-head[data-v-6e9aeec8]{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;border:0;background:transparent;text-align:left;cursor:pointer}.session-date[data-v-6e9aeec8]{font-weight:700}.session-score[data-v-6e9aeec8]{text-align:right}.pct[data-v-6e9aeec8]{font-size:1.4rem;font-weight:800;font-variant-numeric:tabular-nums}.session-body[data-v-6e9aeec8]{padding:0 16px 12px;border-top:1px solid var(--border)}.grow[data-v-6e9aeec8]{flex:1;font-weight:600}.pct-col[data-v-6e9aeec8]{width:3.5em;text-align:right}.notes[data-v-6e9aeec8]{white-space:pre-wrap;color:var(--text-2)}.chart[data-v-3be7f7e9]{position:relative;width:100%}svg[data-v-3be7f7e9]{display:block}.grid line[data-v-3be7f7e9]{stroke:var(--grid);stroke-width:1}.grid text[data-v-3be7f7e9],.xlabel[data-v-3be7f7e9]{fill:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums}.baseline[data-v-3be7f7e9]{stroke:var(--text-3);stroke-width:1}.bar path[data-v-3be7f7e9]{fill:var(--series-1);transition:filter .1s}.bar.on path[data-v-3be7f7e9]{filter:brightness(1.15)}.bar[data-v-3be7f7e9]:focus{outline:none}.bar:focus-visible path[data-v-3be7f7e9]{stroke:var(--text);stroke-width:2}.tooltip[data-v-3be7f7e9]{position:absolute;transform:translate(-50%,calc(-100% - 10px));pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 10px;box-shadow:var(--shadow);white-space:nowrap;font-size:.85rem}.tooltip strong[data-v-3be7f7e9]{font-size:1rem}.tip-sub[data-v-3be7f7e9]{color:var(--text-2)}.chart[data-v-14677535]{position:relative;width:100%}svg[data-v-14677535]{display:block;touch-action:pan-y}svg[data-v-14677535]:focus-visible{outline:3px solid var(--series-1);outline-offset:2px;border-radius:6px}.grid line[data-v-14677535]{stroke:var(--grid);stroke-width:1}.grid text[data-v-14677535],.xaxis text[data-v-14677535]{fill:var(--text-3);font-size:11px;font-variant-numeric:tabular-nums}.line[data-v-14677535]{fill:none;stroke:var(--series-1);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.dot[data-v-14677535]{fill:var(--series-1);stroke:var(--surface);stroke-width:2}.crosshair[data-v-14677535]{stroke:var(--text-3);stroke-width:1;stroke-dasharray:3 3}.tooltip[data-v-14677535]{position:absolute;transform:translate(-50%,calc(-100% - 12px));pointer-events:none;background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:6px 10px;box-shadow:var(--shadow);white-space:nowrap;font-size:.85rem}.tip-row[data-v-14677535]{display:flex;align-items:center;gap:6px;color:var(--text);font-size:1rem}.key[data-v-14677535]{width:12px;height:2px;background:var(--series-1);border-radius:1px}.tip-sub[data-v-14677535]{color:var(--text-2)}.filters[data-v-1793bac2]{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}.filters .seg[data-v-1793bac2]{width:100%}.filters .seg button[data-v-1793bac2]{flex:1;padding:8px 6px;font-size:.85rem}:root{color-scheme:light;--bg: #f4f5f1;--surface: #fcfcfb;--surface-2: #eceee8;--border: #dcdfd6;--text: #0b0b0b;--text-2: #52514e;--text-3: #7a7974;--accent: #14532d;--accent-ink: #ffffff;--accent-soft: #dcefe2;--danger: #b42318;--series-1: #2a78d6;--grid: #e4e5e0;--radius: 14px;--shadow: 0 1px 2px rgb(0 0 0 / .05), 0 4px 16px rgb(0 0 0 / .04);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px;line-height:1.45;-webkit-text-size-adjust:100%}@media(prefers-color-scheme:dark){:root{color-scheme:dark;--bg: #121211;--surface: #1a1a19;--surface-2: #252523;--border: #33332f;--text: #f0efec;--text-2: #c3c2b7;--text-3: #8f8e86;--accent: #4ade80;--accent-ink: #052e16;--accent-soft: #163322;--danger: #f97066;--series-1: #3987e5;--grid: #2b2b28}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit;color:inherit}h1,h2,h3{margin:0;line-height:1.2}h1{font-size:1.6rem}h2{font-size:1.1rem}.shell{min-height:100dvh}.content{max-width:560px;margin:0 auto;padding:16px 16px 32px}.has-nav .content{padding-bottom:calc(96px + env(safe-area-inset-bottom))}.topbar{position:sticky;top:0;z-index:5;display:flex;align-items:baseline;gap:10px;padding:calc(12px + env(safe-area-inset-top)) 20px 12px;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}.brand{font-weight:800;letter-spacing:.02em;color:var(--accent)}.topbar-title{color:var(--text-2)}.tabbar{position:fixed;inset:auto 0 0;z-index:5;display:grid;grid-template-columns:repeat(4,1fr);padding:6px 8px calc(6px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--border)}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 0;border-radius:10px;color:var(--text-3);text-decoration:none;font-size:.75rem;font-weight:600}.tab svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.tab.active{color:var(--accent);background:var(--accent-soft)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px;margin-bottom:14px}.card h2{margin-bottom:12px}.muted{color:var(--text-2)}.small{font-size:.85rem}.row{display:flex;align-items:center;gap:10px}.spread{justify-content:space-between}.stack>*+*{margin-top:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2);font-weight:650;cursor:pointer;touch-action:manipulation}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:transparent}.btn.danger{color:var(--danger)}.btn.block{width:100%}.btn.ghost{background:transparent}.btn:focus-visible,.chip:focus-visible,.make-btn:focus-visible,.tab:focus-visible,.seg button:focus-visible{outline:3px solid var(--series-1);outline-offset:2px}.field{display:block}.field span{display:block;font-size:.85rem;font-weight:600;color:var(--text-2);margin-bottom:6px}.input,textarea.input{width:100%;min-height:48px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}textarea.input{min-height:72px;resize:vertical}.input:focus{outline:2px solid var(--series-1);outline-offset:1px}.error{color:var(--danger);font-weight:600;margin:8px 0 0}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{min-width:56px;min-height:44px;padding:0 14px;border:1px solid var(--border);border-radius:999px;background:var(--surface);font-weight:650;cursor:pointer;touch-action:manipulation}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:transparent}.seg{display:inline-flex;padding:3px;gap:3px;background:var(--surface-2);border-radius:12px}.seg button{border:0;background:transparent;padding:8px 14px;border-radius:9px;font-weight:600;cursor:pointer;color:var(--text-2)}.seg button.on{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.big-number{font-size:2.4rem;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.tile .label{font-size:.78rem;font-weight:600;color:var(--text-2)}.tile .value{font-size:1.5rem;font-weight:800;font-variant-numeric:tabular-nums}.list{list-style:none;margin:0;padding:0}.list li{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border)}.list li:first-child{border-top:0}.num{font-variant-numeric:tabular-nums}table.data{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}table.data th,table.data td{text-align:right;padding:8px 6px;border-top:1px solid var(--border)}table.data th:first-child,table.data td:first-child{text-align:left}table.data th{font-size:.8rem;color:var(--text-2);font-weight:600;border-top:0}.empty{text-align:center;padding:28px 12px;color:var(--text-2)}.icon-btn{border:0;background:transparent;color:var(--text-3);width:40px;height:40px;border-radius:10px;cursor:pointer;font-size:1.2rem}.icon-btn:hover{background:var(--surface-2);color:var(--danger)}.toast{position:fixed;left:50%;bottom:calc(90px + env(safe-area-inset-bottom));transform:translate(-50%);background:var(--text);color:var(--bg);padding:10px 16px;border-radius:999px;font-weight:600;box-shadow:var(--shadow);z-index:10}
