body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}:root{--bg:oklch(98% 0.004 70);--bg-dim:oklch(96.5% 0.005 70);--surface:#fff;--ink:oklch(16% 0.01 70);--ink-soft:oklch(34% 0.008 70);--muted:oklch(52% 0.006 70);--faint:oklch(72% 0.005 70);--line:oklch(91% 0.005 70);--line-soft:oklch(94.5% 0.004 70);--t-x:oklch(94% 0.14 100);--t-x-ink:oklch(28% 0.10 80);--t-10:oklch(89% 0.17 95);--t-10-ink:oklch(28% 0.10 80);--t-9:oklch(80% 0.18 88);--t-9-ink:oklch(25% 0.10 75);--t-8:oklch(62% 0.22 25);--t-8-ink:#fff;--t-7:oklch(50% 0.20 25);--t-7-ink:#fff;--t-6:oklch(60% 0.16 245);--t-6-ink:#fff;--t-5:oklch(44% 0.16 245);--t-5-ink:#fff;--t-4:oklch(22% 0.005 70);--t-4-ink:#fff;--t-3:oklch(30% 0.005 70);--t-3-ink:#fff;--t-2:oklch(89% 0.005 70);--t-2-ink:var(--ink);--t-1:oklch(82% 0.005 70);--t-1-ink:var(--ink);--t-m:oklch(42% 0.16 315);--t-m-ink:#fff;--r-xs:6px;--r-sm:10px;--r-md:14px;--r-lg:20px;--r-pill:999px;--shadow-sm:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);--shadow-md:0 4px 16px -6px rgba(20,18,15,.1),0 2px 6px -2px rgba(20,18,15,.06);--shadow-lg:0 24px 48px -16px rgba(20,18,15,.18),0 8px 16px -8px rgba(20,18,15,.08);--shadow-press:0 1px 0 rgba(20,18,15,.04) inset,0 0 0 1px rgba(20,18,15,.06) inset;--ff-sans:"Geist",ui-sans-serif,system-ui,sans-serif;--ff-mono:"Geist Mono",ui-monospace,"JetBrains Mono",Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0}body{-webkit-font-feature-settings:"ss01","cv11";font-feature-settings:"ss01","cv11";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:oklch(98% .004 70);background:var(--bg);color:oklch(16% .01 70);color:var(--ink);font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-family:var(--ff-sans);font-size:15px;letter-spacing:-.005em;line-height:1.45;min-height:100vh;min-height:100svh;text-rendering:optimizeLegibility}.tabular{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mono{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-variant-numeric:tabular-nums}button{background:none;border:0;cursor:pointer;padding:0}button,input,select,textarea{color:inherit;font:inherit}.App{flex-direction:column;isolation:isolate;margin:0 auto;max-width:480px;min-height:100vh;min-height:100svh}.App,.app{display:flex;position:relative;width:100%}.app{flex:1 1;flex-direction:column;min-height:0;padding:calc(env(safe-area-inset-top, 0px) + 14px) 18px 0}.app-scroll{flex:1 1;margin:0 -18px;overflow-x:hidden;overflow-y:auto;padding-bottom:110px;padding-left:18px;padding-right:18px;scrollbar-width:none}.app-scroll::-webkit-scrollbar{display:none}.app-header{-webkit-animation:slide-up .5s ease forwards;animation:slide-up .5s ease forwards;justify-content:space-between;margin-bottom:22px}.app-header,.brand{align-items:center;display:flex}.brand{gap:10px}.brand-mark{background:radial-gradient(circle at 50% 50%,oklch(89% .17 95) 0 18%,oklch(80% .18 88) 18% 36%,oklch(62% .22 25) 36% 56%,oklch(60% .16 245) 56% 76%,oklch(16% .01 70) 76% 100%);background:radial-gradient(circle at 50% 50%,var(--t-10) 0 18%,var(--t-9) 18% 36%,var(--t-8) 36% 56%,var(--t-6) 56% 76%,var(--ink) 76% 100%);border-radius:999px;box-shadow:0 0 0 1px rgba(20,18,15,.08),inset 0 0 0 1px hsla(0,0%,100%,.4);height:28px;position:relative;width:28px}.brand-mark:after{background:oklch(16% .01 70);background:var(--ink);border-radius:999px;box-shadow:0 0 0 2px oklch(89% .17 95);box-shadow:0 0 0 2px var(--t-10);content:"";inset:11px;position:absolute}.brand-name{font-size:17px;font-weight:600;letter-spacing:-.02em}.brand-name em{color:oklch(52% .006 70);color:var(--muted);font-size:11px;font-style:normal;font-weight:400;letter-spacing:.12em;margin-left:6px;text-transform:uppercase;vertical-align:middle}.icon-btn{border-radius:10px;border-radius:var(--r-sm);color:oklch(34% .008 70);color:var(--ink-soft);display:grid;height:36px;place-items:center;transition:background .18s ease,color .18s ease,-webkit-transform .15s ease;transition:background .18s ease,color .18s ease,transform .15s ease;transition:background .18s ease,color .18s ease,transform .15s ease,-webkit-transform .15s ease;width:36px}.icon-btn:hover{background:oklch(96.5% .005 70);background:var(--bg-dim);color:oklch(16% .01 70);color:var(--ink)}.icon-btn:active{-webkit-transform:scale(.95);transform:scale(.95)}.filter-bar{-webkit-animation:slide-up .5s ease .05s forwards;animation:slide-up .5s ease .05s forwards;display:flex;flex-direction:column;gap:10px;margin-bottom:16px}.collapse-toggle{align-items:center;align-self:flex-start;color:oklch(52% .006 70);color:var(--muted);display:inline-flex;font-size:12px;gap:5px;letter-spacing:-.005em;padding:2px 0;transition:color .18s ease;white-space:nowrap}.collapse-toggle.is-active,.collapse-toggle:hover{color:oklch(16% .01 70);color:var(--ink)}.filters{display:flex;gap:8px}.filters>.pill{flex:1 1;justify-content:flex-start;min-width:0}.pill{align-items:center;background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:999px;border-radius:var(--r-pill);color:oklch(34% .008 70);color:var(--ink-soft);display:inline-flex;font-size:12.5px;gap:6px;height:32px;letter-spacing:-.005em;padding:0 12px;position:relative;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,-webkit-transform .15s ease;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .15s ease;transition:border-color .18s ease,background .18s ease,color .18s ease,box-shadow .18s ease,transform .15s ease,-webkit-transform .15s ease;white-space:nowrap}.pill:hover{border-color:oklch(82% .005 70);color:oklch(16% .01 70);color:var(--ink)}.pill:active{-webkit-transform:scale(.97);transform:scale(.97)}.pill.is-active{background:oklch(16% .01 70);background:var(--ink);border-color:oklch(16% .01 70);border-color:var(--ink);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);box-shadow:var(--shadow-sm);color:oklch(98% .004 70);color:var(--bg)}.select-pill{position:relative}.select-pill:after{border-bottom:1.4px solid;border-right:1.4px solid;content:"";height:6px;margin-left:2px;opacity:.55;-webkit-transform:rotate(45deg) translateY(-2px);transform:rotate(45deg) translateY(-2px);width:6px}.select-pill select{-webkit-appearance:none;appearance:none;background:transparent;border:0;color:inherit;cursor:pointer;flex:1 1;font:inherit;letter-spacing:-.005em;min-width:0;outline:0;overflow:hidden;padding:0 4px 0 0;text-overflow:ellipsis;white-space:nowrap}.select-pill select option{background:#fff;background:var(--surface);color:oklch(16% .01 70);color:var(--ink)}.select-pill .label-prefix{color:oklch(52% .006 70);color:var(--muted);font-size:11.5px;letter-spacing:.04em;margin-right:-2px;text-transform:uppercase}.trend-card{-webkit-animation:slide-up .5s ease .1s forwards;animation:slide-up .5s ease .1s forwards;background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:20px;border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);box-shadow:var(--shadow-sm);margin-bottom:18px;padding:16px 14px 8px}.trend-head{display:flex;flex-direction:column;gap:8px;padding:0 4px 8px}.trend-title{font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.trend-meta,.trend-title{color:oklch(52% .006 70);color:var(--muted)}.trend-meta{display:flex;font-size:11.5px;gap:16px;letter-spacing:.01em}.trend-meta strong{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(16% .01 70);color:var(--ink);font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:13px;font-variant-numeric:tabular-nums;font-weight:500;margin-left:4px}.scatter{display:block;height:170px;width:100%}.scatter .grid line{stroke:oklch(94.5% .004 70);stroke:var(--line-soft);stroke-width:1}.scatter .axis text{fill:oklch(72% .005 70);fill:var(--faint);-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:9.5px;font-variant-numeric:tabular-nums}.scatter .trend{stroke:oklch(62% .22 25);stroke-width:1.5;stroke-dasharray:4 4;fill:none;stroke-dashoffset:600;-webkit-animation:draw .45s cubic-bezier(.4,.7,.2,1) .05s forwards;animation:draw .45s cubic-bezier(.4,.7,.2,1) .05s forwards}.scatter .area{fill:oklch(80% .18 88/.12)}.scatter .dot{fill:oklch(45% .18 255/.28);stroke:none;-webkit-animation:dot-pop .2s cubic-bezier(.34,1.56,.64,1) both;animation:dot-pop .2s cubic-bezier(.34,1.56,.64,1) both;transform-box:fill-box;-webkit-transform-origin:center;transform-origin:center}.scatter .dot:hover{fill:oklch(45% .18 255/.7)}@-webkit-keyframes draw{to{stroke-dashoffset:0}}@keyframes draw{to{stroke-dashoffset:0}}@-webkit-keyframes dot-pop{0%{-webkit-transform:scale(.4);transform:scale(.4)}60%{-webkit-transform:scale(1.18);transform:scale(1.18)}to{-webkit-transform:scale(1);transform:scale(1)}}@keyframes dot-pop{0%{-webkit-transform:scale(.4);transform:scale(.4)}60%{-webkit-transform:scale(1.18);transform:scale(1.18)}to{-webkit-transform:scale(1);transform:scale(1)}}.date-group{-webkit-animation:slide-up .5s ease forwards;animation:slide-up .5s ease forwards;margin-bottom:22px}.date-group+.date-group{-webkit-animation-delay:.05s;animation-delay:.05s}.date-head{gap:10px;justify-content:space-between;padding:0 2px 8px}.date-head,.date-title{align-items:baseline;display:flex}.date-title{color:oklch(16% .01 70);color:var(--ink);font-size:13px;font-weight:500;gap:8px;letter-spacing:-.005em;min-width:0}.date-title .day{color:oklch(52% .006 70);color:var(--muted);font-size:10.5px;font-weight:400;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.date-summary-pill{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";align-items:baseline;color:oklch(34% .008 70);color:var(--ink-soft);display:inline-flex;flex-shrink:0;font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:12px;font-variant-numeric:tabular-nums;gap:6px}.date-summary-pill strong{color:oklch(16% .01 70);color:var(--ink);font-weight:500}.table-card{background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:20px;border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);box-shadow:var(--shadow-sm);overflow:hidden}.table-row{grid-gap:8px;align-items:center;border-bottom:1px solid oklch(94.5% .004 70);border-bottom:1px solid var(--line-soft);cursor:pointer;display:grid;gap:8px;grid-template-columns:22px 56px 1fr 70px;padding:10px 14px;transition:background .15s ease}.table-row:last-child{border-bottom:0}.table-row:hover{background:oklch(96.5% .005 70);background:var(--bg-dim)}.table-row.is-summary{border-bottom:1px solid oklch(91% .005 70);border-bottom:1px solid var(--line);cursor:default;display:block;padding:12px 14px 14px}.table-row.is-summary,.table-row.is-summary:hover{background:oklch(98.5% .005 70)}.dense-card{background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:20px;border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);box-shadow:var(--shadow-sm);overflow:hidden}.dense-row{grid-gap:12px;align-items:center;border-bottom:1px solid oklch(94.5% .004 70);border-bottom:1px solid var(--line-soft);cursor:pointer;display:grid;gap:12px;grid-template-columns:56px 36px 1fr 64px;min-height:40px;padding:9px 14px;transition:background .15s ease}.dense-row:last-child{border-bottom:0}.dense-row:hover{background:oklch(96.5% .005 70);background:var(--bg-dim)}.dense-date{align-items:baseline;display:flex;gap:5px;line-height:1}.dense-day{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(16% .01 70);color:var(--ink);font-size:17px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.02em}.dense-date-meta{display:flex;flex-direction:column;gap:2px;line-height:1}.dense-mon{color:oklch(34% .008 70);color:var(--ink-soft);font-size:9.5px;font-weight:500}.dense-dow,.dense-mon{letter-spacing:.08em;text-transform:uppercase}.dense-dow{color:oklch(72% .005 70);color:var(--faint);font-size:9px}.dense-ends{align-items:flex-start;display:flex;flex-direction:column;line-height:1.1}.dense-ends-n{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(16% .01 70);color:var(--ink);font-size:13px;font-variant-numeric:tabular-nums;font-weight:500}.dense-ends-l{color:oklch(72% .005 70);color:var(--faint);font-size:9px;letter-spacing:.08em;text-transform:uppercase}.dense-row .histo{height:18px}.dense-bar{min-width:0}.dense-bar .avg-bar{gap:8px;height:16px}.dense-bar .avg-track{background:oklch(94.5% .004 70);background:var(--line-soft);height:5px}.dense-bar .avg-fill{-webkit-animation:none;animation:none;-webkit-transform:none;transform:none}.dense-bar .avg-value{font-size:11px;min-width:26px}.dense-total{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(16% .01 70);color:var(--ink);font-size:14px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.01em;text-align:right}.dense-total .of{color:oklch(72% .005 70);color:var(--faint);font-size:10.5px;font-weight:400;margin-left:1px}.summary-top{align-items:baseline;display:flex;justify-content:space-between;margin-bottom:10px}.summary-label{color:oklch(52% .006 70);color:var(--muted);font-size:10.5px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.summary-score{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(16% .01 70);color:var(--ink);font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:22px;font-variant-numeric:tabular-nums;font-weight:500;letter-spacing:-.015em}.summary-score .of{margin:0 3px}.summary-score .of,.summary-score .of-max{color:oklch(72% .005 70);color:var(--faint);font-weight:400}.summary-score .of-max{font-size:16px}.summary-viz{grid-gap:14px;align-items:center;display:grid;gap:14px;grid-template-columns:1fr 90px}.row-num{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(72% .005 70);color:var(--faint);font-size:10.5px;font-variant-numeric:tabular-nums;text-align:right}.row-num,.row-time{font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono)}.row-time{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(52% .006 70);color:var(--muted);font-size:11.5px;font-variant-numeric:tabular-nums}.row-score{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";align-items:baseline;color:oklch(16% .01 70);color:var(--ink);display:inline-flex;font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:13.5px;font-variant-numeric:tabular-nums;gap:2px}.row-score .of,.row-sim{color:oklch(72% .005 70);color:var(--faint)}.row-sim{background:oklch(96.5% .005 70);background:var(--bg-dim);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:4px;font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-family:var(--ff-sans);font-size:9px;letter-spacing:.12em;margin-left:6px;padding:2px 5px;text-transform:uppercase}.avg-bar{align-items:center;display:flex;gap:8px;height:18px;position:relative}.avg-track{background:oklch(94.5% .004 70);background:var(--line-soft);border-radius:999px;flex:1 1;height:4px;overflow:hidden;position:relative}.avg-fill{-webkit-animation:bar-grow .8s cubic-bezier(.2,.7,.2,1) both;animation:bar-grow .8s cubic-bezier(.2,.7,.2,1) both;border-radius:999px;bottom:0;position:absolute;top:0;-webkit-transform-origin:left;transform-origin:left}.avg-value{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(34% .008 70);color:var(--ink-soft);font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:11.5px;font-variant-numeric:tabular-nums;min-width:28px;text-align:right}@-webkit-keyframes bar-grow{0%{-webkit-transform:scaleX(0);transform:scaleX(0)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}@keyframes bar-grow{0%{-webkit-transform:scaleX(0);transform:scaleX(0)}to{-webkit-transform:scaleX(1);transform:scaleX(1)}}.histo{align-items:flex-end;display:flex;gap:2px;height:22px}.histo-bar{-webkit-animation:bar-rise .55s cubic-bezier(.2,.7,.2,1) both;animation:bar-rise .55s cubic-bezier(.2,.7,.2,1) both;border-radius:1.5px 1.5px 0 0;flex:1 1;min-height:2px;position:relative;-webkit-transform-origin:bottom;transform-origin:bottom}.histo-bar:hover:after{background:oklch(16% .01 70);background:var(--ink);border-radius:4px;bottom:calc(100% + 4px);color:oklch(98% .004 70);color:var(--bg);content:attr(data-tip);font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:10px;left:50%;padding:2px 6px;pointer-events:none;position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);white-space:nowrap}@-webkit-keyframes bar-rise{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}to{-webkit-transform:scaleY(1);transform:scaleY(1)}}@keyframes bar-rise{0%{-webkit-transform:scaleY(0);transform:scaleY(0)}to{-webkit-transform:scaleY(1);transform:scaleY(1)}}.s-x{background:oklch(94% .14 100);background:var(--t-x);color:oklch(28% .1 80);color:var(--t-x-ink)}.s-10{background:oklch(89% .17 95);background:var(--t-10);color:oklch(28% .1 80);color:var(--t-10-ink)}.s-9{background:oklch(80% .18 88);background:var(--t-9);color:oklch(25% .1 75);color:var(--t-9-ink)}.s-8{background:oklch(62% .22 25);background:var(--t-8);color:#fff;color:var(--t-8-ink)}.s-7{background:oklch(50% .2 25);background:var(--t-7);color:#fff;color:var(--t-7-ink)}.s-6{background:oklch(60% .16 245);background:var(--t-6);color:#fff;color:var(--t-6-ink)}.s-5{background:oklch(44% .16 245);background:var(--t-5);color:#fff;color:var(--t-5-ink)}.s-4{background:oklch(22% .005 70);background:var(--t-4);color:#fff;color:var(--t-4-ink)}.s-3{background:oklch(30% .005 70);background:var(--t-3);color:#fff;color:var(--t-3-ink)}.s-2{background:oklch(89% .005 70);background:var(--t-2);color:oklch(16% .01 70);color:var(--t-2-ink)}.s-1{background:oklch(82% .005 70);background:var(--t-1);color:oklch(16% .01 70);color:var(--t-1-ink)}.s-0{background:oklch(42% .16 315);background:var(--t-m);color:#fff;color:var(--t-m-ink)}.fab-bar{background:linear-gradient(180deg,hsla(43,41%,97%,0),oklch(98% .004 70) 38%,oklch(98% .004 70));background:linear-gradient(180deg,hsla(43,41%,97%,0) 0,var(--bg) 38%,var(--bg) 100%);bottom:0;left:0;padding:14px 18px calc(env(safe-area-inset-bottom, 0px) + 14px);pointer-events:none;position:fixed;right:0;z-index:30}.fab-bar,.fab-inner{display:flex;justify-content:center}.fab-inner{max-width:444px;width:100%}.fab{align-items:center;background:oklch(16% .01 70);background:var(--ink);box-shadow:0 14px 32px -10px rgba(20,18,15,.35),0 4px 10px -2px rgba(20,18,15,.18),inset 0 1px 0 hsla(0,0%,100%,.08);color:oklch(98% .004 70);color:var(--bg);display:inline-flex;font-size:15px;font-weight:500;gap:10px;height:54px;justify-content:center;letter-spacing:-.005em;overflow:hidden;pointer-events:auto;position:relative;transition:box-shadow .18s ease,background .18s ease,-webkit-transform .18s cubic-bezier(.34,1.4,.64,1);transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s ease,background .18s ease;transition:transform .18s cubic-bezier(.34,1.4,.64,1),box-shadow .18s ease,background .18s ease,-webkit-transform .18s cubic-bezier(.34,1.4,.64,1);white-space:nowrap;width:100%}.fab,.fab:before{border-radius:999px}.fab:before{background:radial-gradient(120% 100% at 50% -20%,hsla(0,0%,100%,.16),transparent 60%);content:"";inset:2px;pointer-events:none;position:absolute}.fab:hover{box-shadow:0 18px 38px -10px rgba(20,18,15,.45),0 6px 14px -2px rgba(20,18,15,.22),inset 0 1px 0 hsla(0,0%,100%,.08);-webkit-transform:translateY(-1px);transform:translateY(-1px)}.fab:active{-webkit-transform:translateY(0) scale(.985);transform:translateY(0) scale(.985)}.fab svg{display:block}.scoring{-webkit-animation:fade-in .25s ease both;animation:fade-in .25s ease both;display:flex;flex-direction:column;gap:18px}.scoring-head{align-items:center;display:flex;gap:12px;justify-content:space-between}.scoring-title{color:oklch(52% .006 70);color:var(--muted);font-size:11px;font-weight:500;letter-spacing:.14em;text-transform:uppercase}.scoring-back{align-items:center;border-radius:10px;border-radius:var(--r-sm);color:oklch(34% .008 70);color:var(--ink-soft);display:inline-flex;font-size:13px;gap:4px;padding:6px 10px;transition:background .15s ease,color .15s ease}.scoring-back:hover{background:oklch(96.5% .005 70);background:var(--bg-dim);color:oklch(16% .01 70);color:var(--ink)}.chip-strip{background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:20px;border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:12px;min-height:110px;padding:18px 16px}.chip-strip-head{align-items:baseline;display:flex;justify-content:space-between}.chip-strip-count{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(52% .006 70);color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}.chip-strip-count,.chip-strip-total{font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono)}.chip-strip-total{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";color:oklch(16% .01 70);color:var(--ink);font-size:22px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.chips{display:flex;flex-wrap:wrap;gap:6px;min-height:36px}.chip{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";-webkit-animation:chip-pop .35s cubic-bezier(.34,1.56,.64,1) both;animation:chip-pop .35s cubic-bezier(.34,1.56,.64,1) both;border-radius:10px;box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03),inset 0 -2px 0 rgba(20,18,15,.08),inset 0 1px 0 hsla(0,0%,100%,.18);box-shadow:var(--shadow-sm),inset 0 -2px 0 rgba(20,18,15,.08),inset 0 1px 0 hsla(0,0%,100%,.18);display:grid;font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:13px;font-variant-numeric:tabular-nums;font-weight:500;height:36px;letter-spacing:-.01em;place-items:center;width:36px}@-webkit-keyframes chip-pop{0%{opacity:0;-webkit-transform:scale(.5) translateY(8px);transform:scale(.5) translateY(8px)}60%{opacity:1;-webkit-transform:scale(1.12) translateY(0);transform:scale(1.12) translateY(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes chip-pop{0%{opacity:0;-webkit-transform:scale(.5) translateY(8px);transform:scale(.5) translateY(8px)}60%{opacity:1;-webkit-transform:scale(1.12) translateY(0);transform:scale(1.12) translateY(0)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.chips-empty{align-self:center;color:oklch(72% .005 70);color:var(--faint);font-size:13px;font-style:italic;margin:auto}.score-options{align-items:stretch;display:flex;gap:10px}.score-option{background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:14px;border-radius:var(--r-md);display:flex;flex:1 1;flex-direction:column;gap:2px;padding:10px 12px}.score-option label{color:oklch(52% .006 70);color:var(--muted);font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase}.score-option input[type=number]{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";background:transparent;border:0;color:oklch(16% .01 70);color:var(--ink);font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:18px;font-variant-numeric:tabular-nums;letter-spacing:-.01em;outline:0;padding:0;width:60px}.toggle{align-items:center;cursor:pointer;display:inline-flex;gap:8px;padding:4px 0}.toggle input{display:none}.toggle-track{background:oklch(91% .005 70);background:var(--line);border-radius:999px;height:18px;position:relative;transition:background .2s ease;width:32px}.toggle-track:after{background:#fff;background:var(--surface);border-radius:999px;box-shadow:0 1px 2px rgba(0,0,0,.18);content:"";height:14px;left:2px;position:absolute;top:2px;transition:-webkit-transform .22s cubic-bezier(.34,1.4,.64,1);transition:transform .22s cubic-bezier(.34,1.4,.64,1);transition:transform .22s cubic-bezier(.34,1.4,.64,1),-webkit-transform .22s cubic-bezier(.34,1.4,.64,1);width:14px}.toggle input:checked+.toggle-track{background:oklch(16% .01 70);background:var(--ink)}.toggle input:checked+.toggle-track:after{-webkit-transform:translateX(14px);transform:translateX(14px)}.toggle-label{color:oklch(34% .008 70);color:var(--ink-soft);font-size:12.5px}.score-grid,.score-row{grid-gap:8px;display:grid;gap:8px}.score-row.r-top{grid-template-columns:1fr 1.2fr 1.6fr}.score-row.r-2{grid-template-columns:1fr 1fr}.score-row.r-1{grid-template-columns:1fr}.s-btn{-webkit-font-feature-settings:"tnum";font-feature-settings:"tnum";align-items:center;border-radius:14px;border-radius:var(--r-md);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03),inset 0 -3px 0 rgba(20,18,15,.1),inset 0 1px 0 hsla(0,0%,100%,.22);box-shadow:var(--shadow-sm),inset 0 -3px 0 rgba(20,18,15,.1),inset 0 1px 0 hsla(0,0%,100%,.22);display:flex;flex-direction:column;font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-variant-numeric:tabular-nums;gap:2px;height:64px;justify-content:center;letter-spacing:-.01em;overflow:hidden;position:relative;transition:box-shadow .16s ease,-webkit-transform .12s cubic-bezier(.4,1.2,.6,1),-webkit-filter .16s ease;transition:transform .12s cubic-bezier(.4,1.2,.6,1),box-shadow .16s ease,filter .16s ease;transition:transform .12s cubic-bezier(.4,1.2,.6,1),box-shadow .16s ease,filter .16s ease,-webkit-transform .12s cubic-bezier(.4,1.2,.6,1),-webkit-filter .16s ease;-webkit-user-select:none;user-select:none}.s-btn:hover{-webkit-filter:brightness(1.04);filter:brightness(1.04)}.s-btn:active{box-shadow:inset 0 1px 0 rgba(20,18,15,.04),inset 0 0 0 1px rgba(20,18,15,.06),inset 0 -1px 0 rgba(20,18,15,.1);box-shadow:var(--shadow-press),inset 0 -1px 0 rgba(20,18,15,.1);-webkit-transform:translateY(2px);transform:translateY(2px)}.s-btn .v{font-size:22px;font-weight:500;line-height:1}.s-btn .l{font-family:Geist,ui-sans-serif,system-ui,sans-serif;font-family:var(--ff-sans);font-size:10px;font-weight:500;letter-spacing:.1em;opacity:.78;text-transform:uppercase}.s-btn.is-miss .v{font-size:18px;letter-spacing:.06em}.scoring-actions{display:flex;gap:10px;margin-top:4px}.btn{align-items:center;border:1px solid transparent;border-radius:14px;border-radius:var(--r-md);display:inline-flex;flex:1 1;font-size:14px;font-weight:500;gap:8px;height:52px;justify-content:center;letter-spacing:-.005em;transition:background .18s ease,color .18s ease,box-shadow .18s ease,-webkit-transform .14s ease;transition:transform .14s ease,background .18s ease,color .18s ease,box-shadow .18s ease;transition:transform .14s ease,background .18s ease,color .18s ease,box-shadow .18s ease,-webkit-transform .14s ease}.btn-ghost{background:#fff;background:var(--surface);border-color:oklch(91% .005 70);border-color:var(--line);color:oklch(34% .008 70);color:var(--ink-soft)}.btn-ghost:hover{border-color:oklch(82% .005 70);color:oklch(16% .01 70);color:var(--ink)}.btn-primary{background:oklch(16% .01 70);background:var(--ink);box-shadow:0 8px 18px -8px rgba(20,18,15,.35),inset 0 1px 0 hsla(0,0%,100%,.08);color:oklch(98% .004 70);color:var(--bg)}.btn-primary:hover{-webkit-transform:translateY(-1px);transform:translateY(-1px)}.btn-primary:active{-webkit-transform:translateY(0) scale(.99);transform:translateY(0) scale(.99)}.btn-primary:disabled{box-shadow:none;opacity:.35;pointer-events:none}.about-card{-webkit-animation:slide-up .5s ease .05s forwards;animation:slide-up .5s ease .05s forwards;background:#fff;background:var(--surface);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:20px;border-radius:var(--r-lg);box-shadow:0 1px 2px rgba(20,18,15,.04),0 1px 1px rgba(20,18,15,.03);box-shadow:var(--shadow-sm);margin-bottom:18px;overflow:hidden;padding:22px;position:relative}.about-card h2{font-size:18px;font-weight:600;letter-spacing:-.015em;margin:0 0 8px}.about-card p{color:oklch(34% .008 70);color:var(--ink-soft);font-size:14px;line-height:1.55;margin:0 0 10px;max-width:60ch}.about-card a{color:oklch(16% .01 70);color:var(--ink);text-decoration:underline;text-underline-offset:3px}.menu-overlay{-webkit-animation:fade-in .2s ease both;animation:fade-in .2s ease both;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:rgba(20,18,15,.22);inset:0;position:fixed;z-index:40}.menu-drawer{-webkit-animation:slide-in .28s cubic-bezier(.2,.8,.2,1) both;animation:slide-in .28s cubic-bezier(.2,.8,.2,1) both;background:#fff;background:var(--surface);bottom:0;box-shadow:0 24px 48px -16px rgba(20,18,15,.18),0 8px 16px -8px rgba(20,18,15,.08);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow-y:auto;padding:calc(env(safe-area-inset-top, 0px) + 18px) 14px calc(env(safe-area-inset-bottom, 0px) + 18px);position:fixed;right:0;top:0;width:min(300px,86vw);z-index:41}@-webkit-keyframes slide-in{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}@keyframes slide-in{0%{-webkit-transform:translateX(100%);transform:translateX(100%)}to{-webkit-transform:translateX(0);transform:translateX(0)}}.menu-drawer-head{align-items:center;display:flex;justify-content:space-between;margin-bottom:18px}.menu-drawer-title{color:oklch(52% .006 70);color:var(--muted);font-size:11px;letter-spacing:.14em;text-transform:uppercase}.menu-list{display:flex;flex-direction:column;gap:2px}.menu-item{align-items:center;border-radius:10px;border-radius:var(--r-sm);color:oklch(16% .01 70);color:var(--ink);display:flex;font-size:14px;justify-content:space-between;padding:12px;text-align:left;transition:background .15s ease;width:100%}.menu-item:hover{background:oklch(96.5% .005 70);background:var(--bg-dim)}.menu-item.danger:hover{background:oklch(95% .05 25);color:oklch(40% .18 25)}.menu-item .chev{color:oklch(72% .005 70);color:var(--faint);font-size:12px}.drawer-panel{display:flex;flex-direction:column;gap:10px;margin-top:14px}.drawer-panel textarea{background:oklch(96.5% .005 70);background:var(--bg-dim);border:1px solid oklch(91% .005 70);border:1px solid var(--line);border-radius:14px;border-radius:var(--r-md);color:oklch(16% .01 70);color:var(--ink);font-family:Geist Mono,ui-monospace,JetBrains Mono,Menlo,monospace;font-family:var(--ff-mono);font-size:11px;min-height:180px;outline:0;padding:10px 12px;resize:vertical;width:100%}.drawer-panel-actions{display:flex;gap:8px}.drawer-status{color:oklch(52% .006 70);color:var(--muted);font-size:12px;text-align:center}@-webkit-keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@-webkit-keyframes slide-up{0%{-webkit-transform:translateY(8px);transform:translateY(8px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}@keyframes slide-up{0%{-webkit-transform:translateY(8px);transform:translateY(8px)}to{-webkit-transform:translateY(0);transform:translateY(0)}}
/*# sourceMappingURL=main.e93dce51.css.map*/