.catalog-all-link { margin: 30px 0 0; }
.catalog-toolbar { border-top: 1px solid var(--ink); border-bottom: 1px solid var(--line); padding: 28px 0 18px; }
.catalog-toolbar > label { display: block; margin-bottom: 10px; font-size: .8rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.catalog-toolbar input { width: 100%; padding: 15px 17px; border: 1px solid var(--line); border-radius: 4px; background: var(--white); color: var(--ink); }
.catalog-toolbar input::placeholder { color: var(--muted); }
.catalog-filters { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 18px; }
.catalog-filters button { border: 1px solid var(--line); border-radius: 4px; background: transparent; color: var(--ink); padding: 9px 14px; font-size: .9rem; transition: background .18s ease, color .18s ease; }
.catalog-filters button:hover, .catalog-filters button.active { background: var(--ink); border-color: var(--ink); color: var(--white); }
.catalog-filters button span { font-variant-numeric: tabular-nums; opacity: .7; margin-left: 6px; }
#catalog-count { font-size: .85rem; color: var(--muted); margin: 18px 0 0; }
.catalog-list { border-bottom: 1px solid var(--line); }
.catalog-group + .catalog-group { margin-top: 8px; }
.catalog-group-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; padding: 22px 10px 10px; border-top: 2px solid var(--ink); }
.catalog-group-head h3 { font: 500 clamp(1.15rem, 1.8vw, 1.5rem)/1.2 var(--serif); margin: 0; color: var(--ink); }
.catalog-group-head span { font-size: .78rem; color: var(--muted); white-space: nowrap; text-align: right; }
.catalog-group .catalog-row { border-top: 1px solid var(--line); }
.catalog-row { display: grid; grid-template-columns: minmax(90px, .6fr) minmax(280px, 2.6fr) minmax(150px, 1fr) 30px; align-items: center; gap: 22px; padding: 22px 10px; border-top: 1px solid var(--line); text-decoration: none; transition: background .18s ease; }
.catalog-row:hover, .catalog-row:focus-visible { background: var(--white); }
.brand small { font-size: 11px; line-height: 1.4; }
.catalog-sector { color: var(--wine); font-size: .78rem; text-transform: uppercase; letter-spacing: .07em; font-weight: 700; }
.catalog-row-main { display: grid; gap: 5px; }
.catalog-row-main strong { font: 500 clamp(1.35rem, 2vw, 1.9rem)/1.15 var(--serif); }
.catalog-row-main small { font-size: .88rem; color: var(--muted); }
.catalog-model { font-size: .86rem; color: var(--muted); }
.catalog-arrow { color: var(--wine); font-size: 1.3rem; text-align: right; }
.catalog-empty { padding: 28px 0; color: var(--muted); }
.operation-detail { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(290px, .85fr); gap: clamp(34px, 6vw, 100px); align-items: start; }
.operation-detail .detail-list { margin-top: 34px; }
.operation-aside { background: var(--ink); color: var(--white); padding: clamp(26px, 3vw, 48px); }
.operation-aside h2 { font: 500 clamp(2rem, 3vw, 3.1rem)/1.1 var(--serif); margin: 26px 0 12px; }
.operation-aside p { color: #e2dcd6; }
.operation-aside .button { width: 100%; margin-top: 14px; text-align: center; }
.operation-aside .button-outline { color: var(--white); border-color: #afa49f; }
.operation-aside .help { font-size: .84rem; }
.back-link { margin: 0 0 28px; }
.back-link a { text-underline-offset: 4px; }
.simulation-workbench { align-items: stretch; }
.simulation-context { display: grid; gap: 5px; margin: 18px 0 26px; padding: 18px 0; border-block: 1px solid var(--line); color: var(--ink); }
.simulation-context strong { color: var(--wine); }
.simulation-context span { font-size: .88rem; }
.simulation-context a { width: fit-content; font-size: .85rem; text-underline-offset: 4px; }
.simulation-title { font-size: clamp(2rem, 3.5vw, 3rem); margin: 16px 0 24px; }
.simulation-primary { padding-bottom: 24px; border-bottom: 1px solid #bcaeb0; display: grid; gap: 2px; }
.simulation-primary strong { font: 500 clamp(2.4rem, 4vw, 4.2rem)/1.1 var(--serif); font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.simulation-primary span { font-size: .9rem; }
.simulation-metrics { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; padding: 24px 0; }
.simulation-metrics div { display: grid; align-content: start; gap: 5px; }
.simulation-metrics strong { font-size: 1.15rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.simulation-metrics span { font-size: .78rem; line-height: 1.35; }
.simulation-section { border-top: 1px solid #bcaeb0; padding: 24px 0; }
.simulation-section h3 { margin: 0 0 12px; font-size: 1rem; }
.simulation-section p, .simulation-section li { margin: 0; font-size: .88rem; line-height: 1.5; }
.simulation-section ul { padding-left: 18px; margin: 0; }
.simulation-section li + li { margin-top: 5px; }
.sensitivity-list { display: grid; }
.sensitivity-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 8px 0; border-top: 1px solid #bcaeb080; font-size: .88rem; }
.sensitivity-list strong { font-variant-numeric: tabular-nums; text-align: right; }
.simulation-disclaimer { font-size: .78rem; line-height: 1.4; margin-top: 18px; }
.founder-teaser { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(220px, .6fr); gap: clamp(32px, 6vw, 90px); align-items: center; border-top: 1px solid var(--line); }
.founder-teaser .body-lead { max-width: 64ch; margin: 18px 0 28px; }
.founder-teaser img { width: min(100%, 360px); height: auto; aspect-ratio: 1; object-fit: cover; filter: grayscale(100%); }
.team-profile { display: grid; grid-template-columns: minmax(240px, .8fr) minmax(0, 1.2fr); gap: clamp(36px, 7vw, 110px); align-items: start; }
.team-profile img { display: block; width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; filter: grayscale(100%); }
.team-profile .section-heading { margin: 0 0 12px; }
.team-profile p { max-width: 65ch; margin: 0 0 18px; line-height: 1.65; }
.team-profile .team-role { font-weight: 700; color: var(--wine); margin-bottom: 30px; }
.team-profile .button { margin-top: 15px; }
.legal-text { max-width: 900px; }
.legal-text pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; line-height: 1.7; margin: 0; }
.legal-consent { display: flex; align-items: start; gap: 10px; margin: 22px 0 0; font-size: .9rem; line-height: 1.5; }
.legal-consent input { flex: none; margin-top: 5px; }
.legal-consent a { text-underline-offset: 3px; }
@media (max-width: 820px) {
  .catalog-row { grid-template-columns: 1fr auto; gap: 6px 14px; padding: 18px 0; }
  .catalog-sector { grid-column: 1; }
  .catalog-row-main { grid-column: 1; }
  .catalog-model { grid-column: 1; }
  .catalog-arrow { grid-column: 2; grid-row: 2; }
  .operation-detail { grid-template-columns: 1fr; }
  .simulation-metrics { grid-template-columns: 1fr 1fr; }
  .founder-teaser, .team-profile { grid-template-columns: 1fr; }
  .founder-teaser img { order: -1; width: min(100%, 300px); }
  .team-profile img { max-width: 360px; }
}
@media (max-width: 480px) {
  .simulation-metrics { grid-template-columns: 1fr; }
  .sensitivity-list > div { display: grid; gap: 2px; }
  .sensitivity-list strong { text-align: left; }
}
