:root{color-scheme:light;--font-sans: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .875rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-full: 999px;--primary-50: #eef2ff;--primary-100: #e0e7ff;--primary-200: #c7d2fe;--primary-300: #a5b4fc;--primary-400: #818cf8;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--primary-800: #3730a3;--slate-50: #f8fafc;--slate-100: #f1f5f9;--slate-200: #e2e8f0;--slate-300: #cbd5e1;--slate-400: #94a3b8;--slate-500: #64748b;--slate-600: #475569;--slate-700: #334155;--slate-800: #1e293b;--slate-900: #0f172a;--slate-950: #020617;--color-bg: var(--slate-50);--color-surface: #ffffff;--color-surface-2: var(--slate-50);--color-surface-hover: var(--slate-50);--color-border: var(--slate-200);--color-border-strong: var(--slate-300);--color-text: var(--slate-900);--color-text-2: var(--slate-600);--color-text-3: var(--slate-500);--color-text-inverse: #ffffff;--color-primary: var(--primary-600);--color-primary-hover: var(--primary-700);--color-primary-soft: var(--primary-50);--color-primary-soft-text: var(--primary-700);--color-success: #059669;--color-success-soft: #ecfdf5;--color-success-text: #047857;--color-warning: #d97706;--color-warning-soft: #fffbeb;--color-warning-text: #b45309;--color-danger: #dc2626;--color-danger-hover: #b91c1c;--color-danger-soft: #fef2f2;--color-danger-text: #b91c1c;--color-info: #0284c7;--color-info-soft: #f0f9ff;--color-info-text: #0369a1;--color-violet: #7c3aed;--color-violet-soft: #f5f3ff;--color-violet-text: #6d28d9;--chart-in: #2563eb;--chart-out: #ea580c;--chart-grid: var(--slate-200);--sidebar-bg: #0f172a;--sidebar-border: #1e293b;--sidebar-text: #94a3b8;--sidebar-text-strong: #e2e8f0;--sidebar-hover: rgba(148, 163, 184, .1);--sidebar-active-bg: var(--primary-600);--sidebar-group: #64748b;--shadow-xs: 0 1px 2px rgba(15, 23, 42, .04);--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 3px rgba(15, 23, 42, .04);--shadow-md: 0 4px 12px -2px rgba(15, 23, 42, .08), 0 2px 4px -2px rgba(15, 23, 42, .05);--shadow-lg: 0 16px 40px -8px rgba(15, 23, 42, .18), 0 4px 12px -4px rgba(15, 23, 42, .08);--backdrop: rgba(15, 23, 42, .45);--focus-ring: 0 0 0 3px rgba(79, 70, 229, .28);--focus-ring-danger: 0 0 0 3px rgba(220, 38, 38, .22);--skeleton-a: var(--slate-100);--skeleton-b: var(--slate-200);--topbar-h: 64px;--sidebar-w: 256px;--sidebar-w-collapsed: 72px;--page-pad: 24px;--ease: cubic-bezier(.2, .8, .2, 1)}[data-theme=dark]{color-scheme:dark;--color-bg: #0b1120;--color-surface: #111827;--color-surface-2: #0f172a;--color-surface-hover: #1a2334;--color-border: #1f2a3c;--color-border-strong: #334155;--color-text: #e2e8f0;--color-text-2: #a3b1c6;--color-text-3: #7f8ea3;--color-primary: #6366f1;--color-primary-hover: #818cf8;--color-primary-soft: rgba(99, 102, 241, .16);--color-primary-soft-text: #a5b4fc;--color-success: #10b981;--color-success-soft: rgba(16, 185, 129, .14);--color-success-text: #34d399;--color-warning: #f59e0b;--color-warning-soft: rgba(245, 158, 11, .14);--color-warning-text: #fbbf24;--color-danger: #ef4444;--color-danger-hover: #f87171;--color-danger-soft: rgba(239, 68, 68, .14);--color-danger-text: #f87171;--color-info: #0ea5e9;--color-info-soft: rgba(14, 165, 233, .14);--color-info-text: #38bdf8;--color-violet: #8b5cf6;--color-violet-soft: rgba(139, 92, 246, .16);--color-violet-text: #c4b5fd;--chart-in: #3b82f6;--chart-out: #ea580c;--chart-grid: #1f2a3c;--sidebar-bg: #070b16;--sidebar-border: #141c2e;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .3);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35), 0 1px 3px rgba(0, 0, 0, .25);--shadow-md: 0 6px 16px -4px rgba(0, 0, 0, .5);--shadow-lg: 0 20px 48px -12px rgba(0, 0, 0, .7);--backdrop: rgba(2, 6, 23, .7);--focus-ring: 0 0 0 3px rgba(129, 140, 248, .4);--skeleton-a: #172033;--skeleton-b: #1f2a3c}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}html,body{height:100%}body{margin:0;font-family:var(--font-sans);font-size:var(--text-base);line-height:1.5;color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"cv02","cv03","cv04","cv11"}body.no-scroll{overflow:hidden}h1,h2,h3,h4,p{margin:0}h1{font-size:var(--text-xl);font-weight:650;letter-spacing:-.015em}h2{font-size:var(--text-lg);font-weight:600;letter-spacing:-.01em}h3{font-size:var(--text-md);font-weight:600}a{color:var(--color-primary);text-decoration:none}a:hover{text-decoration:underline}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}img,svg{display:block}:focus-visible{outline:none;box-shadow:var(--focus-ring)}::selection{background:var(--primary-200);color:var(--slate-900)}*{scrollbar-width:thin;scrollbar-color:var(--color-border-strong) transparent}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mono{font-family:var(--font-mono);font-size:.92em;letter-spacing:-.01em}.num{font-variant-numeric:tabular-nums}.muted{color:var(--color-text-3)}.text-2{color:var(--color-text-2)}.text-success{color:var(--color-success-text)}.text-danger{color:var(--color-danger-text)}.text-right{text-align:right}.nowrap{white-space:nowrap}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row{display:flex;align-items:center;gap:var(--space-2)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.spacer{flex:1}.link-button{background:none;border:0;padding:0;color:var(--color-primary);font-weight:500}.link-button:hover{text-decoration:underline}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}.btn{--btn-bg: var(--color-surface);--btn-fg: var(--color-text);--btn-border: var(--color-border-strong);--btn-hover-bg: var(--color-surface-hover);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:38px;padding:0 var(--space-4);border:1px solid var(--btn-border);border-radius:var(--radius-sm);background:var(--btn-bg);color:var(--btn-fg);font-size:var(--text-base);font-weight:550;line-height:1;white-space:nowrap;text-decoration:none;box-shadow:var(--shadow-xs);transition:background-color .15s var(--ease),border-color .15s var(--ease),box-shadow .15s var(--ease),color .15s var(--ease);-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){background:var(--btn-hover-bg);text-decoration:none}.btn:active:not(:disabled){transform:translateY(.5px)}.btn:disabled,.btn[aria-disabled=true]{opacity:.55;cursor:not-allowed}.btn app-icon{flex-shrink:0}.btn-primary{--btn-bg: var(--color-primary);--btn-fg: #fff;--btn-border: var(--color-primary);--btn-hover-bg: var(--color-primary-hover);box-shadow:0 1px 2px #4f46e540}.btn-ghost{--btn-bg: transparent;--btn-border: transparent;--btn-fg: var(--color-text-2);--btn-hover-bg: var(--color-surface-hover);box-shadow:none}.btn-ghost:hover:not(:disabled){color:var(--color-text)}.btn-danger{--btn-bg: var(--color-danger);--btn-fg: #fff;--btn-border: var(--color-danger);--btn-hover-bg: var(--color-danger-hover)}.btn-danger:focus-visible{box-shadow:var(--focus-ring-danger)}.btn-danger-ghost{--btn-bg: transparent;--btn-border: transparent;--btn-fg: var(--color-danger-text);--btn-hover-bg: var(--color-danger-soft);box-shadow:none}.btn-sm{height:32px;padding:0 var(--space-3);font-size:var(--text-sm);gap:6px}.btn-lg{height:44px;padding:0 var(--space-5);font-size:var(--text-md)}.btn-block{width:100%}.btn-icon{width:38px;padding:0}.btn-icon.btn-sm{width:32px}.btn-loading{cursor:progress}.btn-group{display:flex;flex-wrap:wrap;gap:var(--space-2)}.segmented{display:inline-flex;padding:3px;gap:2px;border-radius:var(--radius-sm);background:var(--color-surface-2);border:1px solid var(--color-border)}.segmented button{height:30px;padding:0 var(--space-3);border:0;border-radius:4px;background:transparent;color:var(--color-text-2);font-size:var(--text-sm);font-weight:550;white-space:nowrap}.segmented button:hover{color:var(--color-text)}.segmented button[aria-pressed=true]{background:var(--color-surface);color:var(--color-text);box-shadow:var(--shadow-sm)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:var(--text-sm);font-weight:550;color:var(--color-text)}.field-label .req{color:var(--color-danger);margin-left:2px}.field-label .opt{color:var(--color-text-3);font-weight:400;margin-left:4px}.field-hint{font-size:var(--text-xs);color:var(--color-text-3)}.field-error{display:flex;align-items:center;gap:4px;font-size:var(--text-xs);color:var(--color-danger-text);font-weight:500}.input,.select,.textarea{width:100%;height:38px;padding:0 var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text);font-size:var(--text-base);box-shadow:var(--shadow-xs);transition:border-color .15s var(--ease),box-shadow .15s var(--ease)}.input::placeholder,.select::placeholder,.textarea::placeholder{color:var(--color-text-3);opacity:.8}.input:hover:not(:disabled),.select:hover:not(:disabled),.textarea:hover:not(:disabled){border-color:var(--slate-400)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.input:disabled,.input[readonly],.select:disabled,.select[readonly],.textarea:disabled,.textarea[readonly]{background:var(--color-surface-2);color:var(--color-text-2);cursor:not-allowed}.input[aria-invalid=true],.select[aria-invalid=true],.textarea[aria-invalid=true]{border-color:var(--color-danger)}.input[aria-invalid=true]:focus,.select[aria-invalid=true]:focus,.textarea[aria-invalid=true]:focus{box-shadow:var(--focus-ring-danger)}.select{appearance:none;padding-right:34px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;cursor:pointer}.textarea{height:auto;min-height:84px;padding:var(--space-2) var(--space-3);resize:vertical;line-height:1.5}.input-sm,.select.input-sm{height:32px;font-size:var(--text-sm)}.input-icon{position:relative;display:flex;align-items:center}.input-icon>app-icon{position:absolute;left:11px;color:var(--color-text-3);pointer-events:none}.input-icon .input{padding-left:36px}.input-icon .input-suffix{position:absolute;right:4px}.input-group{position:relative}.input-group .input{padding-right:42px}.input-group .input-addon{position:absolute;right:3px;top:50%;transform:translateY(-50%)}.checkbox{appearance:none;flex-shrink:0;width:18px;height:18px;margin:0;border:1.5px solid var(--color-border-strong);border-radius:5px;background:var(--color-surface);cursor:pointer;display:inline-grid;place-content:center;transition:background-color .12s var(--ease),border-color .12s var(--ease)}.checkbox:after{content:"";width:10px;height:10px;transform:scale(0);transition:transform .12s var(--ease);background:#fff;clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%)}.checkbox:checked,.checkbox:indeterminate{background:var(--color-primary);border-color:var(--color-primary)}.checkbox:checked:after,.checkbox:indeterminate:after{transform:scale(1)}.checkbox:indeterminate:after{clip-path:inset(40% 0 40% 0)}.checkbox:disabled{opacity:.5;cursor:not-allowed}.check-label{display:inline-flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);cursor:pointer;-webkit-user-select:none;user-select:none}.switch{appearance:none;position:relative;flex-shrink:0;width:36px;height:20px;margin:0;border-radius:var(--radius-full);background:var(--color-border-strong);cursor:pointer;transition:background-color .18s var(--ease)}.switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #0f172a4d;transition:transform .18s var(--ease)}.switch:checked{background:var(--color-success)}.switch:checked:after{transform:translate(16px)}.switch:disabled{opacity:.5;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.form-grid .span-2{grid-column:1/-1}@media(max-width:560px){.form-grid{grid-template-columns:minmax(0,1fr)}}.form-section-title{grid-column:1/-1;font-size:var(--text-xs);font-weight:650;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-3);padding-top:var(--space-2);border-top:1px dashed var(--color-border);margin-top:var(--space-1)}.form-section-title:first-child{border-top:0;padding-top:0;margin-top:0}.form-alert{display:flex;gap:var(--space-2);align-items:flex-start;padding:var(--space-3);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--color-danger-soft);color:var(--color-danger-text);border:1px solid color-mix(in srgb,var(--color-danger) 25%,transparent)}.form-alert app-icon{margin-top:1px}.form-alert ul{margin:4px 0 0;padding-left:18px}.form-alert.info{background:var(--color-info-soft);color:var(--color-info-text);border-color:color-mix(in srgb,var(--color-info) 25%,transparent)}.form-alert.warning{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:color-mix(in srgb,var(--color-warning) 30%,transparent)}.switch-row{align-items:flex-start;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-2)}.switch-row>span{display:flex;flex-direction:column;line-height:1.35}.switch-row strong{font-weight:550}.switch-row small{font-size:var(--text-xs)}.switch-row .switch{margin-top:1px}.dropzone{display:flex;flex-direction:column;align-items:center;gap:6px;padding:var(--space-8) var(--space-4);border:1.5px dashed var(--color-border-strong);border-radius:var(--radius-md);background:var(--color-surface-2);color:var(--color-text-3);text-align:center;cursor:pointer;transition:border-color .15s,background-color .15s}.dropzone strong{color:var(--color-text);font-weight:600}.dropzone:hover,.dropzone.over{border-color:var(--color-primary);background:var(--color-primary-soft);color:var(--color-primary)}.dropzone:focus-within{box-shadow:var(--focus-ring)}.dropzone.busy{cursor:progress;opacity:.75}.page{display:flex;flex-direction:column;gap:var(--space-6);padding:var(--page-pad);max-width:1440px;width:100%;margin:0 auto}@media(max-width:640px){.page{--page-pad: 16px;gap:var(--space-4)}}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);min-width:0}.card-header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.card-header h2,.card-header h3{font-size:var(--text-md);font-weight:600}.card-header .card-sub{font-size:var(--text-sm);color:var(--color-text-3)}.card-body{padding:var(--space-5)}.card-footer{padding:var(--space-3) var(--space-5);border-top:1px solid var(--color-border)}.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.toolbar .toolbar-search{flex:1 1 240px;max-width:360px}.toolbar .select,.toolbar .input{width:auto;min-width:140px}.toolbar .toolbar-search .input{width:100%}@media(max-width:640px){.toolbar{padding:var(--space-3) var(--space-4)}.toolbar .toolbar-search{max-width:none;flex-basis:100%}.toolbar .select,.toolbar .input{flex:1 1 140px}}.badge{display:inline-flex;align-items:center;gap:5px;height:22px;padding:0 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:600;line-height:1;white-space:nowrap;background:var(--color-surface-2);color:var(--color-text-2);border:1px solid var(--color-border)}.badge.dot:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}.badge.primary{background:var(--color-primary-soft);color:var(--color-primary-soft-text);border-color:transparent}.badge.success{background:var(--color-success-soft);color:var(--color-success-text);border-color:transparent}.badge.warning{background:var(--color-warning-soft);color:var(--color-warning-text);border-color:transparent}.badge.danger{background:var(--color-danger-soft);color:var(--color-danger-text);border-color:transparent}.badge.info{background:var(--color-info-soft);color:var(--color-info-text);border-color:transparent}.badge.violet{background:var(--color-violet-soft);color:var(--color-violet-text);border-color:transparent}.table-wrap{position:relative;overflow:auto;max-height:calc(100vh - 260px);min-height:120px}.table-wrap.no-max{max-height:none}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--text-base)}.data-table th,.data-table td{padding:11px var(--space-4);text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table th:first-child,.data-table td:first-child{padding-left:var(--space-5)}.data-table th:last-child,.data-table td:last-child{padding-right:var(--space-5)}.data-table thead th{position:sticky;top:0;z-index:1;background:var(--color-surface-2);color:var(--color-text-3);font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding-top:10px;padding-bottom:10px}.data-table tbody tr{transition:background-color .1s}.data-table tbody tr:hover{background:var(--color-surface-hover)}.data-table tbody tr:last-child td{border-bottom:0}.data-table tr.clickable{cursor:pointer}.data-table .num,.data-table .col-num{text-align:right;font-variant-numeric:tabular-nums}.data-table .col-actions{width:1%;text-align:right}.data-table .cell-main{font-weight:550;color:var(--color-text)}.data-table .cell-sub{font-size:var(--text-xs);color:var(--color-text-3)}.data-table .wrap{white-space:normal;min-width:180px}.data-table .wrap-sm{white-space:normal;min-width:110px}.row-actions{display:inline-flex;gap:2px;justify-content:flex-end}.skeleton{display:block;height:12px;border-radius:4px;background:linear-gradient(90deg,var(--skeleton-a) 25%,var(--skeleton-b) 37%,var(--skeleton-a) 63%);background-size:400% 100%;animation:skeleton 1.4s ease infinite}@keyframes skeleton{0%{background-position:100% 50%}to{background-position:0 50%}}.info-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:var(--space-5) var(--space-6)}.info-grid dt{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-3);margin-bottom:4px}.info-grid dd{margin:0;font-weight:500;overflow-wrap:anywhere}.menu{min-width:200px;padding:6px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg)}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px 10px;border:0;border-radius:var(--radius-sm);background:transparent;color:var(--color-text);font-size:var(--text-base);text-align:left;text-decoration:none;cursor:pointer}.menu-item app-icon{color:var(--color-text-3)}.menu-item:hover,.menu-item:focus-visible{background:var(--color-surface-hover);text-decoration:none;box-shadow:none;outline:none}.menu-item:focus-visible{background:var(--color-primary-soft)}.menu-item.danger{color:var(--color-danger-text)}.menu-item.danger app-icon{color:currentColor}.menu-item.active{color:var(--color-primary-soft-text);font-weight:550}.menu-sep{height:1px;margin:6px 0;background:var(--color-border)}.menu-heading{padding:6px 10px 4px;font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-3)}.overlay-backdrop{position:fixed;inset:0;z-index:1000;background:var(--backdrop);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fade-in .15s var(--ease)}@keyframes fade-in{0%{opacity:0}}@keyframes pop-in{0%{opacity:0;transform:translateY(8px) scale(.98)}}@keyframes slide-in-right{0%{transform:translate(100%)}}@keyframes slide-in-left{0%{transform:translate(-100%)}}.divider{height:1px;background:var(--color-border);border:0;margin:0}.kbd{font-family:var(--font-mono);font-size:var(--text-xs);padding:1px 6px;border-radius:4px;border:1px solid var(--color-border);background:var(--color-surface-2)}.qty-pos{color:var(--color-success-text);font-weight:600;font-variant-numeric:tabular-nums}.qty-neg{color:var(--color-danger-text);font-weight:600;font-variant-numeric:tabular-nums}.qty-neutral{color:var(--color-info-text);font-weight:600;font-variant-numeric:tabular-nums}.code-chip{display:inline-block;font-family:var(--font-mono);font-size:.8rem;padding:2px 7px;border-radius:5px;background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-text);white-space:nowrap}.summary-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px var(--space-2);padding:var(--space-3) var(--space-5);border-bottom:1px solid var(--color-border);background:var(--color-surface-2);font-size:var(--text-sm)}.summary-bar strong{font-weight:650}.summary-bar .btn{margin-left:auto}.summary-sep{color:var(--color-text-3)}tbody.stale{opacity:.55;transition:opacity .15s}.filter-row{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.filter-row .field{min-width:160px}.filter-row .select,.filter-row .input{width:auto;min-width:160px}.figure-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-3);padding:var(--space-4) var(--space-5)}.figure-card{display:flex;flex-direction:column;gap:4px;padding:var(--space-3) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.figure-card span{font-size:var(--text-xs);font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-3)}.figure-card strong{font-size:var(--text-lg);font-weight:700}.figure-card small{color:var(--color-text-2);font-size:var(--text-sm)}.group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:var(--space-4);padding:0 var(--space-5) var(--space-5)}.group-grid h3{margin:0 0 var(--space-2);font-size:var(--text-sm);font-weight:650}.group-table{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.section-title{display:flex;align-items:center;gap:var(--space-2);margin:0;padding:var(--space-4) var(--space-5) var(--space-2);font-size:var(--text-md);font-weight:650}.truncated-note{margin:0 var(--space-5) var(--space-3)}.presets{display:flex;flex-wrap:wrap;gap:2px;padding-bottom:2px}.report-alert{margin:var(--space-4) var(--space-5) 0}.report-body{transition:opacity .15s}.report-body.stale{opacity:.55}.report-loading{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.report-loading .skeleton{height:56px}.report-table{margin:0 var(--space-5) var(--space-5);border:1px solid var(--color-border);border-radius:var(--radius-md)}.report-table .empty-cell{padding:var(--space-6);text-align:center}.report-table .total-row th,.report-table .total-row td{border-top:1px solid var(--color-border);font-weight:650}.report-table .total-row th{text-align:left}.report-table tr.busiest td{background:var(--color-warning-soft)}.report-chart{padding:0 var(--space-5) var(--space-4)}.section-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-2)}.section-head .section-title{padding:0}.matrix-table th:first-child,.matrix-table td:first-child{position:sticky;left:0;z-index:1;background:var(--color-surface);min-width:180px}.matrix-table td.zero{color:var(--color-text-3)}.dash-row{display:grid;gap:var(--space-4);align-items:start}@media(max-width:1100px){.dash-row{grid-template-columns:minmax(0,1fr)!important}}.dash-row-2{grid-template-columns:minmax(0,3fr) minmax(0,2fr)}.dash-row-2.even{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-row-3{grid-template-columns:repeat(3,minmax(0,1fr))}.month-card{display:flex;flex-direction:column;gap:6px;padding:var(--space-5);min-height:100%}.month-label{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-sm);font-weight:550;color:var(--color-text-2)}.month-figure{font-size:var(--text-xl);font-weight:700}.month-pieces{font-size:var(--text-sm);color:var(--color-text-2)}.month-change{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:auto;font-size:var(--text-xs)}.change-chip{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:var(--radius-full);background:var(--color-surface-2);color:var(--color-text-2);font-weight:650}.change-chip.up{background:var(--color-success-soft);color:var(--color-success-text)}.change-chip.down{background:var(--color-danger-soft);color:var(--color-danger-text)}.change-chip.new{background:var(--color-info-soft);color:var(--color-info-text)}.month-skeleton{height:56px}.age-card{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-5)}.age-head{display:flex;flex-direction:column;gap:2px;font-size:var(--text-xs)}.age-head h2{margin:0;font-size:var(--text-md)}.age-empty{margin:0;font-size:var(--text-sm)}.age-bar{display:flex;height:12px;overflow:hidden;border-radius:var(--radius-full);background:var(--color-surface-2);gap:2px}.age-seg{height:100%}.age-0{background:var(--color-success)}.age-1{background:var(--color-info)}.age-2{background:var(--color-violet)}.age-3{background:var(--color-warning)}.age-list{display:flex;flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;font-size:var(--text-sm)}.age-list li{display:flex;align-items:center;gap:var(--space-2);padding:4px 6px;border-radius:var(--radius-sm)}.age-list li.slow{background:var(--color-warning-soft);font-weight:600}.age-key{width:10px;height:10px;flex-shrink:0;border-radius:3px}.age-name{flex:1}.age-figure{white-space:nowrap}.low-card{padding:var(--space-4) var(--space-5);border-left:3px solid var(--color-danger)}.low-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--color-danger-text)}.low-head h2{margin:0;font-size:var(--text-md);color:var(--color-text)}.low-head .muted{color:var(--color-text-3)}.low-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:6px var(--space-4);max-height:180px;overflow-y:auto;margin:var(--space-3) 0 0;padding:0;list-style:none;font-size:var(--text-sm)}.low-list li{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.low-name{flex:1;min-width:0;font-weight:550}.low-stock{color:var(--color-danger-text);font-weight:650;white-space:nowrap}
