/* CertsLab presentation layer. Product calculations and account behavior stay in app.js. */
:root {
  --font-body:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-heading:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --bg:#f4f6f8;
  --bg-accent:#eef1f5;
  --surface:#fff;
  --surface-strong:#fff;
  --surface-warm:#fbf7ed;
  --surface-cool:#f6f8fa;
  --surface-dark:#1e2030;
  --text:#202638;
  --muted:#526074;
  --line:#dce2e9;
  --shadow:0 4px 18px rgba(30,32,48,.025);
  --green:#176447;
  --red:#a53232;
  --amber:#8a5815;
}
html {
  background:var(--bg);
}
body {
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size:16px;
  line-height:1.6;
}
body::before {
  display:none;
}
button,input,select,textarea {
  font-family:inherit;
}
a {
  text-underline-offset:4px;
}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible {
  outline:3px solid #967024;
  outline-offset:3px;
}
.page-shell {
  width:min(1450px,calc(100% - 48px));
  padding-top:22px;
}
.card {
  border-radius:12px;
  backdrop-filter:none;
  background:#fff;
  box-shadow:var(--shadow);
}
.topbar.card {
  background:#1e2030;
  border-color:#30354a;
  padding:20px 28px;
  margin-bottom:18px;
  border-radius:12px;
}
.topbar::after {
  display:none;
}
.brand-lockup {
  display:inline-flex;
  max-width:100%;
}
.certslab-logo {
  display:block;
  width:230px;
  height:auto;
  max-width:100%;
}
.brand-lockup:focus-visible {
  outline:3px solid var(--gold);
}
.topbar-brand {
  min-width:0;
}
.topbar-brand-subtitle {
  display:none;
}
.auth-status-meta,.auth-status-copy span,.topbar-signin {
  color:#d9deea;
}
.app-layout {
  display:block;
}
.side-menu.card {
  position:static;
  background:white;
  border:1px solid var(--line);
  margin-bottom:26px;
  padding:6px 12px;
  border-radius:10px;
}
.side-menu-nav {
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:4px;
}
.side-nav-link {
  width:auto;
  flex:0 1 auto;
  padding:11px 16px;
  border-radius:7px;
  color:var(--muted);
  font-size:14px;
  background:transparent;
  border-color:transparent;
}
.side-nav-link strong {
  font:600 14px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
}
.side-nav-link:hover,.side-nav-link.is-active {
  background:#f7f0df;
  color:#5e481a;
  border-color:#e8d9b8;
}
.view-stack {
  gap:24px;
  min-width:0;
}
.collection-page,.manage-panel,.search-panel {
  padding:26px;
}
.section-heading {
  margin-bottom:24px;
}
.section-heading h2,.info-page h2 {
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-weight:400;
  font-size:32px;
  letter-spacing:-.02em;
  line-height:1.25;
  color:var(--text);
}
.section-heading h3 {
  font-family:inherit;
}
.section-kicker,.panel-label,.panel-title,.metric-label {
  font:500 13px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
  text-transform:none;
  color:var(--muted);
}
.sidebar-text,.manage-status,.manage-empty {
  color:var(--muted);
  font-size:15px;
  line-height:1.6;
}
.search-workspace {
  display:grid;
  grid-template-columns:270px minmax(0,1fr);
  gap:26px;
  align-items:start;
}
.search-controls {
  min-width:0;
  padding:18px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#fafbfc;
}
.search-results {
  min-width:0;
}
.search-query-form {
  margin-bottom:18px;
}
.search-query-field {
  width:100%;
}
.search-filter-summary {
  flex-direction:column;
  margin-bottom:16px;
  gap:12px;
}
.search-filter-summary-actions {
  width:100%;
  justify-content:space-between;
  gap:6px;
}
.search-active-filters {
  min-height:0;
}
.search-active-filter-empty {
  font-size:13px;
}
.search-active-filter-chip {
  font-size:12px;
}
.search-filter-panel {
  padding:0;
  margin:0;
  border:0;
  background:transparent;
  gap:18px;
}
.search-filter-group {
  border:0;
  border-top:1px solid var(--line);
  border-radius:0;
  background:transparent;
  padding:16px 0 0;
}
.search-filter-group h3 {
  font:650 14px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
  text-transform:none;
  color:var(--text);
  margin-bottom:12px;
}
.search-filter-grid,.search-risk-basics,.search-position-filters,.search-position-controls {
  grid-template-columns:minmax(0,1fr);
  gap:12px;
}
.search-position-filters {
  margin-top:16px;
}
.search-position-filter {
  padding:12px;
  background:white;
  border-radius:7px;
}
.search-position-filter legend {
  font-size:13px;
}
.search-position-hint {
  font-size:12px;
}
.search-toggle-action,.search-reset-action {
  font-size:12px;
  padding:7px 9px;
}
.manage-input,.pagination-select {
  min-height:43px;
  border-color:#bdc8d5;
  background:white;
  border-radius:6px;
  color:var(--text);
  font-size:14px;
}
.manage-input:disabled {
  color:#697586;
}
.manage-field {
  gap:6px;
  min-width:0;
}
.collection-toolbar,
.search-filter-panel.collection-filter-toolbar {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,240px));
  justify-content:start;
  align-items:end;
  width:100%;
  margin:0 0 20px;
  padding:14px;
  gap:14px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-cool);
}
.collection-toolbar-field {
  min-width:150px;
}
.collection-toolbar-field .panel-label {
  font-size:12px;
}
.certificate-stack {
  gap:26px;
}
.certificate-shell {
  padding:0;
  border:1px solid #b8c4d1;
  border-top:3px solid #424e63;
  border-radius:12px;
  overflow:hidden;
  background:white;
  box-shadow:0 5px 16px rgba(30,32,48,.08);
}
.certificate-shell.is-expanded {
  border-color:#9cabbc;
  border-top-color:#c8a84b;
  box-shadow:0 7px 20px rgba(30,32,48,.10);
}
.certificate-shell-toggle {
  cursor:default;
}
.cert-card-header {
  background:white;
  padding:23px 24px 14px;
  grid-template-columns:minmax(0,1fr) minmax(130px,auto);
  gap:20px;
}
.certificate-shell-heading {
  gap:9px;
}
.issuer-row {
  gap:7px;
}
.issuer-pill-on-dark {
  background:#1e2030;
  color:#fff;
  border:1px solid #1e2030;
  font-size:12px;
  padding:4px 9px;
}
.direction-badge-on-dark {
  background:#f3f5f8;
  color:#435066;
  border:1px solid #d5dde6;
  font-size:12px;
}
.state-badge {
  font-size:12px;
}
.cert-card-type {
  display:none;
}
.certificate-shell-title-row {
  order:2;
  gap:12px;
}
.certificate-shell-subtitle-on-dark {
  font:650 21px/1.4 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--text);
  letter-spacing:-.025em;
}
.certificate-shell-meta {
  color:var(--muted);
  font:13px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  order:3;
}
.certificate-isin-chip {
  color:var(--muted);
  min-height:30px;
  flex-wrap:wrap;
}
.certificate-isin-chip strong {
  font:500 13px/1.5 ui-monospace,SFMono-Regular,monospace;
  letter-spacing:.03em;
}
.certificate-isin-chip span {
  font:500 11px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
  text-transform:none;
  color:#795b1c;
}
.certificate-page-link {
  font-size:12px;
  color:#255a8a;
  text-decoration:none;
  border-bottom:1px solid #a7bed2;
}
.certificate-page-link:hover {
  text-decoration:underline;
}
.cert-card-rating {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  text-align:right;
  min-width:130px;
  gap:4px;
  max-width:230px;
}
.cert-card-rating-label {
  font:500 12px/1.4 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
  text-transform:none;
  color:var(--muted);
}
.cert-card-rating-val {
  font:700 31px/1.2 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:-.04em;
  color:var(--text);
}
.cert-card-rating-lbl,.cert-card-rating-note {
  font:400 13px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--muted);
}
.cert-card-rating-note {
  font-size:12px;
  color:#74591b;
}
.cert-card-rating.is-muted {
  background:transparent;
  border:0;
}
.cert-card-rating.is-muted .cert-card-rating-val {
  color:var(--muted);
}
.cert-card-rating.is-muted .cert-card-rating-lbl,.cert-card-rating.is-muted .cert-card-rating-note {
  color:var(--muted);
}
.cert-card-body {
  padding:8px 24px 22px;
}
.certificate-shell-metrics {
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:18px;
  padding-top:18px;
  border-top:1px solid var(--line);
}
.certificate-shell-metric {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  min-width:0;
}
.certificate-shell-metric strong {
  font:650 19px/1.4 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:-.025em;
  font-variant-numeric:tabular-nums;
  margin-top:6px;
}
.cert-kpi-label {
  font-size:12px;
}
.cert-kpi-sub {
  display:block;
  font-size:12px;
  color:var(--muted);
  line-height:1.5;
  margin-top:4px;
}
.certificate-shell-actions {
  background:#fafbfc;
  padding:12px 24px;
  border-top:1px solid var(--line);
}
.certificate-shell-update {
  font:400 12px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
  text-transform:none;
}
.manage-certificate-actions {
  gap:10px;
  flex-wrap:wrap;
}
.card-chevron-button {
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:auto;
  min-width:44px;
  min-height:40px;
  padding:8px 12px;
  border:1px solid #c4ced9;
  background:white;
  border-radius:6px;
  color:var(--text);
}
.card-chevron-label {
  font-size:13px;
  font-weight:550;
}
.card-chevron-icon {
  width:16px;
  height:16px;
}
.certificate-detail-panel {
  padding:24px;
  border-top:1px solid var(--line);
  background:#fff;
}
.certificate-detail-nav {
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:24px;
}
.certificate-detail-nav a {
  color:#255a8a;
  font-size:13px;
  text-decoration:none;
}
.certificate-detail-nav a:hover {
  text-decoration:underline;
}
.certificate-detail-panel section {
  scroll-margin-top:24px;
}
.metrics-grid {
  gap:12px;
  margin-bottom:26px;
}
.metric-card {
  background:#f8fafb;
  border:1px solid var(--line);
  border-radius:8px;
  padding:16px;
  box-shadow:none;
}
.metric-card strong {
  font:650 22px/1.3 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-variant-numeric:tabular-nums;
}
.metric-card>span {
  font:400 13px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--muted);
}
.underlyings-section {
  margin-top:0;
}
.underlyings-section .section-heading h2 {
  font-size:26px;
}
.underlyings-table-wrap {
  overflow-x:auto;
  overscroll-behavior-x:contain;
  border:1px solid var(--line);
  border-radius:8px;
}
.underlyings-table {
  font-size:14px;
  min-width:820px;
}
.underlyings-table th {
  font:550 12px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color:var(--muted);
  background:#f8fafb;
  text-transform:none;
  letter-spacing:normal;
}
.underlyings-table td {
  font-size:14px;
  font-variant-numeric:tabular-nums;
  vertical-align:top;
  padding:16px 12px;
}
.underlying-name strong,.market-cell strong {
  font:600 14px/1.4 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.underlying-meta,.underlying-meta span,.market-cell span {
  font:400 12px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.underlying-annotation-trigger {
  font-size:12px;
}
.underlyings-table td:nth-child(n) strong {
  font-family:inherit;
}
.cert-calendar-buttons {
  gap:14px;
  margin:20px 0 26px;
}
.cert-calendar-btn {
  background:#fafbfc;
  border:1px solid #ccd5e0;
  border-radius:8px;
  min-height:62px;
}
.cert-calendar-btn-label {
  font-size:15px;
  color:var(--text);
}
.cert-calendar-btn-sub {
  font-size:12px;
  color:var(--muted);
}
.detail-grid {
  gap:20px;
}
.detail-panel {
  padding:20px;
  border:1px solid var(--line);
  border-radius:8px;
  background:white;
}
.panel-title {
  font-size:16px;
  font-weight:650;
  color:var(--text);
  margin-bottom:14px;
}
.detail-list {
  gap:0;
}
.detail-list>div {
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.detail-list dt {
  font:400 13px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:normal;
  text-transform:none;
  color:var(--muted);
}
.detail-list dd {
  font:550 14px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-variant-numeric:tabular-nums;
}
.source-link {
  background:#f8fafb;
  border:1px solid var(--line);
  border-radius:7px;
}
.source-link strong {
  font:600 14px/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.source-link-meta {
  font-size:13px;
  color:var(--muted);
}
.annotations-section,.notes-panel {
  font-size:14px;
}
.annotations-empty,.notes-storage-copy {
  color:var(--muted);
  font-size:14px;
}
.modal-panel {
  background:white;
  box-shadow:0 16px 64px #161b3040;
  border-radius:14px;
}
.modal-title {
  font-family:"Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.calendar-list-item-date {
  font-size:16px;
  color:var(--text);
}
.calendar-list-item-sub {
  font-size:13px;
  color:var(--muted);
}
.site-footer {
  margin-top:40px;
  background:#1e2030;
  border-radius:12px;
}
.site-footer p,.site-footer-company,.site-footer-disclaimer-copy {
  color:#c9d0df;
  font-size:14px;
  line-height:1.75;
}
.site-footer-tagline {
  max-width:410px;
}
.site-footer-col-title {
  color:#dfc888;
}
.site-footer-link {
  color:#e0e5ef;
}
.site-footer-link strong {
  color:white;
}
.site-footer-disclaimer-copy strong {
  color:white;
}
.site-footer-copy {
  color:#dce2ee;
}
.info-page,.faq-list {
  font-size:16px;
  line-height:1.75;
}
.faq-item p,.info-page p {
  color:#435066;
}
.faq-question {
  font-size:17px;
}
.legal-block-body {
  font-size:15px;
  line-height:1.8;
}
.legal-block-subtitle,.legal-block-body p {
  color:var(--muted);
}
@media(min-width:1101px) {
  .search-controls {
    position:sticky;
    top:18px;
    max-height:calc(100vh - 36px);
    overflow-y:auto;
    scrollbar-width:thin;
  }
  .search-controls:has(.is-collapsed) {
    position:static;
  }
}
@media(max-width:1200px) {
  .search-workspace {
    grid-template-columns:240px minmax(0,1fr);
    gap:20px;
  }
  .certificate-shell-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .cert-card-header {
    gap:14px;
  }
  .cert-card-rating {
    min-width:110px;
  }
  .cert-card-rating-val {
    font-size:28px;
  }
}
@media(max-width:950px) {
  .search-workspace {
    grid-template-columns:minmax(0,1fr);
  }
  .search-controls {
    padding:16px;
  }
  .search-filter-panel {
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
  }
  .search-filter-summary {
    flex-direction:row;
  }
  .search-filter-summary-actions {
    width:auto;
  }
  .search-query-field {
    max-width:none;
  }
  .search-results {
    width:100%;
  }
  .search-filter-group {
    align-self:start;
  }
  .certslab-logo {
    width:210px;
  }
}
@media(max-width:768px) {
  .page-shell {
    width:calc(100% - 24px);
    padding-top:12px;
  }
  .topbar.card {
    padding:14px 16px!important;
    gap:12px;
    border-radius:10px;
  }
  .certslab-logo {
    width:175px;
  }
  .topbar-brand {
    flex:1;
  }
  .topbar-actions {
    max-width:55%;
  }
  .side-menu.card {
    background:#1e2030;
    margin:0;
    border-radius:0;
  }
  .side-menu-nav {
    gap:0;
    flex-wrap:nowrap;
  }
  .side-nav-link {
    color:#cfd6e4;
    flex:1;
    padding:7px 3px!important;
    min-width:0;
  }
  .side-nav-link strong {
    font-size:10px;
  }
  .side-nav-link.is-active {
    background:transparent;
    color:#e8cc80;
    border-color:transparent;
  }
  .manage-panel,.collection-page {
    padding:18px 14px;
  }
  .section-heading h2 {
    font-size:28px;
  }
  .search-filter-panel {
    grid-template-columns:1fr;
  }
  .search-filter-summary {
    flex-direction:column;
  }
  .search-filter-summary-actions {
    width:100%;
  }
  .collection-toolbar {
    flex-direction:row;
    flex-wrap:wrap;
    align-items:end;
  }
  .collection-toolbar-field {
    width:auto;
    flex:1;
    min-width:125px;
  }
  .certificate-shell.card {
    padding:0;
    border-radius:10px;
    overflow:visible;
  }
  .cert-card-header {
    grid-template-columns:minmax(0,1fr) auto;
    padding:18px 16px 12px;
    gap:12px;
    border-radius:10px 10px 0 0;
  }
  .certificate-shell-subtitle-on-dark {
    font-size:18px;
    line-height:1.4;
  }
  .certificate-shell-heading {
    overflow:visible;
  }
  .cert-card-rating {
    width:auto;
    max-width:150px;
    min-width:100px;
    padding:0;
    gap:4px;
  }
  .cert-card-rating-label {
    font-size:11px;
  }
  .cert-card-rating-val {
    font-size:27px;
  }
  .cert-card-rating-lbl,.cert-card-rating-note {
    font-size:12px;
  }
  .certificate-shell-meta {
    font-size:12px;
  }
  .certificate-isin-chip strong {
    font-size:12px;
  }
  .cert-card-body {
    padding:8px 16px 18px;
  }
  .certificate-shell-metrics {
    gap:16px;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .certificate-shell-metric strong {
    font-size:18px;
  }
  .certificate-shell-actions {
    padding:12px 16px;
    flex-wrap:wrap;
    gap:10px;
    border-radius:0 0 10px 10px;
  }
  .certificate-shell-update {
    font-size:11px;
    width:100%;
  }
  .manage-certificate-actions {
    width:100%;
    justify-content:flex-end;
  }
  .certificate-detail-panel {
    padding:20px 14px;
    border-radius:0 0 10px 10px;
  }
  .certificate-detail-nav {
    gap:12px;
  }
  .underlyings-table th:nth-child(n+5),.underlyings-table td:nth-child(n+5) {
    display:table-cell;
  }
  .underlyings-table {
    min-width:820px;
  }
  .underlyings-table-wrap::after {
    display:none;
  }
  .underlyings-section>.section-heading::after {
    content:none;
  }
  .detail-list {
    grid-template-columns:1fr;
  }
  .detail-panel {
    padding:16px;
  }
  .site-footer .certslab-logo {
    width:210px;
  }
  .site-footer {
    padding:24px 20px;
  }
  .site-footer p,.site-footer-disclaimer-copy {
    font-size:13px;
  }
}
@media(max-width:420px) {
  .cert-card-header {
    grid-template-columns:minmax(0,1fr);
  }
  .cert-card-rating {
    max-width:none;
    text-align:left;
    grid-template-columns:auto 1fr;
    align-items:baseline;
    column-gap:12px;
    padding-top:8px;
    border-top:1px solid var(--line);
  }
  .cert-card-rating-label {
    grid-column:1/-1;
  }
  .cert-card-rating-note {
    grid-column:1/-1;
  }
  .certslab-logo {
    width:150px;
  }
  .certificate-shell-subtitle-on-dark {
    font-size:18px;
  }
  .topbar-actions {
    max-width:50%;
  }
  .auth-status-copy strong {
    max-width:120px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }
}
/* Standalone public ISIN pages: complete HTML, without account bootstrap or catalog download. */
.public-certificate-page .page-shell {
  max-width:1200px;
}
.public-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  background:#1e2030;
  padding:22px 28px;
  border-radius:12px;
}
.public-header>a:last-child {
  font-size:14px;
  color:#f0dfb6;
}
.public-breadcrumbs {
  font-size:14px;
  color:var(--muted);
  margin:30px 0 24px;
}
.public-badges {
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}
.public-badges span {
  background:white;
  border:1px solid #cdd5df;
  border-radius:6px;
  padding:4px 10px;
  font-size:13px;
  color:#414e61;
}
.public-certificate-page h1 {
  font:400 clamp(30px,4vw,44px)/1.2 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  letter-spacing:-.025em;
  margin:20px 0 12px;
}
.public-product-name {
  font-size:17px;
  color:var(--muted);
  margin:0 0 10px;
}
.public-underlyings {
  font-size:17px;
  margin:0 0 26px;
}
.public-metrics {
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:16px;
  margin:26px 0;
}
.public-metric {
  padding:22px;
  background:white;
  border:1px solid var(--line);
  border-radius:10px;
}
.public-metric span,.public-metric small {
  display:block;
  font-size:13px;
  color:var(--muted);
}
.public-metric strong {
  display:block;
  font-size:26px;
  line-height:1.25;
  margin:10px 0 8px;
  font-weight:650;
  font-variant-numeric:tabular-nums;
  letter-spacing:-.03em;
}
.public-callout {
  border-left:3px solid var(--gold);
  background:#fcf4e3;
  padding:16px 20px;
  margin:0 0 24px;
  color:#5e491c;
  font-size:15px;
}
.public-columns {
  display:grid;
  grid-template-columns:minmax(0,1fr) 320px;
  gap:24px;
}
.public-panel {
  padding:26px;
  border:1px solid var(--line);
  border-radius:10px;
  background:white;
  margin-bottom:24px;
}
.public-panel h2 {
  font:400 26px/1.3 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  margin:0 0 20px;
}
.public-table-scroll {
  overflow-x:auto;
}
.public-table-scroll table {
  border-collapse:collapse;
  width:100%;
  font-size:14px;
}
.public-table-scroll th {
  text-align:left;
  color:var(--muted);
  font-size:12px;
  font-weight:550;
}
.public-table-scroll td,.public-table-scroll th {
  padding:13px 10px;
  border-bottom:1px solid var(--line);
  vertical-align:top;
  font-variant-numeric:tabular-nums;
}
.public-table-scroll small {
  display:block;
  font-size:12px;
  color:var(--muted);
  white-space:nowrap;
}
.public-facts {
  margin:0;
}
.public-facts>div {
  padding:11px 0;
  border-bottom:1px solid var(--line);
}
.public-facts dt {
  font-size:13px;
  color:var(--muted);
}
.public-facts dd {
  margin:4px 0 0;
  font-size:15px;
  font-weight:550;
  overflow-wrap:anywhere;
}
.public-document {
  display:block;
  font-size:15px;
  margin:14px 0;
}
.public-muted {
  font-size:13px;
  color:var(--muted);
  margin:18px 0;
}
.public-cta {
  display:inline-block;
  padding:10px 16px;
  background:#1e2030;
  color:white;
  border-radius:6px;
  text-decoration:none;
  font-size:14px;
}
.public-schedule {
  padding:16px 0;
  border-top:1px solid var(--line);
}
.public-schedule summary {
  cursor:pointer;
  font-size:15px;
  font-weight:600;
}
.public-schedule table {
  margin-top:14px;
}
.public-footer {
  padding:28px;
  background:#1e2030;
  border-radius:10px;
  color:#cfd6e4;
  margin:24px 0;
}
.public-footer p {
  font-size:14px;
  line-height:1.8;
}
.public-footer strong {
  color:white;
}
.public-footer img {
  width:210px;
  margin-bottom:18px;
}
@media(max-width:950px) {
  .public-columns {
    grid-template-columns:1fr;
  }
  .public-metrics {
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .public-columns>aside {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:20px;
  }
}
@media(max-width:600px) {
  .public-header {
    padding:18px;
    flex-wrap:wrap;
    gap:14px;
  }
  .public-header>a:last-child {
    font-size:13px;
  }
  .public-panel {
    padding:20px;
  }
  .public-columns>aside {
    display:block;
  }
  .public-metrics {
    gap:10px;
  }
  .public-metric {
    padding:16px;
  }
  .public-metric strong {
    font-size:23px;
  }
  .public-table-scroll table {
    min-width:570px;
  }
  .public-footer {
    padding:22px;
  }
  .public-certificate-page h1 {
    font-size:30px;
  }
}
/* Allow grid children to shrink while keeping wide basket tables scrollable. */
.certificate-stack,.certificate-shell,.certificate-detail-panel,.certificate-detail-panel>* {
  min-width:0;
}
.certificate-shell {
  width:100%;
}
.underlyings-section,.underlyings-table-wrap,.detail-grid {
  min-width:0;
  max-width:100%;
}
.cert-kpi-sub {
  font-family:inherit;
  text-transform:none;
  letter-spacing:normal;
}
.certificate-shell-meta:empty {
  display:none;
}
/* Standalone pages do not load the application base stylesheet. */
.public-certificate-page {
  margin:0;
  min-height:100vh;
}
.public-certificate-page *,.public-certificate-page *::before,.public-certificate-page *::after {
  box-sizing:border-box;
}
.public-footer a {
  color:#e0d0aa;
}
.search-query-field {
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
}
.search-query-input {
  letter-spacing:normal;
  text-transform:none;
  font-size:14px;
  min-height:44px;
}
.topbar-actions {
  width:auto;
  flex:0 0 auto;
  justify-content:flex-end;
}
.topbar-signin {
  color:#1e2030;
  background:#d2b361;
  font-family:inherit;
  font-weight:650;
}
.side-nav-link.is-active {
  box-shadow:none;
}
@media(min-width:601px) and (max-width:768px) {
  .side-menu.card {
    background:white;
    margin-bottom:22px;
    border-radius:10px;
  }
  .side-nav-link {
    color:var(--muted);
  }
  .side-nav-link.is-active {
    color:#654b17;
    background:#f7f0df;
  }
}

/* Keep the same control grouping in every certificate collection. */
@media(max-width:768px) {
  .collection-toolbar,
  .search-filter-panel.collection-filter-toolbar {
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    justify-content:start;
    gap:12px !important;
  }
  .collection-toolbar-field {
    min-width:0;
    width:100%;
  }
}
@media(max-width:420px) {
  .collection-toolbar,
  .search-filter-panel.collection-filter-toolbar {
    grid-template-columns:minmax(0,1fr);
  }
}
/* ISIN and product link share a baseline and equal touch-target height. */
.certificate-shell-title-row { align-items:baseline; gap:12px; }
.certificate-isin-chip { align-items:baseline; min-height:32px; padding:4px 0; line-height:24px; }
.certificate-isin-chip strong,.certificate-isin-chip span { line-height:24px; }
.certificate-page-link { display:inline-flex; align-items:baseline; min-height:32px; padding:4px 0; line-height:24px; border:0; text-decoration:underline; text-underline-offset:4px; }
[data-user-notes-message] { font-size:13px; line-height:1.55; color:var(--muted); }
/* Numeric levels have a consistent hierarchy; row bands help track across the basket. */
.underlyings-table th { padding:14px 12px; font-size:12px; font-weight:650; background:#eef2f6; border-bottom:2px solid #cbd5e0; }
.underlyings-table tbody tr:nth-child(even) { background:#f7f9fb; }
.underlyings-table tbody tr:hover { background:#f0f4f8; }
.underlyings-table td { padding:18px 14px; line-height:1.6; border-right:1px solid #edf0f4; }
.underlyings-table td:last-child { border-right:0; }
.underlyings-table .underlying-name strong { font-size:15px; line-height:1.5; }
.underlyings-table .market-cell strong,.underlyings-table .table-value strong,.underlyings-table .table-value-button strong { font-size:15px; line-height:1.5; font-weight:650; white-space:nowrap; }
.underlyings-table .market-cell span,.underlyings-table .table-value-meta,.underlyings-table .table-value-sub { font-family:inherit; font-size:12px; line-height:1.6; margin-top:5px; letter-spacing:normal; text-transform:none; }
.certificate-calendars { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:24px; align-items:start; min-width:0; }
.certificate-calendar-panel { min-width:0; padding:18px; border:1px solid #cbd5e0; border-radius:10px; background:#fafbfc; }
.certificate-calendar-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:14px; }
.certificate-calendar-heading h3 { margin:0; font-size:17px; line-height:1.4; font-weight:650; }
.certificate-calendar-heading>span { font-size:12px; color:var(--muted); }
.certificate-calendar-scroll { overflow-x:auto; min-width:0; border:1px solid var(--line); border-radius:7px; background:white; }
.certificate-calendar-table { width:100%; border-collapse:collapse; font-size:13px; }
.certificate-calendar-table th { padding:10px 9px; text-align:left; font-size:11px; line-height:1.4; color:var(--muted); background:#eef2f6; font-weight:650; }
.certificate-calendar-table td { padding:12px 9px; vertical-align:top; border-top:1px solid var(--line); font-variant-numeric:tabular-nums; line-height:1.5; }
.certificate-calendar-table tr:nth-child(even) { background:#f7f9fb; }
.certificate-calendar-table small { display:block; margin-top:4px; color:var(--muted); font-size:11px; }
.certificate-calendar-table tr[hidden] { display:none; }
.calendar-date-link { padding:0; min-height:0; border:0; background:transparent; color:#255a8a; text-align:left; font:inherit; text-decoration:underline; text-underline-offset:3px; cursor:pointer; }
.certificate-calendar-note,.certificate-calendar-empty { color:var(--muted); font-size:12px; line-height:1.6; margin:12px 0 0; }
.calendar-expand-button { display:block; margin-top:14px; padding:8px 12px; background:white; border:1px solid #bdc9d6; border-radius:6px; color:#255a8a; font-size:13px; cursor:pointer; }
@media(max-width:850px) { .certificate-calendars { grid-template-columns:minmax(0,1fr); } }
@media(max-width:768px) { .certificate-isin-chip,.certificate-page-link { min-height:44px; padding:10px 0; } .certificate-calendar-panel { padding:15px; } .calendar-date-link { min-height:32px; } }
/* Independent calendar projections use current market data without changing stored quotes. */
.certificate-calendar-panel { overflow-anchor:none; }
.calendar-dividend-controls { padding:12px; margin:0 0 14px; border:1px solid #d5dfeb; border-radius:7px; background:#eef3f8; }
.calendar-dividend-controls label { display:flex; align-items:flex-start; gap:9px; font-size:13px; line-height:1.5; cursor:pointer; }
.calendar-dividend-controls input { width:17px; height:17px; min-height:0; margin:2px 0 0; padding:0; flex-shrink:0; accent-color:#405674; }
.calendar-dividend-controls p,.calendar-adjusted-note { margin:7px 0 0; color:var(--muted); font-size:12px; line-height:1.5; }
.certificate-calendar-table { min-width:520px; }
.calendar-projection { min-width:150px; max-width:230px; }
.calendar-projection summary { font-weight:550; font-size:12px; cursor:pointer; line-height:1.5; }
.calendar-projection-list { list-style:none; padding:0; margin:0; min-width:135px; }
.calendar-projection-list li { display:grid; gap:3px; padding:7px 0; border-bottom:1px solid var(--line); }
.calendar-projection-list li:last-child { border-bottom:0; }
.calendar-projection-list strong { font-size:12px; line-height:1.4; }
.calendar-projection-list span { font-size:13px; font-variant-numeric:tabular-nums; white-space:nowrap; }
.calendar-projection-list small { margin-top:0; }
.calendar-projection [data-state="safe"],.calendar-projection-list [data-state="safe"] { color:var(--green); }
.calendar-projection [data-state="risk"],.calendar-projection-list [data-state="risk"] { color:var(--red); }

/* Discovery controls and practical learning pages. */
.collection-quick-filters { display:grid; grid-template-columns:minmax(220px,2fr) repeat(2,minmax(150px,1fr)); gap:14px; margin:18px 0 14px; }
.collection-filter-toolbar { grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.collection-toolbar > .manage-field { min-width:180px; }
.underlying-picker { margin:0 0 18px; padding:16px; border:1px solid var(--cl-line,#dce1e8); border-radius:10px; background:#fff; }
.underlying-picker h3 { margin:0 0 12px; font-size:16px; }
.underlying-picker-input { display:flex; gap:8px; }
.underlying-picker-input input { min-width:0; width:100%; }
.underlying-picker-input button { flex-shrink:0; }
.underlying-picker .search-active-filters:empty { display:none; }
.underlying-picker .search-active-filters { margin:12px 0; }
.filter-help { font-size:13px; line-height:1.6; color:#626c7d; margin:10px 0 0; }
.topbar-brand-subtitle { display:block; margin:8px 0 0; max-width:470px; color:#d9deea; font-size:13px; line-height:1.5; letter-spacing:.015em; }
.site-footer { padding:24px 30px 18px; margin-top:28px; }
.site-footer-top { grid-template-columns:minmax(180px,.8fr) minmax(300px,1.2fr); gap:24px; align-items:center; padding-bottom:18px; }
.site-footer-meta-grid { display:block; }
.site-footer-col-title { margin:0 0 8px; }
.site-footer-links { display:flex; flex-wrap:wrap; gap:12px 26px; }
.site-footer-links-legal { margin-top:10px; }
.site-footer-disclaimer { margin-top:0; padding:16px 0; }
.site-footer .site-footer-disclaimer-copy { font-size:12px; line-height:1.65; }
.site-footer-bottom { padding-top:12px; }
.site-footer-bottom-copy { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 20px; }
.site-footer-bottom-copy p { margin:0; font-size:12px; }
.editorial-heading { padding:8px 0 26px; border-bottom:1px solid #dce1e8; margin-bottom:28px; }
.editorial-heading h2 { max-width:820px; margin:8px 0 12px; font-size:clamp(28px,3vw,42px); line-height:1.2; }
.editorial-lead { max-width:780px; margin:0; color:#586477; font-size:18px; line-height:1.7; }
.guide-section { margin:30px 0; }
.guide-section > h3,.faq-group > h3 { font-size:22px; margin:0 0 18px; }
.guide-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.guide-glossary,.guide-context { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.discovery-guide .info-tile { padding:22px; border:1px solid #dce1e8; border-radius:10px; background:#fff; }
.discovery-guide .info-tile h3 { margin:0 0 10px; font-size:18px; line-height:1.45; }
.discovery-guide .info-tile p { margin:0; line-height:1.8; font-size:15px; color:#526074; }
.guide-steps .info-tile { border-top:3px solid #b69a55; background:#faf9f5; }
.guide-context .info-tile { background:#f0f3f7; }
.guide-source-links { display:flex; flex-wrap:wrap; gap:12px 26px; }
.guide-source-links a { color:#385477; text-underline-offset:4px; }
.faq-topics { display:flex; flex-wrap:wrap; gap:10px; margin:0 0 30px; }
.faq-topics a { padding:8px 14px; border-radius:6px; background:#edf1f6; color:#324663; font-size:14px; text-decoration:none; }
.faq-group { margin:32px 0; scroll-margin-top:24px; }
.faq-group .faq-card { box-shadow:none; border:1px solid #dce1e8; border-radius:9px; background:white; }
.faq-group .faq-question { padding:18px 22px; }
.faq-group .faq-answer { padding:0 22px 18px; max-width:960px; }
.faq-group .faq-answer p { color:#526074; line-height:1.85; font-size:15px; }
.faq-group .faq-card[open] { border-color:#b4becb; }
@media(max-width:900px) { .guide-steps { grid-template-columns:1fr; } }
@media(max-width:640px) {
 .collection-quick-filters,.guide-glossary,.guide-context { grid-template-columns:1fr; }
 .site-footer { padding:20px; }
 .site-footer-top { grid-template-columns:1fr; gap:16px; }
 .topbar-brand-subtitle { max-width:240px; font-size:11px; }
 .editorial-lead { font-size:16px; }
 .collection-toolbar > .manage-field { min-width:0; flex:1 1 150px; }
}
.topbar-brand { flex-direction:column; align-items:flex-start; gap:0; }
.topbar-brand-subtitle { margin-top:6px; }

.underlying-search-toolbar { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:18px 20px; margin:0 0 18px; border:1px solid #dce1e8; border-radius:10px; background:#fff; }
.underlying-search-toolbar > div { min-width:0; }
.underlying-search-toolbar .filter-help { margin-top:5px; overflow-wrap:anywhere; }
.underlying-search-toolbar > button { flex-shrink:0; }
.underlying-search-dialog { width:min(640px,calc(100vw - 32px)); max-height:calc(100dvh - 48px); box-sizing:border-box; margin:auto; padding:28px; border:1px solid #c3cad6; border-radius:14px; background:#fff; color:#1e2030; box-shadow:0 24px 90px #10182840; overflow:auto; overscroll-behavior:contain; }
.underlying-search-dialog::backdrop { background:rgba(20,25,40,.55); }
.underlying-dialog-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:24px; }
.underlying-dialog-heading h2 { margin:0; font-size:26px; line-height:1.25; }
.underlying-search-dialog .search-active-filters { margin:18px 0; }
.underlying-search-dialog .search-active-filters:empty { display:none; }
.underlying-search-dialog .manage-field { margin:18px 0; }
.underlying-dialog-actions { display:flex; align-items:center; justify-content:space-between; gap:16px; border-top:1px solid #e0e5ed; margin-top:24px; padding-top:20px; }
.guide-community-links { margin-top:16px; }
@media(max-width:640px) {
 .underlying-search-toolbar { align-items:flex-start; flex-direction:column; gap:14px; }
 .underlying-search-dialog { padding:20px; }
 .underlying-dialog-heading h2 { font-size:22px; }
}

/* The same full-width filter surface for Favorites, Recents and Maxi Coupon. */
.collection-filters {
  display:grid;
  grid-template-columns:minmax(240px,2fr) repeat(2,minmax(160px,1fr));
  align-items:end;
  gap:14px;
  width:100%;
  box-sizing:border-box;
  margin:0 0 16px;
  padding:16px;
  border:1px solid var(--line);
  border-radius:10px;
  background:var(--surface-cool);
}
.collection-filters-four {
  grid-template-columns:minmax(240px,2fr) repeat(3,minmax(160px,1fr));
}
.collection-filters .manage-field { min-width:0; margin:0; }
.collection-filters .manage-input { width:100%; min-width:0; box-sizing:border-box; }
.collection-filters .panel-label { font-size:12px; }
@media(max-width:1000px) {
  .collection-filters-four { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .collection-filters-four .manage-field:first-child { grid-column:1 / -1; }
}
@media(max-width:700px) {
  .collection-filters,.collection-filters-four { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .collection-filters .manage-field:first-child { grid-column:1 / -1; }
}
@media(max-width:420px) {
  .collection-filters,.collection-filters-four { grid-template-columns:minmax(0,1fr); }
}
#favorites-view .collection-page { display:block; }
:is(#favorites-view,#recent-updates-view,#maxi-coupon-view) .collection-toolbar { padding:16px; margin:0 0 20px; }

/* Brand hero and account controls in the navigation bar. */
.topbar.card.certslab-hero {
  display:block;
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:36px 40px;
  background:linear-gradient(110deg,#101526 0%,#13182a 58%,#1b2033 100%);
  border:1px solid #35394e;
  margin-bottom:22px;
}
.certslab-hero::before {
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:linear-gradient(132deg,transparent 54%,#ffffff04 54%,#ffffff04 68%,transparent 68%),linear-gradient(48deg,transparent 64%,#00000014 64%,#00000014 82%,transparent 82%),linear-gradient(135deg,transparent 76%,#ffffff04 76%);
}
.certslab-hero .certslab-logo { width:280px; }
.hero-copy { margin-top:30px; width:100%; max-width:none; }
.hero-copy h1 { margin:0; color:#fff; font:700 clamp(27px,2.8vw,42px)/1.2 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing:-.035em; max-width:none; text-wrap:wrap; }
.hero-copy h2 { margin:16px 0 0; color:#e0e3ec; font:400 clamp(17px,1.65vw,24px)/1.5 "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; letter-spacing:-.015em; max-width:1000px; text-wrap:pretty; }
.hero-subtitle:not([data-variant]) { visibility:hidden; }
.side-menu.card { display:flex; align-items:center; gap:12px; overflow:visible; position:relative; z-index:20; }
.side-menu-nav { flex:1 1 auto; min-width:0; }
.side-menu > .topbar-actions { flex:0 0 auto; max-width:290px; margin-left:auto; }
.side-menu .topbar-signin { color:#211d14; background:#c7aa56; border:1px solid #b99a45; border-radius:24px; padding:12px 20px; font-weight:650; white-space:nowrap; }
.side-menu .auth-status-trigger { color:#202638; background:#f1f3f7; border:1px solid #dce1e8; }
.side-menu .auth-status-name,.side-menu .auth-status-copy strong { color:#202638; }
.side-menu .auth-status-meta,.side-menu .auth-status-copy span,.side-menu .auth-status-caret { color:#606b7d; }
.side-menu .auth-status-menu { z-index:50; right:0; max-width:calc(100vw - 32px); }
@media(max-width:1100px) {
 .side-menu.card { flex-wrap:wrap; }
 .side-menu-nav { flex-basis:100%; }
 .side-menu > .topbar-actions { margin-left:auto; }
}
@media(max-width:768px) {
 .topbar.card.certslab-hero { padding:24px!important; }
 .certslab-hero .certslab-logo { width:220px; }
 .hero-copy { margin-top:24px; }
 .side-menu.card { background:#fff; border-radius:10px; padding:8px 12px; }
 .side-menu .side-nav-link { color:#526074; }
 .side-menu .side-nav-link.is-active { color:#665020; }
 .side-menu > .topbar-actions { max-width:100%; }
 .side-menu .topbar-signin { font-size:13px; padding:10px 16px; }
}
@media(max-width:480px) {
 .side-menu-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:4px; }
 .side-menu .side-nav-link { padding:9px 5px!important; }
 .side-menu .side-nav-link strong { font-size:12px; }
}
/* Inter headings use weight rather than a contrasting serif face. */
.section-heading h2,.info-page h2,.public-panel h2,.public-certificate-page h1 {
  font-weight:600;
  letter-spacing:-.025em;
}
.faq-answer-list { padding-left:22px; margin:0; }
.faq-answer-list li { margin:0 0 18px; padding-left:4px; }
.faq-answer-list li:last-child { margin-bottom:0; }
.faq-answer-list strong { color:#27354b; font-weight:600; }
.faq-group .faq-answer-list p { margin:6px 0 0; }

/* About uses the same editorial header and restrained panels as Guide / FAQ. */
#about-view .about-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:24px; align-items:start; }
#about-view .about-project,#about-view .contact-form { min-width:0; padding:24px; border:1px solid var(--line); border-radius:10px; }
#about-view .about-project { background:white; }
#about-view .contact-form { background:var(--surface-cool); margin:0; gap:16px; }
#about-view .about-project h3,#about-view .about-contact-heading h3 { margin:0 0 14px; font-size:22px; line-height:1.35; font-weight:600; letter-spacing:-.02em; }
#about-view .about-project p,#about-view .about-contact-heading p { margin:0 0 16px; color:var(--muted); font-size:15px; line-height:1.8; }
#about-view .about-project p:last-child,#about-view .about-contact-heading p { margin-bottom:0; }
#about-view .manage-field { min-width:0; margin:0; }
#about-view .manage-input { box-sizing:border-box; width:100%; min-width:0; }
#about-view .panel-label { font-size:12px; }
#about-view .contact-form-actions { justify-items:start; }
#about-view .about-project a { color:#385477; text-underline-offset:4px; }
@media(max-width:900px) { #about-view .about-grid { grid-template-columns:minmax(0,1fr); } }
@media(max-width:480px) { #about-view .about-project,#about-view .contact-form { padding:20px; } }

.account-transition-banner { display:flex; align-items:flex-start; gap:16px; padding:22px 24px; border:1px solid #dcc68a; border-left:4px solid #b2913d; border-radius:10px; background:#fcf8ed; color:#34382f; }
.account-transition-icon { flex:0 0 28px; width:28px; height:28px; display:grid; place-items:center; border:1px solid #b99c54; border-radius:50%; font-weight:700; color:#806322; }
.account-transition-content { flex:1 1 auto; min-width:0; }
.account-transition-content > strong { display:block; font-size:17px; font-weight:650; line-height:1.4; color:#493b1d; }
.account-transition-content p { margin:8px 0 0; font-size:14px; line-height:1.75; }
.account-transition-content .account-transition-retention { font-size:13px; color:#687060; }
.account-transition-actions { display:flex; flex:0 0 auto; flex-direction:column; align-items:stretch; gap:8px; }
.account-transition-actions button { white-space:nowrap; }
@media(max-width:1000px) {
 .account-transition-banner { flex-wrap:wrap; }
 .account-transition-content { flex-basis:calc(100% - 48px); }
 .account-transition-actions { flex-direction:row; flex-wrap:wrap; margin-left:44px; }
}
@media(max-width:480px) {
 .account-transition-banner { padding:18px 16px; gap:12px; }
 .account-transition-actions { margin-left:0; width:100%; }
 .account-transition-actions button { flex:1 1 auto; }
}
.account-transition-banner.hidden { display:none; }

.transition-upgrade-plans { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0; }
.transition-upgrade-plans .billing-plan-option { padding:20px; text-align:left; }
[data-upgrade-error], [data-transition-error] { color:#a52c36; }
[data-upgrade-error]:empty, [data-transition-error]:empty { display:none; }
@media(max-width:480px) { .transition-upgrade-plans { grid-template-columns:1fr; } }

/* App discovery: a permanent About section and a compact, non-modal phone suggestion. */
.about-mobile-apps { margin:0 0 28px; padding:28px; border:1px solid var(--line); border-radius:12px; background:var(--surface-cool); }
.mobile-apps-intro { display:flex; align-items:center; gap:22px; }
.mobile-apps-intro img { flex:none; border-radius:18px; }
.mobile-apps-intro h3 { margin:0 0 10px; font-size:24px; letter-spacing:-.025em; }
.mobile-apps-intro p { margin:0; max-width:720px; color:var(--muted); line-height:1.7; }
.mobile-app-platforms { display:flex; gap:16px; margin-top:24px; flex-wrap:wrap; }
.mobile-app-store,.mobile-app-android { position:relative; display:flex; flex-direction:column; gap:6px; min-width:220px; padding:18px 48px 18px 20px; border-radius:10px; text-decoration:none; }
.mobile-app-store { background:#1e2030; color:#fff; }
.mobile-app-store span:not(.mobile-app-arrow) { color:#dedee7; font-size:13px; }
.mobile-app-store:hover { background:#30364a; }
.mobile-app-arrow { position:absolute; right:20px; top:22px; color:#c8a84b; font-size:22px; }
.mobile-app-android { border:1px solid var(--line); background:#fff; }
.mobile-app-android span { font-size:13px; color:var(--muted); }
.mobile-app-banner { display:none; }
@media(max-width:600px) {
 .about-mobile-apps { padding:20px; }
 .mobile-apps-intro { align-items:flex-start; gap:14px; }
 .mobile-apps-intro img { width:56px; height:56px; border-radius:13px; }
 .mobile-apps-intro h3 { font-size:21px; }
 .mobile-app-platforms { flex-direction:column; }
 .mobile-app-store,.mobile-app-android { min-width:0; }
 .mobile-app-banner:not([hidden]) { display:flex; align-items:center; gap:10px; padding:12px; margin-bottom:12px; background:#fff; border:1px solid var(--line); border-radius:10px; }
 .mobile-app-banner img { border-radius:11px; flex:none; }
 .mobile-app-banner div { flex:1; min-width:0; }
 .mobile-app-banner strong { font-size:13px; }
 .mobile-app-banner p { margin:3px 0 0; font-size:12px; color:var(--muted); line-height:1.4; }
 .mobile-app-banner a { font-size:12px; font-weight:600; color:#654e13; white-space:nowrap; }
 .mobile-app-banner button { flex:none; border:0; background:transparent; font-size:24px; padding:6px; color:var(--muted); cursor:pointer; }
}

/* Phone navigation replaces the legacy fixed bottom tabs, including account controls. */
@media(max-width:768px) {
 .side-menu.card { position:relative!important; inset:auto!important; z-index:20; display:flex; flex-direction:column; align-items:stretch; gap:0; padding:8px 12px!important; margin:0 0 18px; border:1px solid var(--line)!important; border-radius:10px!important; backdrop-filter:none; }
 .side-menu .side-menu-nav { display:flex; flex-direction:row; flex-wrap:nowrap; flex-basis:auto; width:100%; overflow-x:auto; overscroll-behavior-inline:contain; gap:4px; padding:0 0 6px; scrollbar-width:thin; }
 .side-menu .side-nav-link { display:flex!important; flex:0 0 auto; width:auto; min-height:44px; min-width:0; justify-content:center; padding:10px 12px!important; white-space:nowrap; }
 .side-menu .side-nav-link.hidden,.side-menu .side-nav-link[data-view-trigger="more"] { display:none!important; }
 .side-menu .side-nav-link::before { display:none; }
 .side-menu .side-nav-link strong { font-size:13px; line-height:1.4; }
 .side-menu > .topbar-actions { display:flex; align-items:center; justify-content:stretch!important; flex:0 0 auto; width:100%!important; max-width:none; margin:0; padding:10px 0 2px; border-top:1px solid var(--line); }
 .side-menu .topbar-actions > * { max-width:100%; }
 .side-menu .topbar-signin { box-sizing:border-box; width:100%; min-height:44px; text-align:center; border-radius:8px; white-space:normal; }
 .side-menu .auth-status { position:relative; width:100%!important; max-width:none; }
 .side-menu .auth-status-trigger { box-sizing:border-box; width:100%; min-height:48px; border-radius:8px; }
 .side-menu .auth-status-copy { min-width:0; }
 .side-menu .auth-status-name { overflow:hidden; text-overflow:ellipsis; }
 .side-menu .auth-status-menu { box-sizing:border-box; width:100%; min-width:0; max-width:100%; right:0; left:0; }
 .topbar.card.certslab-hero { display:block; padding:20px!important; }
 .certslab-hero .certslab-logo { width:190px; max-width:100%; }
 .certslab-hero .hero-copy { margin-top:18px; }
 .certslab-hero .hero-copy h1 { font-size:clamp(25px,6vw,34px); line-height:1.18; }
 .certslab-hero .hero-copy h2 { margin-top:12px; font-size:16px; line-height:1.5; }
 .page-shell { padding-bottom:24px; }
 .site-footer { margin-bottom:0; }
 .view-stack,.search-workspace,.collection-page { min-width:0; }
 .manage-input { max-width:100%; box-sizing:border-box; }
}
/* Let wide certificate tables scroll within their panel rather than widening the page. */
.public-columns > *, .public-panel, .public-table-scroll { min-width:0; }
@media(max-width:768px) {
 .public-columns { grid-template-columns:minmax(0,1fr); }
 .public-table-scroll { max-width:100%; }
 .public-header { flex-wrap:wrap; gap:14px; }
 .public-certificate-page h1,.public-product-name { overflow-wrap:anywhere; }
}

/* Underlying event calendar */
.earnings-filter { margin: 1rem 0; }
.events-table-scroll { overflow-x: auto; }
.events-table { width: 100%; border-collapse: collapse; text-align: left; font-variant-numeric: tabular-nums; }
.events-table th { color: var(--muted, #667085); font-size: .8rem; padding: .85rem; background: #f3f5f8; }
.events-table td { padding: 1rem .85rem; border-bottom: 1px solid #e2e7ef; }
.events-table td:first-child { white-space: nowrap; }
.events-table small { display: block; margin-top: .25rem; color: #667085; }
.events-kind { display: inline-block; border-radius: 6px; background: #f3f0e6; color: #655226; padding: .3rem .55rem; font-size: .85rem; }
#events-more { margin-top: 1rem; }
#events-view .collection-filters { grid-template-columns: 2fr 1.3fr 1fr 1fr; }
@media(max-width: 760px) { #events-view .collection-filters { grid-template-columns: 1fr 1fr; } .events-table td, .events-table th { padding: .75rem .5rem; } }
@media(max-width: 420px) { #events-view .collection-filters { grid-template-columns: 1fr; } }


.events-sort { display: flex; align-items: center; justify-content: space-between; gap: .6rem; width: 100%; border: 0; padding: 0; background: transparent; color: inherit; font: inherit; font-weight: 600; text-align: left; cursor: pointer; }
.events-sort span { color: #846b2e; font-size: 1rem; }
.events-sort:hover { color: #655226; }
.events-sort:focus-visible { outline: 2px solid #b39750; outline-offset: 5px; border-radius: 2px; }
.earnings-filter-section { margin-top: 1rem; padding: 1rem; border: 1px solid #dacb9d; border-radius: 10px; background: #faf8f1; }
.earnings-filter-section h3 { display: flex; align-items: center; justify-content: space-between; gap: .6rem; margin-top: 0; }
.earnings-pro-badge { font-size: .7rem; font-weight: 700; padding: .2rem .5rem; border-radius: 5px; color: #68501b; background: #eae0c4; text-transform: uppercase; }
.earnings-filter-section.is-locked { border-color: #d6dce5; background: #f2f4f7; }
.earnings-filter-section.is-locked select { opacity: .65; cursor: not-allowed; }
.earnings-access { color: #4e5d70; font-size: .85rem; line-height: 1.5; padding-left: .75rem; border-left: 3px solid #b39750; }
.billing-profile-dialog { width:min(720px,calc(100vw - 32px)); max-height:90dvh; overflow:auto; }
.billing-profile-intro { color:var(--muted); line-height:1.6; }
.billing-profile-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; margin:22px 0; }
.billing-profile-grid label { display:flex; flex-direction:column; gap:7px; font-size:13px; font-weight:600; }
.billing-profile-grid input,.billing-profile-grid select { box-sizing:border-box; width:100%; min-width:0; min-height:44px; padding:10px 12px; border:1px solid #cbd5e1; border-radius:10px; background:#fff; color:#17233b; font:inherit; }
.billing-profile-grid input:focus,.billing-profile-grid select:focus { outline:2px solid #c8a84b; outline-offset:2px; }
.billing-profile-dialog [hidden] { display:none !important; }
.billing-profile-dialog [data-billing-profile-error] { color:#a12c32; line-height:1.5; }
.billing-profile-actions { display:flex; justify-content:flex-end; align-items:center; flex-wrap:wrap; gap:12px; margin-top:20px; }
@media(max-width:560px) { .billing-profile-grid { grid-template-columns:1fr; } .billing-profile-dialog { padding:20px; } .billing-profile-actions button { width:100%; } }

/* Export stays with sorting, with a separate access hint for Free accounts. */
.collection-export { margin-left:auto; display:flex; flex-direction:column; align-items:flex-end; gap:6px; max-width:300px; }
.collection-export .is-export { min-height:42px; padding:10px 16px; border-color:#b49a57; color:#765b18; background:#faf7ef; font-weight:650; }
.collection-export .is-export:disabled { opacity:.55; cursor:not-allowed; }
.export-hint { color:var(--muted,#657080); font-size:.75rem; line-height:1.4; text-align:right; }
.export-status { color:#23735a; font-size:.85rem; margin:0 0 12px; }
.export-status:empty { display:none; }
.export-status.is-error { color:#b33838; }
@media(max-width:640px) { .collection-export { margin-left:0; width:100%; max-width:none; align-items:stretch; } .export-hint { text-align:left; } }

.collection-toolbar.has-export { display:flex; flex-wrap:wrap; align-items:flex-end; }
.collection-toolbar.has-export > .collection-toolbar-field { flex:0 1 250px; }
@media(max-width:640px) { .collection-toolbar.has-export > .collection-toolbar-field { flex:1 1 140px; } }

/* Compact collection actions: keep labels accessible while reducing toolbar height. */
.collection-toolbar, .collection-toolbar.has-export { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:10px 12px; }
:is(#favorites-view,#recent-updates-view,#maxi-coupon-view) .collection-toolbar { padding:10px 12px; }
.collection-toolbar .collection-toolbar-field, .collection-toolbar.has-export > .collection-toolbar-field { flex:0 1 220px; min-width:150px; }
.collection-toolbar .panel-label { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.collection-toolbar .manage-input-select { min-height:34px; height:34px; padding:6px 30px 6px 10px; font-size:.8rem; }
.sort-direction-control { display:flex; flex:0 0 auto; }
.sort-direction-toggle { display:inline-flex; align-items:center; justify-content:center; width:34px; height:34px; padding:7px; border:1px solid var(--line,#dce1e8); border-radius:7px; background:#fff; color:#526071; cursor:pointer; }
.sort-direction-toggle svg, .collection-export .is-export svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; flex-shrink:0; }
.sort-direction-toggle.is-ascending svg { transform:rotate(180deg); }
.sort-direction-toggle:hover { border-color:#b49a57; color:#765b18; }
.sort-direction-toggle:focus-visible,.collection-export .is-export:focus-visible { outline:2px solid #a88738; outline-offset:3px; }
.collection-export .is-export { display:inline-flex; align-items:center; justify-content:center; gap:7px; min-height:34px; padding:6px 10px; border-radius:7px; font-size:.8rem; }
.export-count { display:inline-block; padding:1px 5px; border-radius:4px; background:rgba(128,100,28,.09); font-size:.72rem; font-variant-numeric:tabular-nums; }
@media(max-width:640px) { .collection-toolbar .collection-toolbar-field,.collection-toolbar.has-export > .collection-toolbar-field { flex:1 1 150px; } .collection-export { margin-left:auto; width:auto; max-width:100%; align-items:flex-end; } }
@media(pointer:coarse) { .sort-direction-toggle { width:42px; height:42px; } .collection-export .is-export,.collection-toolbar .manage-input-select { min-height:42px; height:42px; } }
/* Issuer-fixed valuations are historical contract values, not live quotes. */
.underlying-fixed-valuation > td { background: #fff0ef; }
.underlying-fixed-valuation > td:first-child { border-left: 3px solid #bc514d; }
.underlying-adjustment { max-width: 29rem; margin-top: .6rem; color: #713a37; }
.underlying-adjustment p { margin: .4rem 0; font-size: .8rem; line-height: 1.45; }
.underlying-adjustment small { font-size: .73rem; }
.underlying-adjustment-badge { display:inline-block; padding:.2rem .5rem; border-radius:.4rem; background:#f7d9d6; font-size:.73rem; font-weight:650; }
.underlyings-table tbody tr.underlying-fixed-valuation > td,
.underlyings-table tbody tr.underlying-fixed-valuation:hover > td,
.public-table-scroll tr.underlying-fixed-valuation > td { background:#fff0ef; }

/* Desktop comparison view; shared collection filters and pagination stay unchanged. */
.collection-view-switch { display:inline-flex; align-items:center; flex:0 0 auto; gap:2px; padding:3px; border:1px solid #d8dde6; background:#edf0f5; border-radius:9px; margin-left:auto; }
.collection-view-switch button { display:inline-flex; align-items:center; gap:6px; border:0; border-radius:6px; padding:6px 9px; background:transparent; color:#606a79; font-family:inherit; font-size:.78rem; line-height:1.3; font-weight:600; cursor:pointer; }
.collection-view-switch button.is-selected { background:white; color:#80651c; box-shadow:0 1px 4px #18203116; }
.collection-view-switch svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.4; }
.collection-view-switch button:focus-visible { outline:2px solid #a88738; outline-offset:2px; }
.collection-view-switch + .collection-export { margin-left:4px; }
.certificate-table-legend { margin:2px 0 10px; color:#657080; font-size:.75rem; line-height:1.5; max-width:110ch; }
.certificate-table-scroll { position:relative; overflow:auto; max-height:76vh; border:1px solid #d7dde6; border-radius:11px; background:#fff; scrollbar-gutter:auto; overflow-anchor:none; }
.certificate-results-table { border-collapse:separate; border-spacing:0; width:100%; min-width:1720px; table-layout:fixed; font-size:.8rem; line-height:1.4; color:#253044; }
.certificate-results-table th { position:sticky; top:0; z-index:3; padding:12px; background:#e9edf3; color:#4e596b; border-bottom:1px solid #cbd3df; font-size:.72rem; text-align:left; font-weight:650; white-space:normal; min-width:120px; }
.certificate-results-table td { padding:11px 12px; border-bottom:1px solid #e5e9f0; vertical-align:middle; }
.certificate-results-table .certificate-table-row:nth-of-type(2n) td { background:#f8f9fc; }
.certificate-results-table .certificate-table-row:hover td,.certificate-results-table .certificate-table-row.is-expanded td { background:#f6f0e3; }
.certificate-results-table th:first-child,.certificate-results-table .table-identity { position:sticky; left:0; background:#fff; box-shadow:3px 0 6px #1520370a; min-width:190px; z-index:2; }
.certificate-results-table th:first-child { z-index:4; background:#e9edf3; border-top-left-radius:10px; }
.certificate-results-table small { display:block; margin-top:4px; color:#687487; font-size:.69rem; line-height:1.4; white-space:normal; }
.certificate-results-table .table-identity a { color:#29364b; font-weight:750; text-decoration:none; letter-spacing:.015em; }
.certificate-results-table .table-identity a:hover { color:#80651c; text-decoration:underline; }
.table-basket { min-width:230px; max-width:290px; }
.table-basket span { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.table-numeric { font-variant-numeric:tabular-nums; min-width:125px; }
.table-distance.is-safe { color:#16725b; }.table-distance.is-risk { color:#ad4140; }.table-na { color:#8893a1; }
.table-reverse { display:inline-block; color:#80651c; font-weight:700; margin-left:5px; }
.table-actions > div { display:flex; align-items:center; gap:5px; }
.table-actions button { min-width:30px; height:30px; min-height:30px; padding:3px 6px; border:1px solid #d3d9e3; border-radius:6px; color:#80651c; background:white; font-size:17px; cursor:pointer; }
.table-actions .manage-state-pill { font-size:.65rem; white-space:normal; }
.certificate-table-detail td { padding:0; background:#fff; }
.certificate-table-detail-inner { position:sticky; left:0; width:var(--table-detail-width,900px); max-width:var(--table-detail-width,900px); padding:18px; box-sizing:border-box; }
.certificate-table-detail .certificate-detail-panel { border:0; margin:0; }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }

.certificate-results-table th:first-child { width:190px; }
.certificate-results-table th:nth-child(2) { width:220px; }
.certificate-results-table th:last-child { position:sticky; right:0; z-index:4; width:126px; border-top-right-radius:10px; }
.certificate-results-table .table-actions { position:sticky; right:0; z-index:2; background:#fff; box-shadow:-3px 0 6px #1520370a; }

.table-distance.is-neutral { color:var(--ink,#202535); }

.certificate-table-row { cursor:pointer; }
.certificate-table-row a,.certificate-table-row button { cursor:pointer; }
.certificate-table-row button:disabled { cursor:not-allowed; }

/* Catalog totals share the existing logo row and do not add a hero row. */
.certslab-hero .topbar-brand { flex-direction:row; align-items:center; gap:28px; flex-wrap:wrap; }
.catalog-header-stats { display:flex; gap:26px; padding-left:28px; border-left:1px solid #ffffff30; }
.catalog-header-stats[hidden] { display:none; }
.catalog-header-stats > div { display:flex; flex-direction:column; gap:4px; }
.catalog-header-stats strong { color:#f8f9fc; font-size:23px; font-weight:650; line-height:1.2; font-variant-numeric:tabular-nums; }
.catalog-header-stats #catalog-active-count { color:#d6bd7f; }
.catalog-header-stats span { color:#c9d1e0; font-size:12px; line-height:1.3; }
@media(max-width:600px) {
 .certslab-hero .topbar-brand { gap:16px; }
 .catalog-header-stats { gap:18px; padding-left:16px; }
 .catalog-header-stats strong { font-size:19px; }
 .catalog-header-stats span { font-size:11px; }
}

/* Compact favorite state and accessible locked-export explanation. */
.table-favorite-status { display:inline-grid; place-items:center; flex:0 0 30px; width:30px; height:30px; color:#92701c; font-size:22px; line-height:1; }
.collection-export { position:relative; background:transparent; }
.collection-export .is-export[aria-disabled="true"] { opacity:.6; cursor:not-allowed; }
.collection-export .export-hint { position:absolute; right:0; top:calc(100% + 8px); width:max-content; max-width:260px; margin:0; padding:9px 12px; z-index:30; border:1px solid var(--line); border-radius:7px; background:var(--surface); color:var(--text); box-shadow:0 4px 16px #0002; font-size:12px; line-height:1.5; text-align:left; visibility:hidden; }
.collection-export:hover .export-hint:not([hidden]),.collection-export:focus-within .export-hint:not([hidden]),.collection-export.is-tooltip-visible .export-hint:not([hidden]) { visibility:visible; }

.collection-investor-note { margin:7px 0 0; max-width:115ch; color:var(--muted); font-size:13px; line-height:1.55; }

.collection-overview { margin:0; max-width:120ch; color:var(--muted); font-size:14px; line-height:1.65; }
.collection-overview strong { color:var(--text); font-weight:600; }
