:root {
  font-family: "DM Sans", "Segoe UI", sans-serif;
  color: #203039;
  background: #f5f7f8;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --ink: #203039;
  --muted: #76858c;
  --line: #e6ebed;
  --teal: #0b696d;
  --teal-dark: #07565a;
}

* { box-sizing: border-box; }
body { margin: 0; min-width: 360px; }
button, input { font: inherit; }
button { cursor: pointer; }

.topbar {
  height: 54px;
  padding: 0 5.15%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  background: #fff;
  border-bottom: 1px solid #e8edef;
}
.brand { display: flex; align-items: center; gap: 11px; color: #174c51; text-decoration: none; }
.brand-mark { width: 30px; height: 30px; display: inline-flex; }
.brand-mark svg { width: 100%; height: 100%; }
.brand-copy { display: flex; flex-direction: column; color: #31454b; line-height: 1.12; letter-spacing: .025em; }
.brand-copy strong { font: 800 11px "Manrope", sans-serif; text-transform: uppercase; }
.brand-copy span { font-size: 9px; letter-spacing: .13em; text-transform: uppercase; }
.brand-divider { width: 1px; height: 29px; margin: 0 2px 0 6px; background: #dce4e5; }
.brand-product { color: #64777d; font-size: 11px; line-height: 1.35; }
.topbar-right { display: flex; align-items: center; gap: 20px; }
.settings-button { width: 30px; height: 30px; display: grid; place-items: center; padding: 0; border: 1px solid #dce6e6; border-radius: 6px; color: #587178; background: #f8fbfb; }
.settings-button:hover { border-color: #adc8c6; color: #286964; background: #edf6f5; }
.settings-button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.help-button { width: 30px; height: 30px; padding: 0; border: 1px solid #dce6e6; border-radius: 50%; color: #587178; background: #f8fbfb; font: 800 15px/1 "Manrope", sans-serif; }
.help-button:hover { border-color: #adc8c6; color: #286964; background: #edf6f5; }
.connection-indicator { display: flex; align-items: center; gap: 8px; color: #62747a; font-size: 12px; }
.connection-indicator span, .footer-dot { width: 7px; height: 7px; display: inline-block; border-radius: 50%; background: #2eaa79; }
.avatar { display: grid; width: 30px; height: 30px; place-items: center; border: 1px solid #dce6e6; border-radius: 50%; color: #42676b; background: #f3f8f7; font-size: 10px; font-weight: 700; }

.page { width: min(1800px, 98%); margin: 20px auto 12px; }
.page-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 13px; }
.active-supplier { max-width: min(40vw, 520px); overflow: hidden; color: #31454b; font: 800 11px "Manrope", sans-serif; letter-spacing: .025em; text-overflow: ellipsis; white-space: nowrap; }
.page-heading-actions { display: flex; flex: 0 0 auto; align-items: center; gap: 8px; }
.page-heading-actions .button { width: 150px; }
.eyebrow { margin-bottom: 5px; color: #7c8b90; font-size: 9px; font-weight: 700; letter-spacing: .11em; }
.eyebrow span { padding: 0 5px; color: #b4bec1; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 4px; color: #1c2c32; font: 700 25px "Manrope", sans-serif; letter-spacing: -.035em; }
.subtitle { margin: 0; color: #77858b; font-size: 12px; }
.button { display: inline-flex; height: 35px; align-items: center; justify-content: center; gap: 9px; padding: 0 14px; border: 1px solid transparent; border-radius: 6px; font-size: 11px; font-weight: 700; white-space: nowrap; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.button svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.button-primary { color: white; background: var(--teal); box-shadow: 0 2px 4px #0b696d24; }
.button-primary:hover { background: var(--teal-dark); }
.button-danger-outline { height: 35px; border-color: #e7c8c5; color: #111; background: white; }
.button-danger-outline:hover:not(:disabled) { color: #111; background: #fff4f2; border-color: #d8a6a1; }
.button-danger-outline:disabled { cursor: default; opacity: .5; }
.button-danger-outline svg { color: #b32222; }
.button-danger-outline span { display: none; min-width: 17px; height: 17px; place-items: center; border-radius: 50%; color: #b32222; background: #fceaea; font-size: 10px; }
.button-danger-outline.has-selection span { display: inline-grid; }
.button-quiet { height: 35px; padding: 0 10px; color: #6b7b81; background: transparent; }
.button-quiet:hover { color: #334c52; background: #f3f6f6; }
#clear-filters.has-active-filters { border: 1px solid #e3c444 !important; color: #66520b !important; background: #fff1a8 !important; box-shadow: 0 1px 4px #9d7c1424 !important; }
#clear-filters.has-active-filters:hover { border-color: #d3ae1d !important; color: #514006 !important; background: #ffe77b !important; }
.report-button { border-width: 1px; border-style: solid; font-weight: 700; }
.report-guides { border-color: #c4d8f2; color: #111; background: #edf4fd; }
.report-guides:hover:not(:disabled) { border-color: #a9c5e9; color: #111; background: #e2edfb; }
.report-priced-guides { border-color: #b9ded5; color: #111; background: #edf8f4; }
.report-priced-guides:hover:not(:disabled) { border-color: #9bcec0; color: #111; background: #e1f2ec; }
.report-invoice-summary { border-color: #d4c9ec; color: #111; background: #f4f0fb; }
.report-invoice-summary:hover:not(:disabled) { border-color: #bcaadd; color: #111; background: #ece5f8; }
.report-order-summary { border-color: #efd8ad; color: #111; background: #fff7e9; }
.report-order-summary:hover:not(:disabled) { border-color: #e4c58c; color: #111; background: #fff0d6; }
.report-quantities { border-color: #b9dce8; color: #111; background: #edf7fa; }
.report-quantities:hover:not(:disabled) { border-color: #97c9d9; color: #111; background: #e1f1f6; }
.oracle-nav-button { border-color: #25845f; color: #fff; background: #25845f; box-shadow: 0 2px 4px #25845f24; }
.oracle-nav-button:hover:not(:disabled) { border-color: #1d6f4f; color: #fff; background: #1d6f4f; }
.oracle-nav-button:disabled { cursor: default; opacity: .55; }
.dashboard-button { border-color: #2864c5; color: #fff; background: #2864c5; box-shadow: 0 2px 4px #2864c524; }
.dashboard-button:hover { border-color: #1f52a7; color: #fff; background: #1f52a7; }
.articles-nav-button { border-color: #7952a3; color: #fff; background: #7952a3; box-shadow: 0 2px 4px #7952a324; }
.articles-nav-button:hover { border-color: #654187; color: #fff; background: #654187; }
.report-button:disabled { cursor: default; opacity: .55; }
.button-small { height: 35px; margin-top: 9px; }

.summary-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-bottom: 13px; }
.summary-card { position: relative; display: flex; min-height: 58px; align-items: center; gap: 10px; padding: 7px 12px; border: 1px solid #e8edef; border-radius: 7px; background: #fff; box-shadow: 0 2px 6px #26363b08; }
.summary-content { min-width: 0; flex: 1; display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.summary-copy { display: flex; flex: 0 0 auto; align-items: center; gap: 6px; }
.summary-icon { width: 32px; height: 32px; display: grid; flex: 0 0 auto; place-items: center; border-radius: 7px; }
.summary-icon svg { width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.icon-blue { color: #4b76bf; background: #eff4fc; }
.icon-amber { color: #c18b2a; background: #fcf6e9; }
.icon-green { color: #31916a; background: #edf7f1; }
.icon-violet { color: #8370bb; background: #f3f0fa; }
.summary-label { display: block; margin: 0; color: #111; font-size: 11px; font-weight: 700; line-height: 1; white-space: nowrap; }
.summary-card strong { flex: 0 0 auto; color: #111; font: 700 19px "Manrope", sans-serif; letter-spacing: -.04em; }
.summary-note { color: #111; font-size: 11px; font-weight: 700; line-height: 1; white-space: nowrap; }
.summary-import { gap: 12px; }
.summary-import strong { display: block; font-size: 12px; letter-spacing: -.01em; }

.data-card { overflow: hidden; border: 1px solid #e5eaec; border-radius: 8px; background: #fff; box-shadow: 0 3px 12px #20303908; }
.card-heading { min-height: 59px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 8px 16px; }
.card-heading h2 { margin-bottom: 3px; color: #293a40; font: 700 17px/1 "Manrope", sans-serif; letter-spacing: -.02em; }
.card-heading h2[class^="status-"] { display: inline-flex; align-items: center; min-height: 29px; padding: 0 9px; border-radius: 6px; }
.card-heading h2.status-receiving { color: #4d7863; background: #edf7f0; }
.card-heading h2.status-closed { color: #4b76bf; background: #eff4fc; }
.card-heading h2.status-pending { color: #9a7127; background: #fbf4e5; }
.card-heading h2.status-skipped { color: #86518d; background: #f7edf8; }
.card-heading h2.status-other { color: #63747b; background: #f0f3f4; }
.card-heading p { margin: 0; color: #879398; font-size: 11px; }
.card-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 7px; }
.toolbar { min-height: 42px; display: flex; align-items: center; justify-content: flex-start; gap: 15px; padding: 5px 16px; border-top: 1px solid #edf0f1; border-bottom: 1px solid #e8edef; background: #fcfdfd; }
.search-box { width: min(390px, 65%); height: 30px; display: flex; align-items: center; gap: 9px; padding: 0 10px; border: 1px solid #e3e8ea; border-radius: 5px; background: #fff; }
.search-box:focus-within { border-color: #78abaa; box-shadow: 0 0 0 2px #0b696d14; }
.search-box svg { width: 15px; height: 15px; flex: 0 0 auto; fill: none; stroke: #849297; stroke-width: 1.6; stroke-linecap: round; }
.search-box input { width: 100%; min-width: 0; padding: 0; border: 0; outline: none; color: #34454a; background: transparent; font-size: 11px; }
.search-box input::placeholder { color: #a0aaae; }
.quick-address-filters { display: flex; flex: 0 0 auto; align-items: center; gap: 11px; margin: 0 0 0 50px; padding: 0; border: 0; }
.quick-address-filters label { display: inline-flex; align-items: center; gap: 4px; color: #53656b; font-size: 10px; font-weight: 700; white-space: nowrap; cursor: pointer; }
.quick-address-filters input[type="checkbox"] { width: 13px; height: 13px; }
kbd { padding: 2px 4px; border: 1px solid #e7ebec; border-radius: 3px; color: #a0aaae; background: #fafbfb; font: 9px "DM Sans", sans-serif; white-space: nowrap; }
.toolbar-actions { display: flex; align-items: center; gap: 7px; }
.result-count { margin-left: auto; color: #89969b; font-size: 11px; }
.table-wrap { position: relative; overflow: auto; min-height: 220px; max-height: calc(100vh - 350px); }
table { width: 100%; min-width: 2070px; border-collapse: separate; border-spacing: 0; table-layout: fixed; }
thead { position: sticky; top: 0; z-index: 3; }
thead th { height: 40px; padding: 3px 6px; border-right: 1px solid #edf0f1; border-bottom: 1px solid #e6ebed; color: #384a51; background: #f9fbfb; font-size: 10px; font-weight: 700; line-height: 1.15; text-align: left; }
thead tr:first-child th { background: #f6f8f8; }
thead th:last-child, tbody td:last-child { border-right: 0; }
thead th .sort-button { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 3px; padding: 0; border: 0; color: inherit; background: transparent; font: inherit; text-align: left; }
.column-title { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
.sort-indicator { color: #b0babe; font-size: 12px; }
.sort-button.sorted .sort-indicator { color: #0b7778; }
.select-column { position: sticky; left: 0; z-index: 4; width: 43px; min-width: 43px; padding: 0; border-right: 1px solid #e8edef; text-align: center; }
thead .select-column { z-index: 6; }
input[type="checkbox"] { width: 14px; height: 14px; margin: 0; accent-color: #087578; vertical-align: middle; cursor: pointer; }
.filter-placeholder { background: #f6f8f8 !important; }
.filter-cell { padding: 4px 6px !important; }
.filter-cell input { width: 100%; height: 25px; padding: 0 5px; border: 1px solid #e4e9eb; border-radius: 3px; outline: none; color: #34454a; background: #fff; font-size: 10px; }
.filter-cell input:focus { border-color: #86b8b6; }
.filter-cell select { width: 100%; height: 25px; padding: 0 4px; border: 1px solid #e4e9eb; border-radius: 3px; outline: none; color: #34454a; background: #fff; font-size: 10px; }
.filter-cell select:focus { border-color: #86b8b6; }
tbody td { height: 36px; overflow: hidden; padding: 0 7px; border-right: 1px solid #f1f3f4; border-bottom: 1px solid #edf0f1; color: #233f59; font: 13px Arial, "Segoe UI", sans-serif; text-overflow: ellipsis; white-space: nowrap; }
tbody td.center-after-ordered, tbody td.center-cell { text-align: center; }
tbody td.shipping-cell { font-family: "Arial Narrow", "Aptos Narrow", "Roboto Condensed", "Liberation Sans Narrow", Arial, sans-serif; font-size: 12px; font-stretch: condensed; letter-spacing: -.2px; }
tbody td.provider-cell { padding: 0 3px; font-family: "Arial Narrow", "Aptos Narrow", "Roboto Condensed", "Liberation Sans Narrow", Arial, sans-serif; font-size: 8px; font-stretch: condensed; line-height: 9px; letter-spacing: -.15px; text-align: center; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; vertical-align: middle; }
tbody tr:hover td { background: #f8fbfb; }
tbody tr.is-selected td { background: #eff8f7; }
tbody tr.is-selected:hover td { background: #e9f5f4; }
tbody td.select-column { background: #fff; }
tbody tr:hover td.select-column { background: #f8fbfb; }
tbody tr.is-selected td.select-column { background: #eff8f7; }
tbody tr.is-new-import td,
tbody tr.is-selected.is-new-import td { background: #e7f2ff; }
tbody tr.is-new-import:hover td,
tbody tr.is-selected.is-new-import:hover td { background: #d7eaff; }
tbody tr.has-observations td,
tbody tr.is-selected.has-observations td { background: #fff8d6; }
tbody tr.has-observations:hover td,
tbody tr.is-selected.has-observations:hover td { background: #fff1b8; }
.totals-row td { height: 68px; border-top: 2px solid #dce6e7; border-bottom: 0; color: #30444a; background: #f4f8f8; font: 700 10px "DM Sans", "Segoe UI", sans-serif; }
.totals-row { position: sticky; bottom: 0; z-index: 3; }
.totals-row td.select-column { background: #f4f8f8; }
.totals-row td.totals-label { font: 700 12px "Arial Narrow", "Aptos Narrow", "Roboto Condensed", "Liberation Sans Narrow", Arial, sans-serif; font-stretch: condensed; letter-spacing: -.2px; }
.totals-row td.selection-total-label { text-align: left; }
.totals-row td.numeric-cell { color: #164f52; font: 13px Arial, "Segoe UI", sans-serif; font-variant-numeric: tabular-nums; text-align: right; }
.totals-row td.selection-count { text-align: center; }
.totals-row td#selected-lines-total-amount { position: relative; vertical-align: middle; }
.totals-row.has-selection-limit-warning td { height: 92px; }
.totals-row td#selected-lines-total-amount .selection-limit-warning:not([hidden]) { position: absolute; bottom: 5px; z-index: 5; display: block; box-sizing: border-box; padding: 4px 6px; border: 1px solid #e3c444; border-radius: 4px; color: #a12e25; background: #fff1a8; box-shadow: 0 2px 6px #394b4d40; font: 700 9px/1.2 "DM Sans", "Segoe UI", sans-serif; text-align: left; white-space: nowrap; }
.order-cell { color: #087578; font-weight: 400; }
.order-cell.is-retryable { cursor: pointer; text-decoration: underline dotted; user-select: none; }
.line-cell, .numeric-cell { text-align: right; font-variant-numeric: tabular-nums; }
.status-pill { display: inline-block; max-width: 100%; max-height: 28px; overflow: hidden; padding: 2px 4px; border-radius: 8px; font: italic 8px/9px Georgia, "Times New Roman", serif; text-align: center; text-overflow: clip; white-space: normal; overflow-wrap: anywhere; vertical-align: middle; }
.status-pill.receiving { color: #4d7863; background: #edf7f0; }
.status-pill.closed { color: #4b76bf; background: #eff4fc; }
.status-pill.pending { color: #9a7127; background: #fbf4e5; }
.status-pill.skipped { color: #86518d; background: #f7edf8; }
.status-pill.other { color: #63747b; background: #f0f3f4; }
.status-cell-manually-closable .status-pill { cursor: pointer; text-decoration: underline dotted; text-underline-offset: 2px; }
.empty-state { display: none; min-height: 303px; flex-direction: column; align-items: center; justify-content: center; padding: 35px 20px; text-align: center; }
.empty-state.visible { display: flex; }
.empty-icon { width: 52px; height: 52px; display: grid; place-items: center; margin-bottom: 13px; border-radius: 50%; color: #6c9292; background: #f0f6f5; }
.empty-icon svg { width: 30px; height: 30px; fill: none; stroke: currentColor; stroke-width: 1.4; stroke-linecap: round; stroke-linejoin: round; }
.empty-state h3 { margin-bottom: 6px; color: #34464c; font: 700 14px "Manrope", sans-serif; }
.empty-state p { max-width: 360px; margin-bottom: 8px; color: #89969b; font-size: 11px; line-height: 1.6; }
.table-footer { min-height: 38px; display: flex; align-items: center; justify-content: space-between; padding: 0 20px; color: #8b979b; font-size: 10px; }
.table-footer > span:last-child { display: flex; align-items: center; gap: 7px; }
.footer-dot { width: 6px; height: 6px; }
.color-legend { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 20px; margin: 10px 2px 0; color: #66777d; font-size: 10px; }
.color-legend-item { display: inline-flex; align-items: center; gap: 7px; }
.color-legend-item strong { color: #45585e; font-weight: 700; }
.color-swatch { width: 15px; height: 12px; border: 1px solid #dce4e6; border-radius: 3px; }
.color-swatch-new { background: #e7f2ff; }
.color-swatch-changed { background: #fff8d6; }
.page-footnote { margin: 7px 2px 0; color: #9aa5a9; font-size: 9px; }
.toast { position: fixed; right: 24px; bottom: 22px; z-index: 10; max-width: min(460px, calc(100vw - 32px)); padding: 12px 16px; border: 1px solid #d7e5e2; border-radius: 6px; color: #325a55; background: #f3faf7; box-shadow: 0 6px 20px #2030391a; font-size: 12px; opacity: 0; pointer-events: none; transform: translateY(8px); transition: opacity .2s, transform .2s; }
.toast.visible { opacity: 1; transform: translateY(0); }
.toast.error { border-color: #eccdca; color: #943e37; background: #fff5f4; }
.import-summary-dialog { width: min(480px, calc(100vw - 32px)); padding: 24px; border: 1px solid #d7e5e2; border-radius: 10px; color: var(--ink); background: #fff; box-shadow: 0 18px 60px #15282b40; text-align: center; }
.import-summary-dialog::backdrop { background: #15282b80; }
.import-summary-dialog h2 { margin: 0 0 12px; color: #1c2c32; font: 700 18px "Manrope", sans-serif; }
.import-summary-dialog p { margin: 0 0 20px; color: #465960; font-size: 13px; line-height: 1.55; }
.import-summary-dialog .button { min-width: 120px; }
.suppliers-dialog { width: min(700px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; border: 1px solid #dfe7e8; border-radius: 10px; color: var(--ink); background: #f7f9f9; box-shadow: 0 18px 60px #15282b40; }
.suppliers-dialog::backdrop { background: #15282b80; }
.suppliers-shell { padding: 22px; }
.suppliers-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.suppliers-heading .eyebrow { margin-bottom: 4px; }
.suppliers-heading h2 { margin: 0 0 4px; color: #1c2c32; font: 700 22px "Manrope", sans-serif; }
.suppliers-heading p { margin: 0; color: #77858b; font-size: 11px; }
.supplier-form { display: grid; grid-template-columns: minmax(0, 1fr) 160px auto; align-items: end; gap: 10px; padding: 13px; border: 1px solid #e1e9ea; border-radius: 7px; background: #fff; }
.supplier-form label { display: grid; gap: 5px; color: #52666c; font-size: 10px; font-weight: 700; }
.supplier-form input { width: 100%; height: 33px; padding: 0 8px; border: 1px solid #dce5e6; border-radius: 4px; outline: none; color: #34454a; background: #fff; font-size: 11px; }
.supplier-form input:focus { border-color: #78abaa; box-shadow: 0 0 0 2px #0b696d14; }
.suppliers-status { min-height: 16px; margin: 8px 1px; color: #728287; font-size: 10px; }
.suppliers-status.error { color: #a74941; }
.suppliers-table-wrap { overflow: auto; border: 1px solid #e1e9ea; border-radius: 7px; background: #fff; }
.suppliers-table { width: 100%; min-width: 690px; border-collapse: collapse; table-layout: auto; }
.suppliers-table th, .suppliers-table td { height: 37px; padding: 6px 10px; border-bottom: 1px solid #edf0f1; color: #40545a; font-size: 11px; text-align: left; }
.suppliers-table th { color: #64777d; background: #f6f8f8; font-size: 10px; font-weight: 700; }
.suppliers-table tr:last-child td { border-bottom: 0; }
.suppliers-table td:nth-child(2) { width: 155px; color: #254e50; font-variant-numeric: tabular-nums; }
.suppliers-table td:nth-child(3) { width: 175px; color: #64777d; font-variant-numeric: tabular-nums; }
.suppliers-table th:last-child, .suppliers-table td:last-child { width: 108px; text-align: right; }
.supplier-select-button { height: 26px; padding: 0 8px; border: 1px solid #b9dce8; border-radius: 4px; color: #356e80; background: #edf7fa; font-size: 9px; font-weight: 700; }
.supplier-select-button:hover:not(:disabled) { border-color: #97c9d9; background: #e1f1f6; }
.supplier-select-button:disabled { cursor: default; opacity: .7; }
.suppliers-table tr.is-active-supplier td { background: #edf7f6; }
.suppliers-empty td { color: #89969b; text-align: center; }
.help-dialog { width: min(820px, calc(100vw - 32px)); max-height: calc(100vh - 32px); padding: 0; overflow: auto; border: 1px solid #dfe7e8; border-radius: 10px; color: var(--ink); background: #f7f9f9; box-shadow: 0 18px 60px #15282b40; }
.help-dialog::backdrop { background: #15282b80; }
.help-shell { padding: 22px; }
.help-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.help-heading .eyebrow { margin-bottom: 4px; }
.help-heading h2 { margin: 0 0 4px; color: #1c2c32; font: 700 22px "Manrope", sans-serif; }
.help-heading p { margin: 0; color: #77858b; font-size: 11px; }
.help-topics { display: grid; gap: 8px; }
.help-topics details { border: 1px solid #e1e9ea; border-radius: 7px; background: #fff; }
.help-topics summary { padding: 11px 13px; color: #36545b; font-size: 12px; font-weight: 700; cursor: pointer; }
.help-topics details[open] summary { border-bottom: 1px solid #edf1f2; color: #286964; background: #f5faf9; }
.help-topics p { margin: 0; padding: 11px 13px 13px; color: #52666c; font-size: 11px; line-height: 1.55; }
.help-topics strong { color: #304c52; }
.help-steps { margin: 0; padding: 0 0 0 20px; display: grid; gap: 10px; color: #52666c; font-size: 12px; line-height: 1.55; }
.help-steps li::marker { color: #286964; font-weight: 800; }
.help-steps strong { color: #304c52; }
.help-tips { margin-top: 14px; padding: 10px 13px; border: 1px solid #e1e9ea; border-left: 3px solid #286964; border-radius: 7px; color: #52666c; background: #fff; font-size: 11px; line-height: 1.55; }
.help-tips strong { color: #304c52; }
.help-footer { margin-top: 16px; display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; color: #77858b; font-size: 11px; }
.help-footer .button { text-decoration: none; display: inline-flex; align-items: center; }
.dashboard-dialog { width: min(1000px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 32px); padding: 0; overflow: auto; border: 1px solid #dfe7e8; border-radius: 10px; color: var(--ink); background: #f7f9f9; box-shadow: 0 18px 60px #15282b40; }
.dashboard-dialog::backdrop { background: #15282b80; }
.dashboard-shell { padding: 22px; }
.dashboard-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 18px; }
.dashboard-heading .eyebrow { margin-bottom: 4px; }
.dashboard-heading h2 { margin: 0 0 4px; color: #1c2c32; font: 700 22px "Manrope", sans-serif; }
.dashboard-heading p { margin: 0; color: #77858b; font-size: 11px; }
.dashboard-close { width: 32px; height: 32px; display: grid; flex: 0 0 auto; place-items: center; border: 1px solid #dfe7e8; border-radius: 6px; color: #617278; background: #fff; font-size: 22px; line-height: 1; }
.dashboard-close:hover { color: #263a40; background: #f1f5f5; }
.dashboard-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.dashboard-card { min-width: 0; padding: 15px; border: 1px solid #e5eaec; border-radius: 8px; background: #fff; }
.dashboard-card h3 { margin: 0 0 3px; color: #293a40; font: 700 13px "Manrope", sans-serif; }
.dashboard-card > p { margin: 0 0 12px; color: #879398; font-size: 10px; }
.dashboard-status-card { grid-column: 1 / -1; }
.dashboard-list { display: grid; gap: 10px; }
.dashboard-item { position: relative; min-width: 0; }
.dashboard-item-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; margin-bottom: 4px; }
.dashboard-item-label { min-width: 0; overflow: hidden; color: #465960; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-item-value { flex: 0 0 auto; color: #254e50; font: 700 10px "DM Sans", sans-serif; font-variant-numeric: tabular-nums; }
.dashboard-bar-track { height: 5px; overflow: hidden; border-radius: 4px; background: #eef2f2; }
.dashboard-bar { height: 100%; display: block; border-radius: inherit; background: #55a39a; }
.dashboard-rank { position: absolute; top: 0; left: -1px; width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; color: #55716f; background: #edf5f4; font-size: 8px; font-weight: 700; transform: translateX(-3px); }
.dashboard-rank + .dashboard-item-heading { padding-left: 20px; }
.dashboard-empty { padding: 16px 0; color: #89969b; font-size: 11px; text-align: center; }
.dashboard-footnote { margin: 13px 2px 0; color: #89969b; font-size: 9px; }

.articles-page .page-heading-actions .button { width: auto; }
.articles-page .data-card { margin-top: 13px; }
.articles-table { min-width: 2000px; table-layout: auto; }
.articles-table thead th { position: sticky; top: 0; z-index: 3; }
.articles-table thead .select-column { z-index: 6; }
.articles-table thead th.article-wrap-heading { white-space: normal; }
.articles-table .article-center-cell, .articles-table .article-center-cell input { text-align: center; }
.articles-table .article-number-cell, .articles-table .article-number-cell input { text-align: right; }
.articles-table tbody td { height: 42px; padding: 4px 7px; color: #34464c; font: 12px "DM Sans", "Segoe UI", sans-serif; }
.articles-table tbody td.article-code-cell { color: #087578; font-weight: 700; }
.articles-table tbody td.article-detail-cell { white-space: normal; }
.articles-table tbody td > input:not([type="checkbox"]) { width: 100%; min-width: 70px; height: 29px; padding: 0 6px; border: 1px solid #dce5e6; border-radius: 4px; outline: none; color: #34454a; background: #fff; font: 11px "DM Sans", "Segoe UI", sans-serif; }
.articles-table tbody td > input:not([type="checkbox"]):focus { border-color: #78abaa; box-shadow: 0 0 0 2px #0b696d14; }
.articles-table tbody tr.article-editing-row td { background: #f5faf9; }
.articles-table tbody tr.article-new-row td { background: #edf6ff; }
.article-actions-heading, .article-actions-cell { position: sticky; right: 0; z-index: 2; width: 165px; min-width: 165px; background: #f9fbfb; }
.articles-table thead .article-actions-heading { z-index: 5; }
.article-actions-cell { display: table-cell; white-space: nowrap; }
.article-row-button { height: 27px; margin-right: 4px; padding: 0 8px; font-size: 10px; }
.article-row-button:last-child { margin-right: 0; }
.articles-table .article-actions-cell .button-primary { color: #fff; background: var(--teal); }
.articles-table .article-actions-cell .button-primary:hover { background: var(--teal-dark); }
.articles-empty-state { min-height: 250px; }
.homologation-picker-button { max-width: 100%; overflow: hidden; padding: 0 7px; text-overflow: ellipsis; }
.homologation-dialog { width: min(680px, calc(100vw - 32px)); max-height: min(720px, calc(100vh - 32px)); padding: 0; overflow: hidden; border: 1px solid #e2e9eb; border-radius: 9px; color: var(--ink); background: #fff; box-shadow: 0 18px 60px #172b3333; }
.homologation-dialog::backdrop { background: #14272d66; }
.homologation-shell { display: flex; max-height: min(720px, calc(100vh - 32px)); flex-direction: column; padding: 22px; }
.homologation-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.homologation-heading h2 { margin: 0 0 6px; color: #293a40; font: 700 17px "Manrope", sans-serif; }
.homologation-heading p { max-width: 550px; margin: 0 0 16px; color: #7c8b90; font-size: 11px; line-height: 1.5; }
.homologation-search-box { width: 100%; flex: 0 0 auto; margin-bottom: 10px; }
.homologation-options { min-height: 120px; overflow: auto; border: 1px solid #e6ebed; border-radius: 5px; }
.homologation-option { display: flex; min-height: 37px; align-items: center; gap: 10px; padding: 6px 10px; border-bottom: 1px solid #edf0f1; color: #34454a; font-size: 11px; cursor: pointer; }
.homologation-option:last-child { border-bottom: 0; }
.homologation-option:hover { background: #f6f9f9; }
.homologation-option input[type="checkbox"] { flex: 0 0 14px; }
.homologation-option input:disabled { cursor: not-allowed; }
.homologation-option span { min-width: 0; flex: 1; }
.homologation-option small { color: #8a6a36; font-size: 9px; }
.homologation-empty { margin: 0; padding: 24px 12px; color: #89969b; font-size: 11px; text-align: center; }
.homologation-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-top: 13px; }
.homologation-footer > div { display: flex; gap: 7px; }

.oracle-dialog { width: min(720px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 32px); padding: 0; overflow: auto; border: 1px solid #dfe7e8; border-radius: 10px; color: var(--ink); background: #f7f9f9; box-shadow: 0 18px 60px #15282b40; }
.oracle-dialog::backdrop { background: #15282b80; }
body.oracle-queue-window { min-width: 0; overflow: hidden; }
body.oracle-queue-window > .topbar,
body.oracle-queue-window > .page { display: none; }
body.oracle-queue-window > .oracle-dialog { width: calc(100vw - 24px); max-height: calc(100vh - 24px); }
.oracle-shell { padding: 22px; }
.oracle-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.oracle-header h2 { margin: 0 0 4px; color: #1c2c32; font: 700 21px "Manrope", sans-serif; }
.oracle-header p { margin: 0; color: #77858b; font-size: 11px; }
.oracle-notice { margin: 16px 0 12px; padding: 11px 13px; border: 1px solid #ead9ae; border-radius: 6px; color: #705b2d; background: #fff9e9; font-size: 11px; line-height: 1.5; }
.oracle-toolbar { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.oracle-open-link { border: 1px solid #c6d8d6; color: #286964; background: #fff; }
.oracle-delay-label { margin-left: auto; color: #718086; font-size: 10px; }
.oracle-toolbar input { width: 58px; height: 32px; padding: 0 7px; border: 1px solid #d8e0e2; border-radius: 5px; color: var(--ink); background: white; font-size: 11px; }
.oracle-order-list { max-height: min(42vh, 390px); overflow: auto; margin: 0; padding: 0; border: 1px solid #e3e9eb; border-radius: 7px; background: white; list-style: none; counter-reset: order; }
.oracle-order-item { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 8px; min-height: 39px; padding: 5px 11px; border-bottom: 1px solid #edf0f1; counter-increment: order; font-size: 11px; }
.oracle-order-item:last-child { border-bottom: 0; }
.oracle-order-item::before { color: #819096; content: counter(order) "."; text-align: right; }
.oracle-order-code { overflow-wrap: anywhere; color: #35474e; font-weight: 700; }
.oracle-order-state { color: #829096; font-size: 9px; }
.oracle-order-item[data-state="done"] .oracle-order-state { color: #25845f; }
.oracle-order-item[data-state="awaitingConfirmation"] .oracle-order-state { color: #a56b12; font-weight: 700; }
.oracle-order-item[data-state="loaded"] .oracle-order-state { color: #25845f; font-weight: 700; }
.oracle-order-item[data-state="error"] .oracle-order-state,
.oracle-order-item[data-state="orderError"] .oracle-order-state { color: #a74941; }
.oracle-status-pill { display: inline-flex; min-height: 19px; align-items: center; padding: 2px 7px; border-radius: 10px; font-size: 9px; font-weight: 700; white-space: nowrap; }
.oracle-status-pill.is-loaded { color: #277452; background: #e9f5ee; }
.oracle-status-pill.is-pending { color: #8c6b2b; background: #fcf5e7; }
.oracle-reopen-button { margin-left: 5px; padding: 2px 5px; border: 1px solid #d7dfe1; border-radius: 4px; color: #6e7e83; background: #fff; font-size: 8px; }
.oracle-reopen-button:hover { border-color: #dfc0bd; color: #98463f; background: #fff7f6; }
.oracle-empty { padding: 22px 12px; color: #879398; text-align: center; }
.oracle-footer { margin-top: 12px; }
.oracle-status { min-height: 15px; margin: 10px 0 4px; color: #69797f; font-size: 10px; }
.oracle-status.error { color: #a74941; }
.oracle-footer-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.oracle-error-actions { display: flex; flex-wrap: wrap; gap: 7px; }
.oracle-error-actions[hidden] { display: none; }
.oracle-footer-actions .button:disabled { cursor: default; opacity: .5; }
.oracle-footer-actions #oracle-stop { border: 1px solid #e7c8c5; color: #a74941; background: #fff; }
.oracle-footer-actions #oracle-stop:hover:not(:disabled) { background: #fff4f2; }

@media (max-width: 950px) {
  .page { width: 98%; margin-top: 18px; }
  .summary-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .card-heading { align-items: flex-start; flex-direction: column; }
  .card-actions { width: 100%; justify-content: flex-end; }
  .table-wrap { max-height: calc(100vh - 400px); }
  .oracle-dialog { width: min(720px, calc(100vw - 24px)); max-height: calc(100vh - 24px); }
}
@media (max-width: 600px) {
  .topbar { height: 52px; padding: 0 4%; }
  .topbar-right { gap: 10px; }
  .connection-indicator { font-size: 0; }
  .connection-indicator span { width: 9px; height: 9px; }
  .brand-product { display: none; }
  .brand-divider { display: none; }
  .page { width: 96%; margin-top: 16px; }
  .page-heading { align-items: flex-start; flex-direction: column; }
  h1 { font-size: 23px; }
  .page-heading-actions { width: 100%; }
  .page-heading-actions .button { width: auto; flex: 1 1 0; }
  .summary-grid { grid-template-columns: minmax(0, 1fr); gap: 9px; }
  .summary-card { min-height: 58px; gap: 8px; padding: 7px 8px; }
  .summary-icon { width: 32px; height: 32px; }
  .summary-icon svg { width: 17px; height: 17px; }
  .summary-label { font-size: 11px; }
  .summary-card strong { font-size: 17px; }
  .summary-note { font-size: 11px; }
  .summary-import strong { font-size: 12px; }
  .card-heading { padding: 14px; }
  .card-actions { flex-wrap: wrap; justify-content: flex-start; }
  .button-danger-outline { font-size: 10px; }
  .toolbar { align-items: flex-start; flex-direction: column; padding: 10px 14px; }
  .search-box { width: 100%; }
  .quick-address-filters { flex-wrap: wrap; gap: 8px 12px; margin-left: 0; }
  .result-count { margin-left: 0; }
  .toolbar-actions { flex-wrap: wrap; }
  .table-footer { padding: 0 12px; font-size: 9px; }
  .table-wrap { max-height: calc(100vh - 370px); }
  .dashboard-dialog { width: calc(100vw - 20px); max-height: calc(100vh - 20px); }
  .dashboard-shell { padding: 16px; }
  .dashboard-grid { grid-template-columns: minmax(0, 1fr); }
  .dashboard-status-card { grid-column: auto; }
  .articles-page .page-heading-actions { flex-wrap: wrap; }
  .articles-page .page-heading-actions .button { min-width: 0; }
  .suppliers-shell { padding: 16px; }
  .supplier-form { grid-template-columns: 1fr; }
  .supplier-form .button { width: 100%; }
  .help-shell { padding: 16px; }
  .homologation-shell { padding: 16px; }
  .homologation-footer { align-items: flex-start; flex-direction: column; }
  .oracle-shell { padding: 16px; }
  .oracle-toolbar { flex-wrap: wrap; }
  .oracle-delay-label { margin-left: 0; }
  .oracle-order-item { grid-template-columns: 26px minmax(0, 1fr) auto; gap: 6px; padding-right: 8px; padding-left: 8px; }
  .oracle-footer-actions { justify-content: flex-start; }
}

.user-email { max-width: 220px; overflow: hidden; color: #62747a; font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.logout-link { padding: 6px 12px; border: 1px solid #e7c8c5; border-radius: 6px; color: #b3261e; background: #fff; font-size: 11px; font-weight: 700; text-decoration: none; }
.logout-link:hover { background: #fdf2f1; }

.admin-link { padding: 6px 12px; border: 1px solid #dce6e6; border-radius: 6px; color: #286964; background: #f8fbfb; font-size: 11px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.admin-link:hover { background: #edf6f5; }
.admin-table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.admin-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.admin-table th { padding: 11px 14px; border-bottom: 1px solid var(--line); color: #62747a; background: #f8fbfb; font-size: 11px; letter-spacing: .05em; text-align: left; text-transform: uppercase; }
.admin-table td { padding: 11px 14px; border-bottom: 1px solid var(--line); }
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-users { table-layout: fixed; min-width: 1180px; }
.admin-users th, .admin-users td { padding: 10px 8px; overflow-wrap: anywhere; vertical-align: middle; }
.admin-users input[type="text"], .admin-users input[type="number"], .admin-users select { width: 100%; min-width: 0; box-sizing: border-box; }
.admin-users .button { padding-left: 10px; padding-right: 10px; }
.admin-pay { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; }
.admin-pay input[name="reference"], .admin-pay button { grid-column: span 1; }
.admin-payments { table-layout: fixed; min-width: 1000px; }
.admin-payments th, .admin-payments td { padding: 10px 8px; overflow-wrap: anywhere; vertical-align: middle; }
.admin-summary { table-layout: fixed; min-width: 900px; }
.admin-summary th, .admin-summary td { padding: 10px 8px; vertical-align: middle; overflow-wrap: anywhere; }
.admin-summary-wrap { max-height: calc(100vh - 220px); overflow: auto; }
.admin-summary thead th { position: sticky; top: 0; z-index: 2; }
.admin-summary tfoot td { position: sticky; bottom: 0; z-index: 2; padding: 10px 8px; border-top: 2px solid var(--line); border-bottom: 0; background: #eef5f4; }
.admin-summary th.num, .admin-summary td.num { text-align: center; line-height: 1.25; }
.contract-badge { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.contract-badge.is-active { color: #146c2e; background: #dff3e4; }
.contract-badge.is-expired { color: #a11a1a; background: #fde3e3; }
.admin-empty { color: var(--muted); font-style: italic; }

.login-body { min-height: 100vh; display: grid; place-items: center; background: #f5f7f8; }
.login-wrap { width: min(400px, 92vw); }
.login-card { padding: 28px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 8px 24px #20303914; }
.login-brand { display: flex; align-items: center; gap: 11px; margin-bottom: 18px; color: #174c51; }
.login-card h2 { margin-bottom: 16px; color: #1c2c32; font: 700 22px "Manrope", sans-serif; }
.login-field { display: flex; flex-direction: column; gap: 6px; margin-bottom: 14px; }
.login-field label { color: #31454b; font-size: 12px; font-weight: 700; }
.login-field input { height: 38px; padding: 0 12px; border: 1px solid #d5dfe1; border-radius: 6px; }
.login-field input:focus { border-color: var(--teal); outline: 2px solid #0b696d26; }
.login-submit { width: 100%; height: 38px; }
.login-powered { margin: 22px 0 0; text-align: center; font-size: 13px; line-height: 1.5; color: var(--muted); }
.login-error { margin-bottom: 14px; padding: 9px 12px; border: 1px solid #e7c8c5; border-radius: 6px; color: #b3261e; background: #fdf2f1; font-size: 12px; }
.login-ok { margin-bottom: 14px; padding: 9px 12px; border: 1px solid #b9dcc6; border-radius: 6px; color: #17653a; background: #effaf3; font-size: 12px; }
.screen-code { margin-left: 8px; padding: 2px 7px; border-radius: 4px; background: #eef2f3; color: #5b6e74; font: 700 11px "Manrope", sans-serif; letter-spacing: .04em; vertical-align: middle; }
.login-code { margin-left: 6px; padding: 2px 7px; border-radius: 4px; background: #eef2f3; color: #5b6e74; font: 700 11px "Manrope", sans-serif; vertical-align: middle; }
.login-check { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 13px; color: #31454b; }
.login-check-sub { margin-left: 22px; }
.login-hint { margin: 0 0 14px; font-size: 11px; color: var(--muted); }
.login-links { margin: 16px 0 0; font-size: 13px; }
.login-sep { margin: 16px 0; border: 0; border-top: 1px solid var(--line); }
.login-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 10px 0 0; font-size: 13px; color: var(--muted); }
.login-btn-ok { background: #198754; border-color: #198754; color: #fff; text-decoration: none; }
.login-btn-demo { background: #6c757d; border-color: #6c757d; color: #fff; }
.login-quick { margin-bottom: 8px; }
.login-link { padding: 0; border: 0; background: none; color: var(--teal); font-size: 12px; text-decoration: underline; cursor: pointer; }
