@font-face{font-family:DM Sans;src:url(/fonts/dm-sans-var.woff2) format("woff2-variations");font-weight:100 1000;font-style:normal;font-display:swap}*,*:before,*:after{box-sizing:border-box}:root{--graphite: #1C1F22;--graphite-deep: #141719;--surface: rgba(34, 38, 42, .6);--surface-solid: #22262A;--surface-high: rgba(42, 47, 52, .68);--surface-high-solid: #2A2F34;--line: #343A40;--line-strong: #454C53;--ink: #F4F5F2;--ink-dim: #A8AFAA;--ink-faint: #8B928D;--brass: #B08434;--brass-bright: #C89A45;--brass-deep: #8A6626;--brass-wash: rgba(176, 132, 52, .14);--on-brass: #22190A;--danger: #E4674F;--danger-wash: rgba(228, 103, 79, .14);--success: #7FB89B;--pinstripe: repeating-linear-gradient( 90deg, rgba(255, 255, 255, .032) 0 1px, transparent 1px 34px );--font-display: "DM Sans", -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;--font-ui: "DM Sans", -apple-system, "Helvetica Neue", Helvetica, Arial, sans-serif;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-base: .9375rem;--fs-md: 1.0625rem;--fs-lg: 1.25rem;--fs-xl: 1.5rem;--fs-2xl: 1.875rem;--fs-3xl: 2.5rem;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--r-sm: 0px;--r-md: 0px;--r-lg: 0px;--r-full: 999px;--glass-blur: 16px;--glass-blur-light: 10px;--shadow-md: 0 2px 10px rgba(0, 0, 0, .35);--shadow-lift: 0 12px 34px rgba(0, 0, 0, .45);--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--z-base: 0;--z-sticky: 100;--z-nav: 200;--z-backdrop: 300;--z-modal: 400;--z-toast: 500;--z-splash: 600;--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .26s}html,body{margin:0;padding:0;overflow-x:hidden}.gate-quote,.notice,.empty,.tabbar{backdrop-filter:blur(var(--glass-blur));-webkit-backdrop-filter:blur(var(--glass-blur));box-shadow:var(--shadow-lift)}.card,.panel,.list-row,.receipt-card,.segmented,.stamp,.picker-results button{backdrop-filter:blur(var(--glass-blur-light));-webkit-backdrop-filter:blur(var(--glass-blur-light));box-shadow:var(--shadow-md)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){:root{--surface: var(--surface-solid);--surface-high: var(--surface-high-solid)}}body{background-color:var(--graphite);background-image:var(--pinstripe);background-attachment:fixed;color:var(--ink);font-family:var(--font-ui);font-size:var(--fs-base);line-height:1.55;min-height:100dvh;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}#root{max-width:68rem;margin:0 auto}.app{padding:calc(var(--safe-top) + var(--sp-3)) var(--sp-4) calc(5rem + var(--safe-bottom))}.tnum,input[inputmode=decimal],.money,.totals,.item-row .nums{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}:focus-visible{outline:2px solid var(--brass);outline-offset:2px;border-radius:var(--r-sm)}.tabbar button:focus-visible{outline-offset:-3px}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-5)}.topbar h1{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);line-height:1;letter-spacing:-.015em;margin:0;text-wrap:balance}.topbar .brandmark{display:flex;align-items:flex-end;flex-shrink:0;margin-right:var(--sp-2)}.topbar .brandmark img{display:block}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;background:var(--surface-high);border-top:1px solid var(--line);padding-bottom:var(--safe-bottom);z-index:var(--z-nav)}.tabbar button{flex:1;min-height:48px;background:none;border:none;border-top:2px solid transparent;padding:var(--sp-2) 0;cursor:pointer;transition:color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.tabbar button .ico{display:block;line-height:0;margin:0 auto;color:var(--ink-dim);transition:color var(--dur) var(--ease-out)}.tabbar button .ico svg{width:27px;height:27px}.tabbar button:hover:not(.active) .ico{color:var(--ink)}.tabbar button.active{border-top-color:var(--brass)}.tabbar button.active .ico{color:var(--brass-bright)}body.splash-active{--glass-blur: 0px;--glass-blur-light: 0px}.splash{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-splash);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-4);background-color:var(--graphite);background-image:var(--pinstripe);background-attachment:fixed}.splash-mark{line-height:0;opacity:0;transform:scale(.82);animation:splash-mark-in .42s cubic-bezier(.16,1,.3,1) forwards;will-change:transform,opacity}.splash-mark img{display:block}.splash-mark-float{animation:splash-float 2.4s ease-in-out .42s infinite}@keyframes splash-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.splash-word{opacity:0;transform:translateY(6px);font-family:var(--font-display);font-weight:700;font-size:var(--fs-lg);letter-spacing:.24em;color:var(--ink);animation:splash-word-in .36s cubic-bezier(.25,1,.5,1) forwards;animation-delay:.14s;will-change:transform,opacity}@keyframes splash-mark-in{to{opacity:1;transform:scale(1)}}@keyframes splash-word-in{to{opacity:1;transform:translateY(0)}}.splash.splash-exit{animation:splash-out .26s cubic-bezier(.5,0,1,1) forwards;pointer-events:none}@keyframes splash-out{to{opacity:0;transform:scale(1.05)}}@media(prefers-reduced-motion:reduce){.splash-mark,.splash-mark-float,.splash-word{animation:none;opacity:1;transform:none}.splash.splash-exit{animation:splash-out-reduced .12s linear forwards}@keyframes splash-out-reduced{to{opacity:0}}}.segmented{display:flex;gap:2px;padding:3px;margin-bottom:var(--sp-4);background:var(--graphite-deep);border:1px solid var(--line);border-radius:var(--r-md)}.segmented button{flex:1;min-height:40px;padding:var(--sp-2) var(--sp-3);border:none;border-radius:var(--r-sm);background:transparent;font-family:inherit;font-size:var(--fs-sm);font-weight:600;color:var(--ink-dim);cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.segmented button:hover:not(.active){color:var(--ink);background:var(--surface)}.segmented button.active{background:var(--brass);color:var(--on-brass)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-4)}.card>h2{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;letter-spacing:-.005em;margin:0 0 var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line)}@keyframes list-item-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.list-row,.receipt-card{animation:list-item-in .26s var(--ease-out) both;animation-delay:calc(var(--i, 0) * 40ms)}@keyframes just-saved-ring{0%{box-shadow:0 0 0 3px var(--brass-wash)}to{box-shadow:0 0 #b0843400}}.just-saved{animation:list-item-in .26s var(--ease-out) both,just-saved-ring .9s var(--ease-out) .26s}.list-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);margin-bottom:var(--sp-2);font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.list-row:hover{border-color:var(--brass-deep);background:var(--surface-high)}.list-row .title{font-weight:600;font-size:var(--fs-base);letter-spacing:-.005em}.list-row .sub{color:var(--ink-dim);font-size:var(--fs-sm);margin-top:2px}.list-row .row-info .chip{margin-top:var(--sp-2)}.list-row .right{text-align:right;flex-shrink:0;display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.chip{display:inline-block;align-self:center;font-size:var(--fs-xs);font-weight:600;line-height:1;border-radius:var(--r-sm);padding:3px calc(var(--sp-2) - .04em) 3px var(--sp-2);letter-spacing:.04em;text-transform:uppercase;text-align:center;white-space:nowrap}.chip.draft{background:var(--surface-high);color:var(--ink-dim);border:1px solid var(--line-strong)}.chip.final{background:var(--brass-wash);color:var(--brass-bright);border:1px solid var(--brass)}.chip.paid{background:var(--surface-high);color:var(--ink-dim);border:1px solid var(--line-strong)}.chip.partial{background:var(--brass-wash);color:var(--brass-bright);border:1px solid var(--brass)}.chip.unpaid{background:var(--danger-wash);color:var(--danger);border:1px solid var(--danger)}label.field{display:block;margin-bottom:var(--sp-4)}label.field span.lbl,.lbl{display:block;font-size:var(--fs-sm);font-weight:500;color:var(--ink-dim);margin-bottom:var(--sp-2)}input[type=text],input[type=email],input[type=tel],input[type=date],input[type=datetime-local],input[type=search],input[type=number],textarea,select{width:100%;max-width:100%;font-family:inherit;font-size:1rem;line-height:1.4;padding:var(--sp-3);min-height:44px;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--graphite-deep);color:var(--ink);transition:border-color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}input::placeholder,textarea::placeholder{color:var(--ink-faint);opacity:1}input:hover:not(:disabled),textarea:hover:not(:disabled),select:hover:not(:disabled){border-color:var(--ink-faint)}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--brass);box-shadow:0 0 0 3px var(--brass-wash)}@keyframes field-highlight{0%{box-shadow:0 0 0 3px var(--brass-wash)}to{box-shadow:0 0 #b0843400}}.field-highlight input,.field-highlight select{animation:field-highlight .5s var(--ease-out)}@media(prefers-reduced-motion:reduce){.field-highlight input,.field-highlight select{animation:none}}input:disabled,textarea:disabled,select:disabled{background:var(--surface-high);color:var(--ink-dim);border-color:var(--line);cursor:default;opacity:1;-webkit-text-fill-color:var(--ink-dim)}textarea{min-height:110px;resize:vertical}input[type=date],input[type=datetime-local]{min-width:0;width:92%;overflow:hidden}input[type=file]{width:100%;font-family:inherit;font-size:var(--fs-sm);color:var(--ink-dim);padding:var(--sp-2);min-height:44px;border:1px dashed var(--line-strong);border-radius:var(--r-md);background:var(--graphite-deep)}input[type=file]::file-selector-button{font-family:inherit;font-size:var(--fs-sm);font-weight:600;min-height:32px;padding:0 var(--sp-3);margin-right:var(--sp-3);border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface-high);color:var(--ink);cursor:pointer}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink-dim) 50%),linear-gradient(135deg,var(--ink-dim) 50%,transparent 50%);background-position:calc(100% - 18px) calc(50% + 2px),calc(100% - 13px) calc(50% + 2px);background-size:5px 5px,5px 5px;background-repeat:no-repeat;padding-right:var(--sp-10)}.with-mic{display:flex;gap:var(--sp-2);align-items:flex-start}.with-mic>:first-child{flex:1;min-width:0}.row2{display:flex;gap:var(--sp-3)}.row2>*{flex:1;min-width:0}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:inherit;font-size:var(--fs-base);font-weight:600;letter-spacing:-.005em;min-height:44px;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-md);border:1px solid var(--brass);background:var(--brass);color:var(--on-brass);cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.btn:hover:not(:disabled){background:var(--brass-bright);border-color:var(--brass-bright)}.btn:active:not(:disabled){transform:translateY(1px)}.btn.ghost{background:var(--surface-high);color:var(--ink);border-color:var(--line-strong)}.btn.ghost:hover:not(:disabled){background:var(--surface);border-color:var(--ink-faint)}.btn.accent{background:transparent;border-color:var(--brass);color:var(--brass-bright)}.btn.accent:hover:not(:disabled){background:var(--brass-wash)}.btn.small{font-size:var(--fs-sm);min-height:44px;padding:var(--sp-2) var(--sp-4)}.btn.block{display:flex;width:100%;margin-bottom:var(--sp-2)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn[data-loading=true]{cursor:progress}.btn-row{display:flex;flex-wrap:wrap;gap:var(--sp-2)}.item-row{display:grid;grid-template-columns:1fr 2.75rem;gap:var(--sp-2);padding:var(--sp-3) 0;border-bottom:1px solid var(--line)}.item-row:last-of-type{border-bottom:none}.item-row .fields{display:grid;gap:var(--sp-2);min-width:0}.item-row .nums{display:grid;grid-template-columns:4.5rem 5.5rem 1fr;gap:var(--sp-2);align-items:center}.item-row .nums .total{text-align:right;font-weight:600;font-size:var(--fs-base)}.item-row .del{border:1px solid transparent;background:none;color:var(--ink-dim);font-size:1.125rem;line-height:1;border-radius:var(--r-md);cursor:pointer;align-self:center;width:2.75rem;height:2.75rem;display:grid;place-items:center;transition:color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.item-row .del:hover{color:var(--danger);background:var(--danger-wash)}.totals{margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--line);display:grid;gap:var(--sp-2)}.totals .line{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);color:var(--ink-dim)}.totals .line strong{color:var(--ink);font-weight:500}.totals .vat-toggle{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0}.totals .vat-toggle input{width:20px;height:20px;min-height:0;flex-shrink:0;accent-color:var(--brass);margin:0}.totals .vat-toggle label{flex:1;color:var(--ink-dim);cursor:pointer}.totals .grand{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);margin-top:var(--sp-2);padding-top:var(--sp-4);border-top:2px solid var(--brass)}.totals .grand .grand-label{font-size:var(--fs-sm);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-dim)}.totals .grand .grand-value{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}@keyframes total-tick{0%{transform:translateY(-.12em);opacity:.55}to{transform:translateY(0);opacity:1}}.totals .grand .grand-value[data-bump=true]{animation:total-tick var(--dur-slow) var(--ease-out)}.picker-results{border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden;margin-top:var(--sp-2)}.picker-results button{display:flex;justify-content:space-between;gap:var(--sp-4);width:100%;min-height:44px;padding:var(--sp-3);border:none;border-bottom:1px solid var(--line);background:var(--graphite-deep);font-family:inherit;font-size:var(--fs-base);color:var(--ink);text-align:left;cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.picker-results button:last-child{border-bottom:none}.picker-results button:hover,.picker-results button:focus-visible{background:var(--brass-wash)}.picker-results .price{color:var(--ink-dim);font-variant-numeric:tabular-nums;flex-shrink:0}.muted{color:var(--ink-dim);font-size:var(--fs-sm)}.error{color:var(--danger);font-size:var(--fs-sm);margin:var(--sp-3) 0}.notice{background:var(--brass-wash);border:1px solid var(--brass);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);color:var(--ink);margin-bottom:var(--sp-4)}.empty{text-align:center;color:var(--ink-dim);padding:var(--sp-10) var(--sp-5);border:1px dashed var(--line-strong);border-radius:var(--r-lg);background:var(--surface)}.empty h3{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;color:var(--ink);margin:0 0 var(--sp-2)}.empty p{margin:0 auto;max-width:38ch;font-size:var(--fs-sm);text-wrap:pretty}.logo-preview{max-width:180px;max-height:90px;display:block;margin:var(--sp-3) 0;border:1px solid var(--line);border-radius:var(--r-md);padding:var(--sp-2);background:var(--ink)}.mic-btn{border:1px solid var(--line-strong);background:var(--graphite-deep);border-radius:var(--r-md);width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;color:var(--ink-dim);cursor:pointer;transition:background var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out)}.mic-btn:hover{border-color:var(--brass);color:var(--brass-bright)}.mic-btn.listening{background:var(--danger);border-color:var(--danger);color:#fff;animation:mic-pulse 1.4s var(--ease-out) infinite}@keyframes mic-pulse{0%,to{box-shadow:0 0 #e4674f66}50%{box-shadow:0 0 0 6px #e4674f00}}.mic-btn.tidying{background:var(--brass-wash);border-color:var(--brass);color:var(--brass-bright);cursor:progress}.mic-spinner{width:16px;height:16px;border:2px solid var(--brass-bright);border-top-color:transparent;border-radius:50%;animation:mic-spin .62s linear infinite}@keyframes mic-spin{to{transform:rotate(360deg)}}.sr-live{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.editor-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-2) 0 var(--sp-5);position:relative;z-index:var(--z-sticky)}.editor-head .back{border:1px solid var(--line-strong);background:var(--surface);border-radius:var(--r-md);width:44px;height:44px;flex-shrink:0;display:grid;place-items:center;font-size:1.25rem;line-height:1;color:var(--ink);cursor:pointer;transition:background var(--dur) var(--ease-out)}.editor-head .back:hover{background:var(--surface-high)}.editor-head h1{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;letter-spacing:-.01em;margin:0;flex:1;min-width:0}.stamp{position:relative;z-index:var(--z-base);display:flex;align-items:center;justify-content:center;gap:var(--sp-3);margin-bottom:var(--sp-4);padding:var(--sp-4);border:2px solid var(--brass);border-radius:var(--r-md);background:var(--brass-wash);color:var(--brass-bright);font-family:var(--font-display);font-weight:700;font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;transform:rotate(-1.5deg)}.stamp .stamp-no{font-variant-numeric:tabular-nums;letter-spacing:.02em}@keyframes stamp-press{0%{transform:rotate(-1.5deg) scale(1.06) translateY(-3px);opacity:0}55%{transform:rotate(-1.5deg) scale(.985) translateY(0);opacity:1}78%{transform:rotate(-1.5deg) scale(1.006)}to{transform:rotate(-1.5deg) scale(1)}}.stamp[data-fresh=true]{animation:stamp-press .42s var(--ease-out) both}.gate{min-height:100dvh;display:grid;align-content:center;gap:var(--sp-8);padding:calc(var(--safe-top) + var(--sp-8)) var(--sp-5) calc(var(--safe-bottom) + var(--sp-8));max-width:72rem;margin:0 auto}.gate-brand{display:flex;align-items:center;gap:var(--sp-3)}.gate-brand img{width:34px;height:34px;border-radius:var(--r-sm)}.gate-brand span{font-family:var(--font-display);font-weight:600;font-size:var(--fs-sm);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-dim)}.gate-grid{display:grid;gap:var(--sp-8);align-items:center}.gate h1{font-family:var(--font-display);font-weight:700;font-size:clamp(2.1rem,8vw,3.6rem);line-height:.98;letter-spacing:-.03em;margin:0 0 var(--sp-4);text-wrap:balance}.gate-caps{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-3);margin:0 0 var(--sp-8);padding:0;list-style:none}.gate-caps li{font-size:var(--fs-sm);color:var(--ink-dim);border:1px solid var(--line-strong);border-radius:var(--r-full);padding:var(--sp-1) var(--sp-4)}.gate-caps li[data-soon=true]{color:var(--ink-faint);border-style:dashed}.gate form{max-width:26rem}.gate input{text-align:center;font-size:1.0625rem;letter-spacing:.12em;text-transform:uppercase;font-variant-numeric:tabular-nums}.gate .fineprint{margin-top:var(--sp-4);color:var(--ink-faint);font-size:var(--fs-sm);max-width:40ch;text-wrap:pretty}.gate-quote{background:var(--ink);color:var(--graphite);border-radius:var(--r-lg);padding:var(--sp-6);box-shadow:var(--shadow-lift);transform:rotate(-1.2deg);max-width:24rem;width:100%;justify-self:center}.gate-quote-head{display:flex;justify-content:space-between;align-items:baseline;border-bottom:1px solid #D2D6D2;padding-bottom:var(--sp-3);margin-bottom:var(--sp-3)}.gate-quote-head b{font-family:var(--font-display);font-size:var(--fs-md);letter-spacing:-.01em}.gate-quote-head span{font-size:var(--fs-xs);color:#6e747a}.gate-quote .qline{display:flex;justify-content:space-between;gap:var(--sp-4);font-size:var(--fs-sm);color:#3a4046;padding:var(--sp-1) 0;font-variant-numeric:tabular-nums}.gate-quote .qtotal{display:flex;justify-content:space-between;align-items:baseline;gap:var(--sp-4);margin-top:var(--sp-3);padding-top:var(--sp-3);border-top:2px solid var(--brass)}.gate-quote .qtotal span{font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:#6e747a;font-weight:600}.gate-quote .qtotal b{font-family:var(--font-display);font-weight:700;font-size:var(--fs-xl);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.brand-box{width:fit-content;margin:var(--sp-8) auto 0;padding:var(--sp-2) var(--sp-3);background:#1c1f22}.by-extraday{display:flex;align-items:center;gap:var(--sp-2);color:var(--ink-faint);font-size:var(--fs-xs);letter-spacing:.04em}.by-extraday img{height:15px;width:auto;filter:invert(1);opacity:.5}.brand-box .by-extraday,.app .by-extraday{justify-content:center}.empty .art{color:var(--brass);margin-bottom:var(--sp-3)}.empty h2{font-family:var(--font-display);font-size:var(--fs-md);color:var(--ink);margin:0 0 var(--sp-2)}.search-row{margin-bottom:var(--sp-4)}.nudge{display:flex;flex-wrap:wrap;gap:var(--sp-2) var(--sp-4);align-items:center;justify-content:space-between;background:var(--brass-wash);border:1px solid var(--brass);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4);font-size:var(--fs-sm)}.nudge-actions{display:flex;gap:var(--sp-4);flex-shrink:0}.linklike{background:none;border:none;padding:var(--sp-2) 0;min-height:44px;font:inherit;font-weight:600;color:var(--brass-bright);cursor:pointer;text-decoration:underline}.linklike.quiet{color:var(--ink-dim);font-weight:400}.month-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--sp-3);margin:var(--sp-6) 0 var(--sp-2)}.month-head h2{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;margin:0}.month-head .sum{color:var(--ink-dim);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.receipt-card{display:flex;align-items:center;gap:var(--sp-3);width:100%;text-align:left;padding:var(--sp-3);margin-bottom:var(--sp-2);min-height:44px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);font-family:inherit;font-size:inherit;color:inherit;cursor:pointer;transition:border-color var(--dur) var(--ease-out),background var(--dur) var(--ease-out)}.receipt-card:hover{border-color:var(--brass-deep);background:var(--surface-high)}.receipt-card .thumb{width:46px;height:46px;flex-shrink:0;display:flex;align-items:center;justify-content:center;border-radius:var(--r-sm);object-fit:cover;background:var(--graphite-deep);border:1px solid var(--line);color:var(--ink-dim)}.receipt-card .mid{display:flex;flex-direction:column;flex:1;min-width:0}.receipt-card .supplier{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.receipt-card .meta{color:var(--ink-dim);font-size:var(--fs-sm)}.receipt-card .amount{font-weight:600;font-variant-numeric:tabular-nums;flex-shrink:0}@keyframes phase-fade-in{0%{opacity:0}to{opacity:1}}.phase-fade{animation:phase-fade-in .22s var(--ease-out)}@media(prefers-reduced-motion:reduce){.phase-fade{animation:none}}.scan-choice h2,.progress-wrap h2{font-family:var(--font-display);font-size:var(--fs-lg);margin:0 0 var(--sp-2)}.scan-choice .lead,.hint{color:var(--ink-dim);font-size:var(--fs-sm)}.capture-btns{display:grid;gap:var(--sp-2);margin:var(--sp-5) 0}.error-text{color:var(--danger);font-size:var(--fs-sm)}.progress-wrap{text-align:center;padding:var(--sp-6) 0}.progress-wrap .preview{max-width:100%;max-height:42vh;border-radius:var(--r-md);border:1px solid var(--line);margin-bottom:var(--sp-5)}.progress-track{height:6px;background:var(--graphite-deep);border:1px solid var(--line);border-radius:var(--r-full);overflow:hidden}.progress-fill{height:100%;background:var(--brass);transition:width var(--dur) var(--ease-out)}.progress-wrap .stage{color:var(--ink-dim);font-size:var(--fs-sm);margin-top:var(--sp-3)}.scan-warning{background:var(--danger-wash);border:1px solid var(--danger);border-radius:var(--r-md);padding:var(--sp-3) var(--sp-4);font-size:var(--fs-sm);margin-bottom:var(--sp-4)}.privacy-note{display:flex;gap:var(--sp-2);align-items:flex-start;margin-top:var(--sp-5);padding-top:var(--sp-4);border-top:1px solid var(--line);color:var(--ink-faint);font-size:var(--fs-xs)}.privacy-note svg{flex-shrink:0;margin-top:2px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--sp-5);margin-bottom:var(--sp-4)}.panel>h2{font-family:var(--font-display);font-size:var(--fs-md);font-weight:600;margin:0 0 var(--sp-4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--line)}.month-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.month-nav h2{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;margin:0}.arrows{display:flex;gap:var(--sp-2)}.icon-btn{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--ink);cursor:pointer;transition:background var(--dur) var(--ease-out)}.icon-btn:hover:not(:disabled){background:var(--surface-high)}.icon-btn:disabled{opacity:.35;cursor:not-allowed}.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(7rem,1fr));gap:var(--sp-3)}.stat{display:flex;flex-direction:column;gap:2px}.stat .v{font-family:var(--font-display);font-size:var(--fs-lg);font-weight:700;letter-spacing:-.015em;font-variant-numeric:tabular-nums}.stat .k{font-size:var(--fs-xs);color:var(--ink-dim);text-transform:uppercase;letter-spacing:.06em}.insights{margin:var(--sp-4) 0 0;padding-left:var(--sp-4);display:grid;gap:var(--sp-2);color:var(--ink-dim);font-size:var(--fs-sm)}.insights li::marker{color:var(--brass)}.supplier-row{display:flex;align-items:baseline;gap:var(--sp-3);padding:var(--sp-2) 0;border-bottom:1px solid var(--line)}.supplier-row:last-child{border-bottom:none}.supplier-row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supplier-row .count{color:var(--ink-dim);font-size:var(--fs-sm);font-variant-numeric:tabular-nums}.supplier-row .amt{font-weight:600;font-variant-numeric:tabular-nums}.confirm-grid{display:grid;gap:var(--sp-3)}.confirm-img{width:100%;max-height:34vh;object-fit:contain;border-radius:var(--r-md);border:1px solid var(--line);background:var(--graphite-deep)}.confirm-actions{display:grid;gap:var(--sp-2);margin-top:var(--sp-4)}.field-row{display:flex;gap:var(--sp-3)}.field-row>*{flex:1;min-width:0}.export-section{margin-bottom:var(--sp-6)}.busy-note{color:var(--ink-dim);font-size:var(--fs-sm);margin-top:var(--sp-2)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:var(--z-backdrop)}.sheet{position:fixed;left:0;right:0;bottom:0;max-width:40rem;margin:0 auto;max-height:88dvh;overflow-y:auto;background:var(--surface-solid);border:1px solid var(--line);border-radius:var(--r-lg) var(--r-lg) 0 0;padding:var(--sp-5) var(--sp-5) calc(var(--safe-bottom) + var(--sp-6));z-index:var(--z-modal)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);margin-bottom:var(--sp-4)}.sheet-head h2{font-family:var(--font-display);font-size:var(--fs-md);margin:0}.sheet .inner{display:grid;gap:var(--sp-3)}@media(min-width:40rem){.item-row .fields{grid-template-columns:1fr 15rem;align-items:start}.gate-caps li{font-size:var(--fs-base)}}@media(min-width:60rem){.gate-grid{grid-template-columns:1.15fr .85fr;gap:var(--sp-12)}.gate-quote{transform:rotate(-1.8deg) translateY(-.5rem)}.app{padding:calc(var(--safe-top) + var(--sp-5)) var(--sp-8) var(--sp-12)}.app{display:flex;flex-direction:column}.tabbar{order:-1;position:sticky;top:0;bottom:auto;max-width:68rem;margin:0 auto var(--sp-6);border-top:none;border-bottom:1px solid var(--line);padding-bottom:0}.tabbar button{flex:0 1 auto;min-height:52px;padding:0 var(--sp-6);border-top:none;border-bottom:2px solid transparent;display:flex;align-items:center;justify-content:center}.tabbar button.active{border-bottom-color:var(--brass)}.list-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(22rem,1fr));gap:var(--sp-3)}.list-grid .list-row{margin-bottom:0}.editor-cols{display:grid;grid-template-columns:1.25fr .75fr;gap:var(--sp-5);align-items:start}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.mic-btn.listening{animation:none;box-shadow:0 0 0 3px #e4674f59}.gate-quote{transform:none}.stamp{transform:rotate(-1.5deg)}}
