:root{--color-primary: #1e40af;--color-primary-strong: #1d49c4;--color-primary-dark: #0d1f4f;--color-on-primary: #ffffff;--color-secondary: #3b82f6;--color-accent: #d97706;--color-background: #f4f6fb;--color-foreground: #1b2740;--color-card: #ffffff;--color-muted: #edf1f8;--color-muted-fg: #5a6a86;--color-border: #e2e8f4;--color-border-strong: #cfd9ec;--color-destructive: #dc2626;--color-success: #15803d;--font-sans: "Outfit", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--radius-sm: 8px;--radius: 12px;--radius-lg: 16px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--sidebar-w: 252px;--shadow-sm: 0 1px 2px rgba(16, 24, 40, .05);--shadow-md: 0 1px 2px rgba(16, 24, 40, .04), 0 10px 28px -10px rgba(23, 43, 99, .14);--shadow-lg: 0 28px 56px -16px rgba(13, 31, 79, .35);--z-topbar: 20;--z-pop: 30;--z-drawer: 40;--ease-out: cubic-bezier(.2, .7, .3, 1);--noise: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E")}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-sans);font-size:15px;line-height:1.55;background:var(--color-background);color:var(--color-foreground);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}.num{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.num.neg,.neg{color:var(--color-destructive)}::selection{background:#1e40af29}.skip-link{position:fixed;top:-48px;left:12px;z-index:99;background:var(--color-primary-dark);color:#fff;text-decoration:none;padding:10px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;transition:top .18s var(--ease-out)}.skip-link:focus-visible{top:12px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}}.wrap>*{animation:rise .5s var(--ease-out) both}.grid-kpi>*{animation:rise .5s var(--ease-out) both}.grid-kpi>*:nth-child(2){animation-delay:40ms}.grid-kpi>*:nth-child(3){animation-delay:80ms}.grid-kpi>*:nth-child(4){animation-delay:.12s}.grid-kpi>*:nth-child(5){animation-delay:.16s}.grid-kpi>*:nth-child(6){animation-delay:.2s}.insights>*{animation:rise .5s var(--ease-out) both}.insights>*:nth-child(2){animation-delay:60ms}.insights>*:nth-child(3){animation-delay:.12s}.insights>*:nth-child(4){animation-delay:.18s}.insights>*:nth-child(5){animation-delay:.24s}.insights>*:nth-child(6){animation-delay:.3s}.shell{display:flex;min-height:100dvh}.sidebar{width:var(--sidebar-w);flex:none;color:#dbe4f7;display:flex;flex-direction:column;padding:20px var(--space-3);gap:var(--space-5);position:sticky;top:0;height:100dvh;background:radial-gradient(140% 60% at 100% 0%,rgba(217,119,6,.14),transparent 55%),linear-gradient(168deg,#0d1f4f,#14296b 52%,#0e2158);box-shadow:inset -1px 0 #ffffff0f}.sidebar:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:var(--noise);opacity:.05}.sidebar>*{position:relative}.sidebar .brand{display:flex;gap:var(--space-3);align-items:center;padding:0 var(--space-2)}.sidebar .brand strong{font-size:16.5px;font-weight:700;letter-spacing:-.01em;color:#fff}.sidebar .brand .hint{color:#9db4e4;font-size:11.5px;margin-top:1px}.brand-mark{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:11px;flex:none;background:linear-gradient(150deg,#f0a22e,var(--color-accent) 70%);color:#1a1206;font-weight:800;font-size:14px;letter-spacing:.01em;box-shadow:0 4px 12px -2px #d977068c,inset 0 1px #ffffff59}.sidebar nav{display:flex;flex-direction:column;gap:3px}.nav-link{position:relative;display:flex;align-items:center;gap:var(--space-3);padding:10px 12px 10px 14px;border-radius:10px;color:#b9c8ea;text-decoration:none;font-size:13.5px;font-weight:500;min-height:42px;transition:background .18s var(--ease-out),color .18s var(--ease-out),transform .18s var(--ease-out)}.nav-link:hover{background:#ffffff12;color:#fff;transform:translate(2px)}.nav-link:active{transform:translate(2px) scale(.985)}.nav-link.active{background:#ffffff1a;color:#fff;font-weight:600;box-shadow:inset 0 1px #ffffff14}.nav-link.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:99px;background:linear-gradient(180deg,#f0a22e,var(--color-accent));box-shadow:0 0 10px #f0a22ecc}.nav-icon{width:18px;height:18px;flex:none;display:inline-flex;opacity:.85}.nav-link.active .nav-icon{opacity:1;color:#f0b45a}.sidebar-foot{margin-top:auto;padding:var(--space-3) var(--space-2) 0;border-top:1px solid rgba(255,255,255,.09);color:#8ba3d6;font-size:11.5px;line-height:1.6}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:var(--z-topbar);background:#ffffffd1;backdrop-filter:blur(10px) saturate(1.3);-webkit-backdrop-filter:blur(10px) saturate(1.3);border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-sm);padding:var(--space-3) var(--space-5);display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.topbar h1{font-size:17px;margin:0;font-weight:650;letter-spacing:-.015em}.topbar .sub{font-size:13px;color:var(--color-muted-fg)}.topbar .spacer{flex:1}.sync-status{font-family:var(--font-mono);font-size:11.5px;color:var(--color-muted-fg)}.btn{font:inherit;font-size:13.5px;font-weight:600;letter-spacing:.005em;cursor:pointer;border:1px solid transparent;border-radius:10px;padding:9px 16px;min-height:38px;transition:transform .16s var(--ease-out),box-shadow .16s var(--ease-out),background .16s var(--ease-out),border-color .16s var(--ease-out),opacity .16s;background:var(--color-card);color:var(--color-foreground);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn:active{transform:translateY(0) scale(.985);box-shadow:var(--shadow-sm)}.btn:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn-primary{background:linear-gradient(180deg,var(--color-primary-strong),var(--color-primary));color:var(--color-on-primary);border-color:var(--color-primary);box-shadow:0 8px 18px -8px #1e40af8c,inset 0 1px #ffffff24}.btn-primary:hover{box-shadow:0 12px 24px -8px #1e40af99,inset 0 1px #ffffff24}.btn-primary:disabled{opacity:.55;cursor:wait;transform:none;box-shadow:none}.btn-ghost{background:transparent;color:var(--color-primary);border-color:var(--color-border-strong);box-shadow:none}.btn-ghost:hover{background:var(--color-muted);border-color:var(--color-secondary)}.input{font:inherit;font-size:14px;padding:8px 12px;min-height:38px;border:1px solid var(--color-border-strong);border-radius:10px;background:#fff;color:inherit;box-shadow:var(--shadow-sm);transition:border-color .16s,box-shadow .16s}.input:hover{border-color:#b9c7e2}.input:focus{border-color:var(--color-primary)}.input.sm{min-height:34px;padding:5px 10px;font-size:13px}.cost-input{width:96px;text-align:right}.csv-area{width:100%;min-height:120px;font-family:var(--font-mono);font-size:13px}.icon-btn{border:1px solid var(--color-border-strong);background:#fff;border-radius:10px;width:38px;height:38px;cursor:pointer;font-size:15px;line-height:1;color:var(--color-muted-fg);transition:all .16s var(--ease-out)}.icon-btn:hover{color:var(--color-foreground);border-color:var(--color-secondary);transform:rotate(90deg)}.wrap{max-width:1280px;width:100%;margin:0 auto;padding:var(--space-5) var(--space-5) var(--space-6)}.card{background:var(--color-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:18px;box-shadow:var(--shadow-sm);transition:box-shadow .2s var(--ease-out),transform .2s var(--ease-out),border-color .2s}.card h3{margin:0 0 var(--space-1);font-size:13px;font-weight:650;letter-spacing:.005em;color:var(--color-muted-fg)}.card-head{display:flex;align-items:baseline;justify-content:space-between;gap:var(--space-3)}.card-head-right{display:flex;gap:var(--space-2);align-items:center}.card .big{font-size:27px;font-weight:700;line-height:1.15;letter-spacing:-.02em;margin-top:2px;color:var(--color-foreground)}.card .hint{font-size:12px;color:var(--color-muted-fg);margin-top:3px}.card.kpi:hover{box-shadow:var(--shadow-md);transform:translateY(-2px);border-color:var(--color-border-strong)}.section-title{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:var(--space-6) 0 var(--space-3);flex-wrap:wrap}.section-title h2{font-size:19px;margin:0;font-weight:700;letter-spacing:-.02em}.grid-kpi{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3)}@media (max-width: 1180px){.grid-kpi{grid-template-columns:repeat(3,1fr)}}@media (max-width: 720px){.grid-kpi{grid-template-columns:repeat(2,1fr)}}.kpi .formula{margin-left:6px;cursor:help;font-size:11px;color:var(--color-secondary);background:none;border:0;padding:0;font-family:inherit;line-height:1;transition:color .15s}.kpi .formula:hover{color:var(--color-primary)}.card.kpi{position:relative}.formula-pop{display:none;position:absolute;z-index:var(--z-pop);top:calc(100% + 6px);left:0;right:0;padding:8px 11px;border-radius:10px;background:#0d1f4f;color:#e7edf9;font-size:12px;font-weight:500;line-height:1.45;box-shadow:0 10px 24px #0d1f4f59}.formula-wrap:hover .formula-pop,.formula-wrap.open .formula-pop{display:block}.kpi .delta{margin-top:var(--space-2);display:inline-block}.delta{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:2px 8px;border-radius:999px}.delta.up{background:#e3f5e9;color:var(--color-success)}.delta.down{background:#fdeaea;color:var(--color-destructive)}.delta.flat{background:var(--color-muted);color:var(--color-muted-fg)}.grid-2{display:grid;grid-template-columns:2fr 1fr;gap:var(--space-3);margin-top:var(--space-4)}@media (max-width: 980px){.grid-2{grid-template-columns:1fr}}.insights{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-3);margin-top:var(--space-3)}@media (max-width: 1180px){.insights{grid-template-columns:repeat(2,1fr)}}@media (max-width: 720px){.insights{grid-template-columns:1fr}}.insight{display:flex;gap:var(--space-3);align-items:flex-start}.insight svg{flex:none;color:var(--color-primary)}.insight-value{font-weight:650;letter-spacing:-.01em;margin-top:2px}.card .empty-title{font-size:15px;color:var(--color-foreground)}.empty-text{margin:4px 0 0}.alert{border-radius:var(--radius);padding:var(--space-3) var(--space-4);margin:var(--space-3) 0;border:1px solid;box-shadow:var(--shadow-sm);font-size:13.5px}.alert-error{background:#fdeeee;border-color:#f3c1c1;color:#7f1d1d;border-left:3px solid var(--color-destructive)}.alert-warn{background:#fdf4e2;border-color:#eedcb0;color:#78350f;border-left:3px solid var(--color-accent)}.alert-ok{background:#e6f5eb;border-color:#bfe5cb;color:#14532d;border-left:3px solid var(--color-success)}.badge{display:inline-block;font-size:10.5px;font-weight:650;padding:3px 8px;border-radius:6px;background:var(--color-muted);color:var(--color-muted-fg);text-transform:uppercase;letter-spacing:.05em}.badge.ok{background:#e3f5e9;color:var(--color-success)}.badge.warn{background:#fdf0da;color:#92400e}.badge.error{background:#fdeaea;color:var(--color-destructive)}.badge.muted{background:var(--color-muted);color:var(--color-muted-fg)}.badge.neutral{background:#e3ebfb;color:var(--color-primary)}.chips{display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-3)}.chip-btn{cursor:pointer;border:1px solid transparent;font-family:inherit;transition:filter .15s,transform .15s}.chip-btn:hover{filter:brightness(.96);transform:translateY(-1px)}.chip-btn.off{opacity:.55;text-decoration:line-through}.table-tools{display:flex;gap:var(--space-3);margin:var(--space-5) 0 var(--space-2);flex-wrap:wrap;align-items:center}.table-scroll{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg);background:var(--color-card);box-shadow:var(--shadow-sm)}table.data{width:100%;border-collapse:collapse;background:var(--color-card)}table.data th,table.data td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--color-border);font-size:13.5px;white-space:nowrap}table.data th{background:#f2f5fb;font-size:10.5px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted-fg);position:sticky;top:0;border-bottom-color:var(--color-border-strong)}table.data th.num,table.data td.num{text-align:right}table.data tbody tr:last-child td{border-bottom:none}table.data tfoot td{font-weight:650;background:#f2f5fb;border-top:2px solid var(--color-border-strong);border-bottom:none;padding-top:11px;padding-bottom:11px}table.data tbody tr{transition:background .12s}table.data tbody tr:hover{background:#f4f7fd}table.data tr.clickable{cursor:pointer}.order-items{display:flex;flex-direction:column;gap:2px;max-width:320px}.order-items .order-item{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prod-cell{display:flex;align-items:center;gap:var(--space-3)}.thumb{width:36px;height:36px;object-fit:cover;border-radius:8px;border:1px solid var(--color-border);flex:none;background:var(--color-muted)}table.kv{width:100%;border-collapse:collapse;font-size:13.5px}table.kv th{text-align:left;font-weight:500;color:var(--color-muted-fg);padding:6px 10px 6px 0;vertical-align:top;white-space:normal}table.kv td{padding:6px 0;border-bottom:1px dashed var(--color-border)}table.kv tr:last-child td{border-bottom:none}@keyframes overlayIn{0%{opacity:0}}@keyframes drawerIn{0%{opacity:0;transform:translate(32px)}}.drawer-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0d1f4f80;z-index:var(--z-drawer);display:flex;justify-content:flex-end;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);animation:overlayIn .2s var(--ease-out)}.drawer{width:min(640px,100vw);height:100dvh;background:var(--color-card);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:drawerIn .3s var(--ease-out)}.drawer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.drawer-head h2{margin:0;font-size:17px;font-weight:700;letter-spacing:-.015em}.drawer-body{padding:var(--space-4) var(--space-5);overflow-y:auto}.drawer-block{margin-bottom:var(--space-5)}.drawer-block h4{margin:0 0 var(--space-2);font-size:11px;font-weight:650;text-transform:uppercase;letter-spacing:.06em;color:var(--color-muted-fg)}.tabs{display:flex;gap:var(--space-2);margin-bottom:var(--space-4);border-bottom:1px solid var(--color-border)}.tab{font:inherit;font-size:13px;font-weight:600;background:none;border:none;cursor:pointer;padding:8px 12px;color:var(--color-muted-fg);border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.tab:hover{color:var(--color-foreground)}.tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.raw-json{white-space:pre-wrap;word-break:break-word;font-size:12px;background:var(--color-muted);border-radius:var(--radius);padding:var(--space-3)}@keyframes shimmer{to{transform:translate(100%)}}.skeleton{position:relative;overflow:hidden;background:var(--color-muted);border-radius:var(--radius-sm)}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.75),transparent);animation:shimmer 1.5s infinite}.page-loading{display:flex;flex-direction:column;gap:var(--space-4)}.page-loading .sk-title{width:220px;height:22px}.page-loading .sk-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:var(--space-3)}.page-loading .sk-kpi{height:96px;border-radius:var(--radius-lg)}.page-loading .sk-block{height:280px;border-radius:var(--radius-lg)}@media (max-width: 1180px){.page-loading .sk-grid{grid-template-columns:repeat(3,1fr)}}@media (max-width: 720px){.page-loading .sk-grid{grid-template-columns:repeat(2,1fr)}}.login-wrap{min-height:100dvh;display:flex;align-items:center;justify-content:center;background:radial-gradient(90% 70% at 85% 10%,rgba(217,119,6,.22),transparent 55%),radial-gradient(80% 90% at 10% 90%,rgba(59,130,246,.18),transparent 60%),linear-gradient(155deg,#0a1a42,#14296b 55%,#0d1f4f);padding:var(--space-4);position:relative}.login-wrap:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:var(--noise);opacity:.06}.login-card{width:min(400px,100%);display:flex;flex-direction:column;gap:var(--space-3);border-radius:20px;padding:28px;border:1px solid rgba(255,255,255,.5);box-shadow:var(--shadow-lg);animation:rise .55s var(--ease-out) both}.login-card .brand{display:flex;gap:var(--space-3);align-items:center;margin-bottom:var(--space-2)}.login-card h1{margin:0;font-size:21px;font-weight:700;letter-spacing:-.02em}.field{display:flex;flex-direction:column;gap:var(--space-1);font-size:13px;font-weight:500}.form-grid{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-3)}.form-grid .btn{align-self:flex-start}.auth-loading{min-height:100dvh;display:grid;place-items:center;color:var(--color-muted-fg);font-size:14px}.empty{padding:var(--space-6);text-align:center;color:var(--color-muted-fg)}.hint{font-size:12px;color:var(--color-muted-fg)}.legend{display:flex;gap:var(--space-4);font-size:13px;color:var(--color-muted-fg);flex-wrap:wrap}@media print{.sidebar,.topbar,.btn,.table-tools,.tabs,.skip-link{display:none!important}.thumb{display:none}.wrap{padding:0;max-width:none}.card,.table-scroll{border-color:#ccc;break-inside:avoid;box-shadow:none}.wrap>*,.grid-kpi>*,.insights>*{animation:none}body{background:#fff}}@media (max-width: 860px){.shell{flex-direction:column}.sidebar{width:100%;height:auto;position:static;flex-direction:row;align-items:center;overflow-x:auto}.sidebar nav{flex-direction:row}.sidebar-foot{display:none}.nav-link.active:before{top:auto;left:20%;right:20%;bottom:0;width:auto;height:3px}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}.payables-head-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.payables-intro{margin:-4px 0 var(--space-4);color:var(--color-muted-fg);font-size:13.5px}.payables-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.payable-editor{margin:var(--space-4) 0 var(--space-5)}.payable-tabs{margin:0 0 var(--space-4)}.payable-upload{display:flex;align-items:end;gap:var(--space-3);flex-wrap:wrap;padding:var(--space-3);margin-bottom:var(--space-4);background:#f6f8fc;border:1px dashed var(--color-border-strong);border-radius:var(--radius)}.payable-upload .field{min-width:min(360px,100%);flex:1}.payable-upload .alert{width:100%;margin:0}.payable-warnings{margin:4px 0 0;padding-left:20px}.payable-form{display:flex;flex-direction:column;gap:var(--space-4)}.payable-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.payable-field-wide{grid-column:1 / -1}.payable-form textarea{resize:vertical;min-height:86px}.payable-form-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.payables-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin:0 0 var(--space-3);flex-wrap:wrap}.payables-filters{display:flex;gap:var(--space-2);flex-wrap:wrap}.payables-filters .chip-btn{background:#fff;color:var(--color-muted-fg);border:1px solid var(--color-border-strong);border-radius:999px;padding:6px 12px;font:inherit;font-size:12px;font-weight:600}.payables-filters .chip-btn.active{background:#e3ebfb;border-color:#b7c8ef;color:var(--color-primary)}.payables-search{width:min(320px,100%)}.payable-name{display:flex;flex-direction:column;line-height:1.4}.payable-name strong{font-weight:650}.payable-row-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.btn-xs{min-height:29px;padding:4px 8px;font-size:11px;border-radius:8px}.payables-footnote{margin-top:var(--space-3)}@media (max-width: 980px){.payables-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 600px){.payable-fields{grid-template-columns:1fr}.payable-field-wide{grid-column:auto}.payables-search,.payables-head-actions{width:100%}}
