:root{--text-xs:clamp(.75rem, .72rem + .15vw, .8125rem);--text-sm:clamp(.875rem, .84rem + .2vw, .9375rem);--text-base:clamp(1rem, .95rem + .25vw, 1.0625rem);--text-lg:clamp(1.125rem, 1.05rem + .4vw, 1.375rem);--text-xl:clamp(1.5rem, 1.3rem + 1vw, 2.25rem);--text-hero:clamp(2.25rem, 1.8rem + 2.2vw, 3.75rem);--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-8:3rem;--radius-sm:6px;--radius-md:12px;--radius-lg:20px;--duration-fast:.15s;--duration-normal:.26s;--ease-out-expo:cubic-bezier(.16, 1, .3, 1);--font-display:"Fraunces", "Georgia", serif;--font-body:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", ui-monospace, monospace}:root[data-theme=ledger]{--color-bg:oklch(16% .012 260);--color-surface:oklch(21% .014 260);--color-surface-raised:oklch(25% .016 260);--color-border:oklch(32% .02 260);--color-text:oklch(93% .01 90);--color-text-muted:oklch(68% .02 90);--color-accent:oklch(74% .13 75);--color-accent-strong:oklch(80% .15 78);--color-positive:oklch(72% .15 155);--color-negative:oklch(65% .18 25);--shadow-card:0 8px 24px oklch(5% 0 0/.4), 0 1px 0 oklch(100% 0 0/.03) inset}:root[data-theme=fuel]{--color-bg:oklch(97% .012 20);--color-surface:oklch(99% .008 20);--color-surface-raised:oklch(100% 0 0);--color-border:oklch(88% .02 20);--color-text:oklch(28% .03 20);--color-text-muted:oklch(50% .03 20);--color-accent:oklch(66% .16 15);--color-accent-strong:oklch(58% .19 15);--color-positive:oklch(62% .14 155);--color-negative:oklch(58% .19 25);--shadow-card:0 8px 24px oklch(60% .1 20/.12), 0 1px 0 oklch(100% 0 0/.6) inset}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);font-size:var(--text-base);-webkit-font-smoothing:antialiased;transition:background var(--duration-normal) var(--ease-out-expo);margin:0}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;margin:0}a{color:inherit}button,input,select,textarea{font-family:inherit;font-size:inherit;color:inherit}.app-shell{flex-direction:column;max-width:480px;min-height:100%;margin:0 auto;padding-bottom:5.5rem;display:flex}.app-main{padding:var(--space-5) var(--space-4);flex:1}.page-title{font-size:var(--text-xl);margin-bottom:var(--space-1)}.page-subtitle{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-5)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-5);margin-bottom:var(--space-4)}.card-row{padding:var(--space-3) 0;border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;display:flex}.card-row:last-child{border-bottom:none}.stat-tile{gap:var(--space-1);flex-direction:column;display:flex}.stat-tile .value{font-family:var(--font-display);font-size:var(--text-xl);font-variant-numeric:tabular-nums}.stat-tile .label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.stat-grid{gap:var(--space-4);grid-template-columns:repeat(2,1fr);display:grid}.btn{justify-content:center;align-items:center;gap:var(--space-2);border-radius:var(--radius-md);cursor:pointer;transition:transform var(--duration-fast) var(--ease-out-expo), filter var(--duration-fast) var(--ease-out-expo);background:var(--color-accent);color:var(--color-bg);border:none;width:100%;padding:.75rem 1.25rem;font-weight:600;display:inline-flex}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-secondary{border:1px solid var(--color-border);color:var(--color-text);background:0 0}.btn-ghost{color:var(--color-accent);background:0 0;width:auto;padding:.5rem .75rem}.field{gap:var(--space-1);margin-bottom:var(--space-4);flex-direction:column;display:flex}.field label{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em}.field input,.field select,.field textarea{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color var(--duration-fast) var(--ease-out-expo);outline:none;padding:.65rem .85rem}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--color-accent)}.tab-bar{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-2) 0 max(var(--space-2), env(safe-area-inset-bottom));z-index:10;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.tab-bar-inner{justify-content:space-around;width:100%;max-width:480px;display:flex}.tab-link{font-size:var(--text-xs);color:var(--color-text-muted);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);transition:color var(--duration-fast) var(--ease-out-expo);flex-direction:column;align-items:center;gap:2px;text-decoration:none;display:flex}.tab-link.active{color:var(--color-accent)}.error-text{color:var(--color-negative);font-size:var(--text-sm);margin-bottom:var(--space-3)}.badge{font-size:var(--text-xs);background:var(--color-surface-raised);border:1px solid var(--color-border);color:var(--color-text-muted);border-radius:999px;align-items:center;padding:.15rem .5rem;display:inline-flex}.badge-estimated{color:var(--color-accent);border-color:var(--color-accent)}.auth-shell{min-height:100%;padding:var(--space-6) var(--space-4);flex-direction:column;justify-content:center;max-width:420px;margin:0 auto;display:flex}.scanner-overlay{z-index:50;justify-content:center;align-items:center;gap:var(--space-4);padding:var(--space-4);background:#000;flex-direction:column;display:flex;position:fixed;inset:0}.scanner-video{border-radius:var(--radius-md);width:100%;max-width:480px}.estimate-badge-row{align-items:center;gap:var(--space-2);display:flex}.chip-row{gap:var(--space-2);padding-bottom:var(--space-1);margin-bottom:var(--space-4);display:flex;overflow-x:auto}.chip{border:1px solid var(--color-border);background:var(--color-surface);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;transition:background var(--duration-fast) var(--ease-out-expo), color var(--duration-fast) var(--ease-out-expo), border-color var(--duration-fast) var(--ease-out-expo);border-radius:999px;flex-shrink:0;padding:.4rem .9rem}.chip-active{background:var(--color-accent);color:var(--color-bg);border-color:var(--color-accent);font-weight:600}
