:root{--color-brand-coral: #e4816b;--color-brand-teal: #54948c;--color-brand-orange: #ffab41;--color-brand-yellow-soft: #f9edc1;--color-page: #f5f3ed;--color-surface: #ffffff;--color-surface-muted: #f5f5f5;--color-surface-subtle: #f2f2f2;--color-surface-strong: #e8e8e8;--color-sidebar: #faf9f5;--color-text: #1d1d1d;--color-text-secondary: #4d4d4d;--color-text-muted: #949494;--color-text-inverse: #ffffff;--color-border: #dddddd;--color-border-strong: #cccccc;--color-border-muted: rgba(29, 29, 29, .15);--color-action-primary: #1d1d1d;--color-selection: #54948c;--color-warning: #ffab41;--color-error: #f04f36;--color-info-soft: #f9edc1;--color-overlay: rgba(0, 0, 0, .5);--color-text-80: rgba(29, 29, 29, .8);--color-text-50: rgba(29, 29, 29, .5);--color-outline-30: rgba(128, 128, 128, .3);--color-outline-20: rgba(128, 128, 128, .2);--color-outline-16: rgba(128, 128, 128, .16);--color-teal-soft: rgba(84, 148, 140, .14);--color-coral-soft: rgba(228, 129, 107, .16);--color-error-soft: rgba(240, 79, 54, .14);--font-ui: "Nunito Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-heading: "Montserrat", "Nunito Sans", system-ui, sans-serif;--text-xs: .75rem;--text-sm: .8125rem;--text-md: .9375rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--leading-tight: 1.25;--leading-body: 1.45;--sidebar-width: 248px;--radius-sm: 6px;--radius: 10px;--radius-lg: 16px;--control-height: 2.35rem;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--shadow: 0 10px 28px rgba(29, 29, 29, .05);--shadow-soft: 0 1px 0 var(--color-border-muted);--ease-out: cubic-bezier(.16, 1, .3, 1);--duration: .18s}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--color-page);color:var(--color-text);font-family:var(--font-ui);font-size:var(--text-md);line-height:var(--leading-body);overflow:hidden}h1,h2,h3,.brand{font-family:var(--font-heading);letter-spacing:-.02em}h1,h2,h3,p{margin:0}h1{font-size:var(--text-2xl);font-weight:700;line-height:var(--leading-tight)}h2{font-size:var(--text-lg);font-weight:700;line-height:var(--leading-tight)}a{color:var(--color-selection)}img{max-width:100%;display:block}button,input,select,textarea{font-family:inherit;font-size:inherit}::selection{background:var(--color-teal-soft)}.app-shell{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100%;max-height:100dvh;overflow:hidden}.sidebar{display:flex;flex-direction:column;gap:var(--space-6);height:100%;max-height:100dvh;min-height:0;overflow:hidden;background:var(--color-sidebar);border-right:1px solid var(--color-border);padding:var(--space-6) var(--space-4) var(--space-5)}.brand-block{display:flex;flex-direction:column;gap:.35rem;padding:0 var(--space-2);flex-shrink:0}.brand-block img{height:36px;width:auto;object-fit:contain;object-position:left center}.brand-kicker{color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600;letter-spacing:.08em;text-transform:uppercase}.nav-groups{display:flex;flex-direction:column;gap:var(--space-5);flex:1 1 auto;min-height:0;overflow-y:auto}.nav-group{display:flex;flex-direction:column;gap:.2rem}.nav-label{padding:0 var(--space-3) var(--space-1);color:var(--color-text-muted);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.sidebar a.nav-link{display:flex;align-items:center;gap:.65rem;text-decoration:none;color:var(--color-text-secondary);padding:.48rem .7rem;border-radius:var(--radius-sm);transition:background-color var(--duration) var(--ease-out),color var(--duration) var(--ease-out)}.sidebar a.nav-link:hover{background:var(--color-surface-subtle);color:var(--color-text)}.sidebar a.nav-link.active{background:var(--color-teal-soft);color:var(--color-text);font-weight:700}.sidebar a.nav-link.active svg{color:var(--color-selection)}.nav-icon{width:1.05rem;height:1.05rem;flex-shrink:0}.sidebar-footer{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--color-border);flex-shrink:0}.user-chip{display:flex;align-items:center;gap:.7rem;min-width:0;text-decoration:none;color:inherit;border-radius:var(--radius-sm);padding:.4rem .5rem;margin:-.4rem -.5rem;transition:background-color var(--duration) var(--ease-out)}a.user-chip:hover,a.user-chip.active{background:var(--color-teal-soft)}.user-avatar{width:2rem;height:2rem;border-radius:999px;background:var(--color-brand-coral);color:var(--color-text);display:grid;place-items:center;font-size:var(--text-xs);font-weight:700;flex-shrink:0}.user-meta{min-width:0}.user-meta strong,.user-meta span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-meta span{color:var(--color-text-muted);font-size:var(--text-xs)}.main{padding:var(--space-8) var(--space-10) 4rem;min-width:0;min-height:0;height:100%;overflow-y:auto}.page{display:flex;flex-direction:column;gap:var(--space-6)}.page-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-4);flex-wrap:wrap}.page-header .lede{margin-top:.4rem;color:var(--color-text-secondary);max-width:62ch}.page-actions{display:flex;gap:.65rem;flex-wrap:wrap;align-items:center}.action-menu{display:inline-flex}.action-menu-menu{position:fixed;z-index:60;min-width:12.5rem;margin:0;padding:.35rem;list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 18px 40px #1d1d1d1f}.action-menu-item{display:flex;align-items:center;width:100%;border:0;border-radius:6px;padding:.55rem .7rem;background:transparent;color:var(--color-text);font-weight:600;text-align:left;cursor:pointer}.action-menu-item:hover{background:var(--color-teal-soft)}.action-menu-item.is-danger{color:var(--color-error)}.action-menu-item.is-danger:hover{background:var(--color-error-soft)}.action-menu-item:disabled{opacity:.45;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;min-height:var(--control-height);border:1px solid transparent;border-radius:var(--radius-sm);padding:.45rem .9rem;font-weight:700;cursor:pointer;text-decoration:none;transition:background-color var(--duration) var(--ease-out),border-color var(--duration) var(--ease-out),opacity var(--duration) var(--ease-out),transform var(--duration) var(--ease-out)}.btn svg{width:1rem;height:1rem}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn:disabled,.btn[aria-busy=true]{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--color-action-primary);color:var(--color-text-inverse)}.btn-primary:hover{background:#2a2a2a}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border-strong)}.btn-secondary:hover{background:var(--color-surface-muted)}.btn-ghost{background:transparent;color:var(--color-text-secondary)}.btn-ghost:hover{background:var(--color-surface-subtle);color:var(--color-text)}.btn-accent{background:var(--color-brand-coral);color:var(--color-text)}.btn-accent:hover{background:#d8735d}.btn-danger{background:var(--color-error-soft);color:var(--color-text);border-color:transparent}.btn-danger:hover{background:#f04f3638}.btn-sm{min-height:1.9rem;padding:.2rem .65rem;font-size:var(--text-sm);font-weight:600}.field{display:flex;flex-direction:column;gap:.35rem;min-width:0}.secret-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem;align-items:center}.secret-cell{display:inline-flex;align-items:center;gap:.25rem}.secret-cell code{font-size:var(--text-sm)}.field-label{font-size:var(--text-sm);font-weight:600;color:var(--color-text-secondary)}.field-help{font-size:var(--text-xs);color:var(--color-text-muted)}.field-error{font-size:var(--text-xs);font-weight:600;color:var(--color-error)}.field.has-error .input,.field.has-error .select,.field.has-error textarea.input,.field.has-error .input:hover,.field.has-error .select:hover{border-color:var(--color-error)}.field.has-error .input:focus-visible,.field.has-error .select:focus-visible,.field.has-error textarea.input:focus-visible{outline-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-soft)}.input,.select,textarea.input{width:100%;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.4rem .7rem;background:var(--color-surface);color:var(--color-text);transition:border-color var(--duration) var(--ease-out),box-shadow var(--duration) var(--ease-out)}.input:hover,.select:hover{border-color:var(--color-border-strong)}.search{display:flex;align-items:center;gap:.5rem;width:24rem;max-width:100%;flex:0 1 24rem;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:0 .75rem;background:var(--color-surface)}.search input{border:0;outline:none;width:100%;background:transparent;min-height:2rem}.search svg{color:var(--color-text-muted);width:1rem;height:1rem}.check{display:inline-flex;align-items:center;gap:.5rem;font-size:var(--text-sm);font-weight:600}.panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-soft)}.panel-body{padding:var(--space-5)}.table-wrap{overflow:auto}table.data{width:100%;border-collapse:collapse}table.data th,table.data td{text-align:left;padding:.78rem 1rem;border-bottom:1px solid var(--color-border);font-size:var(--text-sm);white-space:nowrap}table.data th.center,table.data td.center{text-align:center}table.data th{color:var(--color-text-secondary);font-weight:700;background:var(--color-surface-muted);position:sticky;top:0}table.data tbody tr{transition:background-color var(--duration) var(--ease-out)}table.data tbody tr:hover{background:var(--color-page)}table.data tbody tr.clickable{cursor:pointer}table.data td.wrap{white-space:normal;max-width:22rem}.table-footer{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:.7rem 1rem;color:var(--color-text-secondary);font-size:var(--text-sm)}.badge{display:inline-flex;align-items:center;gap:.35rem;border-radius:999px;padding:.18rem .55rem;font-size:.75rem;font-weight:700;background:var(--color-surface-muted);color:var(--color-text);text-transform:lowercase}.badge svg{width:.85rem;height:.85rem}.badge.ok{background:var(--color-teal-soft)}.badge.warn,.badge.progress{background:var(--color-brand-yellow-soft)}.badge.err{background:var(--color-error-soft)}.badge.neutral{background:var(--color-surface-strong);color:var(--color-text-secondary)}.type-capsule{display:inline-flex;align-items:center;border-radius:999px;padding:.2rem .7rem;font-size:.75rem;font-weight:700;background:var(--color-surface-strong);color:var(--color-text);white-space:nowrap}.import-status{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.import-progress{color:var(--color-text-secondary);font-size:.75rem;font-weight:600;white-space:nowrap}.import-error-list{margin:0;padding-left:1.1rem;display:flex;flex-direction:column;gap:.35rem}.kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--space-3)}.kpi{padding:var(--space-4) var(--space-5);display:flex;flex-direction:column;gap:.45rem}.kpi .kpi-label{display:flex;align-items:center;gap:.4rem;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:600}.kpi .kpi-label svg{width:.95rem;height:.95rem;color:var(--color-selection)}.kpi strong{font-size:1.55rem;font-weight:700;letter-spacing:-.03em}.supplier-list{display:flex;flex-direction:column;gap:var(--space-3)}.supplier-card{display:grid;grid-template-columns:minmax(12rem,1.1fr) repeat(4,minmax(5.5rem,1fr));gap:var(--space-4);align-items:center;padding:1.1rem 1.25rem;text-decoration:none;color:inherit;transition:border-color var(--duration) var(--ease-out),background-color var(--duration) var(--ease-out)}.supplier-card:hover{border-color:var(--color-brand-teal);background:#fcfbf8}.supplier-card h2{font-family:var(--font-ui);font-size:1.05rem}.supplier-card .code{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:.15rem}.metric{display:flex;flex-direction:column;gap:.15rem}.metric span{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.metric strong{font-size:1.05rem}.dash-attention{display:flex;flex-wrap:wrap;gap:.55rem}.dash-chip{display:inline-flex;align-items:baseline;gap:.45rem;padding:.45rem .75rem;border-radius:999px;background:var(--color-coral-soft);color:var(--color-text);text-decoration:none;font-size:var(--text-sm);font-weight:600}.dash-chip strong{font-size:var(--text-md)}.dash-chip:hover{background:var(--color-teal-soft)}.dash-quiet{color:var(--color-text-secondary);font-size:var(--text-sm)}.dash-facts{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;padding:0;overflow:hidden}.dash-fact{padding:1rem 1.15rem 1.1rem;border-right:1px solid var(--color-border);display:flex;flex-direction:column;gap:.2rem;min-width:0}.dash-fact:last-child{border-right:0}.dash-fact span{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase}.dash-fact strong{font-size:1.35rem;letter-spacing:-.03em}.dash-fact p{color:var(--color-text-secondary);font-size:var(--text-xs);line-height:1.35}.dash-charts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.dash-chart{padding:1.15rem 1.2rem 1rem;display:flex;flex-direction:column;gap:.85rem}.dash-chart header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.dash-chart header .muted{margin-top:.25rem}.day-chart{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));gap:.35rem;height:11.5rem}.day-col{display:flex;flex-direction:column;height:100%;min-width:0;gap:.3rem}.day-stack{flex:1;display:flex;flex-direction:column-reverse;background:#1d1d1d0d;border-radius:5px 5px 2px 2px;overflow:hidden;min-height:0}.day-seg{display:block;width:100%;min-height:2px}.day-col>span{font-size:.62rem;color:var(--color-text-muted);text-align:center;font-variant-numeric:tabular-nums}.chart-legend,.mix-legend{display:flex;flex-wrap:wrap;gap:.65rem 1rem;margin:0;padding:0;list-style:none;color:var(--color-text-secondary);font-size:var(--text-xs);font-weight:600}.chart-legend i,.mix-legend i{display:inline-block;width:.55rem;height:.55rem;border-radius:2px;margin-right:.35rem;vertical-align:.05rem}.mix{display:flex;flex-direction:column;gap:.55rem}.mix-bar{display:flex;height:.7rem;border-radius:999px;overflow:hidden;background:var(--color-surface-strong)}.mix-seg{display:block;height:100%;min-width:0}.mix-legend{gap:.5rem 1.1rem}.mix-legend strong{margin-left:.35rem;color:var(--color-text)}.dash-split{display:grid;grid-template-columns:minmax(16rem,.9fr) minmax(0,1.4fr);gap:var(--space-4);align-items:start}.dash-mix-panel{padding:1.15rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.85rem}.dash-mix-panel h3{font-family:var(--font-ui);font-size:var(--text-sm);color:var(--color-text-secondary)}.dash-dl{display:grid;grid-template-columns:1fr 1fr;gap:.65rem 1rem;margin:.25rem 0 0}.dash-dl div{display:flex;justify-content:space-between;gap:.5rem;font-size:var(--text-sm)}.dash-dl dt{color:var(--color-text-secondary)}.dash-dl dd{margin:0;font-weight:700}.dash-runs{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.dash-runs-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3)}.dash-runs-head a{font-size:var(--text-sm);font-weight:700}.spark{display:flex;align-items:flex-end;gap:2px;width:7.5rem;height:1.7rem}.spark i{flex:1;background:var(--color-brand-teal);border-radius:1px;min-height:2px}.supplier-board{display:flex;flex-direction:column;gap:.85rem;padding:1.15rem 1.25rem 1.2rem;text-decoration:none;color:inherit;transition:border-color var(--duration) var(--ease-out),background-color var(--duration) var(--ease-out)}.supplier-board:hover{border-color:var(--color-brand-teal);background:#fcfbf8}.supplier-board-head{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--space-4);align-items:center}.supplier-board h2{font-family:var(--font-ui);font-size:1.05rem}.supplier-board .code{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:.15rem}.coverage-line{display:flex;justify-content:space-between;gap:var(--space-3);align-items:baseline}.coverage-line span{color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-right:.5rem}.coverage-line p{color:var(--color-text-secondary);font-size:var(--text-sm)}.supplier-board-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.supplier-board-grid span{display:block;color:var(--color-text-muted);font-size:var(--text-xs);font-weight:700;letter-spacing:.04em;text-transform:uppercase;margin-bottom:.2rem}.supplier-board-grid strong{display:block;font-size:var(--text-sm)}.supplier-board-grid p{color:var(--color-text-secondary);font-size:var(--text-xs);margin-top:.2rem}.toolbar{display:flex;gap:.75rem;flex-wrap:wrap;align-items:end}.toolbar>.select,.toolbar>.menu-select{width:15rem;max-width:100%;flex:0 0 15rem}.toolbar .field{width:18rem;max-width:100%;flex:0 0 18rem}.toolbar .field .menu-select,.toolbar .field .select{width:100%;flex:none}.menu-select{position:relative}.menu-select-trigger{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;min-height:var(--control-height);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.4rem .7rem;background:var(--color-surface);color:var(--color-text);font-weight:600;cursor:pointer;text-align:left}.menu-select-trigger span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-select-trigger svg{width:1rem;height:1rem;color:var(--color-text-muted);flex-shrink:0}.menu-select-trigger:hover{border-color:var(--color-border-strong)}.menu-select-trigger[aria-expanded=true]{border-color:var(--color-brand-teal);box-shadow:0 0 0 3px var(--color-teal-soft)}.menu-select-menu{position:absolute;z-index:80;top:calc(100% + .4rem);left:0;right:0;margin:0;padding:.35rem;list-style:none;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:0 18px 40px #1d1d1d1f}.menu-select-option{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;border:0;border-radius:6px;padding:.55rem .7rem;background:transparent;color:var(--color-text);font-weight:600;text-align:left;cursor:pointer}.menu-select-option:hover,.menu-select-option.is-selected{background:var(--color-teal-soft)}.menu-select-option svg{width:.95rem;height:.95rem;color:var(--color-selection);flex-shrink:0}.file-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dropzone-wrap{min-width:min(100%,28rem);flex:1;position:relative}.dropzone-wrap:focus-within .dropzone{outline:3px solid var(--color-selection);outline-offset:2px}.dropzone{display:flex;align-items:center;gap:1rem;min-height:5.5rem;padding:1rem 1.15rem;border:1.5px dashed var(--color-border-strong);border-radius:var(--radius);background:var(--color-page);cursor:pointer;color:var(--color-text);transition:border-color var(--duration) var(--ease-out),background-color var(--duration) var(--ease-out)}.dropzone:hover,.dropzone.is-dragging{border-color:var(--color-brand-teal);background:var(--color-teal-soft)}.dropzone-icon{display:grid;place-items:center;width:2.4rem;height:2.4rem;border-radius:999px;background:var(--color-teal-soft);color:var(--color-selection);flex-shrink:0}.dropzone-icon svg{width:1.15rem;height:1.15rem}.dropzone-copy{display:flex;flex-direction:column;gap:.15rem}.dropzone-copy span{color:var(--color-text-muted);font-size:var(--text-sm)}.dropzone-file{display:flex;align-items:center;gap:.85rem;min-height:5.5rem;padding:1rem 1.15rem;border:1px solid var(--color-border);border-radius:var(--radius);background:var(--color-surface)}.dropzone-file>svg{width:1.35rem;height:1.35rem;color:var(--color-selection);flex-shrink:0}.dropzone-file-meta{min-width:0;flex:1}.dropzone-file-meta strong,.dropzone-file-meta span{display:block}.dropzone-file-meta strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropzone-file-meta span{color:var(--color-text-muted);font-size:var(--text-sm);margin-top:.15rem}.dropzone-clear{display:grid;place-items:center;width:2rem;height:2rem;border:0;border-radius:999px;background:var(--color-surface-muted);color:var(--color-text-secondary);cursor:pointer}.dropzone-clear svg{width:1rem;height:1rem}.dropzone-clear:hover{background:var(--color-error-soft);color:var(--color-text)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-4)}.stack{display:flex;flex-direction:column;gap:var(--space-4)}.row{display:flex;gap:var(--space-3);flex-wrap:wrap;align-items:center}.empty{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem;padding:2.4rem 1.5rem}.empty svg{width:1.5rem;height:1.5rem;color:var(--color-brand-coral)}.empty p{color:var(--color-text-secondary);max-width:46ch}.error{color:var(--color-error)}.muted{color:var(--color-text-secondary)}.tiny{color:var(--color-text-muted);font-size:var(--text-xs)}.column-list{display:flex;flex-wrap:wrap;gap:.4rem}.column-chip{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:6px;padding:.2rem .45rem}.column-chip.required{background:var(--color-teal-soft);border-color:transparent}.lock-note{display:flex;gap:.6rem;align-items:flex-start;padding:.85rem 1rem;background:var(--color-info-soft);border-radius:var(--radius);color:var(--color-text)}.lock-note svg{width:1rem;height:1rem;margin-top:.15rem;flex-shrink:0}.modal-backdrop{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:var(--space-6);background:var(--color-overlay)}.modal-dialog{width:min(42rem,100%);max-height:min(88dvh,46rem);overflow:auto;display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:0 24px 60px #1d1d1d2e}.modal-dialog.is-wide{width:min(54rem,100%)}.modal-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3)}.modal-header .muted{margin-top:.35rem}.modal-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:.65rem;padding-top:.25rem}.facts{display:grid;grid-template-columns:9.5rem 1fr;gap:.55rem 1rem;margin:0}.facts dt{color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:700}.facts dd{margin:0;font-size:var(--text-sm);overflow-wrap:anywhere}.facts a{color:var(--color-selection);font-weight:700}.facts dd pre{margin:0;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.delete-summary{display:flex;flex-direction:column;gap:.55rem}.delete-summary h3{font-size:var(--text-sm);color:var(--color-text-secondary)}.cascade-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.45rem}.cascade-list li{display:flex;gap:.65rem;align-items:baseline;padding:.55rem .7rem;background:var(--color-error-soft);border-radius:var(--radius-sm);font-size:var(--text-sm)}.log-block{display:flex;flex-direction:column;gap:.45rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.85rem 1rem;overflow:auto;max-height:22rem}.log-block pre{margin:0;white-space:pre-wrap;word-break:break-word;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.75rem;color:var(--color-text)}.skeleton{background:linear-gradient(90deg,var(--color-surface-subtle),var(--color-surface-strong),var(--color-surface-subtle));background-size:200% 100%;animation:shimmer 1.2s var(--ease-out) infinite;border-radius:6px;color:transparent}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.login-screen{min-height:100%;height:100%;overflow-y:auto;display:grid;place-items:center;padding:var(--space-8);background:radial-gradient(circle at 12% 18%,rgba(228,129,107,.16),transparent 36%),radial-gradient(circle at 88% 82%,rgba(84,148,140,.16),transparent 32%),var(--color-page)}.login-card{width:min(420px,100%);padding:2rem 1.75rem 1.6rem;display:flex;flex-direction:column;gap:1.25rem}.login-card img{height:42px;width:auto}.login-card form{display:flex;flex-direction:column;gap:.9rem}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.search:focus-within,.menu-select-trigger:focus-visible{outline:3px solid var(--color-selection);outline-offset:2px}.search input:focus-visible{outline:none}@media(max-width:1100px){.kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}.supplier-card{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.dash-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.dash-fact{border-bottom:1px solid var(--color-border)}.dash-charts,.dash-split,.supplier-board-grid,.supplier-board-head{grid-template-columns:1fr}}@media(max-width:860px){.app-shell{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}.sidebar{max-height:42dvh;border-right:0;border-bottom:1px solid var(--color-border)}.main{padding:1.25rem 1rem 3rem}.kpi-row,.dash-facts{grid-template-columns:1fr 1fr}.hide-sm{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
