:root{--paper: #f3f5f7;--surface: #ffffff;--ink: #18222e;--muted: #5f6b78;--line: #dce1e6;--turmeric: #e9b10d;--turmeric-deep: #c99400;--relief: #1f7a55;--relief-bg: #e7f3ed;--danger: #b23a48;--danger-bg: #fbecee;--font: "Schibsted Grotesk", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius-sm: 8px;--radius: 14px;--nav-h: 68px;color-scheme:light;font-family:var(--font);font-size:16px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}:root[data-theme=dark]{--paper: #0f151c;--surface: #18212b;--ink: #e8edf2;--muted: #95a1ae;--line: #2c3743;--turmeric-deep: #f2c53d;--relief: #4fbf8b;--relief-bg: #15302a;--danger: #f07f8c;--danger-bg: #3a1d23;color-scheme:dark}:root[data-theme=dark] .nav-scan{color:#18222e}:root[data-theme=dark] .detail-photo img{background:#000}:root[data-theme=dark] .menu-popover{box-shadow:0 12px 32px -12px #000000b3}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-height:100dvh}h1,h2,p,ul,dl,dd,fieldset{margin:0;padding:0}ul{list-style:none}fieldset{border:0}img{max-width:100%;display:block}a{color:inherit}button,input{font:inherit;color:inherit}:focus-visible{outline:3px solid var(--turmeric);outline-offset:2px;border-radius:4px}.muted{color:var(--muted)}.app-layout{min-height:100dvh}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:calc(env(safe-area-inset-top) + 12px) 20px 12px;background:color-mix(in srgb,var(--paper) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.page{max-width:560px;margin:0 auto;padding:8px 20px calc(var(--nav-h) + env(safe-area-inset-bottom) + 32px)}.page-title{font-size:1.6rem;font-weight:800;letter-spacing:-.02em;margin-bottom:16px}.section-title{font-size:1.05rem;font-weight:700;margin:28px 0 12px}.section-head{display:flex;align-items:baseline;justify-content:space-between}.section-head a{font-weight:600;font-size:.95rem;color:var(--muted)}.wordmark{display:inline-flex;align-items:center;gap:8px;font-weight:800;font-size:1.2rem;letter-spacing:-.02em}.splash{min-height:100dvh}.menu{position:relative}.avatar{width:36px;height:36px;border-radius:50%;border:0;background:var(--ink);color:var(--paper);font-weight:700;cursor:pointer}.menu-popover{position:absolute;right:0;top:44px;width:220px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:12px;box-shadow:0 12px 32px -12px #18222e59}.menu-email{font-size:.85rem;margin-bottom:8px;overflow-wrap:anywhere}.menu-link{margin-bottom:8px}.bottom-nav{position:fixed;inset:auto 0 0;z-index:10;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:calc(var(--nav-h) + env(safe-area-inset-bottom));padding:0 24px env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--line)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.75rem;font-weight:600;color:var(--muted);text-decoration:none}.nav-item.active{color:var(--ink)}.nav-scan{display:grid;place-items:center;width:64px;height:64px;margin-top:-28px;border-radius:50%;background:var(--turmeric);color:var(--ink);box-shadow:0 0 0 6px var(--paper);transition:transform .15s ease}.nav-scan:active{transform:scale(.94)}.nav-scan.active{background:var(--turmeric-deep)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:0 20px;border-radius:999px;border:0;font-weight:700;text-decoration:none;cursor:pointer}.btn:disabled{opacity:.55;cursor:default}.btn-primary{background:var(--ink);color:var(--paper)}.btn-quiet{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1.5px var(--line)}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-block{width:100%}.btn-small{min-height:36px;padding:0 14px;font-size:.9rem}.icon-btn{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;background:transparent;cursor:pointer}.icon-btn:disabled{opacity:.3;cursor:default}.back-link{display:inline-flex;align-items:center;gap:2px;margin-bottom:12px;border:0;background:none;padding:4px 0;font-weight:600;color:var(--muted);cursor:pointer}.month-picker{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.month-picker-label{font-weight:700}.slip{position:relative;background:var(--surface);padding:24px 24px 34px;border-radius:var(--radius) var(--radius) 0 0;-webkit-mask:radial-gradient(circle at 9px 100%,transparent 6px,#000 6.5px) 0 0 / 18px 100%;mask:radial-gradient(circle at 9px 100%,transparent 6px,#000 6.5px) 0 0 / 18px 100%;animation:print .5s cubic-bezier(.2,.8,.2,1) both}@keyframes print{0%{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}.slip-loading{height:190px;animation:pulse 1.2s ease-in-out infinite alternate}.slip-label{color:var(--muted);font-weight:600}.slip-merchant{font-weight:700;font-size:1.15rem}.slip-total{font-size:clamp(2.6rem,12vw,3.4rem);font-weight:800;letter-spacing:-.035em;line-height:1.1;font-variant-numeric:tabular-nums;margin:4px 0 6px}.slip-currency{font-size:.42em;font-weight:700;letter-spacing:0;margin-right:4px;vertical-align:.9em}.slip-compare{font-weight:600}.slip-count{margin-top:16px;padding-top:14px;border-top:1.5px dashed var(--line);color:var(--muted);font-size:.9rem}.slip-facts{margin-top:16px;padding-top:14px;border-top:1.5px dashed var(--line);display:grid;gap:8px}.slip-facts div{display:flex;justify-content:space-between;gap:12px}.slip-facts dt{color:var(--muted)}.slip-facts dd{font-weight:600;text-align:right}.bars{display:grid;gap:14px}.bar-head{display:flex;justify-content:space-between;font-weight:600;margin-bottom:6px}.bar-amount{font-variant-numeric:tabular-nums}.bar-track{height:8px;border-radius:999px;background:var(--line);overflow:hidden}.bar-fill{height:100%;border-radius:inherit}.relief-card{margin-top:28px;padding:18px;border-radius:var(--radius);background:var(--relief-bg)}.relief-card h2{display:flex;align-items:center;gap:8px;font-size:1.05rem;color:var(--relief);margin-bottom:10px}.relief-card .muted{font-size:.95rem}.relief-list{display:grid;gap:8px}.relief-list div{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.relief-list dt{font-weight:600}.relief-list dt small{color:var(--muted);font-weight:400}.relief-list dd{font-weight:700;font-variant-numeric:tabular-nums}.relief-tag{display:inline-flex;align-items:center;gap:3px;margin-left:6px;color:var(--relief);font-weight:600}.list-summary{color:var(--muted);font-size:.95rem;margin-bottom:4px}.receipt-list{border-top:1px solid var(--line)}.receipt-list li{border-bottom:1px solid var(--line)}.receipt-row{display:flex;align-items:center;gap:12px;padding:14px 2px;text-decoration:none}.dot{width:10px;height:10px;border-radius:50%;flex:none}.receipt-row-main{flex:1;min-width:0;display:grid}.receipt-row-merchant{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.receipt-row-meta{font-size:.85rem;color:var(--muted)}.receipt-row-amount{font-weight:700;font-variant-numeric:tabular-nums}.empty{display:grid;justify-items:start;gap:12px;padding:20px 0;color:var(--muted)}.skeleton-list{height:240px;border-radius:var(--radius);background:var(--line);animation:pulse 1.2s ease-in-out infinite alternate}@keyframes pulse{0%{opacity:.45}to{opacity:.9}}.detail-no-photo{margin-top:20px}.detail-photo{display:block;margin-top:20px;border-radius:var(--radius);overflow:hidden;background:var(--line)}.detail-photo img{width:100%;max-height:70vh;object-fit:contain;background:var(--ink)}.scan-pick{display:grid;gap:12px}.scan-target{display:grid;justify-items:center;gap:6px;padding:48px 20px;border-radius:var(--radius);border:2px dashed var(--ink);background:var(--surface);cursor:pointer}.scan-target strong{font-size:1.15rem}.scan-target span{color:var(--muted);font-size:.95rem}.reading{display:grid;justify-items:center;gap:14px;padding:24px 0;font-weight:600}.reading-photo{max-height:50vh;border-radius:var(--radius);opacity:.6}.reading-bar{width:140px;height:4px;border-radius:999px;background:var(--line);overflow:hidden;position:relative}.reading-bar:after{content:"";position:absolute;inset:0;width:40%;background:var(--turmeric);border-radius:inherit;animation:slide 1s ease-in-out infinite alternate}@keyframes slide{0%{transform:translate(-10%)}to{transform:translate(160%)}}.review-photo{position:relative;margin-bottom:14px}.review-photo img{max-height:220px;width:100%;object-fit:cover;object-position:top;border-radius:var(--radius)}.review-photo .btn{position:absolute;right:10px;bottom:10px;background:var(--surface)}.note{font-weight:600;margin-bottom:14px}.note-warn{color:var(--danger)}.scan-provider{margin:-10px 0 14px;color:var(--muted);font-size:.85rem}.receipt-form,.auth-form{display:grid;gap:18px}.field{display:grid;gap:6px}.field>span,.field>legend{font-weight:600;font-size:.95rem;padding:0}.field input:not([type=radio]):not([type=checkbox]){width:100%;min-height:48px;padding:10px 14px;border:1.5px solid var(--line);border-radius:var(--radius-sm);background:var(--surface)}.field input:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px #e9b10d73}.field input[aria-invalid=true]{border-color:var(--danger)}.field-error{color:var(--danger);font-weight:600}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.amount-input{font-size:1.25rem;font-weight:700;font-variant-numeric:tabular-nums}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:2px}.chip input{position:absolute;opacity:0;pointer-events:none}.chip span{display:inline-block;padding:8px 14px;border-radius:999px;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--surface);font-weight:600;cursor:pointer}.chip input:checked+span{background:var(--ink);color:var(--paper);box-shadow:none}.chip input:focus-visible+span{outline:3px solid var(--turmeric);outline-offset:2px}.relief-box{border-radius:var(--radius);padding:14px;box-shadow:inset 0 0 0 1.5px var(--line);background:var(--surface)}.relief-box.is-on{box-shadow:inset 0 0 0 1.5px var(--relief);background:var(--relief-bg)}.switch{display:flex;align-items:center;gap:12px;cursor:pointer}.switch>span:last-child{display:grid}.switch small{font-size:.85rem}.switch input{position:absolute;opacity:0}.switch-track{flex:none;width:46px;height:28px;border-radius:999px;background:var(--line);position:relative;transition:background .15s}.switch-track:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--surface);transition:transform .15s}.switch input:checked+.switch-track{background:var(--relief)}.switch input:checked+.switch-track:after{transform:translate(18px)}.switch input:focus-visible+.switch-track{outline:3px solid var(--turmeric);outline-offset:2px}.relief-options{display:grid;gap:6px;margin-top:14px}.relief-option{display:flex;gap:10px;align-items:flex-start;padding:8px 4px;cursor:pointer}.relief-option input{margin-top:4px;accent-color:var(--relief);width:18px;height:18px}.relief-option span{display:grid}.relief-option small{color:var(--muted);font-size:.85rem}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.receipt-form .form-actions{margin-top:0}.error{padding:12px 14px;border-radius:var(--radius-sm);background:var(--danger-bg);color:var(--danger);font-weight:600;display:grid;gap:8px;justify-items:start}.settings-group{display:grid;gap:10px;margin-bottom:28px}.settings-group .section-title{margin:0}.settings-list{border-radius:var(--radius);background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line)}.settings-list li+li{border-top:1px solid var(--line)}.settings-list .switch{padding:14px;justify-content:space-between}.settings-list .switch>span:first-child{display:grid}.settings-list small{color:var(--muted)}.settings-list .quota{margin-top:2px;font-weight:600;font-variant-numeric:tabular-nums}.settings-list .quota-low{color:var(--turmeric-deep)}.settings-list .quota-out{color:var(--danger)}.settings-group .section-head{align-items:center}.auth-layout{max-width:420px;margin:0 auto;padding:calc(env(safe-area-inset-top) + 40px) 24px 40px;display:grid;gap:40px}.auth-form h1{font-size:1.9rem;font-weight:800;letter-spacing:-.025em;line-height:1.15}.auth-form>.muted{margin-top:-10px}.auth-switch{text-align:center;color:var(--muted)}.auth-switch a{color:var(--ink);font-weight:700}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
