/* SIGO reference samples. Scoped rollout: stock, item and PCP programs only.
   The operational styles remain the fallback. See docs/design/AMOSTRAS.md. */
.sigo-sample {
  --ss-action: var(--blue, #2452d6);
  --ss-ink: var(--ink, #20242b);
  --ss-muted: #596577;
  --ss-line: #dee4ee;
  --ss-surface: #f7f9fc;
  --ss-selected: #eef3ff;
  --ss-danger: #a22d37;
  --ss-warning: #855700;
  color: var(--ss-ink);
  min-width: 0;
  font-size: 14px;
  line-height: 1.5;
}
.sigo-sample :is(h1,h2,h3,p,dd,a) { overflow-wrap: anywhere; }
.sigo-sample :is(h1,h2,h3) { color: var(--ss-ink); }
.sigo-sample :is(.page-heading,.pr-heading) { margin-bottom: 24px; gap: 16px; }
.sigo-sample :is(.page-heading,.pr-heading) h1 { font-size: 26px; line-height: 1.25; letter-spacing: -.6px; }
.sigo-sample :is(button,.button,input:not([type=checkbox]),select) { min-height: 36px; font: inherit; font-size: 13px; }
.sigo-sample :is(button,.button) { border-radius: 8px; }
.sigo-sample :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible {
  outline: 2px solid var(--ss-action); outline-offset: 3px;
}
.sigo-sample :is(.tabs,.pr-tabs) { gap: 8px; margin-block: 0 20px; }
.sigo-sample :is(.tabs,.pr-tabs) a { padding: 10px 12px; font-size: 13px; line-height: 1.5; }
.sigo-sample :is(.tabs a.selected,.pr-tabs a.active) { color: var(--ss-action); background: var(--ss-selected); border-color: var(--ss-action); }
.sigo-sample :is(.muted,.pr-muted,dt) { color: var(--ss-muted); }
.sigo-sample :is(th,.num,.pr-num,strong) { font-variant-numeric: tabular-nums; }
.sigo-sample :is(th,td) { padding: 12px; line-height: 1.5; }
.sigo-sample th { font-size: 12px; font-weight: 600; color: var(--ss-muted); background: var(--ss-surface); }
.sigo-sample td { font-size: 13px; vertical-align: middle; }
.sigo-sample :is(.table-wrap,.pr-table) { max-width: 100%; scrollbar-width: thin; scrollbar-color: #b9c4d4 transparent; }
.sigo-sample :is(.table-wrap,.pr-table)::-webkit-scrollbar { display: block; height: 6px; width: 6px; }
.sigo-sample :is(.table-wrap,.pr-table)::-webkit-scrollbar-thumb { border-radius: 6px; background: #b9c4d4; }
.sigo-sample :is(.table-wrap,.pr-table):focus-visible { outline-offset: -2px; }
.sigo-sample :is(.pr-table,.table-wrap) tbody tr:hover > td { background: #f8faff; }
.sigo-sample :is(.pr-badge,.badge) { font-size: 12px; line-height: 1.5; }
.sigo-sample .errorlist { font-size: 13px; color: var(--ss-danger); }

/* A. Stock: comparison first; controls and attention filters form two groups. */
.ss-stock .filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; padding: 16px; border: 1px solid var(--ss-line); border-radius: 10px; }
.ss-stock .filters label { display: flex; flex: 1 1 130px; min-width: 0; flex-direction: column; gap: 6px; margin: 0; font-size: 12px; color: var(--ss-muted); }
.ss-stock .filters label:first-of-type { flex: 2 1 240px; }
.ss-stock .filters :is(input,select) { width: 100%; min-width: 0; padding: 8px 10px; }
.ss-stock .filters > a { font-size: 13px; padding: 8px 4px; }
.ss-stock .subtabs { gap: 8px; border: 0; margin-bottom: 16px; }
.ss-stock .subtabs a { border: 1px solid transparent; border-radius: 8px; padding: 7px 12px; }
.ss-stock .subtabs a.selected { border-color: #d6e1ff; }
.ss-stock .ss-stock-attention { border: 0; gap: 8px; margin: 20px 0 12px; }
.ss-stock .ss-stock-attention a { padding: 6px 10px; border: 1px solid var(--ss-line); border-radius: 6px; font-size: 12px; }
.ss-stock .ss-stock-attention a.selected { border-color: var(--ss-action); }
.ss-stock .sync-meta { font-size: 12px; margin: 8px 0; }
.ss-stock .list-count { color: var(--ss-muted); margin: 12px 0; font-size: 12px; }
.ss-stock .ss-table-region table { min-width: 1040px; }
.ss-stock .ss-table-region td:first-child { min-width: 230px; max-width: 330px; }
.ss-stock .ss-table-region td:first-child a { color: var(--ss-ink); }
.ss-stock .ss-table-region td:first-child a:hover { color: var(--ss-action); }
.ss-stock .ss-table-region td small { font-size: 12px; color: var(--ss-muted); margin-top: 3px; }
.ss-stock :is(.ss-stock-low,.ss-stock-unavailable) .stock-free strong { color: var(--ss-warning); }
.ss-stock .ss-stock-unavailable .stock-free strong { color: var(--ss-danger); }
.ss-stock .stock-free strong { font-size: 15px; }
.ss-stock .pw-indicator { min-height: 32px; width: 32px; padding: 6px; flex-shrink: 0; }
.ss-stock .pw-indicators { gap: 4px; }
.ss-stock .product-sync { margin: 0; }

/* B. Item: four decisive values, compact facts and contextual editing. */
.ss-product .product-back { flex-basis: 100%; margin-bottom: 0; font-size: 13px; }
.ss-product .pw-identity { gap: 8px 12px; margin-bottom: 16px; }
.ss-product .pw-summary { border-radius: 10px; padding: 20px 0; margin-bottom: 24px; }
.ss-product .pw-summary > div { padding-inline: 20px; gap: 6px; }
.ss-product .pw-summary :is(span,small) { font-size: 13px; line-height: 1.5; }
.ss-product .pw-summary strong { font-size: 26px; line-height: 1.25; letter-spacing: -.5px; }
.ss-product .pw-summary strong.ss-availability { color: var(--ss-action); }
.ss-product .pw-summary strong.pw-status { font-size: 18px; letter-spacing: 0; }
.ss-product .pw-columns { gap: 24px; }
.ss-product .card { border-radius: 10px; padding: 20px; margin-bottom: 24px; }
.ss-product .pw-facts { gap: 16px 24px; }
.ss-product .pw-facts dt { font-size: 13px; }
.ss-product .pw-facts dd { font-size: 14px; }
.ss-product .pw-stock-line { padding: 16px 0; }
.ss-product .pw-phase { margin-top: 20px; font-size: 13px; }
.ss-product .pw-total { font-size: 15px; }
.ss-product .pw-yield p { margin-right: 24px; }
.sigo-sample.pw-dialog { max-width: calc(100vw - 24px); max-height: calc(100dvh - 24px); overscroll-behavior: contain; }
.sigo-sample.pw-dialog .pw-dialog-body { padding: 20px; }
.sigo-sample.pw-dialog :is(label,.helptext) { font-size: 13px; }
.sigo-sample.pw-dialog .pw-dialog-head button { min-width: 36px; }
.sigo-sample.pw-dialog .pw-cancel { margin-left: 8px; }

/* C. PCP: period, progress and missing materials precede secondary detail. */
.sigo-sample .pr-heading { flex-wrap: wrap; }
.sigo-sample .pr-heading > div { min-width: 0; }
.sigo-sample .pr-heading > div:last-child { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.sigo-sample .pr-heading p { margin: 8px 0 0; color: var(--ss-muted); }
.sigo-sample .pr-eyebrow { letter-spacing: .03em; color: var(--ss-muted); }
.ss-programs .pr-run-grid { grid-template-columns: repeat(auto-fit,minmax(min(100%,320px),1fr)); gap: 20px; align-items: start; }
.ss-programs .pr-run { max-width: 560px; border-radius: 10px; border-top-width: 3px; padding: 20px; }
.ss-programs .pr-run h3 { font-size: 18px; line-height: 1.4; margin: 20px 0 4px; }
.ss-programs .pr-run h3 a { color: var(--ss-ink); }
.ss-programs .pr-run h3 a:hover { color: var(--ss-action); }
.ss-programs .pr-card-top { flex-wrap: wrap; gap: 8px; }
.ss-programs .pr-card-top > span:last-child { font-size: 12px; color: var(--ss-muted); }
.ss-programs .pr-card-numbers { margin: 20px 0 16px; padding: 16px 0; border-block: 1px solid var(--ss-line); }
.ss-programs .pr-card-numbers strong { font-size: 28px; line-height: 1.2; }
.ss-programs .pr-card-numbers small { display: block; font-size: 13px; color: var(--ss-muted); margin-top: 6px; }
.ss-programs .pr-card-alerts { display: grid; gap: 8px; margin: 0 0 20px; font-size: 13px; }
.ss-programs .pr-card-alerts small { font-size: 13px; color: var(--ss-muted); }
.ss-program .pr-cycle-summary { display: flex; flex-wrap: wrap; gap: 12px 20px; padding: 16px 20px; background: var(--ss-surface); border: 1px solid var(--ss-line); border-radius: 10px; margin-bottom: 16px; }
.ss-program .pr-cycle-summary > span:last-child { color: var(--ss-muted); font-size: 13px; }
.ss-program .pr-program-tools { gap: 8px; flex-wrap: wrap; margin: 16px 0 20px; }
.ss-program .pr-panel { padding: 20px; border-radius: 10px; border-color: var(--ss-line); }
.ss-program .pr-section-head { flex-wrap: wrap; margin-bottom: 16px; }
.ss-program .pr-section-head h2 { margin: 0; font-size: 16px; }
.ss-program .pr-products-table { min-width: 760px; table-layout: auto; }
.ss-program .pr-products-table th:first-child { width: 30%; }
.ss-program .pr-products-table td:first-child { min-width: 180px; }
.ss-program .pr-products-table td:first-child a { color: var(--ss-ink); }
.ss-program .pr-products-table td:first-child a:hover { color: var(--ss-action); }
.ss-program .pr-products-table small { font-size: 12px; color: var(--ss-muted); }
.ss-program .pr-products-table td:last-child { min-width: 120px; }
.sigo-sample :is(.pr-dialog,.pr-follow-panel) { overscroll-behavior: contain; }
/* The follow panel is loaded independently; its root carries the sample scope. */
.ss-follow { padding: 24px; }
.ss-follow .pr-follow-heading { gap: 16px; align-items: start; }
.ss-follow .pr-follow-heading h2 { font-size: 22px; line-height: 1.35; margin-top: 6px; }
.ss-follow .pr-follow-heading small { color: var(--ss-muted); font-size: 12px; letter-spacing: .04em; }
.ss-follow .pr-follow-heading button { flex-shrink: 0; min-width: 36px; }
.ss-follow .pr-status-toolbar { flex-wrap: wrap; gap: 8px 12px; margin: 16px 0; }
.ss-follow .pr-status-toolbar > small { font-size: 12px; color: var(--ss-muted); }
.ss-follow .pr-production-line { gap: 20px; padding: 16px 0; border-block: 1px solid var(--ss-line); margin: 16px 0; }
.ss-follow .pr-production-line strong { font-size: 20px; }
.ss-follow .pr-production-line > div > small { color: var(--ss-muted); font-size: 13px; }
.ss-follow .pr-cost-section { margin: 20px 0; padding-block: 16px; }
.ss-follow .pr-cost-section h3 { font-size: 16px; }
.ss-follow .pr-cost-kpis small { font-size: 12px; color: var(--ss-muted); }
.ss-follow .pr-cost-kpis strong { font-size: 20px; }
.ss-follow .pr-split-table { font-size: 13px; }
.ss-follow .pr-split-table caption { font-size: 12px; color: var(--ss-muted); }
.ss-follow .pr-split-table :is(td,th) { padding: 12px 8px; font-size: 13px; }
.ss-follow .pr-split-table small { font-size: 12px; color: var(--ss-muted); }
.ss-follow .pr-provisional { font-size: 12px; }
.ss-follow .pr-follow-section { margin-top: 24px; }
.ss-follow .pr-follow-section h3 { font-size: 16px; margin: 0 0 12px; }
.ss-follow .pr-follow-section > small { display: block; margin-bottom: 8px; font-size: 12px; }
.ss-follow .pr-mini-table table { min-width: 440px; table-layout: auto; }
.ss-follow .pr-mini-table th { font-size: 12px; }
.ss-follow .pr-mini-table th:first-child { width: 45%; }
.ss-follow .pr-mini-table td:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.ss-follow .pr-mini-table td small { font-size: 12px; color: var(--ss-muted); }
.ss-follow .pr-document-strip { gap: 8px 12px; font-size: 13px; }
.ss-follow .pr-order-chips { flex-wrap: wrap; gap: 8px; }
.ss-follow .pr-order-chips > * { overflow-wrap: anywhere; }
@media (max-width: 1100px) {
  .ss-product .pw-summary { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px 0; }
  .ss-product .pw-summary > div:nth-child(2) { border: 0; }
}
@media (max-width: 640px) {
  .sigo-sample :is(.page-heading,.pr-heading) h1 { font-size: 23px; }
  .sigo-sample :is(.tabs,.pr-tabs) { flex-wrap: wrap; overflow: visible; }
  .sigo-sample :is(.tabs,.pr-tabs) a { white-space: normal; }
  .ss-stock .filters label { flex-basis: 100%; }
  .ss-stock .filters label:first-of-type { flex-basis: 100%; }
  .ss-product :is(.card,.pw-summary > div) { padding: 16px; }
  .ss-product .pw-summary { padding: 0; gap: 0; }
  .ss-product .pw-summary > div { border: 0; }
  .ss-product .pw-summary strong { font-size: 22px; }
  .ss-product .pw-summary strong.pw-status { font-size: 16px; }
  .ss-product .pw-facts { grid-template-columns: 1fr; }
  .ss-product .pw-source { width: 100%; margin: 0; }
  .ss-program .pr-cycle-summary { padding: 16px; }
  .ss-program .pr-panel { padding: 16px; }
  .ss-follow { padding: 16px; }
  .ss-follow .pr-follow-heading h2 { font-size: 20px; }
  .ss-follow .pr-cost-kpis { grid-template-columns: 1fr 1fr; }
  .ss-follow .pr-cost-kpis > div:last-child { grid-column: 1/-1; }
  .ss-follow .pr-cost-kpis strong { font-size: 18px; }
}
@media (prefers-reduced-motion: no-preference) {
  .sigo-sample :is(button,.button,.pr-run-action) { transition: background-color 120ms ease, color 120ms ease, border-color 120ms ease; }
}
@media (prefers-reduced-motion: reduce) {
  .sigo-sample *, .sigo-sample *::before, .sigo-sample *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
  .sigo-sample :is(.table-wrap,.pr-table) { scrollbar-color: auto; }
}
/* Host padding belongs to the sample content, not both nested surfaces. */
.ss-follow-host:has(.ss-follow),.ss-follow-host[open]:has(.ss-follow) { padding: 0; }
/* The stock script progressively turns the filter form into a search toolbar. */
.ss-stock .filters.list-toolbar { padding: 0; border: 0; margin: 20px 0 12px; gap: 12px; }
.ss-stock .filters label.toolbar-search { display: grid; grid-template-columns: minmax(0,1fr) auto; flex: 1 1 400px; max-width: 640px; gap: 6px 8px; text-align: left; }
.ss-stock .ss-search-label { grid-column: 1/-1; }
.ss-stock .filter-panel-content { max-width: min(560px,calc(100vw - 40px)); }
.ss-product .pw-identity > * { min-width: 0; overflow-wrap: anywhere; }
.ss-product .pw-columns { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); }
@media (max-width: 1100px) { .ss-product .pw-columns { grid-template-columns: minmax(0,1fr); } }
@media (max-width: 640px) {
  .ss-stock .filters label.toolbar-search { flex-basis: 100%; max-width: none; }
  .ss-stock .filters label.toolbar-search input { grid-column: 1/-1; }
  .ss-stock .filter-panel-content { max-width: 100%; }
}
@media (max-width: 640px) {
  /* Older item tabs force nowrap; override only in the sample to keep every tab reachable. */
  .ss-product .pw-tabs { flex-wrap: wrap !important; overflow: visible; }
  .sigo-sample .page-heading .heading-tools { flex-basis: 100%; margin-left: 0; }
}
.ss-stock .ss-table-region table:has(colgroup) { table-layout: fixed; }
.ss-stock .ss-col-product { width: 22%; }
.ss-stock .ss-col-kind { width: 9%; }
.ss-stock .ss-col-supplier { width: 10%; }
.ss-stock .ss-col-unit { width: 8%; }
.ss-stock .ss-col-quantity { width: 6%; }
.ss-stock .ss-col-reserved { width: 8%; }
.ss-stock .ss-col-free { width: 9%; }
.ss-stock .ss-col-boxes { width: 9%; }
.ss-stock .ss-col-minimum { width: 7%; }
.ss-stock .ss-col-indicators { width: 12%; }
.ss-stock .filter-panel[open] > summary { margin-bottom: 0; }
.ss-follow .pr-split-wrap { overflow-x: auto; scrollbar-width: thin; scrollbar-color: #b9c4d4 transparent; }
.ss-follow .pr-split-table { min-width: 440px; }
.ss-follow .pr-split-wrap:focus-visible { outline-offset: -2px; }
/* Fixed stock columns need wrapping captions; global numeric headers use nowrap. */
.ss-stock .ss-table-region th { white-space: normal; overflow-wrap: normal; word-break: normal; }

/* Review 2 — visible states without replacing the meaning of each indicator. */
.ss-stock .pw-indicator { position: relative; border: 1px solid #c9d2df; background: #f1f4f8; color: #596577; border-radius: 7px; }
.ss-stock .pw-indicator svg { width: 17px; height: 17px; stroke-width: 2; }
.ss-stock .pw-indicator.confirmed { background: #e4f3eb; color: #176344; border-color: #8abda3; }
.ss-stock .pw-indicator.pending,.ss-stock .pw-indicator.warning { background: #fff2d6; color: #855700; border-color: #d1ac62; }
.ss-stock .pw-indicator-state { position: absolute; right: -3px; bottom: -3px; display: grid; place-items: center; width: 14px; height: 14px; border: 1px solid currentColor; border-radius: 50%; font-size: 11px; font-weight: 750; line-height: 1; background: #fff; }
.ss-stock .pw-indicators { gap: 8px; flex-wrap: wrap; }
.ss-stock .pw-indicator:hover { filter: brightness(.96); }

/* A fixed row rhythm: the fullest card sets the shared rows, without clipping. */
.ss-programs .pr-run-grid { grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 20px; }
.ss-programs .pr-run { max-width: none; height: 100%; box-sizing: border-box; }
.ss-programs .pr-run > .pr-muted { margin: 0; }
.ss-programs .pr-card-alerts { flex: 1; align-content: start; }
.ss-programs .pr-run-action { margin-top: auto; }
.ss-programs .pr-card-alerts .pr-badge { justify-self: start; }
@supports (grid-template-rows: subgrid) {
  .ss-programs .pr-run { display: grid; grid-template-rows: subgrid; grid-row: span 7; row-gap: 0; }
  .ss-programs .pr-card-top { align-self: start; }
  .ss-programs .pr-run-action { align-self: end; }
}
@media (max-width: 1280px) { .ss-programs .pr-run-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 800px) { .ss-programs .pr-run-grid { grid-template-columns: minmax(0,1fr); } }

/* Materials stay compact; an expanded preparation remains attached to its item. */
.ss-program .ss-materials-table { table-layout: fixed; min-width: 740px; }
.ss-program .ss-materials-table th:first-child { width: 36%; }
.ss-program .ss-materials-table th:nth-child(2),.ss-program .ss-materials-table th:nth-child(3) { width: 13%; }
.ss-program .ss-materials-table th:nth-child(4) { width: 12%; }
.ss-program .ss-materials-table th:last-child { width: 26%; }
.ss-program .ss-materials-table :is(th,td) { padding: 12px 16px; }
.ss-program .ss-materials-table small { margin-top: 2px; font-size: 12px; }
.ss-program .ss-material-actions { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 16px; margin-top: 6px; }
.ss-program .ss-material-actions .pr-inline > summary { padding: 0; }
.ss-program .ss-material-actions button { border: 0; padding: 2px 0; min-height: 28px; background: transparent; color: var(--ss-action); font-size: 12px; text-align: left; }
.ss-program .ss-material-actions button::before { content: '›'; display: inline-block; margin-right: 6px; }
.ss-program .ss-material-actions button[aria-expanded=true]::before { transform: rotate(90deg); }
.ss-program .ss-materials-table .pr-preparation-row > td { padding: 0 16px 16px !important; }
.ss-program .pr-preparation-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 12px; }
.ss-program .pr-preparation-grid > div { padding: 12px 16px; background: var(--ss-surface); border: 1px solid var(--ss-line); border-radius: 8px; }
.ss-program .pr-preparation-grid > div > small { display: block; margin: 0 0 8px; color: var(--ss-muted); font-weight: 600; }
.ss-program .pr-preparation { padding: 0; border: 0; background: transparent; margin: 0; }
.ss-program .pr-preparation h3 { margin: 0; }
.ss-program .pr-preparation .pr-prep-provider { margin: 4px 0 10px; }
.ss-program .pr-preparation table { min-width: 620px; table-layout: fixed; }
.ss-program .pr-preparation th:first-child { width: 46%; }
.ss-program .pr-preparation :is(th,td):not(:first-child) { text-align: right; width: 18%; font-variant-numeric: tabular-nums; }
.ss-program .pr-preparation :is(th,td) { padding: 10px 12px; }
.ss-program .pr-prep-result { padding: 10px 0 0; }
.ss-program [data-pr-preparation-body][hidden],.ss-program [data-pr-preparation][hidden] { display: none !important; }
