:root{--bg: #f6f7f3;--bg-alt: #e9ece2;--ink: #13221b;--muted: #3f5a4f;--panel: #fffffb;--stroke: #c6d0c3;--border: var(--border);--accent: #0e7c66;--accent-2: #d95f02;--good: #4d9b2f;--warn: #b88516;--bad: #b53030;--surface: #f8faf9;--hover-bg: #f0f5f3;--text-secondary: #6b7280;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans: "Space Grotesk", "Avenir Next", "Segoe UI", sans-serif;--text-xs: .65rem;--text-sm: .75rem;--text-base: .85rem;--text-md: .95rem;--text-lg: 1.1rem;--text-xl: 1.3rem;--text-2xl: 1.5rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 14px;--radius-pill: 999px;--shadow-sm: 0 2px 8px rgba(19, 34, 27, .06);--shadow: 0 10px 26px rgba(19, 34, 27, .09);--shadow-md: 0 10px 30px rgba(19, 34, 27, .12);--shadow-lg: 0 20px 50px rgba(19, 34, 27, .18);--component-col-width: 220px;--meta-col-width: 140px;--week-col-width: 132px;--weekly-lane-min-height: 156px;--weekly-lane-max-height: 248px;--weekly-band-min-height: 76px;--weekly-band-install-fr: 1fr;--weekly-band-repair-fr: 1fr;--indent-l1: .7rem;--indent-l2: 1.35rem;--timeline-pad-x: .6rem}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:var(--sans);background:radial-gradient(circle at 12% 10%,rgba(14,124,102,.18),transparent 40%),radial-gradient(circle at 88% 0%,rgba(217,95,2,.2),transparent 36%),linear-gradient(180deg,#f3f4ef,#eef2e8 42%,#e7ecde)}h1,h2,h3,h4,p{margin:0}button,input,select,textarea{font-family:inherit}.app-shell{padding:1.1rem;display:flex;flex-direction:column;gap:.9rem}.panel{border:1px solid var(--stroke);border-radius:var(--radius-xl);background:var(--panel);box-shadow:var(--shadow)}.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:.9rem;padding:.9rem 1rem .5rem}.panel-header.compact{padding-bottom:.8rem}.panel-header h2,.panel-header h3{font-size:var(--text-md);line-height:1.25}.panel-header p{margin-top:.2rem;color:var(--muted);font-size:var(--text-base)}.panel-header-actions{display:inline-flex;align-items:center;gap:.4rem}.connected-planning-panel{overflow:visible;display:block;min-width:0;width:100%}.connected-top-sticky{position:sticky;top:0;z-index:28;background:var(--panel);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.connected-pane-toolbar{display:flex;align-items:center;justify-content:flex-start;gap:.35rem;padding:.35rem 1rem;background:#f2f6eb;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.connected-pane-title{font-size:var(--text-xs);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.connected-pane-toggle-btn{padding:.2rem .44rem;font-size:var(--text-xs)}.connected-seam-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.45rem;padding:.35rem .9rem;border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:#f2f6eb}.connected-seam-title{font-size:var(--text-xs);font-family:var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--muted)}.connected-seam-search-btn{width:28px;height:28px;border:1px solid var(--stroke);border-radius:var(--radius-md);background:#f8fcf5;color:#2d4f42;display:inline-grid;place-items:center;padding:0;cursor:pointer}.connected-seam-search-btn svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round}.connected-seam-search-input{border:1px solid var(--stroke);border-radius:var(--radius-md);background:#f9fdf8;width:100%;min-width:0;padding:.4rem .54rem;font-size:var(--text-base)}.connected-week-header-scroll{overflow:auto;width:100%;padding:0 var(--timeline-pad-x);border-bottom:1px solid var(--border);background:#f5f9ef}.connected-week-header-grid{display:grid;width:max-content;min-width:max-content}.connected-header-cell{border-right:1px solid var(--border);padding:.46rem .45rem;min-height:38px;font-size:var(--text-xs);font-family:var(--mono);background:var(--surface);color:#2f4d40;display:flex;align-items:center;justify-content:center}.connected-header-cell-sticky{position:sticky;z-index:11;justify-content:flex-start;background:#eaf0e2}.connected-header-cell-1{left:0;width:var(--component-col-width);min-width:var(--component-col-width)}.connected-header-component{justify-content:space-between;gap:.35rem}.meta-column-toggle-btn{border:1px solid var(--stroke);background:var(--panel);color:var(--muted);border-radius:var(--radius-pill);padding:.15rem .42rem;font-size:var(--text-xs);font-family:var(--mono);cursor:pointer}.connected-header-cell-2{left:var(--component-col-width);width:var(--meta-col-width);min-width:var(--meta-col-width)}.connected-header-week{width:var(--week-col-width);min-width:var(--week-col-width)}.panel-toggle-btn{border:1px solid var(--stroke);background:var(--surface);color:var(--muted);border-radius:var(--radius-md);padding:.41rem .62rem;cursor:pointer;font-size:var(--text-sm);font-weight:700}.action-btn{border:1px solid color-mix(in srgb,var(--accent) 70%,#ffffff 30%);background:linear-gradient(180deg,#1f937a,#0f6d5b);color:#f3fffb;border-radius:var(--radius-md);padding:.45rem .7rem;cursor:pointer;font-size:var(--text-base);font-weight:600}.action-btn.secondary{background:linear-gradient(180deg,#e67b31,#cb5a11);border-color:#b64c0e}input,select,textarea{border:1px solid var(--stroke);border-radius:var(--radius-md);background:#fff;color:var(--ink);font-size:var(--text-base);padding:.48rem .56rem}textarea{resize:vertical}.weekly-board-panel{overflow:hidden}.weekly-board-scroll{overflow:auto;width:100%;padding:.2rem var(--timeline-pad-x) .8rem}.weekly-board-panel--embedded{border:none;border-radius:0;box-shadow:none;background:transparent}.weekly-board-panel--embedded .weekly-board-scroll{padding-top:0;padding-bottom:0}.weekly-board-grid{display:grid;gap:0;width:max-content;min-width:max-content}.weekly-board-spacer{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:122px;background:var(--surface);padding:.5rem;display:grid;gap:.2rem;align-content:start;color:#345246;font-size:var(--text-sm)}.weekly-board-spacer-bands{padding:0;height:100%;min-height:var(--weekly-lane-min-height);max-height:var(--weekly-lane-max-height);grid-template-rows:minmax(var(--weekly-band-min-height),var(--weekly-band-install-fr)) minmax(var(--weekly-band-min-height),var(--weekly-band-repair-fr));align-content:stretch;gap:0;overflow:hidden}.weekly-board-spacer-band{padding:.46rem .52rem;display:flex;align-items:center;border-bottom:2px solid var(--border)}.weekly-board-spacer-band:last-child{border-bottom:0}.weekly-board-spacer-band--install{background:linear-gradient(180deg,#f5f9f1,#eef5e8)}.weekly-board-spacer-band--repair{background:linear-gradient(180deg,#f8f2fa,#f2e9f6)}.weekly-board-spacer-bands .weekly-board-spacer-band strong{font-size:var(--text-md);letter-spacing:.05em;text-transform:uppercase;color:#2e4f43}.weekly-board-spacer-bands--meta .weekly-board-spacer-band{padding:0}.weekly-board-spacer-sticky{position:sticky;z-index:7}.weekly-board-spacer-1{left:0;width:var(--component-col-width);min-width:var(--component-col-width)}.weekly-board-spacer-2{left:var(--component-col-width);width:var(--meta-col-width);min-width:var(--meta-col-width)}.weekly-board-spacer strong{font-size:var(--text-sm);font-family:var(--mono)}.week-lane{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:var(--weekly-lane-min-height);max-height:var(--weekly-lane-max-height);width:var(--week-col-width);background:linear-gradient(180deg,#fbfdf8,#f7fbf2);display:flex;flex-direction:column;position:relative;z-index:1;overflow:hidden}.week-lane.is-over{outline:2px solid var(--accent);outline-offset:-1px}.week-lane-header{padding:.34rem .34rem .3rem;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:.2rem;font-size:var(--text-xs);color:#284338}.week-lane-header strong{font-family:var(--mono);font-size:var(--text-sm)}.week-lane-content{padding:.3rem;display:flex;flex-direction:column;gap:.28rem;overflow:hidden}.week-lane-content--split{padding:0;display:grid;flex:1 1 auto;min-height:0;height:100%;grid-template-rows:minmax(var(--weekly-band-min-height),var(--weekly-band-install-fr)) minmax(var(--weekly-band-min-height),var(--weekly-band-repair-fr));gap:0;overflow:hidden}.week-lane.no-week-header .week-lane-content{padding-top:.42rem}.week-lane.no-week-header .week-lane-content--split{padding-top:0}.week-lane-band{padding:.34rem;display:flex;flex-direction:column;gap:.25rem;min-height:0;height:100%;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(66,98,86,.32) transparent}.week-lane-band::-webkit-scrollbar{width:6px}.week-lane-band::-webkit-scrollbar-thumb{background:#42625647;border-radius:var(--radius-pill)}.week-lane-band--install{background:linear-gradient(180deg,#fbfdf8,#f4f9ee);border-bottom:2px solid #d2ddd0}.week-lane-band--repair{background:linear-gradient(180deg,#fcf9fe,#f6f0fa)}.weekly-board-collapsed-cell{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:46px;background:var(--surface);display:flex;align-items:center;padding:.46rem .52rem;color:#345246;font-size:var(--text-xs)}.weekly-board-collapsed-cell strong{font-size:var(--text-sm);font-family:var(--mono);text-transform:uppercase;letter-spacing:.04em}.weekly-board-collapsed-summary{border-right:1px solid var(--border);border-bottom:1px solid var(--border);min-height:46px;background:linear-gradient(180deg,#f9fdf7,#f3f8ee);display:grid;align-content:center;justify-items:center;gap:.08rem;color:#27453a;font-size:var(--text-sm);padding:.2rem}.weekly-board-collapsed-week{grid-template-rows:repeat(2,minmax(0,auto))}.weekly-board-collapsed-week-line{display:inline-flex;align-items:baseline;gap:.2rem;color:#365348;font-size:var(--text-xs)}.weekly-board-collapsed-week-line strong{font-family:var(--mono);font-size:var(--text-sm)}.demand-card{width:100%;text-align:left;border:1px solid transparent;border-radius:var(--radius-sm);padding:.28rem;cursor:grab;transition:transform .12s ease;color:#13221b}.demand-card:hover{transform:translateY(-1px)}.demand-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.demand-card.blocked{border-color:#d35f5f;box-shadow:inset 0 0 0 1px #d35f5f59}.demand-card-line{display:flex;gap:.16rem;align-items:center;justify-content:flex-start}.demand-card-customer{font-size:var(--text-xs);font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;width:100%}.card-theme-committed{background:linear-gradient(135deg,#eaf6ee,#d8f0df)}.card-theme-forecast{background:linear-gradient(135deg,#e7f4f6,#d2ebee)}.card-theme-upgrade{background:linear-gradient(135deg,#fff2e4,#ffe7cb)}.card-theme-repair{background:linear-gradient(135deg,#f5edf9,#ecddf4)}.drag-overlay-card{width:180px}.workspace-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:.8rem;align-items:start}.workspace-grid--editor-open{grid-template-columns:minmax(0,1fr) 440px}.workspace-main,.workspace-side{display:grid;gap:.8rem;min-width:0}.demand-editor-panel{padding-bottom:.7rem}.modal-backdrop{position:fixed;inset:0;background:#13221b59;display:grid;place-items:center;z-index:120;padding:1rem}.demand-editor-modal{width:min(980px,100%);max-height:88vh;overflow:auto}.impact-strip{padding:.66rem .85rem;display:grid;gap:.45rem;border-left:5px solid var(--accent);background:linear-gradient(180deg,#f7fffb,#eef8f2)}.impact-strip-main{display:flex;align-items:baseline;gap:.7rem;flex-wrap:wrap}.impact-strip-main strong{font-size:var(--text-base)}.impact-strip-main span{font-size:var(--text-base);color:#2b4e41}.impact-chip-row{display:flex;gap:.38rem;flex-wrap:wrap}.impact-chip{background:#e4f1e8;color:#264c3f;border:1px solid #bfd5c6;border-radius:var(--radius-pill);padding:.18rem .46rem;font-size:var(--text-sm);font-weight:600}.impact-details{display:flex;flex-wrap:wrap;gap:.48rem;font-size:var(--text-sm);color:#3a5b50}.side-panel-block{padding-bottom:.8rem}.po-panel{overflow:hidden;display:flex;flex-direction:column}.po-drawer-header{padding:.7rem .9rem .65rem;border-bottom:1px solid var(--stroke)}.po-drawer-header-top{display:flex;justify-content:space-between;align-items:center;min-height:24px;margin-bottom:.2rem}.po-drawer-close{background:none;border:none;cursor:pointer;color:var(--muted);padding:.15rem;border-radius:var(--radius-sm);display:grid;place-items:center;margin-left:auto}.po-drawer-close:hover{background:var(--bg-alt);color:var(--ink)}.po-drawer-title-row{display:flex;justify-content:space-between;align-items:flex-end;gap:.6rem}.po-drawer-title-block{min-width:0}.po-drawer-title{font-size:var(--text-md);font-weight:700;line-height:1.3;margin:0}.po-drawer-subtitle{font-size:var(--text-sm);color:var(--muted);font-weight:500}.inventory-table-wrap{overflow:auto;width:100%;padding:0 var(--timeline-pad-x) .75rem}.inventory-panel--embedded{border:none;border-radius:0;box-shadow:none;background:transparent}.inventory-panel--embedded .inventory-table-wrap{padding-top:.2rem;padding-bottom:.6rem}.inventory-table{width:max-content;min-width:max-content;border-collapse:separate;border-spacing:0;font-size:var(--text-sm)}.inventory-table th,.inventory-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:.38rem .45rem;text-align:right;min-width:var(--week-col-width);background:#fff}.inventory-table thead th{background:var(--surface);text-align:center;font-family:var(--mono);font-size:var(--text-sm);top:0;position:sticky;z-index:4}.inventory-table .sticky-col{position:sticky;z-index:3;background:#fbfdf8;text-align:left}.inventory-table .sticky-col-1{left:0;min-width:var(--component-col-width);width:var(--component-col-width)}.inventory-table .sticky-col-2{left:var(--component-col-width);min-width:var(--meta-col-width);width:var(--meta-col-width);font-family:var(--mono);text-align:left}.inventory-table .sticky-col-span-2{min-width:calc(var(--component-col-width) + var(--meta-col-width));width:calc(var(--component-col-width) + var(--meta-col-width))}.week-col{width:var(--week-col-width);min-width:var(--week-col-width);max-width:var(--week-col-width)}.category-row td{background:#edf2e5;font-weight:700}.category-toggle{border:none;background:none;cursor:pointer;font-weight:700;display:inline-flex;gap:.35rem;align-items:center}.hierarchy-level-0{padding-left:0}.hierarchy-level-1{padding-left:var(--indent-l1)}.hierarchy-level-2{padding-left:var(--indent-l2)}.category-risk{margin-right:.55rem;font-size:var(--text-sm);color:#375045}.component-name{font-weight:600}.component-cell-clickable{cursor:pointer}.component-row-content{display:inline-flex;align-items:center}.expand-indicator{margin-right:.3rem;color:#426256}.focused-component-row td{box-shadow:inset 0 0 0 1px #0f7f6959}.expanded-component-row td{border-bottom-color:#b7ccc0}.po-timeline-subrow td{background:#fbfdf9;border-bottom:1px solid #cdd9cf}.po-timeline-summary-row td{background:#f4f8f1}.po-timeline-label{display:grid;gap:.15rem;align-content:center}.po-timeline-label strong{font-size:var(--text-xs)}.po-timeline-label span{font-size:var(--text-xs);color:#557167;line-height:1.2}.po-timeline-actions{display:flex;flex-wrap:wrap;gap:.25rem;align-content:center}.po-timeline-actions-compact{margin-top:.18rem}.po-inline-btn{border:1px solid #c1d1c3;background:#f2f7f0;color:#2d4b40;border-radius:var(--radius-sm);padding:.15rem .33rem;font-size:var(--text-xs);cursor:pointer}.po-inline-btn.confirm{border-color:#7eb89f;background:#daf0e5;color:#174336}.po-empty-row td{color:#5d756c;font-size:var(--text-xs)}.po-add-row td{background:#f6faf4}.po-add-row-cell{text-align:left}.po-add-row-content{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.34rem}.po-add-row-btn{border:1px dashed #9dbcae;background:#edf7ef;color:#225142;border-radius:var(--radius-md);padding:.22rem .45rem;font-size:var(--text-xs);font-weight:700;cursor:pointer}.po-row-main{display:grid;gap:.08rem;align-content:center}.po-row-main-content{display:grid;gap:.08rem}.po-timeline-po-row.clickable-row td{cursor:pointer}.po-row-main strong{font-size:var(--text-xs);line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.po-row-main span{font-size:var(--text-xs);color:#5c756c;line-height:1.05}.po-empty-text{display:inline-block}.po-row-meta{display:grid;gap:.1rem;align-content:center;color:#3b574c;font-size:var(--text-xs);text-transform:uppercase;line-height:1.05}.po-timeline-cell{text-align:left;vertical-align:middle;padding:0!important}.po-progress-cell{position:relative;height:32px;min-height:32px}.po-timeline-po-row .po-progress-cell{border-right-color:#c9d6cb24}.po-progress-track{position:relative;height:80%;top:10%;width:calc(100% + 2px);margin-left:-1px;border-radius:0;background:#edf3ec;overflow:visible;border:0;z-index:2}.po-progress-segment{position:absolute;top:0;bottom:0;border-radius:0;z-index:3}.po-progress-segment.cap-single{border-radius:var(--radius-pill)}.po-progress-segment.cap-start{border-radius:var(--radius-pill) 0 0 var(--radius-pill)}.po-progress-segment.cap-end{border-radius:0 var(--radius-pill) var(--radius-pill) 0}.po-progress-segment.cap-mid{border-radius:0}.po-progress-segment.phase-order{background:#76a8d1}.po-progress-segment.phase-production{background:#63af5a}.po-progress-segment.phase-transit{background:#e08a34}.po-phase-seam{position:absolute;top:0;bottom:0;width:1px;transform:translate(-.5px);background:#14251c38;z-index:4;pointer-events:none}.po-phase-center-label{position:absolute;top:50%;transform:translate(-50%,-50%);z-index:5;color:#14251cf5;font-size:var(--text-xs);font-family:var(--mono);font-weight:600;white-space:nowrap;text-shadow:0 1px 0 rgba(255,255,255,.46);pointer-events:none}.po-arrival-marker{position:absolute;top:-6px;bottom:-6px;width:2px;background:#b5352c;transform:translate(-1px)}.po-arrival-marker:before{content:"";position:absolute;width:7px;height:7px;border-radius:var(--radius-pill);background:#b5352c;top:-2px;left:-2px}.po-arrival-marker em{position:absolute;top:-15px;left:-7px;font-style:normal;font-size:var(--text-xs);color:#9e2b22;font-family:var(--mono);white-space:nowrap}.po-timeline-po-row.ghost-row .po-row-main span{color:#2d5f4d}.po-timeline-po-row.ghost-row .po-progress-track{border-style:dashed}.po-timeline-po-row.ghost-row .po-progress-segment{outline:1px dashed rgba(29,78,61,.8)}.po-timeline-po-row.ghost-row .po-arrival-marker{background:var(--accent)}.po-timeline-po-row.ghost-row .po-arrival-marker:before{background:var(--accent)}.po-timeline-po-row.ghost-row .po-arrival-marker em{color:var(--accent)}.component-meta{color:var(--muted)}.risk-green{background:linear-gradient(180deg,#ecf8e8,#e2f0dd)!important;color:#315a1b}.risk-amber{background:linear-gradient(180deg,#fff5dd,#f8e7bb)!important;color:#7c590e}.risk-red{background:linear-gradient(180deg,#fde5e5,#f7d1d1)!important;color:#842727;font-weight:700}.filter-row{padding:0 1rem .7rem;display:grid;gap:.5rem}.filter-row.three-col{grid-template-columns:repeat(3,minmax(0,1fr))}.po-list{flex:0 1 auto;min-height:0;max-height:220px;overflow-y:auto;padding:.5rem .9rem;display:grid;gap:.35rem;align-content:start}.po-list-empty{font-size:var(--text-sm);color:var(--muted);text-align:center;padding:1.2rem 0}.po-card{width:100%;border:1px solid #d7e0d5;border-radius:var(--radius-md);padding:.45rem .55rem;text-align:left;background:#fdfefc;cursor:pointer;transition:border-color .12s,box-shadow .12s}.po-card:hover{border-color:#a8c0b4}.po-card.selected{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:#f5fbf8}.po-card-top{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem}.po-card-vendor{font-size:var(--text-base);font-weight:600;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.po-card-qty{font-size:var(--text-base);font-weight:700;font-family:var(--mono);color:var(--ink);flex-shrink:0}.po-card-meta{display:flex;justify-content:space-between;align-items:center;gap:.4rem;margin-top:.22rem}.po-card-dates{font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.po-card-tags{display:flex;gap:.25rem;flex-shrink:0}.po-tag{font-size:var(--text-xs);font-weight:600;padding:.1rem .35rem;border-radius:var(--radius-sm);white-space:nowrap;text-transform:uppercase;letter-spacing:.02em}.po-tag--lifecycle{background:#e7f0eb;color:#2a5042}.po-tag--lifecycle.po-tag--arrival{background:#d9f0e0;color:#1f6e33}.po-tag--lifecycle.po-tag--transit,.po-tag--lifecycle.po-tag--shipment_sent{background:#ddeaf5;color:#254a72}.po-tag--payment{background:#f5ede0;color:#6b4e1f}.po-tag--payment.po-tag--paid{background:#d9f0e0;color:#1f6e33}.po-card-component{font-size:var(--text-xs);color:var(--muted);margin-top:.18rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.po-editor{flex:1 1 auto;display:grid;gap:.4rem;padding:.65rem .9rem .7rem;border-top:1px solid var(--stroke);align-content:start;overflow-y:auto}.po-editor-heading{font-size:var(--text-sm);font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;margin:0}.po-editor-row{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.po-field,.po-field-full{display:grid;gap:.15rem}.po-field-label{font-size:var(--text-xs);font-weight:600;color:#4a6b5f}.po-field-auto-hint{font-size:var(--text-xs);color:var(--muted);padding:0 .25rem;margin-top:-.15rem}.po-field-reset{background:none;border:none;color:var(--accent);font-size:var(--text-xs);cursor:pointer;padding:0;text-decoration:underline}.po-field-reset:hover{color:var(--accent-2)}.po-editor select,.po-editor input{font-size:var(--text-base);padding:.38rem .48rem}.po-editor .date-popover-field{font-size:var(--text-xs);font-weight:600;color:#4a6b5f}.po-editor .date-popover-trigger{font-size:var(--text-base);padding:.38rem .48rem}.focused-suggestion{margin:0 .9rem .5rem;border:1px solid #c9d9cb;border-radius:var(--radius-md);padding:.55rem;display:grid;gap:.3rem;background:#f7fcf5;font-size:var(--text-sm);color:#2f4e42}.date-popover-field{font-size:var(--text-sm);color:#315045;display:grid;gap:.2rem}.date-popover-wrap{position:relative}.date-popover-trigger{width:100%;text-align:left;border:1px solid var(--stroke);border-radius:var(--radius-md);background:#fff;color:var(--ink);font-size:var(--text-base);padding:.46rem .56rem;cursor:pointer}.date-popover-panel{position:absolute;top:calc(100% + .3rem);left:0;z-index:35;border:1px solid #c8d7c8;border-radius:var(--radius-md);background:#fcfffb;box-shadow:var(--shadow-md);padding:.35rem}.date-popover-panel .rdp-root{--rdp-accent-color: var(--accent);--rdp-today-color: var(--accent);--rdp-day-width: 33px;--rdp-day-height: 33px;margin:0}.date-popover-panel .rdp-today:not(.rdp-selected){border:1px solid #8fbda8;border-radius:var(--radius-md);font-weight:700}.date-popover-actions{display:flex;gap:.3rem;justify-content:flex-end;margin-top:.3rem}.date-popover-helper{font-size:var(--text-xs);color:#557167}.empty-state,.collapsed-hint,.state-empty,.state-loading,.state-error{margin:0 1rem;border:1px dashed var(--stroke);border-radius:var(--radius-md);padding:.6rem;color:var(--muted);font-size:var(--text-sm);text-align:center}.collapsed-hint{background:var(--surface)}.state-error{border-style:solid;border-color:var(--bad);color:var(--bad)}.po-collapsed-summary{margin:0 1rem;border:1px solid #c8d6c7;border-radius:var(--radius-md);padding:.58rem;background:#f7fbf5;display:grid;gap:.45rem}.po-collapsed-summary p{font-size:var(--text-sm);color:#355549}.po-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.45rem}.po-stat-grid dt{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:#587165}.po-stat-grid dd{margin:.08rem 0 0;font-family:var(--mono);font-size:var(--text-sm);color:#183d31}.suggestion-list{display:grid;gap:.5rem;padding:0 1rem}.suggestion-card{border:1px solid #ced9c9;border-radius:var(--radius-md);background:#fbfef9;padding:.55rem}.suggestion-card header{display:flex;align-items:center;justify-content:space-between;gap:.35rem}.suggestion-card dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem;margin:.42rem 0}.suggestion-card dt{font-size:var(--text-xs);color:#4a6659;text-transform:uppercase;letter-spacing:.04em}.suggestion-card dd{margin:.1rem 0 0;font-family:var(--mono);font-size:var(--text-sm)}.suggestion-card p{margin:0 0 .5rem;font-size:var(--text-sm);color:#3b5449}.severity-badge{border-radius:var(--radius-pill);padding:.16rem .44rem;font-size:var(--text-xs);font-weight:700;border:1px solid transparent}.sev-critical{background:#fce3e3;border-color:#e2b6b6;color:#8f2f2f}.sev-high{background:#fff0db;border-color:#e7cfab;color:#875915}.sev-medium{background:#e8f2e2;border-color:#c5d6b8;color:#325b24}.repair-receipt{padding:.2rem 1rem 0;display:grid;gap:.55rem}.repair-receipt-header{display:flex;align-items:baseline;justify-content:space-between;gap:.5rem;border-bottom:1px solid #d7e2d5;padding-bottom:.35rem}.repair-receipt-header strong{font-size:var(--text-base);min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.repair-receipt-header span{font-size:var(--text-xs);color:#446357;font-family:var(--mono)}.repair-receipt-grid{display:grid;gap:.4rem;grid-template-columns:repeat(2,minmax(0,1fr));margin:0}.repair-receipt-grid div{border:1px solid #d7e2d5;background:#f7fbf4;border-radius:var(--radius-md);padding:.35rem .45rem;display:grid;gap:.08rem}.repair-receipt-grid dt{font-size:var(--text-xs);color:#537066;text-transform:uppercase;letter-spacing:.04em}.repair-receipt-grid dd{margin:0;font-size:var(--text-sm);color:#1a3c31;font-family:var(--mono)}.repair-lineitems-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);border:1px solid #d5e0d3;border-radius:var(--radius-md);overflow:hidden}.repair-lineitems-table th,.repair-lineitems-table td{border-bottom:1px solid #dbe5d9;padding:.32rem .45rem;text-align:left}.repair-lineitems-table th{background:var(--surface);font-family:var(--mono);font-size:var(--text-xs);color:#3e5d50;text-transform:uppercase;letter-spacing:.04em}.repair-lineitems-table td:nth-child(2),.repair-lineitems-table td:nth-child(3){text-align:right;font-family:var(--mono)}.repair-lineitems-table tbody tr:last-child td{border-bottom:0}.repair-lineitems-total{margin:0;font-size:var(--text-sm);color:#335347}.repair-lineitems-total strong{font-family:var(--mono);font-size:var(--text-base)}.demand-editor-grid{display:grid;grid-template-columns:minmax(230px,1.2fr) repeat(4,minmax(140px,1fr));gap:.5rem;padding:.2rem 1rem 0}.demand-field{font-size:var(--text-sm);color:#315045;display:grid;gap:.2rem}.demand-field-notes{grid-column:1 / -1}@media(max-width:1180px){.workspace-grid{grid-template-columns:1fr}.workspace-side{grid-template-columns:repeat(2,minmax(0,1fr))}.demand-editor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.demand-field-notes{grid-column:1 / -1}}@media(max-width:860px){.workspace-side,.demand-editor-grid,.repair-receipt-grid,.filter-row.three-col{grid-template-columns:1fr}.suggestion-card dl{grid-template-columns:repeat(2,minmax(0,1fr))}.inventory-table .sticky-col,.inventory-table .sticky-col-1,.inventory-table .sticky-col-2,.connected-header-cell-sticky,.weekly-board-spacer-sticky{position:static}.connected-top-sticky{position:static;box-shadow:none}.inventory-table th{position:static}.weekly-board-grid,.inventory-table{min-width:100%}}.auth-shell{min-height:100vh;display:grid;place-items:center;padding:2rem 1rem;background:radial-gradient(1200px 500px at 0% 0%,rgba(14,124,102,.14),transparent 60%),linear-gradient(145deg,#f3f6f0,#e9ede4 55%,#f7faf5)}.auth-card{width:min(580px,100%);background:#fff;border:1px solid var(--border);border-radius:var(--radius-xl);padding:1.4rem;box-shadow:var(--shadow-md);display:grid;gap:.95rem}.auth-card h1{margin:0;font-size:var(--text-2xl);letter-spacing:-.01em;color:var(--ink)}.auth-kicker{margin:0;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.11em;color:var(--muted);font-weight:700}.auth-subtitle{margin:0;color:var(--muted);line-height:1.45}.auth-google-block{background:var(--surface);border:1px solid #d8deec;border-radius:var(--radius-lg);padding:.9rem;display:grid;gap:.65rem}.auth-google-host{min-height:44px;display:grid;align-items:center}.auth-google-fallback{width:100%}.auth-divider{margin-top:.2rem;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#566285}.auth-note{margin:0;color:#5f6983;font-size:var(--text-base);line-height:1.35}.auth-fallback{display:grid;gap:.45rem}.auth-mode-switch{display:inline-flex;border:1px solid var(--stroke);border-radius:var(--radius-md);overflow:hidden;width:fit-content}.auth-mode-switch button{border:0;background:var(--surface);padding:.5rem .85rem;color:var(--ink);font-weight:600}.auth-mode-switch button.active{background:var(--accent);color:#fff}.auth-form{display:grid;gap:.75rem}.auth-form label{display:grid;gap:.3rem;font-size:var(--text-md);color:#2b3755;font-weight:600}.auth-form input,.invite-form input{border:1px solid #c3ccdd;border-radius:var(--radius-md);padding:.58rem .7rem;font:inherit;background:#fcfdff}.auth-actions{display:flex;gap:.5rem;flex-wrap:wrap}.auth-actions .secondary{background:#eef2ff;color:#1b356b}.auth-error{margin:0;color:var(--bad);font-size:var(--text-md)}@media(max-width:560px){.auth-card{padding:1rem;border-radius:var(--radius-xl)}}.admin-success{margin:0;color:#14532d;background:#dcfce7;border:1px solid #86efac;border-radius:var(--radius-md);padding:.55rem .7rem;font-size:var(--text-md)}.auth-meta{display:grid;grid-template-columns:9rem 1fr;margin:0;gap:.35rem .5rem}.auth-meta dt{color:var(--text-secondary)}.auth-meta dd{margin:0;font-weight:600}.nexus-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem;border-bottom:1px solid #d9deea;padding:.75rem 1rem;background:#fff;position:sticky;top:0;z-index:20}.nexus-header-brand{display:flex;align-items:center;gap:.5rem}.nexus-header-brand svg{width:28px;height:28px}.nexus-header-brand h1{margin:0;font-size:var(--text-lg)}.nexus-header-nav{display:flex;justify-self:center;gap:.35rem}.nexus-header-nav button{border:1px solid #d9deea;background:#f4f5f7;color:#3b4252;padding:.35rem .85rem;border-radius:var(--radius-sm);font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.nexus-header-nav button:hover{background:var(--hover-bg)}.nexus-header-nav button.active{background:var(--accent);border-color:var(--accent);color:#fff}.nexus-header-user{display:flex;align-items:center;gap:.6rem}.nexus-header-email{color:var(--text-secondary);font-size:var(--text-base)}.nexus-signout-link{border:0;background:none;color:var(--text-secondary);font-size:var(--text-sm);cursor:pointer;padding:0;font-family:inherit}.nexus-signout-link:hover{text-decoration:underline}.nexus-admin-btn{display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--text-secondary);font-size:var(--text-lg);cursor:pointer;padding:.25rem;border-radius:var(--radius-sm);transition:color .15s}.nexus-admin-btn:hover,.nexus-admin-btn.active{color:var(--accent, #0e7c66)}.admin-panel{padding:1rem;display:grid;gap:1rem}.admin-header{display:flex;justify-content:space-between;align-items:center}.admin-tabs{display:flex;gap:.5rem;flex-wrap:wrap}.admin-tabs button{border:1px solid #c9cfdb;border-radius:var(--radius-md);background:#fff;color:#5d6578;padding:.45rem .8rem}.admin-tabs button:hover{border-color:#aeb8ca;color:#2f3a55}.admin-tabs button.active{background:#edf4ff;border-color:#8db0ef;color:#1c3f86;font-weight:600}.admin-section-indicator{margin:0;color:var(--text-secondary);font-size:var(--text-md)}.admin-block{background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-xl);padding:.9rem;display:grid;gap:.75rem}.admin-kpi-grid{display:grid;gap:.65rem;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}.admin-kpi-card{border:1px solid #dce2ef;border-radius:var(--radius-md);background:#f8fafe;padding:.65rem .75rem;display:grid;gap:.2rem}.admin-kpi-card span{color:var(--text-secondary);font-size:var(--text-base)}.admin-kpi-card strong{font-size:var(--text-md);color:var(--ink)}.admin-muted{margin:0;color:var(--text-secondary);font-size:var(--text-base)}.admin-block-header{display:flex;justify-content:space-between;align-items:center;gap:.75rem}.admin-sort-control{display:grid;gap:.2rem;font-size:var(--text-base);color:var(--text-secondary)}.admin-sort-control select{border:1px solid #c6ccda;border-radius:var(--radius-md);padding:.35rem .45rem;font:inherit;color:#1f2430;background:#fff}.admin-row{display:flex;justify-content:space-between;gap:1rem;border-top:1px solid #edf1f8;padding-top:.65rem}.admin-row p{margin:.2rem 0 0;color:var(--text-secondary);font-size:var(--text-base)}.approved-table-wrap{overflow-x:auto}.approved-table{width:100%;border-collapse:collapse;font-size:var(--text-md)}.approved-table th,.approved-table td{text-align:left;padding:.55rem .3rem;border-top:1px solid #edf1f8}.approved-table th{color:var(--text-secondary);font-weight:600}.mapping-table td{vertical-align:top}.role-menu summary{cursor:pointer;color:#1b356b}.role-menu-list{margin-top:.4rem;display:grid;gap:.35rem;min-width:8.5rem}.role-menu-item{display:flex;align-items:center;gap:.35rem;color:#1f2430}.role-menu-note{margin:0;color:var(--text-secondary);font-size:var(--text-sm)}.invite-form{display:flex;gap:.5rem}.invite-form input{flex:1}.fusion-upload-dropzone{position:relative;display:grid;place-items:center;min-height:92px;border:1px dashed #9db0d8;border-radius:var(--radius-md);background:#f6f9ff;color:#2b3e68;font-size:var(--text-md);text-align:center;padding:.7rem;cursor:pointer}.fusion-upload-dropzone input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer}.fusion-upload-dropzone-inner{pointer-events:none}.fusion-upload-dropzone-inner.active{color:#123d9f;font-weight:700}.fec-admin{margin-top:.5rem}.fec-admin-summary{display:flex;align-items:center;gap:.5rem;font-size:.92rem;color:var(--text-secondary, #555);margin-bottom:.75rem}.fec-admin-summary-sep{color:var(--text-muted, #999)}.fec-admin-unmapped-count{color:#b45309;font-weight:600}.fec-admin-search{display:flex;align-items:center;gap:.75rem;margin-bottom:.75rem}.fec-admin-search input{flex:1;max-width:360px;padding:.35rem .6rem;border:1px solid var(--border, #d1d5db);border-radius:6px;font-size:.85rem}.fec-admin-count{font-size:.82rem;color:var(--text-muted, #999)}.fec-admin-table{font-size:.82rem}.fec-admin-table th,.fec-admin-table td{padding:.35rem .5rem}.fec-col-id{font-weight:500;max-width:260px;word-break:break-word}.fec-col-bool{text-align:center;width:70px}.fec-col-actions{white-space:nowrap;display:flex;gap:.35rem}.fec-col-actions button{font-size:.78rem;padding:.2rem .5rem}.fec-edit-input{width:100%;padding:.25rem .4rem;border:1px solid var(--border, #d1d5db);border-radius:4px;font-size:.82rem}.fec-edit-code{max-width:100px}.fec-edit-select{padding:.25rem .3rem;border:1px solid var(--border, #d1d5db);border-radius:4px;font-size:.82rem}.fec-empty{color:var(--text-muted, #999)}tr.fec-row-unmapped{background:#fef3c7}tr.fec-row-unmapped:hover{background:#fde68a}.customers-panel{padding:1rem;display:grid;gap:1rem}.customers-panel.customers-panel-split{grid-template-columns:1fr;align-items:start}.customers-panel.customers-panel-split.with-preview{grid-template-columns:minmax(0,1fr) minmax(520px,1.1fr);align-items:start}.customers-panel.customers-panel-detail-page{grid-template-columns:1fr}.customer-section,.customer-detail-panel{background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-xl);padding:.9rem;display:grid;gap:.75rem}.customers-header-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.customers-search-form{display:inline-flex;gap:.5rem;align-items:center;flex-wrap:wrap}.customers-search-form input{min-width:240px}.customers-table{width:100%;border-collapse:collapse;font-size:var(--text-base);background:#fff;border:1px solid #e1e6ef}.customers-table th,.customers-table td{padding:.48rem .52rem;border-top:1px solid #edf1f8;vertical-align:top}.customers-table th{text-align:left;color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.02em;text-transform:uppercase;background:var(--surface)}.customers-table th.num,.customers-table td.num{text-align:right}.customer-mono{font-family:var(--mono);font-size:var(--text-sm)}.customers-sort-btn{border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;display:inline-flex;gap:.25rem;align-items:center;cursor:pointer;padding:0}.sort-arrow{font-size:var(--text-xs)}.toggle-col{width:2rem;text-align:center}.row-disable-btn{width:18px;height:18px;border-radius:var(--radius-pill);border:1px solid #c9cfdb;background:#fff;color:#5d6578;font-size:var(--text-sm);font-weight:700;line-height:1;cursor:pointer}.row-disable-btn:hover{border-color:#aeb8ca;color:#2f3a55}.selected-row{background:#edf4ff}.customer-row{cursor:pointer}.customers-preview-panel{background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-xl);display:grid;gap:.75rem;max-height:calc(100vh - 110px);overflow-y:auto;overscroll-behavior:contain;align-self:start;position:sticky;top:.8rem}.customers-preview-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.8rem .9rem 0;position:sticky;top:0;background:#fff;z-index:2}.customers-preview-head h3{margin:0}.customers-preview-panel .customer-detail-panel{border:0;border-radius:0;padding:.9rem}.customers-total-row{background:#f5f7fb;font-weight:700}.row-excluded{opacity:.45}.customers-disabled-block summary{cursor:pointer;color:#1b356b;font-weight:600}.customer-name-link{color:#1b4ab2;font-weight:600;text-decoration:none}.customer-name-link:hover{text-decoration:underline}.customers-detail-route-header{display:flex;align-items:center;justify-content:space-between;gap:.8rem;flex-wrap:wrap}.customer-stat-row{display:flex;gap:.7rem;flex-wrap:wrap}.customer-section-note{margin-top:-.35rem;color:var(--text-secondary);font-size:var(--text-sm)}.customer-stat-box{border:1px solid #d8deec;border-radius:var(--radius-md);background:var(--surface);padding:.55rem .65rem;min-width:138px}.customer-stat-box .label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.06em;color:var(--text-secondary)}.customer-stat-box .value{margin-top:.2rem;font-weight:700;color:var(--ink)}.customer-kpi-card{cursor:pointer;text-align:left;transition:box-shadow .15s ease,transform .15s ease}.customer-kpi-card:hover{box-shadow:var(--shadow-sm);transform:translateY(-1px)}.kpi-note{margin-top:.28rem;color:#5f6983;font-size:var(--text-sm)}.customer-tag-list{display:inline-flex;align-items:center;flex-wrap:wrap;gap:.2rem}.item-tag{display:inline-block;border-radius:var(--radius-pill);padding:2px 8px;font-size:var(--text-xs);font-weight:600;white-space:nowrap;border:1px solid transparent}.tag-blasters{background:#fde8e8;color:#9f1239;border-color:#fecdd3}.tag-vests{background:#e0f2fe;color:#0c4a6e;border-color:#bae6fd}.tag-portals{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.tag-batteries{background:#fef3c7;color:#92400e;border-color:#fde68a}.tag-chargers{background:#ecfccb;color:#365314;border-color:#d9f99d}.tag-accessories{background:#cffafe;color:#155e75;border-color:#a5f3fc}.tag-gellets{background:#dcfce7;color:#166534;border-color:#bbf7d0}.tag-spare-parts{background:#f3e8ff;color:#6b21a8;border-color:#e9d5ff}.tag-other{background:#e5e7eb;color:#374151;border-color:#d1d5db}.tag-overflow{background:#f1f3f5;color:#495057;border-color:#dee2e6}.status-badge,.source-badge{display:inline-block;padding:2px 7px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:700;letter-spacing:.2px;text-transform:uppercase;white-space:nowrap;border:1px solid transparent}.source-form{background:#e0f2fe;color:#0c4a6e;border-color:#bae6fd}.source-email{background:#e8f7ea;color:#176337;border-color:#b9e3c2}.source-phone{background:#f3e8ff;color:#6b21a8;border-color:#e9d5ff}.status-delivered{background:#d1e7dd;color:#0f5132;border-color:#badbcc}.status-in-transit{background:#cfe2ff;color:#084298;border-color:#b6d4fe}.status-shipped{background:#dbeafe;color:#1e3a8a;border-color:#bfdbfe}.status-not-shipped{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.status-label-created{background:#fff3cd;color:#664d03;border-color:#ffecb5}.status-exception{background:#f8d7da;color:#842029;border-color:#f5c2c7}.status-unknown{background:#e9ecef;color:#495057;border-color:#ced4da}.status-missing{background:#f8f9fa;color:#6c757d;border-color:#dee2e6}.status-open{background:#dbeafe;color:#1e3a8a;border-color:#bfdbfe}.status-in_transit{background:#fef3c7;color:#92400e;border-color:#fde68a}.status-fulfilled{background:#d1e7dd;color:#0f5132;border-color:#badbcc}.status-closed{background:#e5e7eb;color:#374151;border-color:#d1d5db}.status-archived{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.status-overdue{background:#fef2f2;color:#b91c1c;border-color:#fecdd3}.customer-ticket-link{color:#1b4ab2;text-decoration:none;font-weight:600;white-space:nowrap}.customer-ticket-link:hover{text-decoration:underline}.tracking-group{border:1px solid #d8deec;border-radius:var(--radius-md);background:#fbfcfd;padding:.55rem;margin-bottom:.5rem}.tracking-head{display:flex;gap:.45rem;align-items:center;flex-wrap:wrap;margin-bottom:.3rem}.tracking-meta{color:var(--text-secondary);font-size:var(--text-sm)}.orders-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:.5rem}.orders-subtitle{color:var(--text-secondary);margin-top:.1rem}.orders-filters{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.orders-filters input,.orders-filters select{font-size:var(--text-md);padding:.45rem .6rem}.orders-table-wrapper{position:relative}.orders-error,.orders-loading,.orders-empty{margin-top:.75rem;color:var(--muted);font-size:var(--text-sm);text-align:center}.orders-attention{border-left:3px solid var(--warn);background:var(--bg-alt);border-radius:var(--radius-md);padding:.5rem .75rem;margin-bottom:.75rem}.orders-attention summary{font-size:var(--text-sm);cursor:pointer;list-style:revert}.orders-attention summary strong{font-weight:600}.orders-attention-body{margin-top:.5rem}.orders-attention-body .customers-table{font-size:var(--text-sm)}.attention-no-date{color:var(--warn);font-weight:600}.attention-past-date{color:var(--bad);font-weight:600}.fusion-link{color:var(--accent);text-decoration:none}.fusion-link:hover{text-decoration:underline}.priority-toggle{border:1px solid #d0d7e6;background:#f8fafc;color:#9ca3af;border-radius:var(--radius-md);padding:4px 8px;cursor:pointer;transition:all .15s ease}.priority-toggle:hover{color:#f59e0b;border-color:#fcd34d}.priority-toggle.active{background:#fff7ed;color:#ea580c;border-color:#fdba74}.classification-pill{display:inline-flex;align-items:center;gap:.35rem;padding:4px 10px;border-radius:var(--radius-pill);font-size:var(--text-sm);font-weight:600;border:1px solid transparent}.classification-source{text-transform:uppercase;font-size:var(--text-xs);font-weight:700;color:#4b5563;background:#f3f4f6;padding:2px 6px;border-radius:var(--radius-pill)}.classification-core{background:#e0f2fe;color:#0c4a6e;border-color:#bae6fd}.classification-upgrade{background:#fef3c7;color:#92400e;border-color:#fde68a}.classification-repair{background:#fef2f2;color:#b91c1c;border-color:#fecdd3}.classification-infra{background:#ecfccb;color:#365314;border-color:#d9f99d}.classification-consumables{background:#dcfce7;color:#166534;border-color:#bbf7d0}.classification-equipment{background:#ede9fe;color:#5b21b6;border-color:#ddd6fe}.classification-mixed{background:#e5e7eb;color:#374151;border-color:#d1d5db}.orders-drawer{margin-top:1rem;border:1px solid #e1e6ef;background:#fff;border-radius:var(--radius-lg);padding:1rem;box-shadow:var(--shadow-md)}.orders-modal{position:fixed;inset:0;z-index:140}.orders-modal-backdrop{position:absolute;inset:0;background:#0f172a80}.orders-modal-card{position:relative;z-index:1;width:min(1400px,calc(100vw - 32px));max-height:calc(100vh - 32px);margin:16px auto;background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-xl);overflow:auto;box-shadow:var(--shadow-lg)}.orders-modal-header{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid #e5eaf2;padding:.9rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:.75rem}.orders-modal-title{display:flex;align-items:center;gap:.4rem;font-size:var(--text-md);font-weight:700}.orders-modal-subtitle{color:var(--text-secondary);margin-top:.2rem}.orders-modal-actions{display:flex;align-items:center;gap:.5rem}.orders-modal-body{padding:1rem;display:grid;gap:1rem}.orders-meta-row{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-end}.orders-classification-select{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.orders-classification-select select{padding:.55rem .65rem;min-width:220px}.orders-totals{display:flex;gap:.8rem;font-weight:600;align-items:center}.orders-drawer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem}.orders-drawer-title{display:flex;align-items:center;gap:.35rem;font-size:var(--text-md);font-weight:700}.orders-drawer-subtitle{color:var(--text-secondary);margin-top:.25rem}.orders-close-btn{border:none;background:transparent;font-size:var(--text-lg);cursor:pointer;color:#9ca3af}.orders-classification{margin-top:.75rem}.orders-label{font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);margin-bottom:.35rem}.orders-classification-actions{display:flex;flex-wrap:wrap;gap:.35rem}.orders-chip{border:1px solid #d1d5db;background:#f9fafb;border-radius:var(--radius-pill);padding:6px 10px;font-size:var(--text-base);cursor:pointer}.orders-chip.selected{background:#111827;color:#fff;border-color:#111827}.orders-reset-btn{margin-top:.35rem;background:none;border:none;color:#1b4ab2;cursor:pointer;padding:0}.orders-auto-note{margin-top:.35rem;color:var(--text-secondary)}.orders-section{margin-top:1rem}.orders-notes{background:#f8fafc;border:1px solid #e5e7eb;border-radius:var(--radius-md);padding:.75rem}.tracking-events{margin-top:.4rem;border-top:1px dashed #d8deec;padding-top:.35rem;font-size:var(--text-sm)}.tracking-event{margin-bottom:.2rem}.customer-detail-footer{color:var(--text-secondary);font-size:var(--text-base)}.customer-modal{position:fixed;inset:0;z-index:120}.customer-modal-backdrop{position:absolute;inset:0;background:#0f172a73}.customer-modal-card{position:relative;z-index:1;width:min(980px,calc(100vw - 40px));max-height:calc(100vh - 40px);margin:20px auto;background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-lg);overflow:auto;box-shadow:var(--shadow-lg)}.customer-modal-header{position:sticky;top:0;z-index:2;background:#fff;border-bottom:1px solid #e5eaf2;padding:.7rem .9rem;display:flex;align-items:center;justify-content:space-between}.customer-modal-body{padding:.9rem;display:grid;gap:.7rem}.modal-summary,.modal-tracking{margin-bottom:.4rem;font-size:var(--text-base)}.modal-observations{margin:0;background:#f8f9fa;border:1px solid #d8deec;border-radius:var(--radius-md);padding:.7rem;white-space:pre-wrap;font-size:var(--text-sm)}.modal-kpi-view{font-size:var(--text-base)}.kpi-trend-summary{display:flex;flex-wrap:wrap;gap:.8rem}@media(max-width:900px){.customers-panel,.customers-panel.customers-panel-split,.customers-panel.customers-panel-split.with-preview{padding:.7rem;grid-template-columns:1fr}.customers-preview-panel{position:static;max-height:none;overflow:visible}.customers-search-form input{min-width:0;width:100%}.customers-table{font-size:var(--text-sm)}.customers-table th,.customers-table td{padding:.38rem}.customer-modal-card{width:min(100vw - 16px,980px);margin:8px auto;max-height:calc(100vh - 16px)}}.create-form{display:flex;flex-direction:column;min-height:0}.create-form-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.create-form-header h2{font-size:var(--text-lg);font-weight:700;margin:0}.create-form-body{display:flex;flex-direction:column;gap:1rem}.create-form-section{border:1px solid var(--stroke);border-radius:var(--radius-md);padding:1rem;margin:0}.create-form-section legend{font-size:var(--text-md);font-weight:700;padding:0 .4rem;color:var(--ink)}.create-form-advanced{border:1px solid var(--stroke);border-radius:var(--radius-md);padding:0}.create-form-advanced summary{font-size:var(--text-md);font-weight:700;padding:.75rem 1rem;cursor:pointer;list-style:revert;color:var(--ink)}.create-form-advanced-body{padding:0 1rem 1rem;display:flex;flex-direction:column;gap:.75rem}.create-form-footer{display:flex;gap:.5rem;align-items:center;padding-top:1rem;border-top:1px solid var(--stroke);margin-top:1rem}.create-form-required{color:var(--bad);margin-left:2px}.create-form-field-error{color:var(--bad);font-size:var(--text-xs);margin-top:2px;display:block}.create-form-error{background:#fef2f2;border:1px solid #fecdd3;border-radius:var(--radius-md);padding:.6rem .8rem;color:#b91c1c;font-size:var(--text-sm);margin-bottom:.5rem}.create-form-success{background:#dcfce7;border:1px solid #bbf7d0;border-radius:var(--radius-md);padding:.6rem .8rem;color:#166534;font-size:var(--text-sm);margin-bottom:.5rem}.create-form-checkbox-row{display:flex;align-items:center;gap:.4rem;font-size:var(--text-base)}.create-form-duration-row{display:flex;align-items:center;gap:.3rem}.create-form-pill-group{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.25rem}.create-form-pill{border:1px solid #d1d5db;background:#f9fafb;border-radius:var(--radius-pill);padding:5px 12px;font-size:var(--text-sm);cursor:pointer;transition:all .15s ease}.create-form-pill:hover{border-color:var(--accent);color:var(--accent)}.create-form-pill.selected{background:var(--accent);color:#fff;border-color:var(--accent)}.create-form-line-item{border:1px solid #e5e7eb;border-radius:var(--radius-md);padding:.75rem;background:var(--surface);margin-bottom:.5rem}.create-form-line-item-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.create-form-line-item-num{font-size:var(--text-sm);font-weight:700;color:var(--muted)}.create-form-remove-btn{border:none;background:none;cursor:pointer;color:#9ca3af;padding:2px;border-radius:var(--radius-sm)}.create-form-remove-btn:hover{color:var(--bad);background:#fef2f2}.create-form-search-dropdown{position:absolute;top:100%;left:0;right:0;z-index:20;background:#fff;border:1px solid #d0d7e6;border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:260px;overflow-y:auto;margin-top:2px}.create-form-search-option{display:flex;gap:.5rem;width:100%;border:none;background:none;padding:.45rem .6rem;text-align:left;cursor:pointer;font-size:var(--text-sm)}.create-form-search-option:hover{background:var(--hover-bg)}.create-form-detail-block{margin-top:.5rem;display:flex;flex-direction:column;gap:.5rem}.create-form-ops{display:flex;flex-direction:column;gap:.2rem}.create-form-ops-pills{display:flex;flex-wrap:wrap;gap:.25rem}.create-form-op-pill{background:#ede9fe;color:#5b21b6;border:1px solid #ddd6fe;border-radius:var(--radius-pill);padding:2px 8px;font-size:var(--text-xs);font-weight:600}.create-form-bom{display:flex;flex-direction:column;gap:.2rem}.create-form-bom .customers-table{font-size:var(--text-sm)}.create-form-stock-info{display:flex;gap:.5rem;align-items:center}.create-form-readonly{background:var(--bg-alt);cursor:default}.create-form-char-count{font-size:var(--text-xs);color:var(--text-secondary);text-align:right;display:block;margin-top:2px}.datetime-time-row{display:flex;align-items:center;gap:.3rem;padding:.4rem .6rem;border-top:1px solid #e5e7eb}.datetime-time-row select{padding:.3rem .4rem;font-size:var(--text-sm);min-width:3.5rem}.datetime-colon{font-weight:700;color:var(--muted)}.datetime-ampm-toggle{display:flex;border:1px solid #d0d7e6;border-radius:var(--radius-sm);overflow:hidden;margin-left:.3rem}.datetime-ampm-toggle button{border:none;background:#f8fafc;padding:.25rem .5rem;font-size:var(--text-sm);cursor:pointer}.datetime-ampm-toggle button+button{border-left:1px solid #d0d7e6}.datetime-ampm-toggle button.active{background:var(--accent);color:#fff}.suppliers-panel{padding:1rem;display:grid;gap:1rem}.suppliers-header-row{display:flex;justify-content:space-between;align-items:center;gap:.75rem;flex-wrap:wrap}.suppliers-section{background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-xl);padding:.9rem;display:grid;gap:.75rem}.suppliers-view-toggle{display:inline-flex;border:1px solid #d7dbe4;border-radius:var(--radius-md);overflow:hidden}.suppliers-view-toggle button{border:none;background:#fff;color:var(--text-secondary);font-size:var(--text-base);font-weight:500;padding:.38rem .85rem;cursor:pointer;transition:background .15s,color .15s}.suppliers-view-toggle button:not(:last-child){border-right:1px solid #d7dbe4}.suppliers-view-toggle button.active{background:var(--accent);color:#fff}.suppliers-view-toggle button:hover:not(.active){background:#f0f4fa}.suppliers-search-form{display:inline-flex;gap:.5rem;align-items:center;flex-wrap:wrap}.suppliers-search-form input{min-width:240px}.suppliers-table{width:100%;border-collapse:collapse;font-size:var(--text-base);background:#fff;border:1px solid #e1e6ef}.suppliers-table th,.suppliers-table td{padding:.48rem .52rem;border-top:1px solid #edf1f8;vertical-align:top}.suppliers-table th{text-align:left;color:var(--text-secondary);font-size:var(--text-sm);letter-spacing:.02em;background:var(--surface)}.suppliers-bom-table thead th{position:sticky;top:52px;z-index:5;background:var(--surface);box-shadow:0 1px 0 var(--border)}.suppliers-table th.num,.suppliers-table td.num{text-align:right}.supplier-mono{font-family:var(--mono);font-size:var(--text-sm)}.suppliers-sort-btn{border:0;background:transparent;color:inherit;font:inherit;text-transform:inherit;letter-spacing:inherit;display:inline-flex;gap:.25rem;align-items:center;cursor:pointer;padding:0}.supplier-row:hover{background:#f0f6f4}.supplier-row{cursor:pointer}.supplier-row:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.supplier-vat{color:#8a93a8;font-size:var(--text-sm);margin-left:.4rem}.supplier-unknown-badge{display:inline-block;background:#fff3e0;color:#d95f02;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .5rem;border-radius:var(--radius-sm);white-space:nowrap}.supplier-tag{display:inline-block;background:#eef6f3;color:#0e7c66;font-size:var(--text-sm);font-weight:500;padding:.1rem .45rem;border-radius:var(--radius-sm);margin-right:.3rem;margin-bottom:.15rem;white-space:nowrap}.supplier-printed-badge{display:inline-block;background:#ede7f6;color:#6a1b9a;font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.12rem .5rem;border-radius:var(--radius-sm);white-space:nowrap}.supplier-cell-truncated{display:flex;flex-wrap:nowrap;align-items:center;gap:.2rem;overflow:hidden;max-width:280px}.supplier-overflow-badge{display:inline-block;background:#e8ecf0;color:var(--text-secondary);font-size:var(--text-sm);font-weight:600;padding:.1rem .4rem;border-radius:var(--radius-sm);white-space:nowrap;cursor:default;flex-shrink:0}.suppliers-bom-stats{display:flex;gap:1rem;align-items:center;font-size:var(--text-base);color:var(--text-secondary)}.supplier-unknown-count{color:#d95f02;font-weight:600}.products-gen-summary{display:flex;gap:.75rem;flex-wrap:wrap;margin:.25rem 0 .5rem}.products-gen-card{flex:1 1 140px;max-width:200px;background:#f8faf9;border:1px solid #d7dbe4;border-radius:var(--radius-md);padding:.6rem .75rem;display:flex;flex-direction:column;gap:.3rem;cursor:pointer;transition:max-width .15s ease}.products-gen-card.expanded{max-width:360px}.products-gen-card-header{display:flex;align-items:center;justify-content:space-between}.products-gen-card-title{font-size:var(--text-sm);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary)}.products-gen-expand-icon{font-size:var(--text-sm);color:#8a93a8}.products-gen-detail{border-top:1px solid #d7dbe4;padding-top:.35rem;margin-top:.15rem;display:flex;flex-direction:column;gap:.3rem}.products-gen-detail-header{font-size:var(--text-xs);font-weight:700;color:#8a93a8;text-transform:uppercase;letter-spacing:.04em}.products-gen-detail-row{display:flex;align-items:baseline;justify-content:space-between;gap:.4rem}.products-gen-detail-info{display:flex;flex-direction:column;min-width:0}.products-gen-detail-code{font-family:var(--mono);font-size:var(--text-sm);color:var(--text-secondary)}.products-gen-detail-name{font-size:var(--text-xs);color:#8a93a8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.products-gen-detail-qty{font-family:var(--mono);font-size:var(--text-sm);font-weight:600;color:#1e2533}.products-gen-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.products-gen-qty{font-family:var(--mono);font-weight:600;font-size:var(--text-base);color:#1e2533}.bom-tree-row{cursor:pointer}.bom-tree-row:hover{background:#f0f6f4}.bom-tree-row.selected-row{background:#e8f0fe}.suppliers-bom-table td:first-child{white-space:nowrap}.suppliers-bom-table td:last-child{text-align:center}.suppliers-bom-split{position:relative}.suppliers-preview-panel{position:fixed;top:60px;right:1rem;width:min(760px,calc(100vw - 2rem));max-height:calc(100vh - 68px);background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-xl);display:grid;gap:.75rem;overflow-y:auto;overscroll-behavior:contain;z-index:15;box-shadow:var(--shadow-md)}.suppliers-preview-head{display:flex;align-items:center;justify-content:space-between;gap:.7rem;padding:.8rem .9rem 0;position:sticky;top:0;background:#fff;z-index:2;border-radius:var(--radius-xl) var(--radius-xl) 0 0}.suppliers-preview-head h3{margin:0;font-family:var(--mono);font-size:var(--text-md)}.product-detail-content{padding:0 .9rem .9rem;display:grid;gap:.45rem}.supplier-detail-content{gap:.6rem}.supplier-detail-name{display:inline-block;margin-left:.45rem;font-family:var(--font-sans);font-size:var(--text-base);color:var(--text-secondary)}.supplier-country-editor{align-items:center}.supplier-country-editor-controls{display:inline-flex;align-items:center;gap:.5rem;min-width:0}.supplier-country-editor-controls input{min-width:220px;font-size:var(--text-base);padding:.25rem .45rem;border:1px solid var(--stroke);border-radius:var(--radius-sm)}.supplier-country-editor-controls button{padding:.24rem .6rem;font-size:var(--text-base)}.supplier-detail-subheading{margin:.6rem 0 .2rem;font-size:var(--text-base);color:#2d3548}.supplier-products-table td:nth-child(1),.supplier-products-table td:nth-child(3){white-space:nowrap}.supplier-detail-empty{margin:0;font-size:var(--text-base);color:var(--text-secondary)}.supplier-cell-inline{display:inline-flex;flex-wrap:wrap;gap:.3rem}.kit-component-sku{display:inline-flex;align-items:center;padding-left:calc(.9rem + min(var(--depth, 1),6)*.7rem);position:relative}.kit-component-sku:before{content:"";position:absolute;left:calc(.2rem + min(var(--depth, 1),6)*.7rem);top:.55rem;width:.6rem;height:1px;background:#cfd6e1}.kit-depth-row td{background:var(--depth-bg, #fbfcfe)}.product-detail-field{display:flex;gap:.6rem;align-items:baseline;font-size:var(--text-base)}.product-detail-label{color:var(--text-secondary);min-width:110px;flex-shrink:0;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.02em}.product-detail-gen-select{font-family:var(--font-sans);font-size:var(--text-base);padding:.15rem .4rem;border:1px solid var(--stroke);border-radius:var(--radius-sm);background:#fff;color:#232b3e;cursor:pointer}.product-detail-gen-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #0e7c6626}.product-detail-actions{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e6ea}.product-detail-disable-btn{font-family:var(--font-sans);font-size:var(--text-base);padding:.4rem .9rem;border:1px solid #d95f5f;border-radius:var(--radius-sm);background:#fff;color:#d95f5f;cursor:pointer;width:100%}.product-detail-disable-btn:hover{background:#fdf2f2}.product-detail-enable-btn{font-family:var(--font-sans);font-size:var(--text-base);padding:.4rem .9rem;border:1px solid var(--accent);border-radius:var(--radius-sm);background:#fff;color:var(--accent);cursor:pointer;width:100%}.product-detail-enable-btn:hover{background:#eef6f4}.bom-bucket-header-row{background:#eef2e8}.bom-bucket-header{font-weight:700;font-size:var(--text-sm);letter-spacing:.06em;color:#3f5a4f;padding:.5rem .52rem!important}.suppliers-bom-filters{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.suppliers-active-sort-chip{display:inline-flex;align-items:center;font-size:var(--text-sm);color:var(--accent);background:var(--accent-bg, #e6f3f0);border-radius:var(--radius-sm);padding:.2rem .6rem;margin-bottom:.35rem}.suppliers-filter-toggle{display:inline-flex;gap:.35rem;align-items:center;font-size:var(--text-base);color:var(--text-secondary);cursor:pointer;white-space:nowrap}.active2026-badge{display:inline-block;background:#e6f4ea;color:#1a7f37;font-size:var(--text-sm);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-sm);margin-left:.35rem}.product-enabled-badge{display:inline-block;background:#e6f4ea;color:#1a7f37;font-size:var(--text-sm);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-sm)}.product-disabled-badge{display:inline-block;background:#fce8e8;color:#b53030;font-size:var(--text-sm);font-weight:600;padding:.12rem .5rem;border-radius:var(--radius-sm)}.bom-disable-btn{border:0;background:transparent;color:#8a93a8;cursor:pointer;font-size:var(--text-md);padding:0 .25rem;line-height:1}.bom-disable-btn:hover{color:var(--bad)}.row-excluded .bom-disable-btn:hover{color:var(--good)}.gen-badge{display:inline-block;font-size:var(--text-xs);font-weight:600;padding:.1rem .45rem;border-radius:var(--radius-sm);letter-spacing:.01em}.gen-badge-1{background:#ede7f6;color:#5e35b1}.gen-badge-2{background:#e6f4ea;color:#1a7f37}.gen-badge-X{background:#e3f2fd;color:#1565c0}.gen-badge-glow{background:#fff8e1;color:#e65100}.gen-badge-nonglow{background:#eceff1;color:#455a64}.kit-badge{display:inline-block;background:#fef3cd;color:#856404;font-size:var(--text-xs);font-weight:700;padding:.08rem .38rem;border-radius:var(--radius-sm);margin-left:.35rem;vertical-align:middle;letter-spacing:.04em}.buildable-count{font-weight:700;color:#1a7f37}.buildable-zero{font-weight:700;color:#b53030}.buildable-count-large{font-size:var(--text-xl);font-weight:800;color:#1a7f37}.buildable-count-large.zero{color:#b53030}.kit-bottleneck-row{background:#fff8e1}.suppliers-disabled-block{margin-top:.5rem}.suppliers-disabled-block summary{cursor:pointer;color:var(--text-secondary);font-weight:600;font-size:var(--text-base)}.detail-hint{color:var(--text-secondary);font-size:var(--text-base);margin-left:.3rem}.detail-section-heading{margin:.5rem 0 .2rem}.detail-list{margin:0;padding-left:1.2rem;font-size:var(--text-base)}.detail-code{color:var(--text-secondary);font-size:var(--text-sm)}.kit-composition-row{display:flex;align-items:baseline;gap:.5rem;margin:.2rem 0 .4rem}.kit-composition-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase}.bom-action-cell{text-align:center;width:36px}.sort-clear-btn{margin-left:.5rem;padding:0 .4rem;font-size:var(--text-sm)}.bom-table-compact{font-size:var(--text-base)}.bom-empty-message{color:var(--text-secondary);font-size:var(--text-base)}.bom-disabled-table{margin-top:.5rem}@media(max-width:900px){.suppliers-preview-panel{right:.5rem;left:.5rem;width:auto}.supplier-country-editor-controls{width:100%}.supplier-country-editor-controls input{min-width:0;flex:1 1 auto}}@media(max-width:900px){.suppliers-panel{padding:.7rem}.suppliers-search-form input{min-width:0;width:100%}.suppliers-table{font-size:var(--text-sm)}.suppliers-table th,.suppliers-table td{padding:.38rem}}.hw-report-panel{max-width:1200px;margin:0 auto;padding:1.5rem 2rem 3rem}.hw-report-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}.hw-report-header h2{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--text-primary, #1a1a2e)}.hw-report-timestamp{font-size:var(--text-sm);color:var(--text-secondary)}.hw-report-summary{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.hw-summary-card{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem}.hw-summary-value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-mono, "IBM Plex Mono", monospace);color:var(--accent, #0e7c66)}.hw-summary-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.hw-report-table-wrap{overflow:auto;max-height:calc(100vh - 300px);border:1px solid var(--border);border-radius:var(--radius-md)}.hw-report-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.hw-report-table th,.hw-report-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--border)}.hw-report-table th{background:var(--surface);font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;position:sticky;top:0;z-index:1}.hw-sortable{cursor:pointer;user-select:none}.hw-sortable:hover{color:var(--text-primary)}.hw-sort-arrow{font-size:var(--text-xs)}.hw-report-table tbody tr:hover{background:var(--hover-bg)}.hw-report-table thead th{border-bottom:2px solid #94a3b8}.hw-group-header td{background:#e2e8f0;border-bottom:1px solid #94a3b8;border-top:2px solid #94a3b8;padding:.45rem .65rem;position:sticky;top:34px;z-index:1}.hw-report-table tbody:first-of-type .hw-group-header td{border-top:none}.hw-group-label{font-weight:700;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.05em;color:#334155}.hw-group-total{font-weight:600;font-size:var(--text-xs);color:#475569}.hw-group-header:hover td{background:#e2e8f0}.hw-grand-total td{background:#cbd5e1;border-top:2px solid #64748b;border-bottom:none;padding:.5rem .65rem;position:sticky;bottom:0;z-index:1}.hw-grand-total-cell{font-weight:700;font-size:var(--text-sm);color:#1e293b}.hw-grand-total .hw-group-label{font-size:var(--text-sm);color:#1e293b}.hw-col-code{min-width:60px;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-weight:600;white-space:nowrap}.hw-col-customer{min-width:160px}.hw-col-meta{text-align:center;white-space:nowrap}.hw-col-week{text-align:center;vertical-align:middle;font-family:var(--font-mono, "IBM Plex Mono", monospace);min-width:62px}.hw-heat-good{background:#d1fae5;color:#065f46}.hw-heat-low{background:#fef3c7;color:#92400e}.hw-heat-high{background:#fee2e2;color:#991b1b}.hw-report-no-data{text-align:center;padding:2rem;color:var(--text-secondary)}.hw-report-loading,.hw-report-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.hw-report-empty h2{margin:0 0 .5rem}.hw-report-error{text-align:center;padding:2rem}.hw-report-error p{color:var(--bad);margin-bottom:1rem}.hw-unmapped-row td{opacity:.8}.hw-dismiss-btn{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border:1px solid #cbd5e1;border-radius:var(--radius-sm);background:#fff;color:#94a3b8;font-size:14px;font-weight:700;line-height:1;cursor:pointer;padding:0;transition:background .15s,color .15s,border-color .15s}.hw-dismiss-btn:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.hw-dismiss-btn-off{background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.hw-dismiss-btn-off:hover{background:#d1fae5;color:#059669;border-color:#6ee7b7}.hw-unmapped-dismissed td{opacity:.35;text-decoration:line-through}.hw-unmapped-dismissed td:first-child{text-decoration:none;opacity:.6}.hw-unmapped-dismissed .hw-col-week{background:none!important}.hw-cell-ratio{display:inline-flex;align-items:baseline;justify-content:center;gap:1px;white-space:nowrap}.hw-cell-ratio-num{font-weight:700}.hw-cell-ratio-sep{opacity:.4;margin:0 1px}.hw-cell-ratio-den{opacity:.55;font-weight:400}.hw-customer-hover{cursor:default}.hw-detail-modal{position:fixed;top:60px;right:1rem;width:400px;max-height:calc(100vh - 80px);overflow-y:auto;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 10px 25px rgba(0,0,0,.12));padding:1rem 1.15rem;z-index:20;pointer-events:none;font-size:var(--text-sm)}.hw-detail-modal-timeline{width:440px}.hw-detail-header{font-weight:700;font-size:var(--text-base);margin-bottom:.6rem;color:var(--text-primary)}.hw-detail-row{display:flex;justify-content:space-between;padding:.2rem 0}.hw-detail-label{color:var(--text-secondary)}.hw-detail-value{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-weight:600}.hw-detail-divider{border-top:1px solid var(--border);margin:.5rem 0}.hw-detail-sub{padding:.25rem 0;border-bottom:1px solid var(--border)}.hw-detail-sub:last-child{border-bottom:none}.hw-detail-sub-date{font-weight:600;margin-right:.5rem}.hw-detail-sub-stats{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-size:var(--text-xs);color:var(--text-secondary)}.hw-detail-issues{margin-top:.2rem;display:flex;flex-wrap:wrap;gap:.25rem}.hw-detail-issue{display:inline-block;font-size:var(--text-xs);background:#e0e7ff;color:#3730a3;border-radius:var(--radius-sm);padding:1px 6px}.hw-report-legend{display:flex;align-items:center;gap:1rem;margin-top:.75rem;font-size:var(--text-sm);color:var(--text-secondary)}.hw-legend-item{display:flex;align-items:center;gap:.3rem}.hw-legend-swatch{display:inline-block;width:14px;height:14px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.1)}.hw-has-shipment{position:relative}.hw-has-shipment:after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 10px 10px 0;border-color:transparent #0e7c66 transparent transparent}.hw-detail-shipment{padding:.3rem 0;border-bottom:1px solid var(--border)}.hw-detail-shipment:last-child{border-bottom:none}.hw-detail-shipment-header{display:flex;justify-content:space-between;align-items:baseline}.hw-detail-shipment-code{font-weight:600;font-family:var(--font-mono);font-size:var(--text-xs)}.hw-detail-shipment-class{font-size:var(--text-xs);background:#dbeafe;color:#1e40af;border-radius:var(--radius-sm);padding:1px 6px}.hw-detail-shipment-date{font-size:var(--text-xs);color:var(--text-secondary);margin-top:.1rem}.hw-detail-shipment-items{display:flex;flex-wrap:wrap;gap:.2rem;margin-top:.2rem}.hw-detail-shipment-item{font-size:var(--text-xs);font-family:var(--font-mono);background:#f3f4f6;color:var(--text-secondary);border-radius:var(--radius-sm);padding:1px 5px}.hw-legend-shipment{position:relative;background:#fff}.hw-legend-shipment:after{content:"";position:absolute;top:0;right:0;border-style:solid;border-width:0 8px 8px 0;border-color:transparent #0e7c66 transparent transparent}.hw-timeline-meta{display:block;font-size:var(--text-xs);font-weight:400;color:var(--text-secondary);margin-top:.15rem}.hw-timeline-list{display:flex;flex-direction:column;gap:0}.hw-timeline-row{display:grid;grid-template-columns:56px auto 1fr;gap:.5rem;align-items:baseline;padding:.4rem 0;border-bottom:1px solid var(--border)}.hw-timeline-row:last-child{border-bottom:none}.hw-timeline-date{font-weight:600;font-size:var(--text-xs);white-space:nowrap;color:var(--text-primary)}.hw-timeline-badge{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:1px 6px;border-radius:var(--radius-sm);white-space:nowrap}.hw-timeline-badge-report{background:#fee2e2;color:#991b1b}.hw-timeline-badge-shipment{background:#d1fae5;color:#065f46}.hw-timeline-detail{font-size:var(--text-xs);color:var(--text-secondary);display:flex;flex-wrap:wrap;gap:.25rem;align-items:baseline}.hw-timeline-class{font-size:10px;font-weight:600;background:#dbeafe;color:#1e40af;border-radius:var(--radius-sm);padding:1px 5px;white-space:nowrap}.hw-timeline-so{font-family:var(--font-mono);font-size:10px;color:var(--text-secondary);opacity:.7}.sa-report-panel{max-width:1400px;margin:0 auto;padding:1.5rem 2rem 3rem}.sa-report-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.2rem}.sa-report-header h2{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--text-primary, #1a1a2e)}.sa-report-timestamp{font-size:var(--text-sm);color:var(--text-secondary)}.sa-report-summary{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.sa-summary-card{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem}.sa-summary-value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-mono, "IBM Plex Mono", monospace);color:var(--accent, #0e7c66)}.sa-summary-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.sa-card-sparkline{margin-top:.25rem;opacity:.7}.sa-chart-toggle{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.35rem .9rem;font-size:var(--text-sm);color:var(--text-secondary);cursor:pointer;margin-bottom:1rem;transition:background .15s}.sa-chart-toggle:hover{background:var(--hover-bg);color:var(--ink)}.sa-sortable{cursor:pointer;user-select:none}.sa-sortable:hover{color:var(--accent)}.sa-sort-arrow{font-size:.6em;opacity:.7}.sa-chart-container{margin-bottom:1.5rem}.sa-chart-svg{width:100%;max-width:560px;height:auto}.sa-bar-games{fill:var(--accent, #0e7c66);opacity:.85}.sa-bar-players{fill:#7dd3fc;opacity:.85}.sa-axis-label{font-size:9px;fill:var(--text-secondary, #6b7280);font-family:var(--font-mono, "IBM Plex Mono", monospace)}.sa-axis-players{fill:#0ea5e9}.sa-grid-line{stroke:var(--border, #e5e7eb);stroke-width:.5}.sa-chart-legend{display:flex;gap:1rem;margin-top:.35rem;font-size:var(--text-sm);color:var(--text-secondary)}.sa-swatch-games{background:var(--accent, #0e7c66)}.sa-swatch-players{background:#7dd3fc}.sa-report-table-wrap{overflow:auto;max-height:calc(100vh - 420px);border:1px solid var(--border);border-radius:var(--radius-md)}.sa-report-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.sa-report-table th,.sa-report-table td{padding:.45rem .55rem;text-align:left;border-bottom:1px solid var(--border)}.sa-report-table th{background:var(--surface);font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:nowrap;position:sticky;top:0;z-index:1}.sa-report-table tbody tr:hover{background:var(--hover-bg)}.sa-col-site{min-width:180px;white-space:nowrap;font-weight:600}.sa-client-link{margin-left:.4rem;font-weight:400}.sa-client-code{margin-left:.4rem;font-weight:400;font-size:.75rem;color:var(--text-secondary)}.sa-col-week{text-align:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);min-width:62px;vertical-align:middle}.sa-col-week .sa-cell-games,.sa-col-total .sa-cell-games,.sa-col-avg .sa-cell-games{display:block;font-size:var(--text-sm);font-weight:600;line-height:1.2}.sa-col-week .sa-cell-players,.sa-col-total .sa-cell-players,.sa-col-avg .sa-cell-players{display:block;font-size:var(--text-xs);color:var(--text-secondary);line-height:1.2}.sa-col-spark{text-align:center;width:80px}.sa-col-total,.sa-col-avg{text-align:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);white-space:nowrap}.sa-sparkline{vertical-align:middle}.sa-heat-low{background:#e0f2fe}.sa-heat-med{background:#bae6fd}.sa-heat-high{background:#7dd3fc;color:#0c4a6e}.sa-report-legend{display:flex;align-items:center;gap:1rem;margin-top:.75rem;font-size:var(--text-sm);color:var(--text-secondary)}.sa-legend-item{display:flex;align-items:center;gap:.3rem}.sa-legend-swatch{display:inline-block;width:14px;height:14px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.1)}.sa-legend-hint{font-style:italic}.sa-report-loading,.sa-report-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.sa-report-empty h2{margin:0 0 .5rem}.sa-report-error{text-align:center;padding:2rem}.sa-report-error p{color:var(--bad);margin-bottom:1rem}.reports-panel{margin:0}.reports-tab-nav{display:flex;gap:0;border-bottom:2px solid var(--border);padding:0 1rem}.reports-tab{padding:.65rem 1.2rem;font-size:var(--text-base);font-weight:600;color:var(--text-secondary);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .15s,border-color .15s}.reports-tab:hover{color:var(--text-primary, #1a1a2e)}.reports-tab.active{color:var(--accent, #0e7c66);border-bottom-color:var(--accent, #0e7c66)}.reports-tab-archived{opacity:.55;font-style:italic}.reports-archived-badge{display:inline-block;font-size:.6rem;text-transform:uppercase;letter-spacing:.04em;background:var(--warn, #b88516);color:#fff;border-radius:3px;padding:.1rem .35rem;margin-left:.4rem;vertical-align:middle;font-style:normal;font-weight:700}.reports-tab-spacer{flex:1}.reports-tab-action{padding:.45rem .8rem;font-size:var(--text-sm);color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;margin:.3rem 0 .3rem .4rem;transition:background .15s,color .15s}.reports-tab-action:hover{background:var(--hover-bg);color:var(--ink)}.reports-tab-action.active{background:var(--surface);color:var(--accent);border-color:var(--accent)}.reports-tab-archive-btn{color:var(--bad, #b53030);border-color:var(--bad, #b53030)}.reports-tab-archive-btn:hover{background:#fef2f2}.reports-confirm-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.reports-confirm-dialog{background:var(--panel, #fff);border-radius:var(--radius-lg, 12px);padding:1.5rem 2rem;max-width:420px;box-shadow:0 8px 32px #0003}.reports-confirm-dialog p{margin:0 0 1.2rem;font-size:var(--text-base);line-height:1.5}.reports-confirm-actions{display:flex;gap:.75rem;justify-content:flex-end}.rp-report-panel{padding:.75rem 1rem 0;display:flex;flex-direction:column;height:calc(100vh - 52px);overflow:hidden}.rp-report-header{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:.5rem}.rp-report-header h2{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--text-primary, #1a1a2e)}.rp-report-actions{display:flex;align-items:center;gap:1rem}.rp-report-timestamp{font-size:var(--text-sm);color:var(--text-secondary)}.rp-csv-btn{font-size:var(--text-sm);font-weight:600;padding:.35rem .8rem;background:var(--accent, #0e7c66);color:#fff;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .15s}.rp-csv-btn:hover{opacity:.85}.rp-report-summary{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.rp-summary-card{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.25rem}.rp-summary-value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-mono, "IBM Plex Mono", monospace);color:var(--accent, #0e7c66)}.rp-summary-label{font-size:var(--text-sm);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.03em}.rp-group-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:.5rem;font-size:var(--text-base)}.rp-group-controls label{color:var(--text-secondary);font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.03em}.rp-group-btn{padding:.3rem .7rem;font-size:var(--text-sm);font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s}.rp-group-btn:hover{border-color:var(--accent, #0e7c66);color:var(--text-primary, #1a1a2e)}.rp-group-btn.active{background:var(--accent, #0e7c66);border-color:var(--accent, #0e7c66);color:#fff}.rp-gen1-filter{display:flex;align-items:center;gap:.35rem;margin-left:.75rem;padding-left:.75rem;border-left:1px solid var(--border);font-size:var(--text-sm);font-weight:500;color:var(--text-secondary);cursor:pointer;user-select:none}.rp-gen1-filter input{accent-color:var(--accent, #0e7c66)}.rp-report-table-wrap{border:1px solid var(--border);border-radius:var(--radius-md) var(--radius-md) 0 0;overflow:auto;flex:1;min-height:0;position:relative}.rp-report-table{width:100%;border-collapse:collapse;font-size:var(--text-base);table-layout:fixed}.rp-report-table th,.rp-report-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--border)}.rp-report-table th{background:var(--surface);font-weight:600;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.04em;color:var(--text-secondary);white-space:normal;word-wrap:break-word;position:sticky;top:0;z-index:10;box-shadow:0 1px 0 var(--border)}.rp-col-name,.rp-col-supplier{word-wrap:break-word;overflow-wrap:break-word;white-space:normal}.rp-col-sku,.rp-col-cost,.rp-col-avg,.rp-col-inv,.rp-col-sos,.rp-col-month{overflow:hidden;text-overflow:ellipsis}.rp-resize-handle{position:absolute;right:0;top:0;bottom:0;width:5px;cursor:col-resize;user-select:none;z-index:11}.rp-resize-handle:hover,.rp-resize-handle.rp-resizing{background:var(--accent, #0e7c66);opacity:.4}.rp-report-table tbody tr:hover{background:var(--hover-bg)}.rp-col-sku{font-family:var(--font-mono, "IBM Plex Mono", monospace);font-weight:600;font-size:var(--text-base);white-space:nowrap}.rp-col-name{min-width:160px}.rp-col-supplier{min-width:120px}.rp-col-cost{text-align:right;font-family:var(--font-mono, "IBM Plex Mono", monospace);white-space:nowrap}.rp-col-avg{text-align:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);white-space:nowrap}.rp-col-inv{text-align:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);font-weight:600;white-space:nowrap}.rp-col-sos{text-align:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);white-space:nowrap;color:var(--text-secondary)}.rp-col-month{text-align:center;font-family:var(--font-mono, "IBM Plex Mono", monospace);min-width:54px}.rp-country-tag{display:inline-block;font-size:var(--text-xs);font-weight:600;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);border-radius:var(--radius-sm);padding:0 .3rem;margin-left:.4rem;vertical-align:middle;line-height:1.5}.rp-inv-warning{background:#fef3c7;color:#92400e}.rp-inv-critical{background:#fee2e2;color:#991b1b}.rp-summary-card-alert{border-color:#f59e0b}.rp-summary-card-alert .rp-summary-value{color:#d97706}.rp-row-alert{border-left:3px solid #f59e0b}.rp-totals-row{font-weight:700;background:var(--surface)}.rp-totals-row td{border-bottom:none}.rp-report-no-data{text-align:center;padding:2rem;color:var(--text-secondary)}.rp-report-loading,.rp-report-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.rp-report-empty h2{margin:0 0 .5rem}.rp-report-error{text-align:center;padding:2rem}.rp-report-error p{color:var(--bad);margin-bottom:1rem}.rp-report-legend{display:flex;align-items:center;gap:1rem;margin-top:.75rem;font-size:var(--text-sm);color:var(--text-secondary)}.rp-report-legend-inline{display:flex;align-items:center;gap:.5rem;margin-left:auto;font-size:var(--text-sm);color:var(--text-secondary)}.rp-legend-btn{display:flex;align-items:center;gap:.3rem;padding:.2rem .55rem;font-size:var(--text-sm);font-weight:500;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-secondary);cursor:pointer;transition:all .15s;white-space:nowrap}.rp-legend-btn:hover{border-color:var(--accent, #0e7c66);color:var(--text-primary, #1a1a2e)}.rp-legend-btn.active{background:var(--accent, #0e7c66);border-color:var(--accent, #0e7c66);color:#fff}.rp-legend-btn.active .rp-legend-swatch{border-color:#ffffff4d}.rp-legend-clear{font-size:var(--text-sm);padding:.2rem .4rem}.rp-report-table th.rp-frozen-col,.rp-report-table td.rp-frozen-col{position:sticky;left:0;z-index:5;background:#fff;box-shadow:1px 0 0 var(--border)}.rp-report-table th.rp-frozen-col{z-index:12;background:var(--surface)}.rp-group-header td.rp-frozen-col{z-index:11;background:var(--surface)}.rp-report-table tbody tr:hover td.rp-frozen-col{background:var(--hover-bg)}.rp-totals-row td.rp-frozen-col{background:var(--surface)}.rp-row-alert td.rp-frozen-col{background:#fff}.rp-legend-item{display:flex;align-items:center;gap:.3rem}.rp-legend-swatch{display:inline-block;width:14px;height:14px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.1)}.rp-group-header{cursor:pointer;user-select:none}.rp-group-header td{background:var(--surface);font-weight:700;font-size:var(--text-base);padding:.55rem .65rem;border-bottom:1px solid var(--border);border-top:2px solid var(--border);position:sticky;top:30px;z-index:9}.rp-group-header:first-child td{border-top:none}.rp-group-header:hover td{background:var(--hover-bg, #e8eeeb)}.rp-group-toggle{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:6px solid var(--text-secondary);margin-right:.5rem;vertical-align:middle;transition:transform .15s}.rp-group-toggle.collapsed{transform:rotate(-90deg)}.rp-group-label{color:var(--text-primary, #1a1a2e)}.rp-group-summary{margin-left:.75rem;font-weight:500;font-size:var(--text-sm);color:var(--text-secondary)}.detail-extra-section{margin-top:.75rem;padding-top:.75rem;border-top:1px solid #e2e6ea}.detail-extra-section h4{margin:0 0 .4rem;font-size:var(--text-base);font-weight:700;color:#2d3548}.detail-extra-grid{display:grid;gap:.35rem}.detail-extra-field{display:flex;gap:.6rem;align-items:baseline;font-size:var(--text-base)}.detail-extra-label{color:var(--text-secondary);min-width:130px;flex-shrink:0;font-size:var(--text-sm);text-transform:uppercase;letter-spacing:.02em}.detail-extra-value-mono{font-family:var(--mono);font-size:var(--text-sm)}.detail-extra-tags{display:flex;flex-wrap:wrap;gap:.25rem}.detail-extra-tag{display:inline-block;background:#eef6f3;color:#0e7c66;font-size:var(--text-sm);font-weight:500;padding:.1rem .45rem;border-radius:var(--radius-sm)}.detail-extra-text-block{background:#f8fafc;border:1px solid #e5e7eb;border-radius:var(--radius-md);padding:.5rem .65rem;white-space:pre-wrap;font-size:var(--text-sm);color:#374151;max-height:120px;overflow-y:auto}.detail-sub-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);margin-top:.35rem}.detail-sub-table th,.detail-sub-table td{padding:.35rem .45rem;border-bottom:1px solid #edf1f8;text-align:left}.detail-sub-table th{background:var(--surface);color:var(--text-secondary);font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.03em}.detail-sub-table td.num{text-align:right;font-family:var(--mono)}.detail-sub-table-empty{color:var(--text-secondary);font-size:var(--text-sm);padding:.5rem 0}.hidden-fields-disclosure{margin-top:.75rem;border:1px solid #e5e7eb;border-radius:var(--radius-md);background:#fafbfc}.hidden-fields-summary{cursor:pointer;padding:.5rem .7rem;font-size:var(--text-sm);color:var(--text-secondary);font-weight:500;user-select:none}.hidden-fields-summary:hover{color:#374151}.hidden-fields-grid{padding:.4rem .7rem .6rem;display:grid;gap:.25rem}.hidden-fields-grid .detail-extra-field{opacity:.6}.shipping-code-tags{display:inline-flex;flex-wrap:wrap;gap:.2rem;margin-left:.3rem}.shipping-code-tag{display:inline-block;background:#e0f2fe;color:#0c4a6e;font-size:var(--text-xs);font-weight:500;padding:.06rem .35rem;border-radius:var(--radius-sm);font-family:var(--mono)}.order-observations-row td{padding:0 .52rem .5rem;border-top:none;background:#f8fafc}.order-observations-text{white-space:pre-wrap;font-size:var(--text-sm);color:#374151;max-height:100px;overflow-y:auto}.detail-section-loading{color:var(--text-secondary);font-size:var(--text-sm);padding:.5rem 0}.orders-tab-toggle{display:flex;gap:0;border:1px solid #d0d7e6;border-radius:var(--radius-md);overflow:hidden}.orders-tab-toggle button{border:none;background:#f8fafc;color:var(--text-secondary);padding:.5rem 1.2rem;font-size:var(--text-md);font-weight:600;cursor:pointer;transition:background .15s,color .15s}.orders-tab-toggle button+button{border-left:1px solid #d0d7e6}.orders-tab-toggle button:hover{background:#eef2f7}.orders-tab-toggle button.active{background:var(--accent);color:#fff}.orders-count{color:var(--text-secondary);font-size:var(--text-sm)}.status-badge.status-overdue{background:#fef2f2;color:#b91c1c;border-color:#fecdd3}.so-table-header{display:flex;align-items:baseline;gap:.75rem}.so-table-header h2{margin-bottom:0}.so-filter-bar{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.6rem}.so-filter-chip{display:inline-flex;align-items:center;gap:.25rem;padding:3px 10px;border-radius:var(--radius-pill);font-size:var(--text-xs);font-weight:600;letter-spacing:.2px;cursor:pointer;border:1px solid var(--border-default);background:var(--bg-surface);color:var(--text-secondary);transition:opacity .1s;opacity:.5}.so-filter-chip.active{opacity:1}.so-filter-chip.status-open.active,.so-filter-chip.status-shipped.active{background:#dbeafe;color:#1e3a8a;border-color:#bfdbfe}.so-filter-chip.status-delivered.active{background:#d1e7dd;color:#0f5132;border-color:#badbcc}.so-filter-chip.status-overdue.active{background:#fef2f2;color:#b91c1c;border-color:#fecdd3}.so-filter-chip.status-closed.active{background:#e5e7eb;color:#374151;border-color:#d1d5db}.so-filter-chip.status-archived.active{background:#f3f4f6;color:#6b7280;border-color:#e5e7eb}.so-filter-count{font-weight:400;opacity:.7}.so-status-detail{display:block;font-size:var(--text-xs);color:var(--text-secondary);font-weight:400;margin-top:1px}.po-records-toggle{border:none;background:none;color:var(--accent);font-weight:600;font-size:var(--text-md);cursor:pointer;padding:.3rem 0}.po-records-toggle:hover{text-decoration:underline}.shipping-code-wrapper{position:relative;display:inline-block}.shipping-code-tag.clickable{cursor:pointer;border:1px solid transparent;transition:border-color .15s}.shipping-code-tag.clickable:hover{border-color:#7dd3fc}.shipping-popover{position:absolute;top:100%;left:0;z-index:150;margin-top:4px;background:#fff;border:1px solid #d7dbe4;border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:.5rem .75rem;min-width:200px;white-space:nowrap}.shipping-popover-row{display:flex;justify-content:space-between;gap:1rem;padding:.15rem 0;font-size:var(--text-sm)}.shipping-popover-label{color:var(--text-secondary);font-weight:500}.shipping-popover-loading{font-size:var(--text-sm);color:var(--text-secondary)}.warehouse-section{margin-top:1.5rem;border-top:1px solid #e5eaf2;padding-top:1rem}.warehouse-toggle{border:none;background:none;color:var(--accent);font-weight:600;font-size:var(--text-md);cursor:pointer;padding:.3rem 0}.warehouse-toggle:hover{text-decoration:underline}.gs-panel{max-width:1400px;margin:0 auto;padding:1.5rem 2rem}.gs-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1.25rem}.gs-header h2{margin:0;font-size:var(--text-xl)}.gs-timestamp{font-size:var(--text-sm);color:var(--text-secondary)}.gs-summary{display:flex;gap:1rem;margin-bottom:1.25rem;flex-wrap:wrap}.gs-summary-card{flex:1;min-width:140px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:.75rem 1rem;display:flex;flex-direction:column}.gs-summary-value{font-size:var(--text-2xl);font-weight:700;color:var(--text-primary)}.gs-summary-label{font-size:var(--text-sm);color:var(--text-secondary)}.gs-search-row{display:flex;align-items:center;gap:1rem;margin-bottom:.75rem}.gs-search-input{max-width:280px;padding:.4rem .65rem;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:var(--text-sm);background:var(--surface);color:var(--text-primary)}.gs-result-count{font-size:var(--text-sm);color:var(--text-secondary)}.gs-table-wrap{overflow-x:auto}.gs-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.gs-table th,.gs-table td{padding:.5rem .65rem;border-bottom:1px solid var(--border);text-align:left;white-space:nowrap}.gs-th-sort{cursor:pointer;user-select:none}.gs-th-sort:hover,.gs-th-active{color:var(--accent)}.gs-col-num{text-align:right;font-variant-numeric:tabular-nums}.gs-col-location{display:flex;flex-direction:column;gap:.1rem}.gs-fec-name{font-weight:500}.gs-fec-code{font-size:.75rem;color:var(--text-secondary)}.gs-client-link{font-size:.75rem;color:var(--link, #2563eb);background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;text-decoration-color:transparent;font-family:inherit}.gs-client-link:hover{text-decoration-color:var(--link, #2563eb);color:var(--link-hover, #1d4ed8)}.gs-row-clickable{cursor:pointer}.gs-row-clickable:hover td{background:var(--hover)}.gs-util-badge{display:inline-block;padding:.15rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.gs-util-high{background:#dcfce7;color:#166534}.gs-util-med{background:#fef9c3;color:#854d0e}.gs-util-low{background:#fee2e2;color:#991b1b}.gs-back-btn{background:none;border:none;color:var(--accent);font-size:var(--text-sm);cursor:pointer;padding:.25rem 0;margin-bottom:.75rem}.gs-back-btn:hover{text-decoration:underline}.gs-heatmap-header{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap;margin-bottom:1rem}.gs-heatmap-header h3{margin:0;font-size:var(--text-lg)}.gs-client-code{font-size:var(--text-sm);color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);padding:.1rem .45rem;border-radius:var(--radius-sm)}.gs-heatmap-meta{font-size:var(--text-sm);color:var(--text-secondary)}.gs-heatmap-grid-wrap{overflow-x:auto;margin-bottom:.75rem}.gs-heatmap-grid{border-collapse:collapse;font-size:var(--text-sm)}.gs-heatmap-grid th,.gs-heatmap-grid td{padding:.35rem .5rem;text-align:center;border:1px solid var(--border);min-width:42px}.gs-hm-day-col{width:48px}.gs-hm-hour-col{font-weight:600;font-size:.7rem;color:var(--text-secondary)}.gs-hm-day-label{font-weight:600;text-align:left;background:var(--surface)}.gs-hm-cell{font-variant-numeric:tabular-nums;font-size:.8rem}.gs-heat-empty{background:var(--surface);color:var(--text-secondary)}.gs-heat-low{background:#dbeafe;color:#1e40af}.gs-heat-med{background:#93c5fd;color:#1e3a5f}.gs-heat-high{background:#3b82f6;color:#fff}.gs-heatmap-legend{display:flex;align-items:center;gap:.75rem;font-size:var(--text-sm);color:var(--text-secondary)}.gs-legend-label{font-weight:500}.gs-legend-item{display:flex;align-items:center;gap:.25rem}.gs-legend-swatch{display:inline-block;width:14px;height:14px;border-radius:var(--radius-sm);border:1px solid rgba(0,0,0,.1)}.gs-loading,.gs-empty{text-align:center;padding:3rem 2rem;color:var(--text-secondary)}.gs-empty h2{margin:0 0 .5rem}.gs-error{text-align:center;padding:2rem}.gs-error p{color:var(--bad);margin-bottom:1rem}.sync-stale-warning{background:color-mix(in srgb,var(--warn) 12%,var(--panel));border:1px solid color-mix(in srgb,var(--warn) 40%,transparent);color:var(--warn);padding:6px 12px;border-radius:var(--radius-sm);font-size:var(--text-sm);margin-bottom:8px}.sync-fresh-note{color:var(--text-secondary);font-size:var(--text-xs);margin-left:8px}.priority-modal{width:min(1200px,96vw);min-height:80vh;max-height:92vh;display:flex;flex-direction:column;gap:0;overflow:hidden}.priority-modal-header{padding:1rem 1.2rem .6rem;border-bottom:1px solid var(--stroke)}.priority-modal-header h2{margin:0 0 .25rem;font-size:var(--text-lg);color:var(--ink)}.priority-modal-header p{margin:0;font-size:var(--text-sm);color:var(--muted)}.priority-modal-columns{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--stroke);flex:1;min-height:0;overflow:hidden}.priority-modal-col{background:var(--panel);display:flex;flex-direction:column;min-height:0}.priority-modal-col h3{margin:0;padding:.6rem .8rem;font-size:var(--text-base);font-weight:600;color:var(--ink);border-bottom:1px solid var(--stroke);flex-shrink:0}.priority-modal-list{flex:1;overflow-y:auto;padding:.4rem;display:flex;flex-direction:column;gap:2px}.priority-modal-item{display:flex;align-items:center;gap:.5rem;padding:.35rem .6rem;border-radius:var(--radius-sm);border:1px solid transparent;cursor:grab;font-size:var(--text-sm);background:var(--panel);user-select:none}.priority-modal-item:hover{border-color:color-mix(in srgb,var(--accent) 40%,transparent);background:var(--hover-bg)}.priority-modal-item-dragging{opacity:.4}.priority-modal-item-overlay{box-shadow:var(--shadow-md);border-color:var(--accent);background:var(--panel);cursor:grabbing}.priority-modal-item-rank{font-family:var(--mono);font-weight:700;color:var(--accent);min-width:1.6em;text-align:right;flex-shrink:0;align-self:flex-start;padding-top:.1rem}.priority-modal-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:.05rem}.priority-modal-item-so{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.priority-modal-item-customer{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);line-height:1.2}.priority-modal-item-meta{display:flex;flex-direction:column;align-items:flex-end;gap:.1rem;flex-shrink:0;align-self:flex-start;padding-top:.05rem}.priority-modal-item-equip{font-family:var(--mono);font-size:var(--text-xs);font-weight:600;color:var(--accent);white-space:nowrap}.priority-modal-item-age{font-family:var(--mono);font-size:var(--text-xs);color:var(--muted);white-space:nowrap}.priority-modal-item-age-warn{color:var(--amber);font-weight:600}.priority-modal-empty{padding:1.5rem .8rem;text-align:center;color:var(--muted);font-size:var(--text-sm);font-style:italic}.priority-modal-footer{display:flex;justify-content:flex-end;gap:.5rem;padding:.7rem 1.2rem;border-top:1px solid var(--stroke)}.priority-modal-footer .action-btn:first-child{background:var(--panel);color:var(--ink);border-color:var(--stroke)}.priority-modal-footer .action-btn:first-child:hover{background:var(--hover-bg)}.tk-report-panel{padding:1rem 1.5rem}.tk-report-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:1rem}.tk-report-header h2{margin:0;font-size:var(--text-lg)}.tk-filter-bar{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap;margin-bottom:1rem}.tk-filter-group{display:flex;gap:2px}.tk-filter-btn{padding:.3rem .65rem;font-size:var(--text-sm);border:1px solid var(--stroke);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:0}.tk-filter-group .tk-filter-btn:first-child{border-radius:6px 0 0 6px}.tk-filter-group .tk-filter-btn:last-child{border-radius:0 6px 6px 0}.tk-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.tk-search-input{padding:.3rem .65rem;font-size:var(--text-sm);border:1px solid var(--stroke);border-radius:6px;background:var(--panel);color:var(--ink);min-width:180px}.tk-table-wrap{overflow-x:auto;border:1px solid var(--stroke);border-radius:8px}.tk-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.tk-table th{text-align:left;padding:.5rem .6rem;border-bottom:2px solid var(--stroke);background:var(--surface);color:var(--muted);font-weight:600;white-space:nowrap}.tk-sortable{cursor:pointer;user-select:none}.tk-table td{padding:.45rem .6rem;border-bottom:1px solid var(--stroke);vertical-align:middle}.tk-row-unmapped{background:color-mix(in srgb,var(--bad) 6%,transparent)}.tk-subject-link{color:var(--accent);text-decoration:none;font-weight:500}.tk-subject-link:hover{text-decoration:underline}.tk-source-badge{display:inline-block;font-size:var(--text-xs);padding:.15rem .4rem;border-radius:4px;font-weight:600;white-space:nowrap}.tk-source-form{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.tk-source-email{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}.tk-source-voicemail{background:color-mix(in srgb,var(--accent-2) 15%,transparent);color:var(--accent-2)}.tk-source-phone{background:color-mix(in srgb,var(--muted) 15%,transparent);color:var(--muted)}.tk-status-badge{display:inline-block;font-size:var(--text-xs);padding:.15rem .4rem;border-radius:4px;font-weight:600}.tk-status-open{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.tk-status-closed{background:color-mix(in srgb,var(--muted) 12%,transparent);color:var(--muted)}.tk-customer-cell{display:flex;align-items:center;gap:.4rem}.tk-customer-code{font-weight:600;font-family:var(--mono);font-size:var(--text-sm)}.tk-mapping-badge{display:inline-block;font-size:var(--text-xs);padding:.1rem .35rem;border-radius:4px;font-weight:600;white-space:nowrap}.tk-badge-property{background:color-mix(in srgb,var(--good) 15%,transparent);color:var(--good)}.tk-badge-inferred{background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent)}.tk-badge-manual{background:color-mix(in srgb,#7c3aed 15%,transparent);color:#7c3aed}.tk-badge-unmapped{background:color-mix(in srgb,var(--bad) 15%,transparent);color:var(--bad)}.tk-signals{display:flex;flex-wrap:wrap;gap:.25rem;max-width:280px}.tk-signal-item{display:inline-block;font-size:var(--text-xs);padding:.1rem .3rem;border-radius:3px;background:var(--bg-alt);color:var(--muted);max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-assign-btn{padding:.2rem .5rem;font-size:var(--text-xs);border:1px solid var(--stroke);border-radius:4px;background:var(--panel);color:var(--accent);cursor:pointer;font-weight:600}.tk-assign-btn:hover{background:var(--hover-bg)}.tk-edit-inline{display:flex;flex-direction:column;gap:.25rem}.tk-edit-input{padding:.25rem .4rem;font-size:var(--text-sm);font-family:var(--mono);border:1px solid var(--accent);border-radius:4px;width:160px}.tk-edit-actions{display:flex;gap:.25rem}.tk-edit-actions button{padding:.15rem .4rem;font-size:var(--text-xs);border:1px solid var(--stroke);border-radius:4px;cursor:pointer}.tk-edit-actions button:first-child{background:var(--accent);color:#fff;border-color:var(--accent)}.tk-edit-actions button.secondary{background:var(--panel);color:var(--muted)}.tk-empty-row{text-align:center;color:var(--muted);padding:2rem!important}.tk-dropdown{position:relative}.tk-dropdown-list{position:absolute;top:100%;left:0;right:0;z-index:20;max-height:200px;overflow-y:auto;background:var(--panel);border:1px solid var(--stroke);border-radius:0 0 6px 6px;box-shadow:0 4px 12px #0000001f;min-width:220px}.tk-dropdown-item{display:flex;gap:.4rem;padding:.35rem .5rem;font-size:var(--text-sm);cursor:pointer;align-items:baseline}.tk-dropdown-item:hover{background:var(--hover-bg)}.tk-dropdown-item.active{background:color-mix(in srgb,var(--accent) 12%,transparent)}.tk-dropdown-clear{color:var(--bad);font-style:italic;border-bottom:1px solid var(--stroke)}.tk-dropdown-empty{color:var(--muted);font-style:italic;cursor:default}.tk-dropdown-code{font-family:var(--mono);font-weight:600;white-space:nowrap}.tk-dropdown-name{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-tooltip{position:absolute;z-index:20;min-width:240px;max-width:340px;background:var(--panel);border:1px solid var(--stroke);border-radius:8px;box-shadow:0 4px 16px #00000026;padding:.6rem .75rem;pointer-events:none}.tk-tooltip-row{display:flex;justify-content:space-between;gap:.75rem;padding:.15rem 0;font-size:var(--text-xs)}.tk-tooltip-label{color:var(--muted);white-space:nowrap}.tk-tooltip-val{font-weight:500;text-align:right;word-break:break-word}.gellet-panel{padding:0}.gellet-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:.75rem}.gellet-header h2{margin:0;font-size:var(--text-lg);font-weight:600}.gellet-timestamp{font-size:var(--text-xs);color:var(--muted)}.gellet-loading,.gellet-empty{padding:2rem;text-align:center;color:var(--muted)}.gellet-error{padding:2rem;text-align:center;color:var(--bad)}.gellet-error button{margin-top:.5rem}.gellet-no-data{padding:2rem;text-align:center;color:var(--muted);font-size:var(--text-sm)}.gellet-summary{display:flex;gap:.75rem;margin-bottom:1rem;flex-wrap:wrap}.gellet-summary-card{display:flex;flex-direction:column;align-items:center;background:var(--surface);border:1px solid var(--stroke);border-radius:var(--radius-md);padding:.5rem 1rem;min-width:100px}.gellet-summary-value{font-size:var(--text-xl);font-weight:700;font-family:var(--mono)}.gellet-summary-warn{color:var(--bad)}.gellet-summary-label{font-size:var(--text-xs);color:var(--muted);margin-top:.15rem}.gellet-table-wrap{overflow:auto;max-height:calc(100vh - 200px);margin-bottom:.5rem}.gellet-table{width:100%;border-collapse:collapse;font-size:var(--text-sm);white-space:nowrap;table-layout:fixed}.gellet-table th,.gellet-table td{padding:.3rem .5rem;border-bottom:1px solid var(--stroke);text-align:left}.gellet-table thead th{background:var(--bg-alt);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:2;white-space:normal;line-height:1.3;vertical-align:bottom}.gellet-col-expand{width:20px;padding-left:.3rem;padding-right:0}.gellet-col-months,.gellet-col-weeks{width:72px;text-align:right;font-family:var(--mono);font-size:var(--text-xs)}.gellet-col-burn{width:80px;text-align:right;font-family:var(--mono);font-size:var(--text-xs)}.gellet-burn-default{font-style:italic;opacity:.7}.gellet-col-code{width:66px;font-family:var(--mono);font-size:var(--text-xs);text-align:left}.gellet-col-name{width:auto;overflow:hidden;text-overflow:ellipsis}.gellet-col-locs{width:42px;text-align:center;font-family:var(--mono);font-size:var(--text-xs)}.gellet-col-num{width:80px;text-align:right;font-family:var(--mono);font-size:var(--text-xs)}.gellet-col-date{width:88px;font-size:var(--text-xs);color:var(--muted)}.gellet-sortable{cursor:pointer;user-select:none}.gellet-sortable:hover{background:var(--hover-bg)}.gellet-th-label{display:inline}.gellet-sort-arrow{font-size:.6rem;opacity:.7}.gellet-heat-red{background:#b530301f;color:var(--bad);font-weight:600}.gellet-heat-yellow{background:#b885161f;color:var(--warn);font-weight:600}.gellet-heat-green{background:#4d9b2f14;color:var(--good)}.gellet-group-header{cursor:pointer;font-weight:600}.gellet-group-header:hover{background:var(--hover-bg)}.gellet-expand-toggle{display:inline-block;font-size:.6rem;color:var(--muted)}.gellet-child-row{font-size:var(--text-xs);color:var(--fg-secondary, var(--muted))}.gellet-indent{padding-left:1.5rem}.gellet-muted{color:var(--muted);font-style:italic}.gellet-code-link{background:none;border:none;padding:0;font:inherit;font-family:var(--mono);font-size:var(--text-xs);color:var(--accent);cursor:pointer;text-decoration:none}.gellet-code-link:hover{text-decoration:underline}.gellet-legend{display:flex;gap:1rem;flex-wrap:wrap;font-size:var(--text-xs);color:var(--muted);padding:.25rem 0}.gellet-legend-item{display:flex;align-items:center;gap:.3rem}.gellet-legend-format{font-style:italic}.gellet-legend-sep{width:1px;align-self:stretch;background:var(--stroke)}.gellet-legend-swatch{display:inline-block;width:12px;height:12px;border-radius:2px;border:1px solid var(--stroke)}.gellet-hover-modal{position:fixed;top:60px;right:1rem;width:380px;max-height:calc(100vh - 80px);overflow-y:auto;background:var(--panel);border:1px solid var(--stroke);border-radius:var(--radius-md);box-shadow:var(--shadow-lg, 0 10px 25px rgba(0,0,0,.12));padding:.75rem 1rem;z-index:20;pointer-events:none;font-size:var(--text-sm)}.gellet-hover-pinned{pointer-events:auto;border-color:var(--accent);box-shadow:var(--shadow-lg, 0 10px 25px rgba(0,0,0,.18))}.gellet-hover-close{float:right;background:none;border:none;font-size:1.2rem;line-height:1;color:var(--muted);cursor:pointer;padding:0 .2rem}.gellet-hover-close:hover{color:var(--fg)}.gellet-row-pinned{outline:2px solid var(--accent);outline-offset:-2px}.gellet-hover-header{font-weight:600;font-size:var(--text-base);margin-bottom:.5rem}.gellet-hover-meta{display:block;font-size:var(--text-xs);font-weight:400;color:var(--muted);margin-top:.15rem}.gellet-hover-empty{font-size:var(--text-xs);color:var(--muted);font-style:italic}.gellet-hover-table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.gellet-hover-table th{text-align:left;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:.25rem .4rem;border-bottom:2px solid var(--stroke);color:var(--muted);white-space:nowrap}.gellet-hover-table td{padding:.25rem .4rem;border-bottom:1px solid var(--stroke)}.gellet-hover-table tbody tr:last-child td{border-bottom:none}.gellet-hw-date{font-family:var(--mono);white-space:nowrap;color:var(--muted)}.gellet-hw-inventory{text-align:right;font-family:var(--mono)}.gellet-hw-shipped{text-align:right;font-family:var(--mono);color:var(--muted)}.gellet-hw-has-ship{color:var(--good);font-weight:600}.gellet-hw-cases{display:block;font-size:.6rem;font-weight:400;color:var(--muted)}.gellet-consumption-toggle{margin-top:1.5rem}.gellet-consumption-btn{background:none;border:1px solid var(--border);border-radius:6px;padding:.5rem 1rem;font-size:.85rem;font-weight:600;color:var(--fg);cursor:pointer}.gellet-consumption-btn:hover{background:var(--surface)}.gellet-consumption{margin-top:1rem}.gellet-consumption-stats{display:flex;gap:.75rem;flex-wrap:wrap;margin-bottom:1.25rem}.gellet-consumption-heading{font-size:.85rem;font-weight:600;margin:1.25rem 0 .5rem;color:var(--fg)}.gellet-histogram-table{width:100%;border-collapse:collapse;font-size:.78rem;margin-bottom:1rem}.gellet-histogram-table th{text-align:left;font-weight:600;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);border-bottom:1px solid var(--border);padding:.35rem .5rem}.gellet-histogram-table td{padding:.3rem .5rem;border-bottom:1px solid var(--border-subtle, var(--border))}.gellet-hist-range{width:80px;white-space:nowrap}.gellet-hist-count{width:50px;text-align:right}.gellet-hist-bar{position:relative;width:auto}.gellet-hist-bar-fill{height:16px;background:var(--accent);border-radius:2px;min-width:0;transition:width .2s ease}.gellet-hist-empty td{color:var(--muted)}.gellet-consumption-table{margin-top:.5rem}.gellet-consumption-cust-row{cursor:pointer}.gellet-consumption-cust-row:hover td{background:var(--surface)}.gellet-consumption-weeks-cell{padding:.25rem .5rem .75rem 2rem!important}.gellet-consumption-weeks-table{max-height:none;position:static;box-shadow:none;border:1px solid var(--border);border-radius:6px}
