:root{--font-ui:"IBM Plex Sans", system-ui, sans-serif;--font-num:"IBM Plex Sans", system-ui, sans-serif;--bg:#f3f4f6;--bg-2:#eceef1;--surface:#fff;--surface-2:#f8f9fb;--elevated:#fff;--ink:#18181b;--ink-2:#3f3f46;--muted:#71717a;--line:#e4e4e7;--line-strong:#d4d4d8;--brand:#e10614;--brand-hover:#c20510;--brand-soft:#fff1f2;--brand-fg:#fff;--success:#166534;--success-soft:#f0fdf4;--warning:#a16207;--warning-soft:#fffbeb;--danger:#b91c1c;--danger-soft:#fef2f2;--info:#1d4ed8;--info-soft:#eff6ff;--gold:var(--warning);--gold-soft:var(--warning-soft);--forest:var(--success);--forest-soft:var(--success-soft);--shadow-sm:0 1px 2px #18181b0a;--shadow-md:0 4px 16px #18181b0f;--shadow-lg:0 12px 32px #18181b1a;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--control-h:40px;--ease:.28s cubic-bezier(.22, 1, .36, 1);--ease-out:cubic-bezier(.22, 1, .36, 1);--sidebar-w:232px;--sidebar-collapsed:72px;--header-h:56px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px}[data-theme=dark]{--bg:#121316;--bg-2:#18191d;--surface:#1c1d22;--surface-2:#24262c;--elevated:#22242a;--ink:#f4f4f5;--ink-2:#d4d4d8;--muted:#a1a1aa;--line:#f4f4f514;--line-strong:#f4f4f524;--brand-soft:#4a0610;--success-soft:#14532d;--warning-soft:#422006;--danger-soft:#450a0a;--gold-soft:var(--warning-soft);--forest-soft:var(--success-soft)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{min-height:100vh;font-family:var(--font-ui);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0;font-size:14px;line-height:1.5}#root{min-height:100vh}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img{max-width:100%}a{color:inherit;text-decoration:none}input,select,textarea{width:100%;height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);transition:border-color var(--ease), box-shadow var(--ease);padding:0 12px}textarea{resize:vertical;height:auto;min-height:88px;padding:10px 12px}input:hover,select:hover,textarea:hover{border-color:#a1a1aa}input:focus,select:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb, var(--brand) 16%, transparent);outline:none}input:disabled,select:disabled{background:var(--surface-2);color:var(--muted)}input:read-only{background:var(--surface-2);cursor:default}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.app-frame{grid-template-columns:var(--sidebar-w) 1fr;min-height:100vh;transition:grid-template-columns var(--ease);display:grid}.app-frame.is-collapsed{grid-template-columns:var(--sidebar-collapsed) 1fr}.app-sidebar{background:var(--surface);border-right:1px solid var(--line);z-index:30;flex-direction:column;height:100vh;padding:16px 10px 12px;display:flex;position:sticky;top:0}.sidebar-brand{text-align:left;background:0 0;border:0;align-items:center;gap:10px;width:100%;padding:4px 8px 14px;display:flex}.brand-mark{border-radius:var(--radius-sm);background:var(--brand);width:32px;height:32px;color:var(--brand-fg);letter-spacing:.04em;flex-shrink:0;place-items:center;font-size:11px;font-weight:650;display:grid}.brand-logo{object-fit:contain;display:block}.sidebar-logo-full{width:auto;max-width:148px;height:32px}.sidebar-logo-mark{border-radius:8px;width:36px;height:36px;display:none}.brand-title{letter-spacing:-.02em;margin:0;font-size:13.5px;font-weight:600;line-height:1.2}.brand-subtitle{color:var(--muted);margin:2px 0 0;font-size:11px}.sidebar-section-label{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:14px 10px 6px;font-size:10.5px;font-weight:600}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex;overflow:auto}.sidebar-link{border-radius:var(--radius-sm);color:var(--ink-2);text-align:left;width:100%;transition:background var(--ease), color var(--ease);background:0 0;border:0;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;display:flex}.sidebar-link svg{opacity:.85;flex-shrink:0}.sidebar-link:hover{background:var(--surface-2);color:var(--ink)}.sidebar-link.active{background:var(--brand-soft);color:var(--brand);font-weight:600}.sidebar-link.active svg{opacity:1}.sidebar-footer{border-top:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 6px 4px;display:flex}.user-chip{align-items:center;gap:8px;min-width:0;display:flex}.user-avatar{background:var(--surface-2);width:28px;height:28px;color:var(--ink-2);border:1px solid var(--line);border-radius:50%;flex-shrink:0;place-items:center;font-size:10px;font-weight:700;display:grid}.sidebar-user{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:12.5px;overflow:hidden}.sidebar-collapse{align-self:flex-start}.app-frame.is-collapsed .sidebar-logo-full,.app-frame.is-collapsed .brand-title,.app-frame.is-collapsed .brand-subtitle,.app-frame.is-collapsed .sidebar-section-label,.app-frame.is-collapsed .sidebar-link span,.app-frame.is-collapsed .sidebar-user,.app-frame.is-collapsed .sidebar-footer .btn span,.app-frame.is-collapsed .sidebar-brand>div{display:none}.app-frame.is-collapsed .sidebar-brand,.app-frame.is-collapsed .sidebar-link{justify-content:center;padding-left:8px;padding-right:8px}.app-frame.is-collapsed .sidebar-logo-mark{display:block}.app-frame.is-collapsed .sidebar-footer{align-items:center}.app-main-col{flex-direction:column;min-width:0;display:flex}.app-header{z-index:20;min-height:var(--header-h);background:color-mix(in srgb, var(--surface) 88%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding:0 24px;display:flex;position:sticky;top:0}.header-titles h1{letter-spacing:-.02em;margin:0;font-size:15px;font-weight:600}.crumb{color:var(--muted);margin:0;font-size:12px}.header-actions{align-items:center;gap:8px;display:flex}.header-tool{gap:6px;position:relative}.header-tool.is-busy svg{animation:.8s linear infinite loader-spin}.header-tool-dot{background:var(--brand);width:7px;height:7px;box-shadow:0 0 0 2px var(--surface);border-radius:50%;position:absolute;top:5px;right:5px}.header-tool.has-update{color:var(--brand)}.page-wrap{width:min(1120px,100%);margin:0 auto;padding:20px 24px 40px}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;display:flex}.page-header h1{letter-spacing:-.03em;margin:0;font-size:22px;font-weight:650;line-height:1.2}.page-header p{color:var(--muted);max-width:52ch;margin:4px 0 0;font-size:13.5px}.toolbar{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:14px;display:flex}.toolbar .field{min-width:148px;margin-bottom:0}.toolbar .field label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:600}.toolbar select{width:auto;min-width:160px}.search-field{flex:220px;min-width:180px;position:relative}.search-field input{padding:0 36px}.search-field .icon-left,.search-field .icon-right{color:var(--muted);background:0 0;border:0;place-items:center;padding:4px;display:grid;position:absolute;top:50%;transform:translateY(-50%)}.search-field .icon-left{left:10px}.search-field .icon-right{right:8px}.password-field{position:relative}.password-field input{padding-right:42px}.password-toggle{width:32px;height:32px;color:var(--muted);border-radius:var(--radius-sm);transition:color var(--ease), background var(--ease);background:0 0;border:0;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-toggle:hover,.password-toggle[aria-pressed=true]{color:var(--ink);background:var(--surface-2)}.btn{height:var(--control-h);border-radius:var(--radius-sm);transition:background var(--ease), border-color var(--ease), box-shadow var(--ease), transform .18s var(--ease-out);white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:0 14px;font-size:13.5px;font-weight:600;display:inline-flex}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--brand);color:var(--brand-fg)}.btn-primary:hover{background:var(--brand-hover)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:hover{background:var(--surface-2)}.btn-ghost{color:var(--ink-2);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--ink)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{filter:brightness(.95)}.btn-danger-soft{background:var(--danger-soft);color:var(--danger)}.btn-sm{height:32px;padding:0 10px;font-size:12.5px}.btn-icon{width:var(--control-h);padding:0}.btn-icon.btn-sm{width:32px}.btn-block{width:100%}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);transition:border-color var(--ease), box-shadow var(--ease)}.card-pad{padding:16px 18px}.chart-card{margin-top:22px;margin-bottom:14px;padding:14px 16px 12px;overflow:hidden}.chart-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.chart-head h2{margin:0;font-size:13px;font-weight:650}.chart-head p{color:var(--muted);margin:2px 0 0;font-size:12.5px}.chart-canvas-wrap{width:100%;height:340px;position:relative}.chart-canvas-wrap canvas{max-width:100%}@media (width<=899px){.chart-card{padding:12px}.chart-head{margin-bottom:4px}.chart-canvas-wrap{height:240px}}@media (width>=900px){.chart-card{padding:18px 20px 16px}.chart-head{margin-bottom:12px}.chart-head h2{font-size:15px}.chart-head p{font-size:13px}.chart-canvas-wrap{height:360px}}@media (width>=1280px){.chart-canvas-wrap{height:400px}}.chart-empty{min-height:140px;color:var(--muted);text-align:center;place-items:center;padding:24px 12px;font-size:13px;display:grid}.chart-legend{flex-wrap:wrap;gap:8px 14px;margin:2px 0 10px;padding:0;list-style:none;display:flex}.chart-legend-item{color:var(--ink-2);align-items:center;gap:6px;font-size:12px;display:inline-flex}.chart-legend-item i{border-radius:99px;flex-shrink:0;width:10px;height:10px;display:inline-block}.chart-tooltip{background:var(--ink);color:#fff;pointer-events:none;min-width:120px;box-shadow:var(--shadow-md);z-index:2;border-radius:8px;gap:2px;padding:8px 10px;font-size:12px;display:grid;position:absolute;top:8px;transform:translate(-50%)}.chart-tooltip strong{font-size:12.5px}.stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.stat-card{--stat-accent:var(--brand);isolation:isolate;transition:border-color var(--ease), box-shadow var(--ease), transform var(--ease);flex-direction:column;gap:6px;padding:16px 16px 14px;display:flex;position:relative;overflow:hidden}.stat-card.tone-brand{--stat-accent:var(--brand)}.stat-card.tone-forest{--stat-accent:var(--forest)}.stat-card.tone-gold{--stat-accent:var(--gold)}.stat-card:before{content:"";background:var(--stat-accent);opacity:.9;width:3px;position:absolute;top:0;bottom:0;left:0}.stat-card:after{content:"";background:radial-gradient(circle, color-mix(in srgb, var(--stat-accent) 18%, transparent), transparent 68%);pointer-events:none;z-index:0;border-radius:50%;width:120px;height:120px;position:absolute;top:-36px;right:-28px}.stat-card:hover{border-color:color-mix(in srgb, var(--stat-accent) 28%, var(--line));transform:translateY(-2px)}.stat-card-top{z-index:1;align-items:center;gap:8px;display:flex;position:relative}.stat-ico{background:color-mix(in srgb, var(--stat-accent) 14%, var(--surface));width:28px;height:28px;color:var(--stat-accent);border-radius:8px;flex-shrink:0;place-items:center;display:grid}.stat-motif{pointer-events:none;z-index:0;color:var(--stat-accent);opacity:.16;position:absolute;inset:0}.stat-motif .motif-lg{animation:leaf-drift 7s var(--ease-out) infinite;position:absolute;bottom:-18px;right:-10px;transform:rotate(-28deg)}.stat-motif .motif-md{opacity:.7;animation:9s ease-in-out infinite leaf-drift-alt;position:absolute;top:8px;right:42px}.stat-motif .motif-sm{opacity:.55;animation:6s ease-in-out infinite leaf-sway;position:absolute;top:38px;right:18px;transform:rotate(-8deg)}.stat-card .label{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;z-index:1;font-size:11px;font-weight:600;position:relative}.stat-card .value{font-family:var(--font-num);letter-spacing:-.03em;font-variant-numeric:tabular-nums;z-index:1;font-size:22px;font-weight:650;line-height:1.15;position:relative}.stat-card .hint{color:var(--ink-2);z-index:1;font-size:12.5px;line-height:1.4;position:relative}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;display:grid}.quick-card{text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);transition:border-color var(--ease), background var(--ease), box-shadow var(--ease), transform var(--ease);align-items:center;gap:10px;padding:12px 14px;font-size:13.5px;font-weight:550;display:flex}.quick-card:hover{border-color:var(--line-strong);background:var(--surface-2);box-shadow:var(--shadow-md);transform:translateY(-2px)}.quick-ico{border-radius:var(--radius-sm);background:var(--brand-soft);width:32px;height:32px;color:var(--brand);flex-shrink:0;place-items:center;display:grid}.section-title{letter-spacing:-.01em;color:var(--ink);margin:22px 0 10px;font-size:13px;font-weight:650}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.panel-head h2{margin:0;font-size:13px;font-weight:650}.dash-split{grid-template-columns:1.2fr .8fr;align-items:start;gap:16px;margin-top:8px;display:grid}.dash-split>section .section-title{margin-top:24px}.table-wrap{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);overflow:auto}.table-wrap.plain{border:0;border-radius:0}.dash-split table.data{min-width:0}.section-title.tight{margin-top:24px}.mt-2{margin-top:8px}.mb-3{margin-bottom:16px}table.data{border-collapse:collapse;width:100%;min-width:680px}table.data th,table.data td{text-align:left;border-bottom:1px solid var(--line);vertical-align:middle;padding:10px 14px;font-size:13.5px}table.data th{background:var(--surface-2);letter-spacing:.05em;text-transform:uppercase;color:var(--muted);z-index:1;font-size:11px;font-weight:650;position:sticky;top:0}table.data tr:last-child td{border-bottom:0}table.data tbody tr{transition:background var(--ease)}table.data tbody tr:hover{background:var(--surface-2)}table.data .num{text-align:right;font-variant-numeric:tabular-nums}table.data .strong-num{text-align:right;font-family:var(--font-num);font-variant-numeric:tabular-nums;font-weight:650}.money{font-variant-numeric:tabular-nums;font-weight:600}.money-lg{font-family:var(--font-num);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:22px;font-weight:650}.delta-up{color:var(--danger)}.delta-down{color:var(--success)}.badge{letter-spacing:.01em;text-transform:capitalize;border-radius:999px;align-items:center;height:20px;padding:0 8px;font-size:11px;font-weight:650;display:inline-flex}.badge-ok{background:var(--success-soft);color:var(--success)}.badge-off{background:var(--surface-2);color:var(--muted)}.badge-warn{background:var(--warning-soft);color:var(--warning)}.menu-wrap{display:inline-flex;position:relative}.menu{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);min-width:184px;box-shadow:var(--shadow-md);z-index:60;animation:pop .12s var(--ease);padding:4px}.menu-fixed{margin:0;position:fixed}.menu button{border-radius:var(--radius-sm);text-align:left;background:0 0;border:0;align-items:center;gap:8px;width:100%;padding:8px 10px;font-size:13px;display:flex}.menu button:hover{background:var(--surface-2)}.menu button.danger{color:var(--danger)}.empty{text-align:center;padding:40px 20px}.empty h3{margin:10px 0 4px;font-size:15px}.empty p{color:var(--muted);margin:0 0 14px;font-size:13.5px}.empty-icon{border-radius:var(--radius-sm);background:var(--brand-soft);width:40px;height:40px;color:var(--brand);place-items:center;margin:0 auto;display:grid}.skeleton{background:linear-gradient(90deg, var(--surface-2), var(--line), var(--surface-2));border-radius:var(--radius-sm);background-size:200% 100%;animation:1.2s infinite shimmer}.page-loader{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);min-height:0;box-shadow:var(--shadow-lg);z-index:1;place-items:center;gap:14px;padding:28px 36px;display:grid;position:relative}.loader-overlay{z-index:72;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:fade .15s var(--ease);background:#18181b7a;place-items:center;display:grid;position:fixed;inset:0}.loader-top{background:color-mix(in srgb, var(--brand) 18%, transparent);height:3px;position:absolute;top:0;left:0;right:0;overflow:hidden}.loader-top-bar{background:var(--brand);border-radius:99px;width:32%;height:100%;animation:1.05s ease-in-out infinite loader-top-run;display:block}body.loader-open .bottom-nav{pointer-events:none}@keyframes loader-top-run{0%{transform:translate(-120%)}to{transform:translate(420%)}}.loader-orbit{place-items:center;width:64px;height:64px;display:grid;position:relative}.loader-ring{border:3px solid color-mix(in srgb, var(--brand) 16%, var(--line));border-top-color:var(--brand);border-radius:50%;animation:.8s linear infinite loader-spin;position:absolute;inset:0}.loader-mark{object-fit:contain;width:40px;height:40px;box-shadow:none;background:0 0;border-radius:10px}.loader-label{color:var(--muted);letter-spacing:.02em;margin:0;font-size:13px;font-weight:600}@keyframes loader-spin{to{transform:rotate(360deg)}}.overlay{z-index:70;background:#18181b66;animation:.22s fade;display:flex;position:fixed;inset:0}.overlay-bottom{align-items:flex-end}body.overlay-open .bottom-nav{z-index:40;pointer-events:none}.modal{background:var(--surface);border-radius:var(--radius-lg);width:min(480px,100% - 24px);box-shadow:var(--shadow-lg);max-height:min(88vh,720px);animation:modal-in .26s var(--ease);border:1px solid var(--line);margin:auto;overflow:auto}.drawer{background:var(--surface);width:min(440px,100%);height:100%;box-shadow:var(--shadow-lg);animation:slide-left .28s var(--ease);flex-direction:column;margin-left:auto;display:flex}.sheet{background:var(--surface);width:100%;max-height:min(88vh,720px);animation:sheet-up .34s var(--ease);will-change:transform;border-radius:16px 16px 0 0;flex-direction:column;margin-top:auto;display:flex}.sheet-handle{background:var(--line-strong);border-radius:99px;width:36px;height:4px;margin:10px auto 0}.sheet-body{padding:8px 16px 16px;overflow:auto}.sheet-foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--surface);gap:8px;display:flex;position:sticky;bottom:0}.modal-head,.drawer-head{justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 8px;display:flex}.dialog-title{letter-spacing:-.02em;margin:0;font-size:16px;font-weight:650}.modal-body,.drawer-body{flex:1;padding:8px 16px 16px;overflow:auto}.modal-foot,.drawer-foot{border-top:1px solid var(--line);justify-content:flex-end;gap:8px;padding:12px 16px 16px;display:flex}.confirm-copy{color:var(--ink-2);margin:0;line-height:1.5}.flex-1{flex:1}.modal-foot .flex-1{min-width:0}.field{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.field label{color:var(--ink-2);font-size:12.5px;font-weight:600}.field input,.field select,.field textarea{height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface);padding:0 12px}.field textarea{height:auto;min-height:88px;padding:10px 12px}.field .error,.error{color:var(--danger);font-size:12.5px}.field-hint{color:var(--muted);font-size:12.5px}.form-grid{grid-template-columns:1fr 1fr;gap:0 16px;display:grid}.form-section{margin-bottom:16px}.form-section-title{text-transform:uppercase;letter-spacing:.05em;color:var(--muted);margin:0 0 12px;font-size:12px;font-weight:650}.form-narrow{max-width:640px}.price-preview{grid-template-columns:1fr 1fr 1fr;gap:8px;margin:4px 0 14px;display:grid}.price-preview>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:10px 12px}.price-preview span{color:var(--muted);margin-bottom:2px;font-size:11px;display:block}.price-preview strong{font-family:var(--font-num);font-variant-numeric:tabular-nums}.combo{position:relative}.combo-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:40;max-height:260px;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow:auto}.combo-option{text-align:left;background:0 0;border:0;justify-content:space-between;gap:10px;width:100%;padding:9px 12px;font-size:13.5px;display:flex}.combo-option:hover,.combo-option.active{background:var(--brand-soft)}.combo-option small{color:var(--muted);font-variant-numeric:tabular-nums}.product-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;display:grid}.product-card{transition:border-color var(--ease), box-shadow var(--ease), transform var(--ease);flex-direction:column;gap:8px;padding:14px 16px 12px;display:flex}button.product-card:hover,a.product-card:hover{box-shadow:var(--shadow-md);border-color:var(--line-strong);transform:translateY(-2px)}.product-card-head{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.product-card h3{margin:0;font-size:14.5px;font-weight:650}.product-meta{color:var(--muted);flex-wrap:wrap;gap:8px;font-size:12.5px;display:flex}.product-cost{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cost-label{color:var(--muted);letter-spacing:.06em;font-size:10.5px;font-weight:650}.ing-table{border-collapse:collapse;width:100%}.ing-table th,.ing-table td{border-bottom:1px solid var(--line);vertical-align:middle;padding:8px;font-size:13.5px}.ing-table th{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:11px;font-weight:650}.ing-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--surface);margin-bottom:10px;padding:12px 14px}.ing-card-head{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.totals-bar{grid-template-columns:1fr 1fr 1fr;gap:10px;margin-top:14px;display:grid}.totals-bar>div{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 16px}.totals-bar .label{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px;font-size:11px;font-weight:650}.totals-bar .is-emphasis{border-color:color-mix(in srgb, var(--brand) 28%, var(--line));background:var(--brand-soft)}.sticky-save{padding:12px 0 calc(12px + env(safe-area-inset-bottom));background:linear-gradient(180deg, transparent, var(--bg) 28%);position:sticky;bottom:0}.qty-row{align-items:center;gap:8px;display:flex}.qty-row>input{flex:1;width:auto;min-width:0}.qty-row.is-disabled{opacity:.65}.muted-dash{color:var(--muted)}.unit-toggle button:disabled{opacity:.5;cursor:not-allowed}.col-ing{min-width:220px}.col-qty{min-width:170px}.ml-2{margin-left:8px}.is-clickable{cursor:pointer}.row-actions,.pagination-actions{gap:8px;display:flex}.combo-empty{color:var(--muted);padding:12px;font-size:13px}.stat-value-md{font-size:20px!important}.bottom-nav{z-index:40;background:var(--surface);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom));grid-template-columns:repeat(5,1fr);display:none;position:fixed;bottom:0;left:0;right:0}.bottom-nav a,.bottom-nav button{min-width:0;color:var(--muted);letter-spacing:-.02em;border-radius:var(--radius-sm);min-height:44px;transition:color var(--ease), background var(--ease);background:0 0;border:0;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 2px;font-size:clamp(9px,2.5vw,10.5px);font-weight:600;line-height:1.15;display:flex}.bottom-nav-label{white-space:nowrap;text-overflow:clip;max-width:100%;display:block;overflow:hidden}.bottom-nav a.active,.bottom-nav button.active{color:var(--brand);background:var(--brand-soft)}.login-page{grid-template-columns:1fr 1fr;min-height:100vh;display:grid}.login-aside{color:#fafafa;background:#141414;flex-direction:column;justify-content:space-between;padding:40px 44px;display:flex}.login-aside h2{letter-spacing:-.04em;margin:16px 0 8px;font-size:28px;font-weight:650}.login-aside-logo{width:auto;max-width:240px;height:52px}.login-card-logo{width:auto;max-width:200px;height:44px;margin-bottom:4px}.login-aside p{color:#a1a1aa;max-width:36ch;margin:0;line-height:1.55}.login-form-col{background:var(--bg);place-items:center;padding:32px 24px;display:grid}.login-card{width:min(400px,100%);animation:page-in .42s var(--ease);padding:28px 28px 24px}.login-card h1{letter-spacing:-.03em;margin:12px 0 4px;font-size:22px}.login-card>p{color:var(--muted);margin:0 0 20px}.impersonation-banner{color:#fafafa;background:#18181b;justify-content:space-between;align-items:center;gap:12px;padding:8px 16px;font-size:13px;display:flex}.install-banner{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.install-banner-main{align-items:center;gap:12px;min-width:0;display:flex}.install-logo{object-fit:contain;border-radius:8px;flex-shrink:0;width:40px;height:40px}.install-banner p{color:var(--muted);margin:2px 0 0;font-size:13px}.inline-actions{gap:8px;display:flex}.toast-viewport{right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:80;flex-direction:column;gap:8px;display:flex;position:fixed}.toast{border-radius:var(--radius-md);background:var(--ink);color:#fff;box-shadow:var(--shadow-md);text-align:left;min-width:240px;max-width:360px;animation:rise .16s var(--ease);border:0;align-items:center;gap:8px;padding:11px 14px;font-size:13.5px;display:flex}.toast-success{background:var(--success)}.toast-error{background:var(--danger)}.pagination{color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:14px 2px 0;font-size:12.5px;display:flex}.pagination-meta{color:var(--muted)}.pagination-controls{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.per-page{color:var(--muted);align-items:center;gap:6px;font-size:12.5px;font-weight:600;display:inline-flex}.per-page select{width:auto;min-width:64px;height:32px;padding:0 8px}.page-btn{min-width:32px;padding:0 8px}.page-btn.is-current{background:var(--brand);color:var(--brand-fg);border-color:var(--brand)}.page-ellipsis{text-align:center;min-width:16px;color:var(--muted)}.bar-track{background:var(--surface-2);border-radius:99px;height:4px;margin-top:6px;overflow:hidden}.bar-fill{background:var(--brand);border-radius:99px;height:100%}.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:2px;display:inline-flex}.seg button{height:28px;color:var(--muted);background:0 0;border:0;border-radius:4px;padding:0 10px;font-size:12.5px;font-weight:600}.seg button.active{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sm)}.unit-toggle{border:1px solid var(--line-strong);border-radius:var(--radius-sm);flex-shrink:0;height:32px;display:flex;overflow:hidden}.unit-toggle button{background:var(--surface);color:var(--muted);border:0;padding:0 10px;font-size:12px;font-weight:650}.unit-toggle button.active{background:var(--brand-soft);color:var(--brand)}@keyframes rise{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes page-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes modal-in{0%{opacity:0;transform:scale(.98)}to{opacity:1;transform:none}}@keyframes pop{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:none}}@keyframes slide-left{0%{opacity:.85;transform:translate(16px)}to{opacity:1;transform:none}}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}@keyframes leaf-drift{0%,to{transform:rotate(-28deg)translateY(0)}50%{transform:rotate(-20deg)translateY(-6px)}}@keyframes leaf-drift-alt{0%,to{transform:rotate(22deg)translateY(0)}50%{transform:rotate(12deg)translateY(-5px)}}@keyframes leaf-sway{0%,to{transform:rotate(-8deg)translate(0)}50%{transform:rotate(10deg)translate(3px)}}.mobile-header{display:none}@media (width<=1100px){.stat-grid,.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-split{grid-template-columns:1fr}}@media (width<=899px){.app-frame,.app-frame.is-collapsed{display:block}.app-sidebar{display:none}.mobile-header{display:flex}.app-header{padding:0 14px}.app-header .header-titles h1{display:block}.header-tool-label{display:none}.header-tool{width:32px;padding:0}.page-header h1{display:none}.page-wrap{padding:14px 14px 88px}.bottom-nav{display:grid}.stat-grid,.quick-grid{grid-template-columns:1fr 1fr}.desktop-only{display:none!important}.price-preview,.form-grid{grid-template-columns:1fr}table.data{min-width:600px}.login-page{grid-template-columns:1fr}.login-aside{display:none}}@media (width>=900px){.app-header .header-titles h1{display:none}}@media (width<=560px){.stat-grid,.quick-grid,.totals-bar{grid-template-columns:1fr}.page-header h1{font-size:20px}.install-banner{flex-direction:column;align-items:flex-start}.pagination{flex-direction:column;align-items:stretch;gap:10px}.pagination-controls{justify-content:space-between}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
