:root{--ink: oklch(.27 .03 50);--muted: oklch(.52 .025 60);--line: oklch(.905 .014 75);--track: oklch(.92 .014 75);--soft: oklch(.97 .01 80);--skel: oklch(.935 .012 75);--page: oklch(.965 .012 80);--accent: oklch(.5 .085 55);--accent-deep: oklch(.4 .075 50);--accent-2: oklch(.72 .12 68);--hero: linear-gradient(140deg, oklch(.95 .035 70), oklch(.985 .012 80) 60%);--flame: oklch(.66 .19 45);--mint: oklch(.95 .025 75);--mint-ink: oklch(.42 .075 55);--danger: oklch(.52 .18 25);--card: #ffffff;--on-ink: #ffffff;--on-accent: #ffffff;--ph-l: .93;--tier-l: .45;--tip: oklch(.96 .019 55);--ease: cubic-bezier(.2, .8, .2, 1)}:root[data-theme=dark]{--ink: oklch(.93 .015 75);--muted: oklch(.72 .02 70);--line: oklch(.34 .018 55);--track: oklch(.32 .018 55);--soft: oklch(.255 .017 55);--skel: oklch(.3 .017 55);--page: oklch(.16 .012 50);--accent: oklch(.7 .09 62);--accent-deep: oklch(.6 .085 58);--accent-2: oklch(.84 .11 80);--hero: linear-gradient(140deg, oklch(.3 .045 58), oklch(.22 .016 52) 60%);--flame: oklch(.76 .17 55);--mint: oklch(.29 .035 60);--mint-ink: oklch(.84 .07 70);--danger: oklch(.68 .16 25);--card: oklch(.205 .015 52);--on-ink: oklch(.2 .015 52);--on-accent: oklch(.2 .02 50);--ph-l: .33;--tier-l: .8;--tip: oklch(.27 .03 52);color-scheme:dark}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--ink: oklch(.93 .015 75);--muted: oklch(.72 .02 70);--line: oklch(.34 .018 55);--track: oklch(.32 .018 55);--soft: oklch(.255 .017 55);--skel: oklch(.3 .017 55);--page: oklch(.16 .012 50);--accent: oklch(.7 .09 62);--accent-deep: oklch(.6 .085 58);--accent-2: oklch(.84 .11 80);--hero: linear-gradient(140deg, oklch(.3 .045 58), oklch(.22 .016 52) 60%);--flame: oklch(.76 .17 55);--mint: oklch(.29 .035 60);--mint-ink: oklch(.84 .07 70);--danger: oklch(.68 .16 25);--card: oklch(.205 .015 52);--on-ink: oklch(.2 .015 52);--on-accent: oklch(.2 .02 50);--ph-l: .33;--tier-l: .8;--tip: oklch(.27 .03 52);color-scheme:dark}}@font-face{font-family:DM Sans;font-style:normal;font-display:swap;font-weight:100 1000;src:url(/app/assets/dm-sans-latin-opsz-normal-Bf69Tn_J.woff2) format("woff2-variations"),url(/app/assets/dm-sans-latin-opsz-normal-Bf69Tn_J.woff2) format("woff2")}*{box-sizing:border-box}body{margin:0;background:var(--page);font-family:DM Sans,system-ui,sans-serif;color:var(--ink);-webkit-font-smoothing:antialiased}a{color:var(--ink)}a:hover{color:var(--accent)}button,input,textarea{font:inherit;color:inherit}button{cursor:pointer;transition:transform .12s ease,opacity .2s,background-color .2s,border-color .2s}button:active:not(:disabled):not([data-nopress]){transform:scale(.98)}button:disabled{cursor:default!important}input::placeholder,textarea::placeholder{color:#81807d}@keyframes pqpulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes pqin{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pqup{0%{transform:translateY(100%)}to{transform:none}}@keyframes pqfade{0%{opacity:0}to{opacity:1}}@keyframes pqpop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.stage{min-height:100vh;display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:48px;padding:40px 24px}.screen{animation:pqin .3s var(--ease) both;display:flex;flex-direction:column}.col{display:flex;flex-direction:column}.row{display:flex;align-items:center}.grow{flex:1;min-width:0}.hscroll{display:flex;gap:8px;overflow-x:auto;margin:0 -24px;padding:0 24px}.divider{height:1px;background:var(--line)}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px 14px}.h-xl{font-size:30px;font-weight:700;letter-spacing:-.02em}.h-lg{font-size:28px;font-weight:700;letter-spacing:-.02em}.h-md{font-size:20px;font-weight:700}.h-sheet{font-size:22px;font-weight:700;letter-spacing:-.01em}.h-sec{font-size:17px;font-weight:600}.t-name{font-size:15px;font-weight:600}.t-sub{font-size:13px;color:var(--muted)}.t-body{font-size:15px;line-height:1.5;color:var(--muted)}.t-note{font-size:13px;line-height:1.5;color:var(--muted)}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.btn{border:none;border-radius:12px;padding:16px;font-size:16px;font-weight:600}.btn-primary{background:var(--ink);color:var(--on-ink)}.btn-accent{background:var(--accent);color:var(--on-accent)}.btn-danger{background:var(--danger);color:#fff}.btn-outline{border:1px solid var(--ink);background:var(--card);padding:15px}.btn-sm{padding:13px 20px;font-size:15px}.btn-full{width:100%}.btn-link{border:none;background:none;padding:8px;font-size:15px;font-weight:600;text-decoration:underline}.btn-plain{border:none;background:none;padding:0;text-align:left}.icon-btn{width:36px;height:36px;border:none;background:none;border-radius:50%;display:flex;align-items:center;justify-content:center}.back-btn{align-self:flex-start;margin-left:-8px}.float-btn{position:absolute;top:10px;width:36px;height:36px;border-radius:50%;border:none;background:var(--card);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 4px #00000026;color:var(--ink)}.glass-btn{width:40px;height:40px;border-radius:50%;border:none;background:#ffffff24;color:#fff;display:flex;align-items:center;justify-content:center}.chip{flex:none;border:1px solid var(--line);background:var(--card);color:var(--ink);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:500;display:flex;align-items:center;gap:6px}.chip.on{border-color:var(--ink);background:var(--ink);color:var(--on-ink)}.option{flex:1;border:1.5px solid var(--line);background:var(--card);border-radius:12px;padding:14px 12px;font-size:15px;font-weight:600}.option.on{border-color:var(--ink)}.list-btn{display:flex;gap:14px;align-items:center;border:none;background:none;padding:0;text-align:left}.card-btn{display:flex;gap:14px;align-items:center;border:1px solid var(--line);background:var(--card);border-radius:14px;padding:12px;text-align:left}.set-row{display:flex;align-items:center;gap:14px;padding:16px 0;border:none;border-bottom:1px solid var(--line);background:none;text-align:left;width:100%}.set-row.compact{padding:14px 0}.set-row .label{flex:1;font-size:15px}.set-row .value{font-size:14px;color:var(--muted)}.kv-row{padding:14px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px;font-size:15px}.tile{flex:none;color:#fff;display:flex;align-items:center;justify-content:center}.tile>span{display:flex;filter:drop-shadow(0 1.5px 1.5px rgba(0,0,0,.25))}.thumb{flex:none;display:flex;align-items:center;justify-content:center;color:#00000040}.track{border-radius:3px;background:var(--track);overflow:hidden;height:6px}.track.thin{height:4px;border-radius:2px}.fill{height:100%;background:var(--accent);border-radius:inherit}.notice{background:var(--soft);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:center;font-size:14px;line-height:1.4}.notice .action{border:none;background:var(--ink);color:var(--on-ink);border-radius:10px;padding:10px 14px;font-weight:600}.tip{animation:pqin .35s var(--ease) both;display:flex;gap:12px;align-items:flex-start;background:var(--tip);border-radius:14px;padding:12px 8px 12px 12px}.field{border:1.5px solid var(--ink);border-radius:12px;padding:10px 14px;display:flex;flex-direction:column;gap:2px}.field label{font-size:12px;font-weight:600;color:var(--muted)}.field input{border:none;padding:0;font-size:17px;outline:none;background:none}.search{position:relative;display:flex}.search>span{position:absolute;top:50%;transform:translateY(-50%);pointer-events:none}.search input{flex:1;border:1px solid var(--line);background:var(--card);outline:none;font-size:15px}.textarea{border:1px solid var(--line);background:var(--card);border-radius:12px;padding:12px 14px;font-size:15px;outline:none;resize:none}.sticky-footer{position:sticky;bottom:0;background:var(--card);border-top:1px solid var(--line);padding:14px 24px 28px}.skel{background:var(--skel);animation:pqpulse 1.2s ease-in-out infinite;border-radius:4px}.switch{width:44px;height:26px;border-radius:13px;position:relative;flex:none;transition:background .2s}.switch>span{position:absolute;top:2px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #0003;transition:left .2s}.snap-tab{flex:1;border:none;background:none;padding:0;display:flex;flex-direction:column;align-items:center;gap:3px;position:relative}.snap-fab{width:62px;height:62px;margin-top:-32px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:radial-gradient(120% 120% at 30% 22%,#d29f6d,#9c6238 45%,#6a391e);border:4px solid var(--card);box-shadow:inset 0 2px #ffffff73,inset 0 -4px 8px #28140559,0 8px 18px -4px #69391c8c,0 2px 4px #0000001f;transition:transform .15s var(--ease),box-shadow .15s var(--ease)}.snap-tab:hover .snap-fab{transform:translateY(-1px)}.snap-tab:active .snap-fab{transform:translateY(2px) scale(.96);box-shadow:inset 0 2px #ffffff59,inset 0 -2px 6px #28140566,0 3px 8px -3px #69391c80}.snap-label{font-size:11px;font-weight:700;color:var(--accent)}.hero-card{display:flex;align-items:center;gap:16px;width:100%;text-align:left;border:1px solid var(--line);border-radius:22px;padding:16px 18px;background:var(--hero);box-shadow:0 10px 24px -16px #69391c73}.streak{align-self:flex-start;display:inline-flex;align-items:center;gap:5px;margin-top:4px;border-radius:999px;padding:4px 10px 4px 8px;font-size:13px;font-weight:700;background:var(--soft);color:var(--muted)}.streak.on{background:color-mix(in oklch,var(--flame) 14%,transparent);color:var(--flame)}.streak.on svg{animation:pqflicker 1.8s ease-in-out infinite;transform-origin:50% 90%}.streak.pending svg{animation:none;opacity:.7}@keyframes pqflicker{0%,to{transform:scale(1) rotate(0)}30%{transform:scale(1.12) rotate(-4deg)}60%{transform:scale(.96) rotate(3deg)}}[data-nav=fwd]>.screen{animation:pqfwd .32s var(--ease) both}[data-nav=back]>.screen{animation:pqback .32s var(--ease) both}@keyframes pqfwd{0%{opacity:0;transform:translate(32px)}to{opacity:1;transform:none}}@keyframes pqback{0%{opacity:0;transform:translate(-32px)}to{opacity:1;transform:none}}.ptr{position:absolute;left:50%;top:8px;z-index:5;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:var(--card);color:var(--accent);box-shadow:0 4px 14px #00000024;display:flex;align-items:center;justify-content:center;pointer-events:none}.ptr.spin svg{animation:pqspin .8s linear infinite}@keyframes pqspin{to{transform:rotate(360deg)}}
