:root{--bg: #F2F2F7;--surface: #FFFFFF;--surface-2: #F7F7FA;--line: #E4E4EA;--text: #111114;--text-2: #4A4A51;--muted: #6C6C74;--accent: #117845;--accent-ink: #FFFFFF;--pos: #117845;--vc-mix: 60%;--neg: #E0443C;--warn-bg: #FFF4DE;--warn-ink: #8A5A00;--err-bg: #FDE8E7;--bar: #2a78d6;--bubble-empty: #E9EAF0;--radius: 14px;--safe-b: env(safe-area-inset-bottom, 0px);--safe-t: env(safe-area-inset-top, 0px);color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #000000;--surface: #1C1C1E;--surface-2: #2C2C2E;--line: #38383C;--text: #F5F5F7;--text-2: #C7C7CC;--muted: #8E8E93;--accent: #30C77B;--accent-ink: #04210F;--pos: #3DD68C;--vc-mix: 100%;--neg: #FF6B61;--warn-bg: #3A2E14;--warn-ink: #FFD27A;--err-bg: #3B1E1C;--bar: #3987e5;--bubble-empty: #2C2C2E;color-scheme:dark}}:root[data-theme=dark]{--bg: #000000;--surface: #1C1C1E;--surface-2: #2C2C2E;--line: #38383C;--text: #F5F5F7;--text-2: #C7C7CC;--muted: #8E8E93;--accent: #30C77B;--accent-ink: #04210F;--pos: #3DD68C;--vc-mix: 100%;--neg: #FF6B61;--warn-bg: #3A2E14;--warn-ink: #FFD27A;--err-bg: #3B1E1C;--bar: #3987e5;--bubble-empty: #2C2C2E;color-scheme:dark}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;background:var(--bg);color:var(--text)}body{font:16px/1.35 -apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,sans-serif;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}button:disabled{opacity:.45;cursor:default}input,select,textarea{font:inherit;font-size:16px;color:var(--text);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:10px 12px;width:100%;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 16px) 50%,calc(100% - 11px) 50%;background-size:5px 5px;background-repeat:no-repeat;padding-right:28px}input:focus,select:focus,textarea:focus{border-color:var(--accent)}input[type=checkbox]{width:22px;height:22px;flex:none;accent-color:var(--accent);-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}input[type=file]{background:none;border:0;padding:8px 0}h1{font-size:28px;margin:0;letter-spacing:-.02em}code{font:13px ui-monospace,Menlo,monospace;word-break:break-all}.app{min-height:100dvh;padding-bottom:calc(140px + var(--safe-b))}.screen{max-width:640px;margin:0 auto;padding:calc(8px + var(--safe-t)) 16px 24px}.screen-head{padding:8px 0 4px}.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}.pos{color:var(--pos)}.neg{color:var(--neg)}.strong{font-weight:600}.row{display:flex;align-items:center}.gap{gap:8px}.between{justify-content:space-between}.link{color:var(--accent)}.link.danger,.danger-text{color:var(--neg)}.loading,.empty{padding:28px 8px;text-align:center;color:var(--muted)}.splash{height:100dvh;display:grid;place-items:center;font-size:56px}.topstats{display:grid;grid-template-columns:1fr 1fr;background:var(--surface);border-radius:var(--radius);padding:10px 4px;margin-top:6px}.topstats div{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:0}.topstats .main{grid-column:1 / -1;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid var(--line)}.topstats .main b{font-size:28px;letter-spacing:-.02em}.topstats div:last-child{border-left:1px solid var(--line)}.topstats div:nth-child(2):last-child{grid-column:1 / -1;border-left:0}.topstats span{font-size:13px;color:var(--muted)}.topstats b{font-size:17px;font-weight:600;white-space:nowrap}.monthbar{display:flex;align-items:center;justify-content:space-between;margin:8px 0}.month-title{font-size:17px;font-weight:600;padding:6px 10px}.icon-btn{width:44px;height:44px;border-radius:22px;font-size:26px;line-height:1;color:var(--accent)}.icon-btn:active{background:var(--surface)}.block{background:var(--surface);border-radius:var(--radius);padding:10px 2px 2px;margin-bottom:8px}.grid{display:grid;grid-template-columns:repeat(4,1fr);row-gap:2px}.bubble{display:flex;flex-direction:column;align-items:center;padding:2px 1px 5px;min-width:0;border-radius:12px}.bubble:active{background:var(--surface-2)}.bubble.dim{opacity:.5}.bubble.dragging{opacity:.35}.bubble.over .bubble-circle{transform:scale(1.14);box-shadow:0 0 0 3px var(--accent)}.bubble-label{font-size:12px;color:var(--text-2);max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px}.bubble-circle{--c: #999;position:relative;width:46px;height:46px;border-radius:50%;overflow:hidden;background:color-mix(in srgb,var(--c) 28%,var(--bubble-empty));display:grid;place-items:center;transition:transform .12s ease,box-shadow .12s ease}.bubble-circle.ring{box-shadow:inset 0 0 0 3px color-mix(in srgb,var(--c) 60%,#000 0%)}.bubble-fill{position:absolute;left:0;right:0;bottom:0;background:var(--c);transition:height .5s ease}.bubble-icon{position:relative;font-size:21px}.bubble-value{font-size:13px;font-weight:600;margin-top:4px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}.bubble-sub{font-size:11px;color:var(--muted);white-space:nowrap}.paged-row{display:grid;grid-auto-flow:column;grid-auto-columns:100%;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}.paged-row::-webkit-scrollbar{display:none}.paged-page{display:grid;scroll-snap-align:start;scroll-snap-stop:always}.dots{display:flex;justify-content:center;gap:5px;padding:4px 0 6px;pointer-events:none}.dots span{width:6px;height:6px;border-radius:3px;background:var(--line);transition:width .2s,background .2s}.dots span.on{width:16px;background:var(--muted)}body.dragging{user-select:none;-webkit-user-select:none}.ghost{position:fixed;z-index:90;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;background:var(--c, #999);display:grid;place-items:center;font-size:26px;pointer-events:none;box-shadow:0 8px 20px #00000059;opacity:.95}.hint{padding:2px 12px 8px;line-height:1.3}.notice{display:block;width:100%;text-align:left;background:var(--surface);border-radius:12px;padding:12px 14px;margin:10px 0;font-size:14px}.notice .row,.notice .btn{margin-top:8px}.notice.warn{background:var(--warn-bg);color:var(--warn-ink)}.notice.error{background:var(--err-bg);color:var(--neg)}.notice.clickable:active{filter:brightness(.96)}.card{background:var(--surface);border-radius:var(--radius);overflow:hidden}.card.pad{padding:14px;margin-bottom:12px}.card-title{font-weight:600;margin-bottom:10px;display:flex;gap:8px;align-items:baseline;justify-content:space-between}.txgroup{margin-bottom:12px}.txgroup-head{display:flex;justify-content:space-between;font-size:13px;color:var(--muted);padding:6px 4px}.txrow{display:flex;align-items:center;gap:12px;width:100%;padding:10px 14px;text-align:left}.txrow+.txrow{border-top:1px solid var(--line)}.txrow:active{background:var(--surface-2)}.txrow.pending{opacity:.75}.txrow-icon{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:19px;flex:none}.txrow-main{flex:1;min-width:0;display:flex;flex-direction:column}.txrow-title{display:flex;align-items:center;min-width:0;font-weight:500}.txrow-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.txrow-sub{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.txrow-amt{text-align:right;display:flex;flex-direction:column;font-weight:600;white-space:nowrap}.txrow-orig{font-size:12px;color:var(--muted);font-weight:400}.badge{font-style:normal;font-size:11px;font-weight:600;background:var(--warn-bg);color:var(--warn-ink);border-radius:6px;padding:1px 6px;margin-left:6px;flex:none}.badge.warn{background:var(--err-bg);color:var(--neg)}.search{margin:6px 0 8px}.chips{display:flex;gap:8px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:none;padding:10px 14px;border-radius:18px;background:var(--surface);font-size:14px;white-space:nowrap;border:1px solid var(--line)}.chip.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.filters{margin-bottom:8px}.filters select{font-size:14px;padding:8px 28px 8px 10px}.totals{display:flex;gap:14px;font-size:14px;padding:4px 4px 8px;flex-wrap:wrap}.tiles{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}.tile{background:var(--surface);border-radius:var(--radius);padding:12px 14px;display:flex;flex-direction:column;gap:2px;min-width:0}.tile span{font-size:13px;color:var(--muted)}.tile b{font-size:22px;letter-spacing:-.01em}.tile small{font-size:12px}.bar-tip{font-size:14px;min-height:20px;margin-bottom:6px}.bars{display:grid;grid-template-columns:repeat(12,1fr);gap:4px;height:150px;align-items:end}.bar-col{height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.bar{width:100%;max-width:22px;min-height:2px;background:var(--bar);opacity:.45;border-radius:4px 4px 0 0}.bar-col.sel .bar,.bar-col:hover .bar,.bar-col:focus .bar{opacity:1}.bar-lbl{font-size:11px;color:var(--muted)}.hbar{display:flex;flex-direction:column;width:100%;text-align:left;padding:8px 6px;border-radius:10px;gap:4px}.hbar.on{background:var(--surface-2)}.hbar-top{display:flex;justify-content:space-between;gap:8px;font-size:15px}.hbar-track{height:6px;background:var(--surface-2);border-radius:3px;overflow:hidden}.hbar.on .hbar-track{background:var(--line)}.hbar-fill{display:block;height:100%;background:var(--bar);border-radius:3px}.table{width:100%;border-collapse:collapse;font-size:15px}.table td{padding:7px 2px;border-top:1px solid var(--line)}.table tr:first-child td{border-top:0}.table .num{text-align:right;font-weight:600;white-space:nowrap}.tabbar{position:fixed;left:0;right:0;bottom:0;display:grid;grid-template-columns:repeat(4,1fr);background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--line);padding:6px 0 calc(6px + var(--safe-b));z-index:20}.tabbar button{display:flex;flex-direction:column;align-items:center;font-size:12px;color:var(--muted);gap:1px}.tabbar button.on{color:var(--accent)}.tab-icon{position:relative;display:grid}.tab-icon svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.dot{position:absolute;top:-4px;right:-14px;background:var(--neg);color:#fff;font-style:normal;font-size:10px;font-weight:700;border-radius:9px;padding:1px 5px}.fab{position:fixed;right:18px;bottom:calc(78px + var(--safe-b));width:58px;height:58px;border-radius:29px;background:var(--accent);color:var(--accent-ink);font-size:32px;line-height:1;box-shadow:0 6px 18px #00000038;z-index:21}.fab:active{transform:scale(.95)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000061;z-index:50;display:flex;align-items:flex-end;justify-content:center;animation:fade .18s ease}.sheet{background:var(--bg);width:100%;max-width:640px;max-height:94dvh;border-radius:16px 16px 0 0;display:flex;flex-direction:column;animation:up .22s ease}.sheet-head{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:14px 16px 10px;border-bottom:1px solid var(--line)}.sheet-head .link:first-child{justify-self:start}.sheet-right{justify-self:end}.sheet-right .link{font-size:17px}.sheet-head .link{padding:12px 6px;margin:-12px -6px}.sheet-title{font-weight:600;max-width:55vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sheet-body{overflow-y:auto;padding:14px 16px calc(24px + var(--safe-b));-webkit-overflow-scrolling:touch}@keyframes up{0%{transform:translateY(40px);opacity:.5}to{transform:none;opacity:1}}@keyframes fade{0%{opacity:0}to{opacity:1}}.segmented{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface-2);border-radius:10px;padding:2px;margin-bottom:10px}.segmented button{padding:7px;border-radius:8px;font-size:14px;font-weight:500}.segmented button.on{background:var(--surface);box-shadow:0 1px 3px #0000001f}.amount-input{display:flex;align-items:baseline;gap:8px;justify-content:center;margin:8px 0 4px}.amount-input input{font-size:40px;font-weight:600;text-align:right;border:0;background:none;width:60%;padding:4px}.amount-input span{width:30%;font-size:20px}.section-label{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:14px 2px 6px}.section-label.row .link{text-transform:none;letter-spacing:0;font-size:15px}.cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.cat-pick{display:flex;flex-direction:column;align-items:center;gap:3px;padding:8px 2px;border-radius:12px;background:var(--surface);border:2px solid transparent;min-width:0}.cat-pick.on{border-color:var(--accent)}.cat-pick-icon{font-size:24px}.cat-pick-name{font-size:12px;max-width:100%;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.field{display:flex;flex-direction:column;gap:5px;margin:12px 0;flex:1;min-width:0}.field-label{font-size:13px;color:var(--muted)}.field-hint{font-size:12px;color:var(--muted)}.toggle-row{display:flex;align-items:center;gap:10px;margin:10px 0;font-size:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 16px;border-radius:12px;background:var(--surface);font-weight:600;border:1px solid var(--line)}.btn.small{padding:10px 14px;font-size:14px;border-radius:9px}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.btn.block{display:flex;width:100%;margin-top:12px}.btn.danger-text{background:none;border:0}.summary{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}.summary>div{background:var(--surface);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;flex:1;min-width:90px}.summary span{font-size:12px;color:var(--muted)}.list-row{display:flex;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:13px 14px;text-align:left}.list-row+.list-row{border-top:1px solid var(--line)}.list-row.dim{opacity:.62}.list-row:active{background:var(--surface-2)}.card.list{margin-bottom:8px}.log-row{padding:10px 14px}.log-row+.log-row{border-top:1px solid var(--line)}.emoji-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:4px;margin:4px 0}.emoji-grid button{font-size:22px;padding:6px 0;border-radius:8px}.emoji-grid button.on{background:var(--surface);box-shadow:inset 0 0 0 2px var(--accent)}.copy-row{display:flex;gap:8px;align-items:center;background:var(--surface);border-radius:10px;padding:8px 10px}.copy-row code{flex:1}.toast{position:fixed;left:50%;top:calc(12px + var(--safe-t));transform:translate(-50%);background:#1e1e20f0;color:#fff;padding:10px 16px;border-radius:12px;font-size:14px;z-index:100;max-width:90vw;text-align:center;animation:fade .2s}.center-screen{max-width:420px;margin:0 auto;padding:calc(40px + var(--safe-t)) 16px 40px;display:flex;flex-direction:column;align-items:stretch;text-align:center;gap:4px}.center-screen .field{text-align:left}.center-screen .link{margin-top:14px}.hero{font-size:64px;margin-bottom:8px}.file-btn{cursor:pointer}@media (min-width: 560px){.grid,.cat-grid{grid-template-columns:repeat(5,1fr)}.tiles{grid-template-columns:repeat(4,1fr)}}.steps{padding-left:20px;margin:8px 0}.steps li{margin-bottom:6px}.preview{white-space:pre-wrap;background:var(--surface);border-radius:12px;padding:12px;font-size:13px;line-height:1.45;overflow-x:auto}@keyframes wiggle{0%{transform:rotate(-2.8deg) scale(.985)}50%{transform:rotate(2.8deg) scale(1.015)}to{transform:rotate(-2.8deg) scale(.985)}}.editing .bubble-circle{animation:wiggle .24s ease-in-out infinite}@media (prefers-reduced-motion: reduce){.editing .bubble-circle{animation:none;opacity:.85}}.editing .bubble:nth-child(2n) .bubble-circle{animation-delay:-.11s}.editing .bubble:nth-child(3n) .bubble-circle{animation-delay:-.06s}.editing .bubble{cursor:grab}.paged-row .bubble{touch-action:pan-x}.grid .bubble{touch-action:pan-y}.editing .bubble{touch-action:none}.editbar{position:fixed;left:12px;right:12px;bottom:calc(80px + var(--safe-b));display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--surface);border-radius:14px;padding:10px 12px 10px 16px;box-shadow:0 8px 22px #0000002e;z-index:30;font-size:14px}.offline-bar{position:sticky;top:calc(4px + var(--safe-t));z-index:30;display:block;margin:4px auto 0;width:calc(100% - 32px);max-width:608px;text-align:left}.h2{font-size:20px;margin:22px 0 4px;letter-spacing:-.01em}.h3{font-size:17px;margin:22px 0 6px}.mono{font-family:ui-monospace,Menlo,monospace;letter-spacing:.04em}.wrap{flex-wrap:wrap}.btn.big{padding:15px 16px;font-size:17px;border-radius:14px}.btn.danger{background:var(--neg);color:#fff;border-color:var(--neg)}.link.inline{display:inline;padding:0;font-size:inherit;text-decoration:underline;text-underline-offset:2px}.block-link{display:block;margin:16px 0 4px}.center-link{align-self:center;margin-top:14px}.plain{padding-left:18px;line-height:1.6}.notice.ok-notice{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--text)}.prose{line-height:1.5;font-size:15px}.prose h3{font-size:16px;margin:18px 0 4px}.prose p{margin:8px 0}.prose ul{padding-left:20px;margin:6px 0}.prose li{margin:4px 0}:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 70%,transparent);outline-offset:2px;border-radius:6px}.bubble-value{color:color-mix(in srgb,var(--vc, var(--text)) var(--vc-mix, 64%),#000)}.auth{min-height:100dvh;max-width:440px;margin:0 auto;padding:calc(20px + var(--safe-t)) 20px calc(28px + var(--safe-b));display:flex;flex-direction:column}.auth-hero{position:relative;height:196px;margin:4px 0 6px}.demo-push{position:absolute;left:0;right:0;top:0;display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:18px;background:color-mix(in srgb,var(--surface) 86%,transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 6px 24px #00000014;border:1px solid var(--line);animation:push-in .7s cubic-bezier(.2,.9,.3,1.2) .15s both}.demo-app{width:34px;height:34px;border-radius:9px;background:#111;color:#fff;display:grid;place-items:center;font-size:18px;flex:none}.demo-app:before{content:"💳"}.demo-push div{display:flex;flex-direction:column;text-align:left;font-size:14px}.demo-push span{color:var(--text-2)}.demo-arc{position:absolute;left:50%;top:58px;width:2px;height:58px;margin-left:-1px;background:repeating-linear-gradient(to bottom,var(--muted) 0 4px,transparent 4px 9px);opacity:0;animation:fade-in .3s ease .85s both}.demo-bubble{position:absolute;left:50%;top:116px;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;gap:2px}.demo-circle{width:52px;height:52px;border-radius:50%;display:grid;place-items:center;font-size:24px;background:linear-gradient(to top,#34C77B 0 var(--lvl, 0%),color-mix(in srgb,#34C77B 26%,#E9EAF0) var(--lvl, 0%));animation:fill-up .9s ease 1.15s both}.demo-label{font-size:12px;color:var(--text-2)}.demo-sum{font-size:13px;font-weight:700;color:#1e8f55;animation:fade-in .3s ease 1.6s both}@property --lvl{syntax: "<percentage>"; inherits: false; initial-value: 0%;}@keyframes push-in{0%{transform:translateY(-24px);opacity:0}to{transform:none;opacity:1}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fill-up{0%{--lvl: 0%}to{--lvl: 34%}}@media (prefers-reduced-motion: reduce){.demo-push,.demo-arc,.demo-circle,.demo-sum{animation:none;opacity:1}.demo-circle{--lvl: 34%}}.auth-form h1{font-size:30px;line-height:1.1;letter-spacing:-.025em;margin:6px 0 8px}.auth-form .lead{color:var(--text-2);font-size:16px;line-height:1.45;margin:0 0 18px}.auth-form{display:flex;flex-direction:column}.auth-seg{margin:0 0 4px}.consent{align-items:flex-start;font-size:14px;color:var(--text-2)}.consent input{margin-top:1px}.onboard h1,.onboard-banks h1{font-size:26px;letter-spacing:-.02em;margin:8px 0 6px}.onboard p{margin:6px 0;line-height:1.45}.bank-chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 6px}.chip.more{background:none;border-style:dashed;color:var(--text-2)}.bank-row{padding:10px 12px}.bank-row+.bank-row{border-top:1px solid var(--line)}.bank-row-name{font-weight:600;margin-bottom:6px}.bank-row input.keys{width:104px;flex:none;text-align:center;letter-spacing:.08em}.bank-row select{flex:1;min-width:0}.checklist{background:var(--surface);border-radius:var(--radius);padding:10px 6px 4px;margin-bottom:8px}.checklist-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 8px 4px}.check-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:9px 8px;border-radius:10px}.check-item:active{background:var(--surface-2)}.check-item:disabled{opacity:1}.check-item.done .check-text span{color:var(--muted);text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--muted) 60%,transparent)}.check-dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--line);flex:none;display:grid;place-items:center;transition:background .25s,border-color .25s}.check-item.done .check-dot{background:var(--accent);border-color:var(--accent)}.check-item.done .check-dot:after{content:"";width:9px;height:5px;border:2px solid var(--accent-ink);border-top:0;border-right:0;transform:rotate(-45deg) translate(1px,-1px)}.check-text{flex:1;display:flex;flex-direction:column;min-width:0}.check-text small{color:var(--muted);font-size:13px}.chev{color:var(--muted)}.track{list-style:none;padding:0;margin:14px 0 0;counter-reset:step}.track-step{position:relative;padding:0 0 22px 40px;counter-increment:step}.track-step:before{content:counter(step);position:absolute;left:0;top:-1px;width:26px;height:26px;border-radius:50%;display:grid;place-items:center;font-size:14px;font-weight:700;background:var(--surface-2);border:2px solid var(--line);color:var(--text-2);transition:background .3s,border-color .3s,color .3s}.track-step:after{content:"";position:absolute;left:13px;top:30px;bottom:2px;width:2px;background:var(--line)}.track-step:last-child:after{display:none}.track-step.done:before{content:"✓";background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.track-step.done:after{background:var(--accent)}.track-step h3{margin:1px 0 4px;font-size:17px}.track-step>p{margin:0 0 8px}.sc-list{display:flex;flex-direction:column;gap:6px}.sc-row{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;color:inherit;text-decoration:none}.sc-row:active{background:var(--surface-2)}.sc-row.disabled{opacity:.5;pointer-events:none}.sc-icon{width:34px;height:34px;border-radius:9px;display:grid;place-items:center;font-size:18px;flex:none;background:linear-gradient(135deg,#5b5fef,#e2489b);color:#fff}.sc-text{flex:1;display:flex;flex-direction:column;min-width:0;font-size:15px}.sc-text span{color:var(--muted);font-size:13px}.sc-go{color:var(--accent);font-weight:600;font-size:14px}.status{display:inline-block;margin-top:8px;font-size:14px;color:var(--muted)}.status:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:7px;vertical-align:1px;animation:blink 1.6s ease-in-out infinite}.status.ok{color:var(--pos)}.status.ok:before{background:var(--pos);animation:none}@keyframes blink{50%{opacity:.25}}@media (prefers-reduced-motion: reduce){.status:before{animation:none}}.checks{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:2px}.checks li,div.checks{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:15px}.checks .status{margin-top:2px}details{margin-top:8px}details summary{color:var(--accent);cursor:pointer}.ios-hint{border-radius:14px;background:var(--surface-2);border:1px solid var(--line);padding:10px 12px;margin:8px 0;font-size:13px}.ios-hint-head{font-weight:700;margin-bottom:8px}.ios-hint-row{display:flex;justify-content:space-between;align-items:center;background:var(--surface);border-radius:10px;padding:8px 10px}.ios-hint-action{margin-top:6px;background:var(--surface);border-radius:10px;padding:8px 10px;color:var(--text-2)}.ios-toggle{width:42px;height:26px;border-radius:13px;background:#34c759;position:relative;flex:none;animation:toggle-on .6s ease .4s both}.ios-toggle span{position:absolute;top:2px;left:18px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px #00000040;animation:knob-on .6s ease .4s both}@keyframes toggle-on{0%{background:#d1d1d6}}@keyframes knob-on{0%{left:2px}}@media (prefers-reduced-motion: reduce){.ios-toggle,.ios-toggle span{animation:none}}.legacy h3{margin:22px 0 6px;font-size:16px}.copy-block{display:flex;flex-direction:column;gap:6px;margin:10px 0}.user-row{display:flex;flex-direction:column;gap:8px;padding:12px 14px}.user-row+.user-row{border-top:1px solid var(--line)}.user-main{display:flex;flex-direction:column;gap:2px;min-width:0;word-break:break-all}.card.list+.card.list{margin-top:12px}a.btn{text-decoration:none;color:inherit}a.btn.primary{color:var(--accent-ink)}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;touch-action:none}.tour-dim{position:fixed;top:0;right:0;bottom:0;left:0;background:#060a12c2}.tour-hole{position:fixed;border-radius:18px;box-shadow:0 0 0 9999px #060a12c2,0 0 0 3px #ffffffe6 inset;transition:left .28s ease,top .28s ease,width .28s ease,height .28s ease;pointer-events:none;animation:tour-glow 1.6s ease-in-out infinite}@keyframes tour-glow{50%{box-shadow:0 0 0 9999px #060a12c2,0 0 0 3px #ffffff73 inset}}.tour-arrow{position:fixed;left:0;top:0;pointer-events:none;overflow:visible}.tour-arrow path{animation:tour-dash 1s linear infinite}@keyframes tour-dash{to{stroke-dashoffset:-22}}.tour-card{position:fixed;background:var(--surface);color:var(--text);border-radius:18px;padding:14px 16px 12px;box-shadow:0 18px 50px #00000059;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .2s}.tour-card.on{opacity:1;transform:none}.tour-card h3{margin:4px 0 6px;font-size:18px}.tour-card p{margin:0 0 12px;font-size:15px;line-height:1.4;color:var(--text-2)}.tour-top{display:flex;justify-content:space-between;align-items:center}.tour-count{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums}.tour-gesture{display:inline-block;margin-top:6px;padding:3px 10px;border-radius:99px;background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600;font-size:13px}.tour-actions{display:flex;justify-content:space-between;gap:10px}.tour-actions .btn{min-width:96px}.tour-later{display:block;margin:8px auto 0}.tour-finger{position:fixed;width:0;height:0;pointer-events:none;z-index:1}.tour-dot{position:absolute;left:-17px;top:-17px;width:34px;height:34px;border-radius:50%;background:#ffffffeb;border:3px solid var(--accent);box-shadow:0 4px 14px #00000059}.tour-ripple{position:absolute;left:-17px;top:-17px;width:34px;height:34px;border-radius:50%;border:3px solid #fff;animation:tour-ripple 1.4s ease-out infinite}@keyframes tour-ripple{0%{transform:scale(1);opacity:.9}to{transform:scale(2.6);opacity:0}}.g-tap .tour-dot{animation:tour-tap 1.4s ease-in-out infinite}@keyframes tour-tap{0%,to{transform:scale(1)}20%{transform:scale(.78)}40%{transform:scale(1)}}.tour-ring{position:absolute;left:-29px;top:-29px;width:58px;height:58px;border-radius:50%;background:conic-gradient(#fff var(--p, 0%),transparent 0);-webkit-mask:radial-gradient(circle,transparent 23px,#000 24px);mask:radial-gradient(circle,transparent 23px,#000 24px);animation:tour-hold 2s linear infinite}@property --p{syntax: "<percentage>"; inherits: false; initial-value: 0%;}@keyframes tour-hold{0%{--p: 0%}70%{--p: 100%}to{--p: 100%;opacity:0}}.g-hold .tour-dot{animation:tour-press 2s ease-in-out infinite}@keyframes tour-press{0%,to{transform:scale(1)}10%,70%{transform:scale(.82)}}.g-swipe{animation:tour-swipe 1.8s ease-in-out infinite}@keyframes tour-swipe{0%{transform:translate(70px);opacity:0}15%{opacity:1}75%{transform:translate(-70px);opacity:1}to{transform:translate(-70px);opacity:0}}.g-drag{animation:tour-drag 2.4s ease-in-out infinite}@keyframes tour-drag{0%{transform:translate(0);opacity:0}10%{opacity:1;transform:translate(0)}25%{transform:translate(0)}80%{transform:translate(var(--dx),var(--dy));opacity:1}to{transform:translate(var(--dx),var(--dy));opacity:0}}.tour-ghost{position:absolute;left:-28px;top:-28px;width:56px;height:56px;border-radius:50%;background:#7f8cff;display:grid;place-items:center;font-size:26px;opacity:.9;box-shadow:0 8px 20px #00000059}.tour-bigarrow{position:fixed;left:50%;bottom:calc(18px + var(--safe-b));transform:translate(-50%);font-size:64px;color:#fff;text-shadow:0 4px 16px rgba(0,0,0,.5);animation:tour-bounce 1.1s ease-in-out infinite}@keyframes tour-bounce{50%{transform:translate(-50%,12px)}}@media (prefers-reduced-motion: reduce){.tour-hole,.tour-arrow path,.tour-ripple,.tour-dot,.tour-ring,.g-swipe,.g-drag,.tour-bigarrow{animation-duration:3s}}.admin-box{border:1px dashed var(--line);border-radius:14px;padding:12px;margin-bottom:16px;background:var(--surface-2)}.admin-box-head{font-weight:600;margin-bottom:6px}.setup{position:fixed;top:0;right:0;bottom:0;left:0;z-index:180;background:var(--bg);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:calc(var(--safe-t) + 10px) 16px calc(var(--safe-b) + 24px)}.setup-head{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:520px;margin:0 auto 8px}.setup-dots{display:flex;gap:6px}.setup-dots span{width:22px;height:5px;border-radius:3px;background:var(--line)}.setup-dots span.on{background:var(--accent)}.setup-dots span.done{background:color-mix(in srgb,var(--accent) 45%,var(--line))}.setup-body{max-width:520px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.setup-body h1{font-size:24px;margin-top:6px}.setup-body p{margin:0;color:var(--text-2)}.setup-body .steps{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:6px}.setup-hero{font-size:52px;text-align:center;margin-top:8px}.setup-shot{display:block;width:100%;max-width:280px;margin:0 auto;border-radius:16px;border:1px solid var(--line);background:#000}.setup-shot.wide{max-width:360px}.setup-status{text-align:center;padding:12px;border-radius:12px;background:var(--surface);color:var(--muted);font-weight:600}.setup-status.ok{color:var(--pos);background:color-mix(in srgb,var(--accent) 12%,var(--surface))}.setup-help{background:var(--surface);border-radius:12px;padding:10px 14px;font-size:14px}.setup-help summary{cursor:pointer;color:var(--accent);font-weight:600}.setup-help ul{padding-left:18px;margin:8px 0}.setup-banner{margin:10px 16px 0;width:auto}.inline-select{width:auto;min-width:92px;padding:6px 28px 6px 10px;background-color:var(--surface-2)}.shot-anim{position:relative;max-width:360px;margin:0 auto;border-radius:16px;overflow:hidden;border:1px solid var(--line);background:#000}.shot-anim img{display:block;width:100%}.shot-anim img.first{position:absolute;left:0;top:0;height:100%;object-fit:contain;object-position:top;background:#000;animation:shot-first 6s ease-in-out infinite}.tap-dot{position:absolute;width:30px;height:30px;margin:-15px 0 0 -15px;border-radius:50%;background:#ffffffd9;border:3px solid #30C77B;box-shadow:0 2px 10px #00000080;animation:shot-dot 6s ease-in-out infinite}@keyframes shot-first{0%,42%{opacity:1}50%,92%{opacity:0}to{opacity:1}}@keyframes shot-dot{0%{left:35%;top:41%;transform:scale(1);opacity:0}8%{opacity:1}30%{transform:scale(1)}36%{transform:scale(.7)}42%{left:35%;top:41%;transform:scale(1);opacity:1}50%{opacity:0}56%{left:86%;top:74%;opacity:0}62%{opacity:1;transform:scale(1)}80%{transform:scale(1)}86%{transform:scale(.7)}92%{left:86%;top:74%;transform:scale(1);opacity:1}to{left:86%;top:74%;opacity:0}}.tapdemo{background:#1c1c1e;color:#f5f5f7;border-radius:16px;padding:6px;display:flex;flex-direction:column;gap:4px;font-size:15px}.tapdemo-row{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:11px;background:#2c2c2e;animation:tapdemo 6s ease-in-out infinite}.tapdemo-n{width:22px;height:22px;border-radius:50%;background:#48484a;display:grid;place-items:center;font-size:12px;font-weight:700;flex:none}@keyframes tapdemo{0%,3%{background:#2c2c2e;transform:none}6%,20%{background:#1f6f47;transform:scale(1.02)}25%,to{background:#2c2c2e;transform:none}}@media (prefers-reduced-motion: reduce){.shot-anim img.first,.tap-dot,.tapdemo-row{animation:none}.shot-anim img.first{position:static;height:auto}.tap-dot{display:none}}.txitem+.txitem{border-top:1px solid var(--line)}.quick-cats{padding:0 14px 10px}.quick-cats .chip{padding:7px 12px;font-size:13px;background:var(--surface-2)}.hint-card .link{display:block;margin-top:6px}
