/* CPSC Product Safety History frontend */
.cpsc-history-shell{max-width:1180px;margin:0 auto;padding:28px 18px 48px}
.cpsc-history{max-width:1180px;margin:0 auto;padding:0}
.cpsc-history__header{max-width:860px;margin-bottom:28px}
.cpsc-history__header h1{font-size:clamp(2rem,5vw,3.25rem);line-height:1.08;margin:0 0 14px}
.cpsc-history__lede{font-size:1.12rem;line-height:1.65;margin:0}
.cpsc-history section{margin:46px 0}
.cpsc-history section:first-of-type{margin-top:0}
.cpsc-history h2{margin:0 0 16px;line-height:1.25}
.cpsc-history p{line-height:1.65}

/* Summary metrics: value and label must never run together. */
.cpsc-metrics{display:grid !important;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 14px}
.cpsc-metric{display:flex !important;flex-direction:column;gap:8px;border:1px solid #d7dce2;border-radius:10px;padding:18px;min-width:0}
.cpsc-metric strong{display:block !important;font-size:1.7rem;line-height:1.1;margin:0}
.cpsc-metric span{display:block !important;font-size:.92rem;line-height:1.35;margin:0}
.cpsc-note{font-size:.9rem;line-height:1.55;opacity:.8;margin-top:12px}

/* Annual chart: explicit columns and vertical separation. */
.cpsc-chart{display:grid !important;gap:9px;max-width:760px;margin-top:20px}
.cpsc-chart__row{display:grid !important;grid-template-columns:58px minmax(120px,1fr) 44px;gap:12px;align-items:center;min-height:22px}
.cpsc-chart__year,.cpsc-chart__value{display:block;line-height:1.2;font-variant-numeric:tabular-nums}
.cpsc-chart__barwrap{display:block !important;height:16px;background:#eceff2;border-radius:3px;overflow:hidden}
.cpsc-chart__bar{display:block !important;height:100%;background:currentColor;opacity:.65}
.cpsc-chart__value{text-align:right}

/* Related hazard cards. */
.cpsc-related-grid{display:grid !important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}
.cpsc-related-grid a,.cpsc-related-grid__item{display:block !important;border:1px solid #d7dce2;border-radius:8px;padding:14px;text-decoration:none;min-width:0}
.cpsc-related-grid strong,.cpsc-related-grid span{display:block !important;line-height:1.35}
.cpsc-related-grid span{margin-top:5px;font-size:.9rem}

/* Tables: preserve distinct headers/cells even under aggressive theme CSS. */
.cpsc-table-wrap{display:block;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:14px}
.cpsc-table{display:table !important;width:100%;border-collapse:collapse;min-width:760px;margin:0}
.cpsc-table thead{display:table-header-group !important}
.cpsc-table tbody{display:table-row-group !important}
.cpsc-table tr{display:table-row !important}
.cpsc-table th,.cpsc-table td{display:table-cell !important;text-align:left;vertical-align:top;border-bottom:1px solid #ddd;padding:11px 10px;line-height:1.4}
.cpsc-table th{font-size:.86rem;font-weight:700;white-space:nowrap;background:rgba(0,0,0,.025)}
.cpsc-table td{font-size:.92rem}
.cpsc-table th+th,.cpsc-table td+td{border-left:1px solid rgba(0,0,0,.055)}
.cpsc-table-controls{display:flex;justify-content:flex-end;align-items:end;margin:0 0 12px}
.cpsc-table-controls label{font-weight:600}
.cpsc-table-controls input{min-width:320px;padding:9px 10px;margin-left:8px}
.cpsc-row-hidden{display:none !important}
.cpsc-history-links{padding-left:1.25rem}
.cpsc-history-links li{margin:.45rem 0}

/* Search UI */
.cpsc-search{max-width:1180px;margin:0 auto}
.cpsc-search__form{margin:18px 0 34px}
.cpsc-search__form label{display:block;font-weight:700;font-size:1.05rem;margin-bottom:8px}
.cpsc-search__inputrow{display:grid;grid-template-columns:1fr auto;gap:10px}
.cpsc-search__inputrow input{width:100%;min-height:50px;padding:11px 13px;border:1px solid #b9c0c8;border-radius:8px;font-size:1rem}
.cpsc-search__inputrow button{min-height:50px;padding:10px 18px;border:0;border-radius:8px;background:#1d2733;color:#fff;font-weight:700;cursor:pointer}
.cpsc-search-results h1{font-size:clamp(1.8rem,4vw,2.7rem);margin-bottom:26px}
.cpsc-search-results section{margin:34px 0}
.cpsc-entity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.cpsc-entity-card{border:1px solid #d7dce2;border-radius:10px;padding:17px}
.cpsc-entity-card__type{display:inline-block;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;opacity:.7}
.cpsc-entity-card h3{margin:6px 0 5px}
.cpsc-entity-card p{margin:0}
.cpsc-entity-card__links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.cpsc-entity-card__links a{font-size:.86rem}
.cpsc-search-records{display:grid;gap:12px}
.cpsc-search-record{border-top:1px solid #d7dce2;padding:16px 0}
.cpsc-search-record:first-child{border-top:0}
.cpsc-search-record__meta{font-size:.84rem;opacity:.7}
.cpsc-search-record h3{margin:5px 0 8px;font-size:1.08rem}
.cpsc-search-record p{margin:4px 0;font-size:.93rem}

@media(max-width:780px){
  .cpsc-history-shell{padding:20px 14px 40px}
  .cpsc-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cpsc-related-grid{grid-template-columns:1fr}
  .cpsc-chart__row{grid-template-columns:52px minmax(90px,1fr) 38px;gap:8px}
  .cpsc-table-controls{justify-content:flex-start}
  .cpsc-table-controls label{width:100%}
  .cpsc-table-controls input{display:block;width:100%;min-width:0;margin:7px 0 0}
  .cpsc-search__inputrow{grid-template-columns:1fr}
  .cpsc-entity-grid{grid-template-columns:1fr}
}
@media(max-width:480px){
  .cpsc-metrics{grid-template-columns:1fr}
}

/* Search refinements v0.7.0 */
.cpsc-search__form{max-width:820px}
.cpsc-search__inputrow{grid-template-columns:minmax(0,620px) auto;justify-content:start;align-items:stretch;gap:8px}
.cpsc-search__inputrow button{white-space:nowrap}
.cpsc-entity-card__links{gap:7px}
.cpsc-entity-card__links a{display:inline-flex;align-items:center;padding:6px 9px;border:1px solid #d7dce2;border-radius:999px;text-decoration:none;line-height:1.25;background:rgba(0,0,0,.018)}
.cpsc-entity-card__links a:hover{text-decoration:underline}
.cpsc-search-results__recordhead{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:12px}
.cpsc-search-results__recordhead h2{margin-bottom:0}
.cpsc-search-results__count{margin:0;font-size:.9rem;opacity:.75}
.cpsc-search-records{gap:14px}
.cpsc-search-record{border:1px solid #d7dce2;border-radius:10px;padding:16px 18px;background:rgba(255,255,255,.35)}
.cpsc-search-record:first-child{border-top:1px solid #d7dce2}
.cpsc-search-record__meta a{text-decoration:underline}
.cpsc-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:16px;margin-top:22px}
.cpsc-pagination__button{display:inline-flex;width:max-content;padding:8px 12px;border:1px solid #d7dce2;border-radius:8px;text-decoration:none}
.cpsc-pagination__button:last-child{justify-self:end}
.cpsc-pagination__status{font-size:.9rem;opacity:.78;text-align:center}

@media(max-width:780px){
  .cpsc-search__form{max-width:none}
  .cpsc-search__inputrow{grid-template-columns:1fr;gap:7px}
  .cpsc-search-results__recordhead{display:block}
  .cpsc-search-results__count{margin-top:5px}
  .cpsc-pagination{grid-template-columns:1fr 1fr}
  .cpsc-pagination__status{grid-column:1 / -1;grid-row:1}
}

/* Historical-page usability refinements v0.8.0 */
.cpsc-history-toc{display:flex;flex-wrap:wrap;align-items:center;gap:7px 14px;margin:24px 0 6px;padding:12px 0;border-top:1px solid #e1e5e9;border-bottom:1px solid #e1e5e9;font-size:.92rem}
.cpsc-history-toc span{font-weight:700}
.cpsc-history-toc a{text-decoration:none}
.cpsc-history-toc a:hover{text-decoration:underline}
.cpsc-history section[id]{scroll-margin-top:24px}

.cpsc-chart{gap:5px;margin-top:16px}
.cpsc-chart__row{min-height:17px;grid-template-columns:58px minmax(120px,1fr) 44px;gap:10px}
.cpsc-chart__barwrap{height:12px}
.cpsc-chart__year,.cpsc-chart__value{font-size:.9rem}

.cpsc-related-grid a,.cpsc-related-grid__item{min-height:72px;background:rgba(0,0,0,.012)}
.cpsc-related-grid a{transition:background-color .15s ease,border-color .15s ease}
.cpsc-related-grid a:hover{background:rgba(0,0,0,.035)}

.cpsc-table tr.cpsc-extra-row{display:none !important}
.cpsc-table[data-collapsible-table].is-expanded tr.cpsc-extra-row{display:table-row !important}
.cpsc-table-toggle{margin-top:12px;padding:8px 12px;border:1px solid #d7dce2;border-radius:8px;background:transparent;cursor:pointer;font:inherit}
.cpsc-table-toggle:hover{background:rgba(0,0,0,.025)}

.cpsc-table tr.cpsc-page-hidden,.cpsc-table tr.cpsc-row-hidden{display:none !important}
.cpsc-client-pagination{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:14px}
.cpsc-client-pagination button{width:max-content;padding:7px 11px;border:1px solid #d7dce2;border-radius:8px;background:transparent;cursor:pointer;font:inherit}
.cpsc-client-pagination button:last-child{justify-self:end}
.cpsc-client-pagination button:disabled{opacity:.38;cursor:default}
.cpsc-client-pagination span{text-align:center;font-size:.9rem;opacity:.78}

.cpsc-sort{display:flex;align-items:center;gap:8px;margin:-2px 0 14px;font-size:.92rem}
.cpsc-sort span{font-weight:600}
.cpsc-sort a{display:inline-flex;padding:5px 9px;border:1px solid #d7dce2;border-radius:999px;text-decoration:none}
.cpsc-sort a[aria-current="page"]{font-weight:700;background:rgba(0,0,0,.055)}

@media(max-width:780px){
  .cpsc-history-toc{gap:7px 11px}
  .cpsc-client-pagination{grid-template-columns:1fr 1fr}
  .cpsc-client-pagination span{grid-column:1 / -1;grid-row:1}
  .cpsc-sort{flex-wrap:wrap}
}


/* Historical-page interaction fixes v0.8.1 */
.cpsc-history-toc{
  padding:12px 14px;
  border:1px solid #d7dce2;
  border-radius:8px;
  background:#f4f6f8;
}
.cpsc-history-toc a{font-weight:600}

.cpsc-table-toggle,
.cpsc-client-pagination button{
  background:#1d2733;
  color:#fff;
  border:1px solid #1d2733;
  box-shadow:0 1px 1px rgba(0,0,0,.08);
  font-weight:600;
}
.cpsc-table-toggle:hover,
.cpsc-client-pagination button:not(:disabled):hover{
  background:#344250;
  border-color:#344250;
  color:#fff;
}
.cpsc-table-toggle:focus-visible,
.cpsc-client-pagination button:focus-visible{
  outline:3px solid rgba(29,39,51,.25);
  outline-offset:2px;
}
.cpsc-client-pagination button:disabled{
  background:#e8ebee;
  border-color:#c9cfd5;
  color:#737b83;
  opacity:1;
  box-shadow:none;
}


/* Visual polish v0.8.2: restrained safety-red accent and readability tuning. */
:root{
  --cpsc-accent:#a63d40;
  --cpsc-accent-dark:#873235;
  --cpsc-accent-soft:#fbf4f4;
  --cpsc-accent-border:#e8cfd0;
}

/* Give the key historical metrics a quiet visual identity without turning them into alerts. */
.cpsc-metric{
  border-top:3px solid var(--cpsc-accent);
  padding-top:16px;
}

/* Recall frequency is the principal visualization, so it carries the strongest accent. */
.cpsc-chart__bar{
  background:var(--cpsc-accent);
  opacity:.9;
}
.cpsc-chart__barwrap{background:#edf0f2}
.cpsc-chart__value{font-weight:600;color:#4b5157}

/* Hazard cards use only a pale tint; links remain conventionally blue and readable. */
.cpsc-related-grid a,
.cpsc-related-grid__item{
  background:var(--cpsc-accent-soft);
  border-color:var(--cpsc-accent-border);
}
.cpsc-related-grid a:hover{
  background:#f7e9e9;
  border-color:#dcaeb0;
}

/* The in-page navigation should be easy to find but secondary to page content. */
.cpsc-history-toc{
  font-size:.96rem;
  background:#f7f8f9;
  border-left:3px solid var(--cpsc-accent);
  padding-left:13px;
}
.cpsc-history-toc span{color:#3d4247}

/* Interactive controls: preserve the dark primary treatment and improve separation/status. */
.cpsc-table-toggle{margin-top:15px;margin-bottom:3px}
.cpsc-client-pagination{margin-top:18px}
.cpsc-client-pagination span{
  font-size:.94rem;
  opacity:1;
  color:#555d64;
  font-weight:600;
}
.cpsc-client-pagination button:disabled{
  background:#eef0f2;
  border-color:#bfc5cb;
  color:#616a72;
}

/* Slightly stronger active state on search sorting, using the same accent system. */
.cpsc-sort a[aria-current="page"]{
  background:var(--cpsc-accent-soft);
  border-color:var(--cpsc-accent-border);
  color:var(--cpsc-accent-dark);
}

@media(max-width:780px){
  .cpsc-history-toc{font-size:.94rem}
}

/* Mobile polish v0.8.3: improve spacing, readability and tap targets without changing structure. */
@media(max-width:780px){
  .cpsc-search__form{
    margin-top:20px;
    margin-bottom:30px;
  }
  .cpsc-search__form label{
    margin-bottom:10px;
    line-height:1.35;
  }
  .cpsc-search__inputrow{
    gap:9px;
  }
  .cpsc-search__inputrow input{
    min-height:48px;
  }
  .cpsc-search__inputrow button{
    min-height:46px;
    padding:11px 16px;
  }

  .cpsc-entity-card{
    padding:19px 17px;
  }
  .cpsc-entity-card__links{
    gap:8px;
    margin-top:13px;
  }
  .cpsc-entity-card__links a{
    min-height:34px;
    padding:7px 10px;
  }

  .cpsc-search-results__count{
    margin-top:7px;
    font-size:.96rem;
    opacity:.88;
  }
  .cpsc-sort{
    gap:7px;
    margin-bottom:16px;
    font-size:.96rem;
  }
  .cpsc-sort a{
    min-height:36px;
    align-items:center;
    padding:7px 11px;
  }

  .cpsc-search-record{
    padding:17px 16px;
  }
  .cpsc-search-record__meta{
    font-size:.9rem;
    line-height:1.4;
    opacity:.78;
  }
  .cpsc-search-record h3{
    line-height:1.35;
  }

  .cpsc-pagination{
    gap:12px;
    margin-top:24px;
  }
  .cpsc-pagination__status{
    font-size:.96rem;
    opacity:.88;
  }
  .cpsc-pagination__button{
    min-height:42px;
    align-items:center;
    padding:10px 14px;
  }

  .cpsc-history-toc{
    gap:9px 12px;
    line-height:1.45;
  }
  .cpsc-chart__year,
  .cpsc-chart__value{
    font-size:.94rem;
  }
}

@media(max-width:480px){
  .cpsc-search__form label{
    font-size:1rem;
  }
  .cpsc-search-record__meta{
    font-size:.88rem;
  }
}
