*{box-sizing:border-box}*{-webkit-tap-highlight-color:transparent}@font-face{font-family:ZBBrush;src:url(/fonts/zb-brush.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}:root{color-scheme:light;--kb: 0px;--bg: #e7dcc3;--bg-grad: radial-gradient(1100px 700px at 50% -10%, #f5eeda 0%, #e7dcc3 60%);--card: #f2ead6;--card-elev: #e6d9bc;--line: #c3b394;--line-gold: #9c7c40;--text: #2a2118;--dim: #6e6046;--accent: #1f6e58;--accent-ink: #f6f0dd;--gold: #8a6a2f;--gold-bright: #a5813a;--red: #a83226;--accent-hi: #2f8a6e;--accent-lo: #1f6e58;--accent-glow: #1f6e5833;--seg-active-bg: #1f6e581a;--chip-active-bg: #ead9ae;--press-veil: #0000000d;--scrim: #050810cc;--gold-hairline: #8a6a2f4d;--font-display: "Noto Serif TC", "Songti TC", "SimSun", serif;--font-body: system-ui, "PingFang TC", "Microsoft JhengHei", sans-serif;--font-brush: "ZBBrush", "Noto Serif TC", "Songti TC", serif;--scroll-paper1: #efe4c6;--scroll-paper2: #dccaa0;--scroll-ink: #33281a;--scroll-ink-dim: #6b5a3c;--scroll-zhu: #a8321f;--scroll-rod: linear-gradient(90deg, #3a2c16, #7a5f30 42%, #d8b25c 56%, #5a4522 100%)}body{background:var(--bg-grad) no-repeat fixed,var(--bg);color:var(--text);font-family:var(--font-body)}.screen{height:100%;display:flex;flex-direction:column;animation:screenIn .28s ease both;position:relative}@keyframes screenIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.fade-img{opacity:0;transition:opacity .26s ease}.fade-img.loaded{opacity:1}:is(.primary-btn,.ghost-btn,.seg-btn,.danger-btn,.nav-btn,.corner-btn):focus-visible{outline:2px solid var(--gold-bright);outline-offset:2px}@keyframes fadein{0%{opacity:0}to{opacity:1}}.primary-btn{padding:12px 18px;background:linear-gradient(180deg,var(--accent-hi),var(--accent-lo));color:var(--accent-ink);font-weight:800;font-size:16px;border:none;border-radius:10px;cursor:pointer;transition:filter .15s,transform .1s,box-shadow .15s}.primary-btn:hover{filter:brightness(1.08);box-shadow:0 0 14px var(--accent-glow)}.primary-btn:active{transform:translateY(1px);filter:brightness(.95)}.ghost-btn{padding:8px 12px;background:transparent;color:var(--dim);border:1px solid var(--line);border-radius:8px;cursor:pointer;transition:border-color .15s,color .15s}.ghost-btn:hover{color:var(--text);border-color:var(--gold)}.ghost-btn:active{background:var(--press-veil)}.danger-btn{padding:12px 18px;background:var(--red);color:#fff;font-weight:800;border:none;border-radius:10px;font-size:15px;cursor:pointer}.danger-btn:hover{filter:brightness(1.1)}.danger-ghost:hover{border-color:var(--red)!important;color:var(--red)!important}.seg{display:flex;gap:6px;flex:1;min-width:0}.seg-btn{flex:1;min-width:0;padding:8px 6px;background:var(--card-elev);color:var(--dim);border:1px solid var(--line);border-radius:8px;font-size:14px;cursor:pointer;transition:border-color .15s,color .15s}.seg-btn.active{color:var(--text);border-color:var(--accent);background:var(--seg-active-bg)}button:disabled{opacity:.35;cursor:not-allowed}.corner-btn{position:relative;min-width:clamp(44px,2.75em,64px);min-height:clamp(44px,2.75em,64px);display:inline-flex;align-items:center;justify-content:center;font-size:20px;line-height:1;background:color-mix(in srgb,var(--card) 78%,transparent);border:1px solid var(--line);border-radius:10px;box-shadow:0 2px 8px #00000030;cursor:pointer;transition:border-color .15s,filter .15s}.corner-btn:hover{border-color:var(--gold);filter:brightness(1.06)}.corner-btn:active{transform:translateY(1px)}.corner-seal{font-family:var(--font-brush),serif;font-size:23px;line-height:1.2;color:var(--text)}.seal-char{display:inline-block;font-family:var(--font-display);color:var(--red);border:1.5px solid var(--red);border-radius:4px;padding:0 4px;font-size:.82em;line-height:1.35;margin-right:6px}.scroll-banner{align-self:center;font-family:var(--font-brush);font-size:19px;font-weight:700;color:var(--scroll-ink);background:linear-gradient(180deg,var(--scroll-paper1),var(--scroll-paper2));border-top:1px solid #c7ab6e;border-bottom:1px solid #8a6f3a;border-radius:2px;box-shadow:0 3px 10px #0006,inset 0 1px #fff7e2cc;letter-spacing:.1em;padding:8px 26px;position:relative;white-space:nowrap}.scroll-banner:before,.scroll-banner:after{content:"";position:absolute;top:-4px;bottom:-4px;width:11px;border-radius:4px;background:var(--scroll-rod);box-shadow:0 1px 5px #000a,inset 0 0 2px #ffe9b055}.scroll-banner:before{left:-5px}.scroll-banner:after{right:-5px}.paper-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;box-shadow:inset 0 1px #fff7e2aa;display:flex;flex-direction:column;gap:12px}.money-card{--card-accent: #b08a4f;background:linear-gradient(168deg,#f5efdf,#ece2cb);color:#2c2417;border:1px solid rgba(90,70,40,.45);border-top:3px solid var(--card-accent);border-radius:10px;padding:12px 14px;box-shadow:0 6px 20px #00000040}.money-card .money-name{font-size:14px;letter-spacing:.12em;color:var(--dim)}.money-card .money-amount{font-size:22px;font-weight:700}.tnum{font-variant-numeric:tabular-nums}.paper-label{position:relative;padding:.47em .33em .53em;border:1px solid #00000026;border-radius:3px;background:linear-gradient(180deg,var(--scroll-paper1),var(--scroll-paper2));box-shadow:0 2px 7px #0000004d;color:var(--scroll-ink);font-family:var(--font-brush);font-size:15px;font-weight:700;line-height:1.06;letter-spacing:.06em;writing-mode:vertical-rl;text-orientation:upright;white-space:nowrap;cursor:pointer;transition:box-shadow .15s ease,filter .15s ease}.paper-label:hover,.paper-label:focus-visible{box-shadow:0 3px 12px #0006;filter:brightness(1.06)}.paper-label.active{outline:2px solid var(--scroll-zhu);outline-offset:1px}.paper-label:after{content:"";position:absolute;top:0;right:-5px;bottom:0;left:-5px}.dim-text{color:var(--dim);margin:0}.spinner{width:14px;height:14px;border:2px solid var(--dim);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(pointer:coarse){.primary-btn,.ghost-btn,.seg-btn,.danger-btn,.text-input,.app-toast-btn,.key-btn,.note-chip{min-height:max(44px,2.75em)}}.ledger-body{padding-bottom:max(90px,calc(1.6em + 44px));touch-action:pan-y}.month-nav{display:flex;flex-direction:column;align-items:center;gap:10px}.month-row{display:flex;align-items:center;justify-content:center;gap:10px;width:100%}.month-arrow{font-size:20px;min-width:clamp(44px,2.75em,56px);flex:0 0 auto}.month-banner{display:block;flex:0 1 auto;min-width:0;white-space:normal;text-align:center;text-wrap:balance;padding-left:20px;padding-right:20px}.month-total{font-size:13px;color:var(--dim);letter-spacing:0}.person-totals{display:flex;flex-wrap:wrap;gap:10px}.person-card{flex:1 1 40%}.person-card .money-amount{text-align:right}.day-group{display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:inset 0 1px #fff7e2aa;overflow:clip}.day-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;padding:8px 14px 6px;font-size:13px;color:var(--dim);border-bottom:1px dashed var(--line);letter-spacing:.06em}.entry-row{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;background:transparent;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent);cursor:pointer;text-align:left;font:inherit;color:inherit;min-height:max(48px,3em)}.entry-row:last-child{border-bottom:none}.entry-row:active{background:var(--press-veil)}.cat-seal{color:color-mix(in srgb,var(--cat-color, var(--dim)) 65%,var(--text));border-color:color-mix(in srgb,var(--cat-color, var(--dim)) 65%,var(--text));font-size:16px;flex-shrink:0}.entry-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.entry-title{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.entry-sub{font-size:12px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.einv-chip{flex-shrink:0;align-self:center;font-size:10px;color:var(--accent);border:1px solid var(--accent);border-radius:3px;padding:0 3px}.entry-amount{font-size:16px;font-weight:600;flex-shrink:0;margin-left:auto}.empty-hint{text-align:center;margin-top:40px;letter-spacing:.1em}.backup-nag{background:#efe6d2;border:1px solid #b08d57;color:#6b4c1d;border-radius:10px;min-height:max(44px,2.75em);padding:10px 14px;font-size:13px;text-align:left;cursor:pointer;line-height:1.5}.backup-nag:active{filter:brightness(.96)}.add-fab{position:absolute;left:50%;transform:translate(-50%);bottom:12px;z-index:20;padding:12px 34px;border-radius:24px;font-family:var(--font-brush);font-size:18px;letter-spacing:.2em;box-shadow:0 4px 16px #00000045}.add-fab:active{transform:translate(-50%) translateY(1px)}.sheet-overlay{position:fixed;inset:0 0 var(--kb, 0px) 0;background:var(--scrim);display:flex;align-items:flex-end;z-index:80;animation:fadein .15s ease}.entry-sheet{width:100%;max-height:min(88dvh,100%);overflow-y:auto;background:var(--card);border-top:1px solid var(--line-gold);border-radius:18px 18px 0 0;box-shadow:inset 0 1px #fff7e2aa,0 -8px 30px #00000059;padding:0;display:flex;flex-direction:column;animation:sheetUp .22s ease both}.sheet-head,.sheet-foot{flex:0 0 auto}.sheet-head{display:flex;flex-direction:column;gap:6px;padding:10px 16px 0}.sheet-head-row{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:max(44px,2.75em)}.sheet-head-row .corner-btn{border-color:var(--red)}.sheet-head-row .corner-seal{color:var(--red)}.sheet-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;flex-direction:column;gap:10px;padding:10px 16px}.sheet-scroll>*{flex-shrink:0}.sheet-foot{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--gold-hairline)}@keyframes sheetUp{0%{transform:translateY(30%);opacity:.4}to{transform:none;opacity:1}}.sheet-title{font-family:var(--font-display);font-size:17px;font-weight:700}.amount-display{font-size:min(2.5em,60px);font-weight:700;padding:2px 10px 6px;border-bottom:2px solid var(--line-gold);font-family:var(--font-display);display:flex;justify-content:safe flex-end;overflow-x:auto;scrollbar-width:none}.entry-grid{display:grid;grid-template-columns:5fr 4fr;gap:14px;align-items:start}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.key-btn{min-height:52px;font-size:22px;font-family:var(--font-display);background:var(--card-elev);color:var(--text);border:1px solid var(--line);border-radius:10px;cursor:pointer}.key-btn:active{background:var(--chip-active-bg);transform:translateY(1px)}.key-fn{color:var(--dim);font-size:18px}.entry-fields{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:12px;color:var(--dim);letter-spacing:.15em}.text-input{font:inherit;color:var(--text);background:#fdf8ec;border:1px solid var(--line);border-radius:8px;padding:8px 10px;min-width:0;width:100%}.text-input:focus-visible{outline:2px solid var(--gold-bright);outline-offset:1px}.text-input::placeholder{color:color-mix(in srgb,var(--dim) 60%,transparent)}.cat-scroller{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:thin}.cat-scroller .paper-label{flex-shrink:0;min-height:76px}.note-chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 4px;scrollbar-width:thin}.note-chip{flex-shrink:0;max-width:10em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:6px 10px;border:1px solid #00000026;border-radius:3px;background:linear-gradient(180deg,var(--scroll-paper1),var(--scroll-paper2));box-shadow:0 2px 7px #0000004d;color:var(--scroll-ink);font-family:var(--font-brush);font-size:13px;letter-spacing:.06em;cursor:pointer;transition:box-shadow .15s ease,filter .15s ease}.note-chip:hover{filter:brightness(1.06)}.note-chip.active{outline:2px solid var(--scroll-zhu);outline-offset:1px}.sheet-actions{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:10px}.cat-row{display:flex;align-items:center;gap:8px;min-height:max(44px,2.75em)}.cat-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-lock{font-size:11px;color:var(--gold);border:1px solid var(--gold-hairline);border-radius:4px;padding:0 4px}.cat-row.stacked{flex-wrap:wrap;row-gap:6px}.cat-row.stacked .cat-name{flex:1 1 8em;white-space:normal;overflow:visible;overflow-wrap:anywhere}.cat-row.stacked .cat-tools{margin-left:auto}.cat-row.stacked .rule-select{flex:1 1 auto;width:auto;min-width:0;max-width:none}.cat-tools{display:flex;gap:4px;align-items:center}.cat-tool{min-width:clamp(44px,2.75em,64px);padding:6px 4px;font-size:12px}.cat-color-input{width:clamp(44px,2.75em,64px);height:clamp(44px,2.75em,64px);padding:7px;border:1px solid var(--line);border-radius:6px;background:transparent;cursor:pointer}.cat-add-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cat-add-row .text-input{flex:1;min-width:90px;width:auto}.cat-glyph-input{text-align:center}.cat-add-row .cat-glyph-input{flex:0 0 auto;width:5.5em;min-width:0;max-width:none}.rule-select{flex:0 1 auto;min-width:0}.person-tabs{flex:0 0 auto;align-self:center;min-width:min(100%,360px)}.name-gate .name-input{text-align:center;font-size:20px;font-family:var(--font-brush);letter-spacing:.2em;margin-bottom:4px}.storage-line{line-height:1.7}.version-line{font-size:12px}@media(max-height:520px){.entry-sheet{max-height:100%}.key-btn{min-height:40px;font-size:19px}.amount-display{font-size:30px}.cat-scroller .paper-label{min-height:56px}}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.chart-title{font-family:var(--font-display);font-size:15px;font-weight:700;letter-spacing:.08em;display:flex;align-items:baseline;justify-content:space-between;gap:8px}.chart-hint{font-size:11px;font-weight:400;letter-spacing:0}.chart-tick{font-size:13px;fill:var(--dim);font-family:var(--font-body)}.chart-tick.focus{fill:var(--gold);font-weight:700}.bar-anim{transform-box:fill-box;transform-origin:bottom;animation:barGrow .5s ease both}@keyframes barGrow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}.trend-line{stroke-dasharray:1;stroke-dashoffset:1;animation:drawStroke .9s ease-out .15s both}.donut-arc{stroke-dasharray:1;stroke-dashoffset:1;animation:drawStroke .6s ease-out both}@keyframes drawStroke{to{stroke-dashoffset:0}}.donut-svg{max-width:min(100%,max(230px,14em));margin:0 auto}.donut-legend{display:flex;flex-direction:column}.legend-row{display:flex;align-items:center;gap:8px;padding:8px 4px;background:transparent;border:none;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent);font:inherit;color:inherit;cursor:pointer;min-height:max(44px,2.75em)}.legend-row:last-child{border-bottom:none}.legend-row.active{background:var(--seg-active-bg);border-radius:8px}.legend-name{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.legend-count{font-size:12px}.legend-amount{font-weight:600}.legend-pct{font-size:12px;min-width:34px;text-align:right}.picked-list{border-top:1px dashed var(--line-gold);margin-top:4px;padding-top:4px}.person-split{display:flex;flex-direction:column;gap:6px}.split-ends{display:flex;justify-content:space-between;font-size:14px}.split-caption{text-align:center;font-size:13px}.budget-brush{display:flex;flex-direction:column;gap:4px}.budget-head{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}.budget-label{color:var(--dim);letter-spacing:.12em}.over-red{color:var(--scroll-zhu);font-weight:700}.mover-down{color:var(--accent);font-weight:700}.budget-over-note{margin:0;font-size:13px;text-align:right}.budget-cats{display:flex;flex-direction:column;gap:8px;margin-top:6px}.budget-cat-line{display:flex;flex-direction:column;gap:2px}.budget-brush.compact .budget-head{font-size:12px}.custom-range{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap}.month-stepper{display:inline-flex;align-items:center;gap:4px}.stepper-btn{min-width:clamp(44px,2.75em,64px);padding:4px 8px}.budget-input-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.budget-input-row .cat-name{flex:1 1 8em;white-space:normal;overflow:visible}.budget-input-row .text-input{flex:1 1 auto;max-width:none;text-align:right}.chart-title,.budget-head,.legend-row{flex-wrap:wrap}.chart-hint,.legend-amount{margin-left:auto}.legend-name{flex:1 1 6em}.split-ends{gap:12px}.split-ends>:last-child{text-align:right}.scan-body{flex:1;min-height:0;display:flex;flex-direction:column}.scan-viewport{position:relative;flex:1;min-height:0;background:#14100a;border-radius:12px;margin:0 max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left));overflow:hidden}.scan-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover}.scan-frame{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;gap:14px}.scan-target{width:min(34vw,150px);aspect-ratio:1;border:2.5px solid #efe4c6cc;border-radius:8px;box-shadow:0 0 0 2000px #0a080447;clip-path:inset(-4px round 8px)}.scan-hint{align-self:center;max-width:100%;margin:8px 0 0;padding:6px 16px;background:#efe6d2e6;border:1px solid #b08d57;border-radius:999px;color:#2c2318;font-size:13px;letter-spacing:.08em;text-align:center}.scan-hint.denied{background:#f6e2de;border-color:var(--scroll-zhu);color:#6b1d12}.scan-controls{display:flex;justify-content:center;padding:12px max(12px,env(safe-area-inset-right)) 12px max(12px,env(safe-area-inset-left))}.scan-result{flex:1;min-height:0;overflow-y:auto;padding:6px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}.scan-preview{gap:6px}.inv-no{font-size:13px;letter-spacing:.06em}.scan-amount{font-size:24px;font-weight:700;text-align:right}.scan-preview .sheet-actions{position:sticky;bottom:0;z-index:1;margin:10px -20px -18px;padding:10px 20px;background:var(--card);border-top:1px solid var(--gold-hairline);border-radius:0 0 13px 13px}.scan-items summary{cursor:pointer;padding:12px 0;min-height:max(44px,2.75em)}.scan-item-row .entry-title{flex:1 1 auto}.scan-item-row .dim-text{flex:0 0 auto;white-space:nowrap}.scan-item-row{display:flex;justify-content:space-between;gap:8px;padding:4px 2px;border-bottom:1px solid color-mix(in srgb,var(--line) 40%,transparent);font-size:14px}.scan-item-row:last-child{border-bottom:none}.sync-live{display:flex;flex-direction:column;align-items:center;gap:10px}.qr-box{width:220px;height:220px;border:1px solid var(--line-gold);border-radius:8px;background:#fdf8ec;padding:6px}.qr-loading{display:flex;align-items:center;justify-content:center}.room-code{font-family:var(--font-brush);font-size:34px;letter-spacing:.2em;text-indent:.2em;color:var(--scroll-ink)}.room-code-input{text-align:center;font-size:22px;letter-spacing:.3em;text-transform:uppercase;font-variant-numeric:tabular-nums}.join-viewport{width:100%;aspect-ratio:4 / 3;max-height:46dvh;margin:0;flex:0 0 auto}.sync-status{margin:0;letter-spacing:.08em}.sync-err{margin:0;font-size:14px}.sync-summary{align-items:center}.summary-grid{display:grid;grid-template-columns:auto auto;gap:6px 18px;font-size:15px}.summary-grid span{color:var(--dim)}.summary-grid b{text-align:right}.modal-overlay{position:fixed;inset:0 0 var(--kb, 0px) 0;background:var(--scrim);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadein .15s ease;overflow-y:auto;padding:max(16px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.modal-card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px 26px;min-width:min(300px,100%);max-width:min(420px,100%);margin:auto;box-shadow:inset 0 1px #fff7e2aa,0 12px 40px #0006}.modal-title{margin:0 0 8px;font-size:20px;font-family:var(--font-display)}.modal-body{margin:0 0 16px;color:var(--dim);font-size:14px}.modal-actions{display:flex;gap:10px;justify-content:center;margin-top:14px;flex-wrap:wrap}.crash-screen{height:100%;display:flex;align-items:center;justify-content:center;padding:max(20px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.crash-card{max-width:420px}.crash-digest{font-size:12px;color:var(--dim);word-break:break-all;margin-bottom:10px}.app-toast{position:fixed;bottom:calc(max(76px,2.6em + 20px) + env(safe-area-inset-bottom,0px) + var(--kb, 0px));left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;background:#efe6d2f2;border:1px solid #b08d57;color:#2c2318;padding:8px 16px;border-radius:10px;font-size:14px;z-index:90;box-shadow:0 4px 18px #00000059;animation:fadein .15s ease;max-width:min(92vw,420px);white-space:normal;font-variant-numeric:tabular-nums}.app-toast.above-fab{bottom:calc(max(140px,5.6em + 32px) + env(safe-area-inset-bottom,0px) + var(--kb, 0px))}.app-toast.at-top{top:calc(8px + env(safe-area-inset-top,0px));bottom:auto}.app-toast-btn{border:1px solid #8a6a3b;background:#d9b96e;color:#241a0d;padding:4px 12px;border-radius:8px;font-size:13px;cursor:pointer}.app-shell{height:calc(100% - var(--kb, 0px));display:flex;flex-direction:column}.app-shell>.screen{flex:1;min-height:0}.app-top{display:flex;align-items:center;justify-content:space-between;padding:max(10px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) 8px max(16px,env(safe-area-inset-left))}.app-title{font-family:var(--font-display);font-size:20px;font-weight:700;letter-spacing:.08em}.screen-body{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding:6px max(16px,env(safe-area-inset-right)) 16px max(16px,env(safe-area-inset-left))}.screen-body>*{flex:0 0 auto}.screen-body>.grow{flex:1 1 auto;min-height:0}.bottom-nav{display:flex;border-top:1px solid var(--line);background:color-mix(in srgb,var(--card) 92%,transparent);padding-bottom:env(safe-area-inset-bottom,0px)}.nav-btn{flex:1;min-height:max(56px,3.5em);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:transparent;border:none;color:var(--dim);cursor:pointer;transition:color .15s}.nav-btn:active{background:var(--press-veil)}.nav-btn.active{color:var(--accent)}.nav-glyph{font-family:var(--font-brush);font-size:22px;line-height:1.2}.nav-btn.active .nav-glyph{text-shadow:0 0 10px var(--accent-glow)}.nav-label{font-size:11px;letter-spacing:.1em}@media(prefers-reduced-motion:reduce){.screen,.sheet-overlay,.entry-sheet,.modal-overlay,.app-toast,.bar-anim{animation:none}.trend-line,.donut-arc{animation:none;stroke-dashoffset:0}.primary-btn,.ghost-btn,.seg-btn,.corner-btn,.paper-label,.nav-btn,.fade-img{transition-duration:1ms}}
