/* K-Petro purchasing portal. CI and soft glass treatment shared with good-station-board.
   Keep this presentation layer separate from collectors and generated datasets. */
:root {
  --ink:#29372d;
  --muted:#67776b;
  --ink-soft:#67776b;
  --green:#477625;
  --green-dark:#365c1b;
  --line:#e0e7dd;
  --paper:#f4f7f2;
  --ci-green:#8dc63f;
  --shadow:0 2px 5px #23392d03,0 12px 32px #23392d07;
  color:var(--ink);
  background:var(--paper);
  font-family:-apple-system,BlinkMacSystemFont,'Apple SD Gothic Neo','Segoe UI','Malgun Gothic',system-ui,sans-serif;
}
body {
  margin:0;
  color:var(--ink);
  background:radial-gradient(ellipse at 0 0,#e6efda 0,transparent 48%),radial-gradient(ellipse at 100% 100%,#e6eee6 0,transparent 45%),var(--paper);
  font-family:inherit;
  font-size:14px;
  line-height:1.65;
  min-height:100vh;
  -webkit-font-smoothing:antialiased;
}
* {
  box-sizing:border-box;
}
button,input,select {
  font:inherit;
}
button,a {
  touch-action:manipulation;
}
a {
  color:inherit;
}
button:disabled {
  cursor:default;
  opacity:.45;
}
button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible {
  outline:3px solid #69923a;
  outline-offset:3px;
}
input,select {
  accent-color:#639532;
}
h1,h2,h3 {
  color:var(--ink);
}
[hidden] {
  display:none!important;
}
.skip-link {
  position:fixed;
  top:-80px;
  left:20px;
  padding:12px 20px;
  background:#fff;
  z-index:1000;
}
.skip-link:focus {
  top:10px;
}
.portal-topbar {
  max-width:1440px;
  margin:16px auto 0;
  padding:17px 24px;
  min-height:86px;
  display:flex;
  align-items:center;
  gap:22px;
  border:1px solid #fff;
  border-radius:22px;
  background:#ffffffc4;
  box-shadow:var(--shadow);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  position:relative;
  z-index:5;
}
.portal-brand {
  display:flex;
  gap:20px;
  align-items:center;
  text-decoration:none!important;
  flex-shrink:0;
}
.portal-brand img {
  width:120px;
  height:auto;
  display:block;
  background:transparent;
}
.brand-divider {
  height:35px;
  width:1px;
  background:#d8e1d1;
}
.portal-brand-copy {
  display:grid;
  gap:3px;
}
.portal-brand-copy strong {
  font-size:19px;
  letter-spacing:-.06em;
  font-weight:700;
  white-space:nowrap;
}
.portal-brand-copy small {
  font-size:11px;
  color:#72806d;
  font-weight:400;
  letter-spacing:0;
}
.portal-topbar nav {
  display:flex;
  align-items:center;
  gap:3px;
  margin-left:auto;
  background:#eaf0e5;
  padding:5px;
  border-radius:14px;
  font-size:13px;
  flex-wrap:nowrap;
}
.portal-topbar nav a {
  padding:9px 14px;
  border-radius:10px;
  white-space:nowrap;
  text-decoration:none;
  line-height:1.4;
  display:block!important;
  color:#5d6b56;
  font-weight:500;
}
.portal-topbar nav a:hover {
  background:#ffffffb0;
  color:#324b22;
}
.portal-topbar nav a[aria-current=page] {
  background:#fff;
  box-shadow:0 2px 5px #263c1a0b;
  color:#355c1e;
  font-weight:700;
}
main {
  max-width:1360px;
  margin:0 auto;
  padding:36px 28px 24px;
}
.intro {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  margin:0 0 26px;
}
.eyebrow {
  font-size:10px;
  letter-spacing:.14em;
  color:#6b8354;
  font-weight:700;
  margin:0 0 10px;
}
h1 {
  font-size:32px;
  font-weight:700;
  line-height:1.4;
  letter-spacing:-.06em;
  margin:0;
}
.intro p:not(.eyebrow) {
  font-size:14px;
  color:var(--muted);
  margin-top:10px;
  line-height:1.7;
}
.intro aside {
  padding:15px 20px;
  border:1px solid #dce5d5;
  border-radius:14px;
  min-width:240px;
  background:#ffffff6b;
}
.intro aside small {
  margin:4px 0 0;
  font-size:12px;
  color:#5d6e53;
}
.summary-label {
  display:flex;
  align-items:center;
  gap:7px;
  font-size:11px;
  color:#69795f;
}
.summary-label i {
  width:6px;
  height:6px;
  background:#79b438;
  border-radius:50%;
}
.mobile-break {
  display:none;
}
.search-panel,.filter-panel,.category-sidebar {
  background:#ffffffef;
  border:1px solid #fff;
  border-radius:18px;
  box-shadow:var(--shadow);
}
.search-panel {
  padding:24px;
}
.search-row {
  padding:5px 6px 5px 16px;
  border:1px solid #cfdcc6;
  border-radius:12px;
  background:#f7f9f5;
  gap:12px;
}
.search-row:focus-within {
  border-color:#81a455;
  box-shadow:0 0 0 3px #8dc63f17;
  background:#fff;
}
.search-row svg {
  color:#7e8e73;
  flex-shrink:0;
}
.search-row input {
  font-size:15px;
  line-height:1.6;
  padding:9px 0;
  color:var(--ink);
  outline:none;
}
.search-row input::placeholder {
  color:#8a9783;
}
.search-panel form>label {
  font-size:13px;
  color:#4d6043;
  margin-bottom:10px;
}
.primary {
  background:linear-gradient(160deg,#96cd51,#80b93f);
  border:1px solid #82b942;
  color:#233916;
  box-shadow:inset 0 1px #ffffff65;
  border-radius:9px;
  font-size:13px;
  font-weight:700;
  padding:11px 22px;
}
.primary:hover {
  background:#8ec346;
  color:#233916;
}
.primary span {
  margin-left:18px;
}
.secondary {
  border:1px solid #dce5d5;
  border-radius:9px;
  color:#4c6340;
  background:#f8faf6;
  padding:9px 15px;
  font-size:12px;
}
.secondary:hover {
  background:#eef5e8;
  border-color:#b4cb9d;
}
.quick-search {
  margin:12px 0 0;
  gap:7px;
  align-items:center;
}
.quick-search>span {
  font-size:11px;
  color:#7d8d72;
  margin-right:5px;
}
.quick-search button {
  padding:4px 11px;
  font-size:11px;
  min-height:29px;
  border-color:#e5ecdf;
  color:#688054;
  background:#fafcf8;
}
.quick-search button:hover {
  background:#edf5e5;
}
.offer-main-search {
  margin-bottom:22px;
}
.offer-workspace {
  display:grid;
  grid-template-columns:285px minmax(0,1fr);
  gap:22px;
  align-items:start;
}
.offer-content {
  min-width:0;
}
.category-column {
  position:sticky;
  top:16px;
  display:grid;
  gap:14px;
  align-content:start;
  min-width:0;
}
.category-sidebar {
  position:static;
  min-width:0;
  padding:18px;
}
.sidebar-credit {
  padding:0 4px;
  color:#5f6e54;
  font-size:11px;
  line-height:1.65;
  text-align:center;
  overflow-wrap:break-word;
}
.sidebar-credit span {display:block;}
.sidebar-credit strong {font-weight:600;color:#526444;}
.category-column .category-picker {max-height:calc(100vh - 230px);}
.category-browser>summary {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  cursor:pointer;
  padding:2px 0 13px;
  font-size:15px;
  font-weight:700;
  list-style:none;
}
.category-browser>summary::-webkit-details-marker {
  display:none;
}
.category-browser>summary small {
  font-size:10px;
  font-weight:400;
  color:#7f8c77;
}
.category-browser>summary::after {
  content:'−';
  color:#90a47f;
  font-size:18px;
}
.category-browser:not([open])>summary::after {
  content:'+';
}
.category-picker {
  padding:0;
  margin:0;
  border:0;
  max-height:calc(100vh - 135px);
  overflow-y:auto;
  scrollbar-width:thin;
  scrollbar-color:#d0dcc5 transparent;
}
.category-search-label {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip-path:inset(50%);
}
#category-search {
  font-size:12px;
  margin-bottom:13px;
  padding:10px 11px;
  min-height:39px;
  border:1px solid #e1e8da;
  border-radius:9px;
  background:#f6f9f3;
}
.category-buttons {
  display:grid;
  grid-template-columns:1fr;
  gap:3px;
}
.category-buttons button {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 12px;
  min-height:39px;
  font-size:12px;
  color:#56694a;
  border:1px solid transparent;
  border-radius:9px;
  background:transparent;
  font-weight:500;
}
.category-buttons button::after {
  content:'›';
  font-size:17px;
  font-weight:400;
  color:#8da17c;
}
.category-buttons button:hover {
  background:#f1f6ec;
}
.category-buttons button[aria-pressed=true] {
  background:#eaf4dc;
  border-color:#d5e6bc;
  color:#365f1e;
  font-weight:700;
}
.category-buttons button[aria-pressed=true]::after {
  color:#6b9a34;
}
.subcategory-section {
  padding:12px;
  margin-top:14px;
  background:#f6f8f2;
  border:1px solid #e4ebdc;
  border-radius:11px;
}
.subcategory-section h3 {
  font-size:11px;
  line-height:1.7;
  color:#6b7a5e;
  margin-bottom:7px;
}
.subcategory-section .category-buttons button {
  font-size:11px;
  padding:7px;
  min-height:34px;
  background:#fff;
}
.category-picker p {
  font-size:12px;
  color:#68765c;
}
.filter-panel {
  padding:19px 22px;
}
.filter-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
}
.filter-heading h2 {
  font-size:14px;
  letter-spacing:-.03em;
}
.text-button {
  font-size:11px;
  color:#728267;
  white-space:nowrap;
}
.filters {
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  border:0;
  margin-top:14px;
  padding:0;
  align-items:flex-end;
}
.filters label {
  font-size:11px;
  color:#6b7b60;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:6px;
  flex:1 1 140px;
  min-width:0;
}
.filters input:not([type=checkbox]),.filters select {
  border:1px solid #e0e7d8;
  border-radius:8px;
  padding:9px 10px;
  background:#f9fbf6;
  color:#3f5235;
  width:100%;
  max-width:100%;
  min-height:39px;
  font-size:12px;
}
.filters label.check {
  flex-direction:row;
  align-items:center;
  flex-grow:0;
  flex-basis:auto;
  min-height:39px;
}
.filters input[type=checkbox] {
  width:15px;
}
.pending-choice {
  margin-top:13px;
  font-size:11px;
  color:#78856e;
  gap:7px;
}
.pending-choice input {
  width:14px;
  height:14px;
}
.results-toolbar {
  margin:26px 0 10px;
  gap:12px;
}
.results-toolbar .eyebrow {
  font-size:9px;
  letter-spacing:.14em;
  margin:0 0 4px;
  color:#859676;
}
.results-toolbar h2 {
  font-size:20px;
  letter-spacing:-.05em;
  font-weight:700;
}
.results-toolbar p {
  font-size:11px;
  line-height:1.6;
  color:#76866a;
}
.catalog-shortcut {
  font-size:11px;
  white-space:nowrap;
  padding:8px 11px;
  border-radius:8px;
  background:#eaf0e3;
  color:#5b7446;
}
.selection-note {
  font-size:11px;
  line-height:1.65;
  margin:0 0 16px;
  color:#77846d;
}
.active-filters {
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:10px;
}
.active-filters:empty {
  display:none;
}
.active-filters button {
  border:1px solid #d8e6c9;
  background:#f0f6e9;
  color:#4b6d32;
  font-size:11px;
  border-radius:20px;
  padding:5px 10px;
  cursor:pointer;
}
.active-filters button span {
  margin-left:9px;
  color:#7a9366;
}
.supplier-card {
  border:1px solid #e6ecdf;
  border-radius:16px;
  padding:23px;
  margin-bottom:13px;
  box-shadow:0 3px 14px #27391f03;
  gap:16px;
}
.supplier-card:hover {
  border-color:#c8d9b7;
}
.offer-card h3,.supplier-name {
  font-size:18px;
  letter-spacing:-.045em;
  font-weight:700;
  line-height:1.5;
}
.status-badge {
  font-size:10px;
  border-radius:5px;
  padding:3px 7px;
  line-height:1.8;
}
.status-badge.period {
  background:#eff5e8;
  color:#587238;
}
.status-badge.unknown {
  background:#f0f2ef;
  color:#75806d;
}
.status-badge.expired,.status-badge.cancelled {
  background:#fff2e4;
  color:#95612e;
}
.source-note {
  font-size:11px;
  color:#8b9585;
  margin:7px 0 15px;
}
.source-note a {
  color:#657d51;
  text-decoration:underline;
  text-underline-offset:3px;
}
.offer-list {
  list-style:none;
  padding:0;
  margin:14px 0 4px;
  background:#f8faf5;
  border:1px solid #eaf0e3;
  border-radius:11px;
  overflow:hidden;
}
.offer-list li {
  padding:11px 14px;
  margin:0;
  border-bottom:1px solid #e7eddf;
  font-size:13px;
  line-height:1.6;
  overflow-wrap:anywhere;
}
.offer-list li:last-child {
  border:0;
}
.offer-list a {
  color:#405731;
  text-decoration:none;
  font-weight:500;
}
.offer-list a:hover {
  text-decoration:underline;
}
.offer-list small {
  font-size:10px;
  color:#849076;
  margin-top:3px;
}
.offer-card details>summary {
  font-size:12px;
  color:#637b4c;
  padding:12px 0 3px;
}
.offer-contact {
  font-size:12px;
  color:#596c4d;
  border-top:1px solid #edf0e7;
  padding-top:12px;
}
.offer-empty,.empty {
  background:#fff;
  border:1px dashed #c8d7b9;
  color:#687a59;
  border-radius:16px;
  padding:40px 28px;
  font-size:13px;
  line-height:1.9;
}
.supplier-actions {
  border-color:#ecf0e5;
}
.contact-line {
  font-size:12px;
  color:#7c8a72;
}
.pagination {
  gap:20px;
  margin:26px 0 10px;
  color:#7e8d73;
  font-size:11px;
}
.method {
  border:1px solid #e1e7d8;
  border-radius:15px;
  background:#ecf1e6;
  margin-top:30px;
  padding:23px;
  box-shadow:none;
}
.method h2 {
  font-size:14px;
  margin-bottom:10px;
}
.method p,.method details {
  font-size:12px;
  line-height:1.8;
  color:#718062;
}
.method summary {
  font-size:12px;
  color:#547238;
}
.method #source-details {
  overflow:auto;
}
.coverage-note {
  font-size:12px;
  color:#7e8c72;
}
.portal-footer {
  max-width:1360px;
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:24px 28px 35px;
  margin:auto;
  color:#8b9780;
  font-size:10px;
}
.portal-footer strong {
  color:#667b53;
  font-weight:700;
  margin-right:5px;
}
.portal-footer a {
  color:#70855d;
}
.footer-credit {display:flex;flex-direction:column;gap:2px;text-align:center;}
.footer-credit strong {margin-right:0;}
/* Directory */
.coverage-disclosure {
  font-size:12px;
  color:#748569;
  margin:0 0 15px;
}
.coverage-disclosure summary {
  cursor:pointer;
}
.coverage-disclosure .coverage-note {
  margin:10px 0;
  padding:14px;
  border-radius:10px;
  background:#edf2e7;
}
.priority-heading {
  margin:23px 0 12px;
}
.type-tabs {
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:8px;
}
.type-tab {
  background:#f9fbf6;
  border:1px solid #e6ecde;
  border-radius:11px;
  font-size:12px;
  color:#5d7250;
  padding:13px;
  gap:7px;
}
.type-tab span {
  font-size:20px;
  color:#8f9e81;
  font-weight:600;
}
.type-tab.active {
  background:#eff6e5;
  border-color:#accc82;
  color:#426922;
}
.type-tab.active span {
  color:#60843d;
}
.page-index #results {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.page-index .supplier-card {
  grid-template-columns:1fr;
  margin:0;
  min-width:0;
}
.page-index .supplier-actions {
  border:0;
  padding:0;
  align-items:start;
}
.page-index .supplier-actions button {
  font-size:11px;
}
.page-index .supplier-name {
  font-size:16px;
}
.page-index .filters {
  align-items:flex-end;
}
.page-index .filters label {
  max-width:280px;
}
.page-index .filters .text-button {
  margin-bottom:10px;
}
.page-index .intro aside small {
  max-width:245px;
}
.page-index .method {
  margin-top:28px;
}
dialog {
  border-radius:20px;
  border:1px solid #fff;
  padding:30px;
  box-shadow:0 25px 90px #24392033;
  background:#fcfdf9;
}
dialog::backdrop {
  background:#2234196b;
  backdrop-filter:blur(3px);
}
/* Catalog */
.page-catalog .hero {
  display:block;
  padding:0;
  margin:0 0 22px;
}
.page-catalog .hero h1 {
  font-size:32px;
  letter-spacing:-.06em;
  line-height:1.4;
}
.page-catalog .hero p {
  font-size:14px;
  line-height:1.8;
  color:var(--muted);
  margin:10px 0 18px;
  max-width:none;
}
.page-catalog .hero .primary {
  display:inline-block;
  padding:8px 14px;
  font-size:12px;
}
.page-catalog .secondary-link {
  background:#fff;
  border:1px solid #dbe6cf;
  color:#657e4c;
  box-shadow:none;
}
.page-catalog .stats {
  gap:12px;
  margin:20px 0;
}
.page-catalog .stats article {
  border:1px solid #fff;
  border-radius:15px;
  box-shadow:var(--shadow);
  padding:18px 22px;
  background:#ffffffbd;
}
.page-catalog .stats strong {
  font-size:27px;
  color:#42632b;
}
.page-catalog .stats .date {
  font-size:22px;
}
.page-catalog .stats small,.page-catalog .stats span {
  font-size:11px;
  color:#7b8b6f;
}
.page-catalog .banner-notice {
  background:#edf2e8;
  border-color:#dbe6cf;
  border-radius:12px;
  padding:16px 20px;
  margin:0 0 25px;
}
.page-catalog .notice-text strong {
  font-size:12px;
  color:#60764a;
}
.page-catalog .notice-text p {
  font-size:11px;
  line-height:1.8;
  color:#79866e;
}
.page-catalog .explore {
  border:1px solid #fff;
  border-radius:18px;
  box-shadow:var(--shadow);
  padding:25px;
  margin:25px 0;
  background:#ffffffdd;
}
.page-catalog .section-heading h2 {
  font-size:21px;
  letter-spacing:-.04em;
}
.page-catalog .section-heading .text-muted {
  font-size:11px;
  max-width:480px;
}
.page-catalog .category-grid {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.page-catalog .category-card {
  border:1px solid #e1e9d7;
  border-radius:12px;
  padding:16px;
  background:#fafcf7;
  min-height:140px;
  box-shadow:none;
}
.page-catalog .category-card:hover {
  background:#f1f7e8;
  border-color:#b0cb8e;
  transform:none;
}
.page-catalog .category-card.active {
  border-color:#9fbf75;
  background:#edf6df;
  box-shadow:inset 0 0 0 1px #9fbf75;
}
.page-catalog .category-card strong {
  font-size:15px;
  color:#405d2b;
}
.page-catalog .category-count {
  font-size:11px;
}
.page-catalog .category-count b {
  color:#658f3c;
}
.page-catalog .mini-tag {
  font-size:9px;
  background:#edf3e5;
  color:#71865c;
  border:0;
}
.page-catalog .product-card,.page-catalog .facility-card {
  border:1px solid #e4ebda;
  box-shadow:none;
  border-radius:13px;
}
.page-catalog .filters {
  border:1px solid #e7eddf;
  background:#f8faf5;
  border-radius:12px;
  padding:14px;
  gap:12px;
}
.page-catalog .filters label.search {
  flex-basis:260px;
}
.page-catalog .result-head {
  font-size:11px;
  color:#7a8a6d;
}
.page-catalog .method .steps {
  gap:20px;
}
.page-catalog .method h3 {
  font-size:13px;
}
.page-catalog .source {
  background:transparent;
  border-color:#dce5d3;
  border-radius:12px;
}
.page-catalog .source p {
  font-size:11px;
  color:#718465;
}
.page-catalog .source h3 {
  font-size:13px;
}
.page-catalog .source a {
  font-size:11px;
}
.page-catalog .portal-topbar {
  max-width:1440px;
}
/* Notices */
.notice-info {
  padding:18px 22px;
  border:1px solid #dce6d2;
  background:#eef4e7;
  border-radius:13px;
  margin-bottom:20px;
  font-size:12px;
  color:#6c8059;
}
.notice-info strong {
  color:#506b39;
}
.notice-info p {
  margin-top:5px;
}
.page-cancellations .filters {
  margin:0;
}
.page-cancellations .filters .notice-query {
  flex:3;
}
.page-cancellations #notices article {
  padding:24px;
  border:1px solid #e2e9d9;
  border-radius:15px;
  background:#fff;
  margin-bottom:12px;
}
.page-cancellations #notices h2 {
  font-size:17px;
  letter-spacing:-.025em;
  margin:0 0 8px;
}
.page-cancellations #notices small {
  font-size:11px;
  color:#829174;
}
.page-cancellations #notices ul {
  font-size:12px;
  color:#617b4a;
}
.page-cancellations .warning {
  padding:15px;
  background:#fff3df;
  border-radius:10px;
  color:#866333;
  font-size:12px;
}
.page-product-search #saved-count {
  display:none;
}
@media(min-width:1500px) {
  .portal-topbar {
    margin-top:20px;
  }
}
@media(max-width:1480px) {
  .portal-topbar {
    margin:16px 24px 0;
  }
}
@media(max-width:1140px) {
  .portal-topbar {
    flex-wrap:wrap;
    padding:18px 22px;
    gap:16px;
  }
  .portal-topbar nav {
    margin-left:auto;
  }
  .portal-brand-copy strong {
    font-size:17px;
  }
  .portal-brand {
    gap:13px;
  }
  .portal-brand img {
    width:100px;
  }
  .portal-topbar nav a {
    padding:9px 10px;
    font-size:12px;
  }
  .offer-workspace {
    grid-template-columns:250px minmax(0,1fr);
    gap:18px;
  }
  .type-tabs {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
  .page-catalog .category-grid {
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:850px) {
  .portal-topbar {
    margin:12px 16px 0;
  }
  .portal-topbar nav {
    width:100%;
    justify-content:space-between;
    margin:0;
  }
  .portal-topbar nav a {
    flex:1;
    text-align:center;
  }
  .intro aside {
    min-width:195px;
  }
  .intro aside small {
    font-size:11px;
  }
  .offer-workspace {
    grid-template-columns:220px minmax(0,1fr);
    gap:14px;
  }
  .category-sidebar {
    padding:14px;
  }
  .filter-panel {
    padding:17px;
  }
  .filters label {
    flex-basis:120px;
  }
  .page-index #results {
    grid-template-columns:1fr;
  }
  .catalog-shortcut {
    display:none;
  }
  .intro h1 {
    font-size:28px;
  }
  .page-catalog .category-grid {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}
@media(max-width:650px) {
  .portal-topbar {
    padding:15px 14px;
    gap:14px;
    margin:10px 10px 0;
    border-radius:18px;
  }
  .portal-brand img {
    width:96px;
  }
  .portal-brand {
    gap:12px;
  }
  .brand-divider {
    height:30px;
  }
  .portal-brand-copy strong {
    font-size:16px;
  }
  .portal-brand-copy small {
    display:block;
    font-size:10px;
  }
  .portal-topbar nav {
    border-radius:11px;
    padding:4px;
    gap:0;
  }
  .portal-topbar nav a {
    padding:9px 3px;
    font-size:10px;
    border-radius:8px;
  }
  .portal-topbar nav a:first-child {
    display:block;
  }
  main {
    padding:25px 14px 15px;
  }
  .intro {
    display:block;
    margin-bottom:20px;
  }
  .intro h1,.page-catalog .hero h1 {
    font-size:27px;
    line-height:1.45;
  }
  .intro p:not(.eyebrow) {
    font-size:12px;
    line-height:1.8;
  }
  .intro aside {
    display:block;
    margin-top:15px;
    padding:10px 13px;
    min-width:0;
    width:fit-content;
  }
  .intro aside small {
    display:inline;
    margin:0 0 0 8px;
    font-size:10px;
  }
  .summary-label {
    display:inline-flex;
    font-size:10px;
  }
  .mobile-break {
    display:inline;
  }
  .eyebrow {
    font-size:9px;
  }
  .search-panel {
    padding:18px 16px;
    border-radius:15px;
  }
  .search-panel form>label {
    font-size:12px;
  }
  .search-row {
    gap:8px;
    padding-left:11px;
  }
  .search-row input {
    font-size:12px;
  }
  .search-row svg {
    width:18px;
  }
  .search-row .primary {
    padding:10px 13px;
    font-size:12px;
  }
  .primary span {
    display:none;
  }
  .quick-search {
    gap:5px;
  }
  .quick-search>span {
    font-size:10px;
  }
  .quick-search button {
    font-size:10px;
    padding:4px 8px;
  }
  .offer-workspace {
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .category-sidebar {
    width:100%;
    position:static;
    padding:16px;
  }
  .category-column {width:100%;position:static;}
  .category-column .category-picker {max-height:350px;}
  .category-picker {
    max-height:350px;
  }
  .category-browser>summary {
    font-size:14px;
  }
  .category-browser>summary small {
    margin-left:auto;
  }
  .category-buttons,#category-buttons {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:4px;
  }
  .category-buttons button {
    font-size:11px;
    padding:9px 8px;
    min-height:36px;
    background:#f7f9f4;
  }
  .category-buttons button::after {
    font-size:14px;
  }
  .offer-content {
    width:100%;
  }
  .filters {
    gap:10px;
  }
  .filters label {
    flex-basis:calc(50% - 10px);
  }
  .filter-panel {
    padding:17px 16px;
  }
  .results-toolbar {
    margin-top:23px;
  }
  .results-toolbar h2 {
    font-size:19px;
  }
  .supplier-card {
    padding:19px 17px;
    border-radius:14px;
  }
  .offer-card h3 {
    font-size:17px;
  }
  .source-note {
    font-size:10px;
  }
  .offer-list li {
    font-size:12px;
    padding:10px 12px;
  }
  .offer-list small {
    font-size:10px;
  }
  .type-tabs {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .type-tab {
    padding:11px;
    font-size:11px;
  }
  .type-tab span {
    font-size:18px;
  }
  .page-index .supplier-actions {
    align-items:stretch;
  }
  .portal-footer {
    padding:22px 15px 28px;
    flex-wrap:wrap;
    font-size:10px;
    gap:8px;
  }
  .portal-footer>span:nth-child(2) {
    display:none;
  }
  .method {
    padding:20px 17px;
  }
  .method p {
    font-size:11px;
  }
  .page-catalog .stats {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
  }
  .page-catalog .stats article {
    padding:15px;
  }
  .page-catalog .stats strong {
    font-size:24px;
  }
  .page-catalog .stats .date {
    font-size:17px;
  }
  .page-catalog .stats small {
    font-size:10px;
  }
  .page-catalog .explore {
    padding:18px 14px;
  }
  .page-catalog .category-card {
    padding:12px;
    min-height:150px;
  }
  .page-catalog .category-card strong {
    font-size:14px;
  }
  .page-catalog .section-heading {
    display:block;
  }
  .page-catalog .section-heading h2 {
    font-size:20px;
  }
  .page-catalog .section-heading .text-muted {
    display:block;
    margin-top:8px;
  }
  .page-catalog .category-grid {
    gap:8px;
  }
  .page-catalog .banner-notice {
    padding:15px;
  }
  .page-catalog .filters label.search {
    flex-basis:100%;
  }
  .page-cancellations #notices article {
    padding:19px;
  }
  .page-cancellations #notices h2 {
    font-size:15px;
  }
  .page-cancellations .filters .notice-query {
    flex-basis:100%;
  }
  .page-product-search .type-tabs {
    grid-template-columns:repeat(2,1fr);
  }
}
@media(prefers-reduced-motion:reduce) {
  * {
    scroll-behavior:auto!important;
    transition:none!important;
  }
}
.subcategory-section {
  margin:0 0 12px;
}
.mobile-results-link {
  display:none;
}
.page-catalog .stats {
  padding:0;
  border:0;
  background:transparent;
  box-shadow:none;
}
.page-catalog .stats article {
  border-right:1px solid #fff;
}
/* Show one responsive row by default; expansion and search reveal all matching names. */
.catalog-name-toolbar {display:flex;align-items:flex-end;gap:16px;justify-content:space-between;margin-bottom:16px;}
.catalog-name-field {flex:1;max-width:520px;min-width:0;}
.catalog-name-toolbar #catalog-name-search {margin-bottom:0;}
#toggle-names {flex-shrink:0;min-height:44px;}
.catalog-scope-note {color:var(--muted);font-size:12px;line-height:1.8;margin:8px 0;}
.catalog-name-label {display:block;font-size:12px;font-weight:700;margin:16px 0 7px;}
#catalog-name-search {width:100%;max-width:520px;margin-bottom:16px;padding:12px 14px;border:1px solid #d6e0cd;border-radius:10px;background:#fff;font:inherit;font-size:14px;color:var(--ink);}
#catalog-name-search:focus {outline:2px solid #91b668;outline-offset:2px;}
.page-catalog #category-grid {grid-template-columns:repeat(auto-fill,minmax(180px,1fr));}
.page-catalog .item-name-card {min-height:76px;padding:13px 15px;gap:7px;text-align:left;justify-content:center;}
.page-catalog .item-name-card strong {font-size:14px;overflow-wrap:anywhere;}
.item-name-card span {font-size:10px;color:var(--muted);}
.sort-control {display:flex;align-items:center;gap:8px;font-size:12px;margin-left:auto;}
.sort-control select {width:auto;max-width:190px;}
.loading-preview {border:1px dashed #bccdad;border-radius:14px;padding:24px;color:var(--muted);background:#ffffffa8;}
.business-check-name {display:flex;align-items:baseline;flex-wrap:wrap;gap:8px;text-align:left;border:0;background:transparent;padding:0;color:inherit;font:inherit;cursor:pointer;}
.business-check-name small,.verify-inline {font-size:11px;color:#55783b;font-weight:500;}
.business-check-name:hover,.verify-inline:hover {text-decoration:underline;}
.verify-inline {display:block;border:0;background:transparent;padding:5px 0;cursor:pointer;}
#verification-dialog {width:860px;max-width:calc(100vw - 32px);max-height:88vh;overflow:auto;}
#verification-dialog h2 {font-size:23px;line-height:1.5;padding-right:25px;}
.verify-identity {display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:16px 0;}
.verify-note {font-size:13px;line-height:1.8;color:var(--muted);}
.verify-sources {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px;}
.verify-source {padding:18px;border:1px solid #e0e7d8;border-radius:12px;background:white;}
.verify-source.listed {border-color:#a7c287;background:#f3f8ec;}
.verify-source h3 {font-size:15px;margin:0;}
.verify-source h3 small {display:block;font-size:11px;color:#55783b;margin-top:5px;}
.verify-source p {font-size:12px;color:var(--muted);line-height:1.7;}
.verify-source a {display:block;font-size:12px;margin-top:10px;}
#official-notice-route:empty {display:none;}
#source-report p {font-size:12px;line-height:1.8;}
@media(max-width:650px) {
  .catalog-name-toolbar {flex-wrap:wrap;gap:10px;}
  .catalog-name-field {flex-basis:100%;}
  #toggle-names {margin-left:auto;}
  .page-catalog #category-grid {grid-template-columns:repeat(2,minmax(0,1fr));}
  .page-catalog .item-name-card {min-height:76px;padding:12px;}
  .sort-control {margin-left:0;}
  #verification-dialog {padding:22px 16px;}
  .verify-sources {grid-template-columns:1fr;}
}
@media(max-width:650px) {
  .mobile-results-link {
    display:block;
    text-align:center;
    margin-top:12px;
    padding:9px;
    border-radius:9px;
    background:#edf4e3;
    color:#5a793d;
    font-size:12px;
  }
}
