@import "https://fonts.googleapis.com/css2?family=Nunito:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500&display=swap";:root{--floral-green:#81bf48;--floral-green-600:#6ea83a;--floral-green-700:#5a8a2d;--floral-green-800:#486f24;--floral-green-100:#eaf4d8;--floral-green-050:#f4f9ec;--ink-1000:#0d120b;--ink-900:#1a1f17;--ink-700:#3d443a;--ink-500:#6b7266;--ink-300:#a8ada3;--ink-200:#ced2c8;--ink-100:#e7e8e2;--ink-050:#f0f1ec;--ink-025:#f7f8f4;--surface:#fff;--canvas:#fafaf8;--success:var(--floral-green);--success-bg:var(--floral-green-100);--warning:#e8a33d;--warning-bg:#fbf1dd;--danger:#d64545;--danger-bg:#fbe6e6;--info:#3b82f6;--info-bg:#e5eefd;--viz-1:var(--floral-green);--viz-2:#2f8f8a;--viz-3:#c77a2b;--viz-4:#7b5ea7;--viz-5:#4a5a6e;--viz-6:#b9c94e;--font-display:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-ui:"Nunito", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--fs-xs:12px;--fs-sm:14px;--fs-md:16px;--fs-lg:18px;--fs-xl:22px;--fs-2xl:28px;--fs-3xl:36px;--fs-4xl:48px;--fw-regular:400;--fw-medium:500;--fw-semibold:600;--fw-bold:700;--fw-heavy:800;--lh-tight:1.15;--lh-display:1.2;--lh-snug:1.35;--lh-body:1.45;--lh-loose:1.6;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-14:56px;--sp-20:80px;--r-sm:6px;--r-md:10px;--r-lg:16px;--r-pill:999px;--elev-0:none;--elev-1:0 1px 2px #0f170a0f;--elev-2:0 6px 20px -8px #0f170a1f;--elev-3:0 20px 40px -12px #0f170a2e;--focus-ring:0 0 0 3px #81bf4859;--dur-micro:.12s;--dur-std:.18s;--dur-enter:.24s;--ease-std:cubic-bezier(.2, .8, .2, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--gutter-mobile:16px;--gutter-tablet:24px;--gutter-desktop:32px;--content-max:1280px;--header-h-mobile:56px;--header-h-desktop:64px;--tabbar-h:64px}html,body{font-family:var(--font-ui);color:var(--ink-900);background:var(--canvas);font-size:var(--fs-md);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility}h1,.h1{font-family:var(--font-display);font-size:var(--fs-4xl);font-weight:var(--fw-heavy);line-height:var(--lh-display);letter-spacing:-.02em;color:var(--ink-900);margin:0}h2,.h2{font-family:var(--font-display);font-size:var(--fs-3xl);font-weight:var(--fw-bold);line-height:var(--lh-display);letter-spacing:-.015em;margin:0}h3,.h3{font-family:var(--font-display);font-size:var(--fs-2xl);font-weight:var(--fw-bold);line-height:var(--lh-tight);letter-spacing:-.01em;margin:0}h4,.h4{font-family:var(--font-display);font-size:var(--fs-xl);font-weight:var(--fw-semibold);line-height:var(--lh-snug);margin:0}h5,.h5{font-family:var(--font-ui);font-size:var(--fs-lg);font-weight:var(--fw-semibold);line-height:var(--lh-snug);margin:0}.eyebrow{font-family:var(--font-ui);font-size:var(--fs-xs);font-weight:var(--fw-bold);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-500)}p,.body{font-family:var(--font-ui);font-size:var(--fs-md);line-height:var(--lh-body);color:var(--ink-900);margin:0}.body-sm{font-size:var(--fs-sm);line-height:var(--lh-body);color:var(--ink-700)}.caption{font-size:var(--fs-xs);line-height:var(--lh-snug);color:var(--ink-500)}.num,.tabular{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1, "lnum" 1}code,.mono{font-family:var(--font-mono);font-size:.9em}a{color:var(--info);text-decoration:none}a:hover{text-decoration:underline}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}*{box-sizing:border-box}html,body{background:var(--canvas);color:var(--ink-900);font-family:var(--font-ui);font-size:var(--fs-sm);margin:0}:root{--c-canvas:var(--canvas);--c-surface:#fff;--c-surface-2:var(--ink-025);--c-border:var(--ink-100);--c-border-soft:var(--ink-050);--c-text:var(--ink-900);--c-text-2:var(--ink-700);--c-text-3:var(--ink-500);--c-text-dim:var(--ink-300);--c-hover:var(--ink-025);--c-selected:var(--floral-green-100);--c-selected-text:var(--floral-green-800);--c-accent:var(--floral-green);--c-accent-soft:var(--floral-green-050);--row-pad-y:12px;--cell-pad-y:12px;--gap-card:16px;--kpi-pad:18px}html[data-density=compact]{--row-pad-y:8px;--cell-pad-y:8px;--gap-card:12px;--kpi-pad:14px}html[data-theme=dark]{--c-canvas:#11140f;--c-surface:#1a1e18;--c-surface-2:#20251d;--c-border:#2a3026;--c-border-soft:#232820;--c-text:#e8eae3;--c-text-2:#b6baaf;--c-text-3:#8a8e83;--c-text-dim:#5b5f55;--c-hover:#232820;--c-selected:#2d3d1f;--c-selected-text:#c9e2a3;--c-accent:#9bd25e;--c-accent-soft:#1f2a14;--warning-bg:#3a2d17;--info-bg:#1a2a45}html[data-theme=dark] body{background:var(--c-canvas);color:var(--c-text)}.app{grid-template-columns:var(--side-w,240px) 1fr;background:var(--c-canvas);min-height:100vh;display:grid}.side{background:var(--c-surface);border-right:1px solid var(--c-border);height:100vh;transition:width var(--dur-std) var(--ease-std);flex-direction:column;gap:2px;padding:14px 10px;display:flex;position:sticky;top:0;overflow:hidden}.side .brand{align-items:center;gap:10px;padding:4px 8px 14px;display:flex}.side .brand img{height:26px}.side .brand .pip{color:var(--c-text-3);letter-spacing:.08em;text-transform:uppercase;padding-top:4px;font-size:10px;font-weight:800}.side .sec{color:var(--c-text-3);letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;padding:12px 10px 4px;font-size:10px;font-weight:800}.side .nav-item{color:var(--c-text-2);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;transition:background var(--dur-micro) var(--ease-std), color var(--dur-micro) var(--ease-std);border-radius:8px;align-items:center;gap:10px;padding:9px 10px;font-size:13px;font-weight:600;display:flex;position:relative}.side .nav-item:hover{background:var(--c-hover);color:var(--c-text)}.side .nav-item.on{background:var(--c-selected);color:var(--c-selected-text)}.side .nav-item svg{stroke:currentColor;fill:none;stroke-width:1.75px;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;width:18px;height:18px}.side .nav-item .badge{background:var(--c-accent-soft);color:var(--c-selected-text);text-align:center;border-radius:999px;min-width:18px;margin-left:auto;padding:2px 6px;font-size:10px;font-weight:800}.side .nav-item.on .badge{background:#fff9}.side .th{color:var(--c-text-3);opacity:.8;font-size:10px;font-weight:700}html[data-sidebar=collapsed] .app{grid-template-columns:64px 1fr}html[data-sidebar=collapsed] .side .label,html[data-sidebar=collapsed] .side .sec,html[data-sidebar=collapsed] .side .badge,html[data-sidebar=collapsed] .side .brand .pip,html[data-sidebar=collapsed] .side .brand-text{display:none}html[data-sidebar=collapsed] .side{align-items:center;padding:14px 8px}html[data-sidebar=collapsed] .side .brand{justify-content:center;padding:4px 0 14px}html[data-sidebar=collapsed] .side .brand img{object-fit:contain;width:28px;height:28px}html[data-sidebar=collapsed] .side .nav-item{justify-content:center;width:40px;padding:9px}.side .bot{border-top:1px solid var(--c-border-soft);flex-direction:column;gap:2px;margin-top:auto;padding-top:12px;display:flex}.side-toggle{border:1px solid var(--c-border);height:32px;color:var(--c-text-3);font-family:var(--font-ui);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;gap:6px;margin-top:8px;font-size:12px;font-weight:700;display:flex}.side-toggle:hover{background:var(--c-hover);color:var(--c-text)}.top{background:var(--c-surface);border-bottom:1px solid var(--c-border);z-index:20;align-items:center;gap:12px;height:60px;padding:0 24px;display:flex;position:sticky;top:0}.top .crumb{color:var(--c-text-3);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.top .crumb .now{color:var(--c-text)}.top .crumb .sep{color:var(--c-text-dim)}.top .spacer{flex:1}.top .search-wrap{border:1px solid var(--c-border);background:var(--c-surface-2);width:280px;height:36px;color:var(--c-text-3);border-radius:8px;align-items:center;gap:8px;padding:0 12px;font-size:13px;display:flex}.top .search-wrap input{font-family:var(--font-ui);color:var(--c-text);background:0 0;border:0;outline:0;flex:1;font-size:13px}.top .search-wrap .kbd{font-family:var(--font-mono);background:var(--c-border-soft);color:var(--c-text-3);border-radius:4px;padding:2px 5px;font-size:10px}.top .icon-btn{border:1px solid var(--c-border);background:var(--c-surface);width:36px;height:36px;color:var(--c-text-2);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;display:flex;position:relative}.top .icon-btn:hover{background:var(--c-hover);color:var(--c-text)}.top .icon-btn .dot{background:var(--c-accent);border:2px solid var(--c-surface);border-radius:999px;width:7px;height:7px;position:absolute;top:6px;right:7px}.top .role-switch{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:8px;padding:3px;display:inline-flex}.top .role-switch button{font-family:var(--font-ui);color:var(--c-text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:700}.top .role-switch button.on{background:var(--c-surface);color:var(--c-text);box-shadow:0 1px 2px #0f170a14}html[data-theme=dark] .top .role-switch button.on{color:var(--c-text);background:#2a3026}.avatar{background:var(--c-selected);width:34px;height:34px;color:var(--c-selected-text);cursor:pointer;border:1px solid var(--c-border);border-radius:999px;justify-content:center;align-items:center;font-size:12px;font-weight:800;display:flex}.page{max-width:1440px;margin:0 auto;padding:22px 28px 60px}.page-head{align-items:flex-end;gap:16px;margin-bottom:18px;display:flex}.page-head h1{letter-spacing:-.01em;margin:0;font-size:24px;font-weight:800}.page-head .sub{color:var(--c-text-3);margin-top:2px;font-size:13px}.page-head .actions{align-items:center;gap:8px;margin-left:auto;display:flex}.btn{height:34px;font-family:var(--font-ui);cursor:pointer;transition:transform var(--dur-micro) var(--ease-std), background var(--dur-micro) var(--ease-std);border:0;border-radius:8px;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.btn:active{transform:scale(.98)}.btn.pri{background:var(--c-accent);color:#fff}.btn.pri:hover{background:var(--floral-green-600)}.btn.sec{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border)}.btn.sec:hover{background:var(--c-hover)}.btn.ghost{color:var(--c-text-2);background:0 0}.btn.ghost:hover{background:var(--c-hover);color:var(--c-text)}.btn.dgr{background:var(--c-surface);color:var(--danger);border:1px solid #f1c2c2}.btn.sm{height:28px;padding:0 10px;font-size:12px}.btn svg{stroke:currentColor;fill:none;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}.pill{white-space:nowrap;border-radius:999px;align-items:center;gap:5px;height:22px;padding:0 9px;font-size:11px;font-weight:700;display:inline-flex}.pill.ok{background:var(--floral-green-100);color:var(--floral-green-800)}.pill.wn{color:#8a5e1b;background:#fbf1dd}.pill.dg{color:#8e2222;background:#fbe6e6}.pill.nf{background:var(--c-border-soft);color:var(--c-text-2)}.pill.in{background:var(--info-bg);color:var(--info)}.pill.pl{color:#5b3f87;background:#efe6f8}.pill.dot:before{content:"";opacity:.7;background:currentColor;border-radius:999px;width:6px;height:6px}html[data-theme=dark] .pill.wn{color:#e8a33d;background:#3a2d17}html[data-theme=dark] .pill.dg{color:#ff8b8b;background:#3d1f1f}html[data-theme=dark] .pill.nf{background:var(--c-surface-2);color:var(--c-text-2)}html[data-theme=dark] .pill.in{color:#6ba9ff;background:#1a2a45}html[data-theme=dark] .pill.pl{color:#b8a0de;background:#2c2342}html[data-theme=dark] .pill.ok{color:#b8e08a;background:#1f2d14}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px}.card-head{border-bottom:1px solid var(--c-border-soft);align-items:center;gap:12px;padding:14px 18px;display:flex}.card-head h3{margin:0;font-size:14px;font-weight:800}.card-head .sub{color:var(--c-text-3);font-size:12px}.card-head .spacer{flex:1}.card-body{padding:18px}.card-body.tight{padding:0}.kpis{gap:var(--gap-card);grid-template-columns:repeat(4,1fr);display:grid}.kpi{background:var(--c-surface);border:1px solid var(--c-border);padding:var(--kpi-pad);border-radius:12px;flex-direction:column;gap:4px;display:flex}.kpi .l{color:var(--c-text-3);letter-spacing:.08em;text-transform:uppercase;align-items:center;gap:6px;font-size:10px;font-weight:800;display:flex}.kpi .l .ico{width:14px;height:14px;color:var(--c-accent)}.kpi .v{font-variant-numeric:tabular-nums;letter-spacing:-.01em;font-size:28px;font-weight:800;line-height:1.1}.kpi .d{color:var(--c-text-3);align-items:center;gap:6px;font-size:11px;font-weight:700;display:flex}.kpi .d .delta.up{color:var(--floral-green-700)}html[data-theme=dark] .kpi .d .delta.up{color:var(--c-accent)}.kpi .d .delta.dn{color:var(--danger)}.kpi .spark{margin-top:6px}.tbl{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;overflow:hidden}table{border-collapse:collapse;width:100%;color:var(--c-text);font-size:13px}th,td{text-align:left;padding:var(--cell-pad-y) 14px;border-bottom:1px solid var(--c-border-soft)}th{text-transform:uppercase;letter-spacing:.08em;color:var(--c-text-3);background:var(--c-surface-2);font-size:10px;font-weight:800}tbody tr{transition:background var(--dur-micro) var(--ease-std);cursor:pointer}tbody tr:hover td{background:var(--c-hover)}tbody tr.sel td{background:var(--c-selected)}tbody tr:last-child td{border-bottom:0}.num{font-variant-numeric:tabular-nums;text-align:right}.mono{font-family:var(--font-mono);font-size:12px}.filterbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.fchip{border:1px solid var(--c-border);background:var(--c-surface);height:32px;color:var(--c-text-2);cursor:pointer;border-radius:8px;align-items:center;gap:6px;padding:0 11px;font-size:12px;font-weight:700;display:inline-flex}.fchip:hover{background:var(--c-hover)}.fchip.on{background:var(--c-selected);color:var(--c-selected-text);border-color:#0000}.fchip svg{stroke:currentColor;fill:none;stroke-width:1.75px;width:14px;height:14px}.fchip .ct{background:var(--c-border-soft);border-radius:999px;padding:0 6px;font-size:10px}.fchip.on .ct{background:#ffffff73}.search-inline{border:1px solid var(--c-border);background:var(--c-surface);width:260px;height:32px;color:var(--c-text-3);border-radius:8px;align-items:center;gap:8px;padding:0 10px;font-size:12px;display:inline-flex}.search-inline input{font-family:var(--font-ui);color:var(--c-text);background:0 0;border:0;outline:0;flex:1;font-size:13px}.seg{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:8px;padding:3px;display:inline-flex}.seg button{font-family:var(--font-ui);color:var(--c-text-3);cursor:pointer;background:0 0;border:0;border-radius:6px;padding:5px 12px;font-size:12px;font-weight:700}.seg button.on{background:var(--c-surface);color:var(--c-text);box-shadow:0 1px 2px #0f170a14}html[data-theme=dark] .seg button.on{background:#2a3026}.drawer{background:var(--c-surface);border-left:1px solid var(--c-border);width:520px;box-shadow:var(--elev-3);z-index:60;animation:slideIn var(--dur-enter) var(--ease-std);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;right:0}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.drawer .dh{border-bottom:1px solid var(--c-border);align-items:center;gap:12px;padding:16px 22px;display:flex}.drawer .dh h3{margin:0;font-size:18px;font-weight:800}.drawer .dh .sub{color:var(--c-text-3);font-size:12px}.drawer .dh .x{margin-left:auto}.drawer .db{flex:1;padding:18px 22px;overflow:auto}.drawer .df{border-top:1px solid var(--c-border);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.po-modal{background:var(--c-surface);border:1px solid var(--c-border);width:min(1180px,100vw - 48px);max-height:calc(100vh - 48px);box-shadow:var(--elev-3);z-index:60;animation:modalIn var(--dur-enter) var(--ease-std);border-radius:10px;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.po-modal .dh{border-bottom:1px solid var(--c-border);align-items:center;gap:12px;padding:16px 22px;display:flex}.po-modal .dh .sub{color:var(--c-text-3);font-size:12px}.po-modal .dh .x{margin-left:auto}.po-modal .db{flex:1;padding:18px 22px;overflow:auto}.po-modal .df{border-top:1px solid var(--c-border);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.po-modal .tbl{overflow-x:auto}.po-modal .tbl table{min-width:980px}.po-modal .tbl td:nth-child(2),.po-modal .tbl th:nth-child(2){min-width:360px}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-48%)}to{opacity:1;transform:translate(-50%,-50%)}}.activity-modal{background:var(--c-surface);border:1px solid var(--c-border);width:min(520px,100vw - 32px);box-shadow:var(--elev-3);z-index:80;animation:modalIn var(--dur-enter) var(--ease-std);border-radius:10px;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.activity-modal .dh{border-bottom:1px solid var(--c-border);justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.activity-modal .dh .sub{color:var(--c-text-3);margin-top:2px;font-size:12px}.activity-modal .db{padding:18px}.activity-modal .db label{color:var(--c-text-2);margin-bottom:6px;font-size:12px;font-weight:800;display:block}.activity-modal .df{border-top:1px solid var(--c-border);justify-content:flex-end;gap:8px;padding:14px 18px;display:flex}.modal{background:var(--c-surface);border:1px solid var(--c-border);box-shadow:var(--elev-3);z-index:60;max-height:calc(100vh - 48px);animation:modalIn var(--dur-enter) var(--ease-std);border-radius:12px;flex-direction:column;display:flex;position:fixed;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%)}.modal .mh{border-bottom:1px solid var(--c-border);align-items:flex-start;gap:12px;padding:16px 22px;display:flex}.modal .mh h2{margin:0;font-size:18px;font-weight:800}.modal .mh .sub{color:var(--c-text-3);margin-top:2px;font-size:12px}.modal .mb{flex:1;padding:18px 22px;overflow-y:auto}.modal .mf{border-top:1px solid var(--c-border);justify-content:flex-end;gap:8px;padding:14px 22px;display:flex}.scrim{z-index:50;animation:fadeIn var(--dur-enter) var(--ease-std);background:#0f170a59;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}.field{margin-bottom:14px}.field label{color:var(--c-text-2);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.input,.select,.textarea{border:1px solid var(--c-border);background:var(--c-surface);width:100%;height:36px;color:var(--c-text);font-size:13px;font-family:var(--font-ui);border-radius:8px;padding:0 12px}.textarea{resize:vertical;min-height:80px;padding:10px 12px}.input:focus,.select:focus,.textarea:focus{border-color:var(--c-accent);outline:none;box-shadow:0 0 0 3px #81bf4840}.supplier-form-modal{width:min(760px,100vw - 32px)}.supplier-form-modal .dh{align-items:flex-start}.supplier-form-icon{background:var(--c-accent-soft);width:38px;height:38px;color:var(--floral-green-800);border:1px solid var(--c-border-soft);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.supplier-form-modal .db{background:var(--c-surface-2);padding:16px}.supplier-form-modal .db>.supplier-form-grid{background:var(--c-surface);border:1px solid var(--c-border);border-radius:8px;grid-template-columns:repeat(2,minmax(0,1fr));gap:2px 14px;padding:16px;display:grid}.supplier-form-modal .field{margin-bottom:12px}.supplier-form-modal .field[style*=grid-column]{margin-bottom:0}.supplier-form-modal label{text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-3);font-size:11px;font-weight:800}.supplier-form-modal input,.supplier-form-modal .select,.supplier-form-modal .textarea{border:1px solid var(--c-border);width:100%;min-width:0;height:38px;font-family:var(--font-ui);color:var(--c-text);background:var(--c-surface);border-radius:8px;padding:0 12px;font-size:13px}.supplier-form-modal input:focus,.supplier-form-modal .select:focus,.supplier-form-modal .textarea:focus{border-color:var(--c-accent);outline:none;box-shadow:0 0 0 3px #81bf4840}.supplier-form-modal .textarea{resize:vertical;min-height:92px;padding:10px 12px;line-height:1.45}.supplier-form-modal .df{background:var(--c-surface)}.supplier-drawer-contact-list{flex-direction:column;gap:10px;margin-bottom:18px;display:flex}.supplier-drawer-contact{border:1px solid var(--c-border);background:var(--c-surface);border-radius:8px;padding:12px}.supplier-drawer-contact-head{border-bottom:1px solid var(--c-border-soft);justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:10px;padding-bottom:10px;display:flex}.supplier-drawer-contact-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.supplier-drawer-contact-grid>div:last-child{grid-column:1/-1}.supplier-code-preview{border:1px dashed var(--c-border);background:var(--c-surface-2);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;min-height:60px;padding:10px 12px;display:flex}.supplier-code-preview-label{text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-3);font-size:11px;font-weight:800}.supplier-code-preview-value{color:var(--c-text);margin-top:4px;font-size:13px;font-weight:800}.supplier-contact-section{border-top:1px solid var(--c-border-soft);grid-column:1/-1;margin-top:2px;padding-top:14px}.supplier-contact-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.supplier-contact-title{color:var(--c-text);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:800}.supplier-contact-sub{color:var(--c-text-3);margin-top:2px;font-size:12px}.supplier-contact-list{flex-direction:column;gap:10px;display:flex}.supplier-contact-card{border:1px solid var(--c-border);background:var(--c-surface-2);border-radius:8px;padding:12px}.supplier-contact-card-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:10px;display:flex}.supplier-contact-card-head .btn{color:var(--danger)}.supplier-contact-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;display:grid}.supplier-contact-grid .field:last-child{grid-column:1/-1}@media (width<=720px){.supplier-form-modal{width:calc(100vw - 24px);max-height:calc(100vh - 24px)}.supplier-form-modal .dh,.supplier-form-modal .df{padding:14px 16px}.supplier-form-modal .db{padding:12px}.supplier-form-modal .db>.supplier-form-grid{grid-template-columns:1fr;padding:14px}.supplier-form-modal .field[style*=grid-column]{grid-column:auto!important}.supplier-contact-head{flex-direction:column;align-items:flex-start}.supplier-contact-head .btn{justify-content:center;width:100%}.supplier-contact-grid{grid-template-columns:1fr}.supplier-contact-grid .field:last-child{grid-column:auto}}.check{border:1.5px solid var(--ink-200);cursor:pointer;background:var(--c-surface);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;display:inline-flex}.check.on{background:var(--c-accent);border-color:var(--c-accent)}.check.on svg{stroke:#fff;stroke-width:3px;fill:none;stroke-linecap:round;stroke-linejoin:round;width:11px;height:11px}.kanban{grid-template-columns:repeat(4,1fr);align-items:flex-start;gap:14px;display:grid}.kcol{background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:12px;flex-direction:column;gap:10px;min-height:200px;padding:12px;display:flex}.kcol-head{align-items:center;gap:8px;padding:4px 4px 8px;display:flex}.kcol-head .dot{border-radius:999px;width:8px;height:8px}.kcol-head h4{text-transform:uppercase;letter-spacing:.06em;color:var(--c-text-2);margin:0;font-size:12px;font-weight:800}.kcol-head .ct{color:var(--c-text-3);background:var(--c-surface);border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.kcol-head .add{color:var(--c-text-3);cursor:pointer;margin-left:auto}.kcard{background:var(--c-surface);border:1px solid var(--c-border);cursor:pointer;transition:box-shadow var(--dur-micro), transform var(--dur-micro);border-radius:10px;padding:12px}.kcard:hover{box-shadow:var(--elev-1);transform:translateY(-1px)}.kcard .h{justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px;display:flex}.kcard .id{font-family:var(--font-mono);color:var(--c-text-3);font-size:11px}.kcard .t{color:var(--c-text);margin-bottom:8px;font-size:13px;font-weight:700;line-height:1.35}.kcard .meta{color:var(--c-text-3);align-items:center;gap:10px;font-size:11px;display:flex}.kcard .meta .sup{align-items:center;gap:6px;display:flex}.kcard .progress{background:var(--c-border-soft);border-radius:999px;height:4px;margin-top:10px;overflow:hidden}.kcard .progress>div{background:var(--c-accent);border-radius:999px;height:100%}.kcard .flag{color:var(--warning);align-items:center;gap:4px;font-size:10px;font-weight:700;display:inline-flex}.matrix-wrap{background:var(--c-surface);border:1px solid var(--c-border);border-radius:12px;overflow:hidden}.matrix-scroll{overflow:auto}table.matrix{font-size:13px}table.matrix th,table.matrix td{border-bottom:1px solid var(--c-border-soft);border-right:1px solid var(--c-border-soft);vertical-align:top;padding:12px 14px}table.matrix th:last-child,table.matrix td:last-child{border-right:0}table.matrix thead th{background:var(--c-surface-2);z-index:2;position:sticky;top:0}table.matrix .sup-head{min-width:220px}table.matrix .item-head{background:var(--c-surface-2);z-index:3;min-width:240px;position:sticky;left:0}table.matrix td.item-cell{background:var(--c-surface);z-index:1;position:sticky;left:0}table.matrix tr:hover td.item-cell{background:var(--c-hover)}table.matrix .item-name{font-weight:700}table.matrix .item-sku{font-family:var(--font-mono);color:var(--c-text-3);margin-top:2px;font-size:11px}.cell-price{flex-direction:column;gap:4px;display:flex}.cell-price .p{font-variant-numeric:tabular-nums;font-size:15px;font-weight:800}.cell-price .meta{color:var(--c-text-3);align-items:center;gap:8px;font-size:11px;display:flex}.cell-price.best{background:var(--c-accent-soft);border-radius:0;margin:-12px -14px;padding:12px 14px;position:relative}.cell-price.best .p{color:var(--floral-green-800)}html[data-theme=dark] .cell-price.best .p{color:var(--c-accent)}.cell-price.best:after{content:"best";color:var(--floral-green-800);text-transform:uppercase;letter-spacing:.08em;font-size:9px;font-weight:800;position:absolute;top:6px;right:8px}html[data-theme=dark] .cell-price.best:after{color:var(--c-accent)}.cell-no{color:var(--c-text-dim);font-size:12px;font-style:italic}.sup-card{flex-direction:column;gap:4px;display:flex}.sup-card .n{color:var(--c-text);font-size:13px;font-weight:800}.sup-card .m{color:var(--c-text-3);gap:8px;font-size:11px;display:flex}.sup-card .star{color:var(--warning)}.steps{gap:0;display:flex}.step{background:var(--c-surface-2);border:1px solid var(--c-border);color:var(--c-text-3);border-right:0;flex:1;padding:10px 14px;font-size:11px;font-weight:700;position:relative}.step:first-child{border-radius:8px 0 0 8px}.step:last-child{border-right:1px solid var(--c-border);border-radius:0 8px 8px 0}.step.done{background:var(--c-accent-soft);color:var(--floral-green-800);border-color:#0000}html[data-theme=dark] .step.done{color:var(--c-accent)}.step.now{background:var(--c-accent);color:#fff;border-color:#0000}.step .lbl{opacity:.75;text-transform:uppercase;letter-spacing:.06em;margin-bottom:2px;font-size:10px}.step .v{font-size:12px;font-weight:800}.bar{background:var(--c-border-soft);border-radius:999px;height:6px;overflow:hidden}.bar>div{background:var(--c-accent);height:100%;transition:width var(--dur-std) var(--ease-std);border-radius:999px}.bar.thin{height:4px}.tasklist{flex-direction:column;display:flex}.task{border-bottom:1px solid var(--c-border-soft);cursor:pointer;grid-template-columns:18px 1fr auto auto;align-items:center;gap:12px;padding:10px 16px;display:grid}.task:last-child{border-bottom:0}.task:hover{background:var(--c-hover)}.task .title{color:var(--c-text);font-size:13px;font-weight:700}.task .meta{color:var(--c-text-3);gap:8px;font-size:11px;display:flex}.task .due{color:var(--c-text-2);font-size:11px;font-weight:700}.task .due.late{color:var(--danger)}.task .due.soon{color:var(--warning)}.feed{flex-direction:column;display:flex}.feed .item{border-bottom:1px solid var(--c-border-soft);grid-template-columns:28px 1fr auto;gap:12px;padding:12px 16px;display:grid}.feed .item:last-child{border-bottom:0}.feed .ic{background:var(--c-surface-2);width:26px;height:26px;color:var(--c-text-2);border-radius:999px;justify-content:center;align-items:center;display:flex}.feed .ic.acc{background:var(--c-accent-soft);color:var(--floral-green-800)}html[data-theme=dark] .feed .ic.acc{color:var(--c-accent)}.feed .ic.wn{color:#8a5e1b;background:#fbf1dd}html[data-theme=dark] .feed .ic.wn{color:#e8a33d;background:#3a2d17}.feed .ic.dg{color:#8e2222;background:#fbe6e6}html[data-theme=dark] .feed .ic.dg{color:#ff8b8b;background:#3d1f1f}.feed .item .t{color:var(--c-text);font-size:13px;line-height:1.4}.feed .item .t b{font-weight:700}.feed .item .when{color:var(--c-text-3);white-space:nowrap;font-size:11px}.row{border-bottom:1px solid var(--c-border-soft);grid-template-columns:32px 1fr auto;align-items:center;gap:12px;padding:10px 16px;display:grid}.row:last-child{border-bottom:0}.row .av{background:var(--c-surface-2);width:32px;height:32px;color:var(--c-text-2);border-radius:8px;justify-content:center;align-items:center;font-size:11px;font-weight:800;display:flex}.row .n{font-size:13px;font-weight:700}.row .m{color:var(--c-text-3);font-size:11px}.row .num{font-variant-numeric:tabular-nums;font-weight:800}.gap-2{gap:8px;display:flex}.col-2{gap:var(--gap-card);grid-template-columns:2fr 1fr;display:grid}.col-3{gap:var(--gap-card);grid-template-columns:repeat(3,1fr);display:grid}.col-1-1{gap:var(--gap-card);grid-template-columns:1fr 1fr;display:grid}.row-flex{align-items:center;gap:10px;display:flex}.muted{color:var(--c-text-3)}.bold{font-weight:800}.tnum{font-variant-numeric:tabular-nums}.divider{background:var(--c-border-soft);height:1px;margin:14px 0}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--c-border);background-clip:content-box;border:2px solid #0000;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--c-text-dim);background-clip:content-box;border:2px solid #0000}::-webkit-scrollbar-track{background:0 0}html[data-theme=dark] .logo-wordmark{filter:brightness(0)saturate()invert(89%)sepia(8%)saturate(728%)hue-rotate(45deg)brightness(95%)}
