.section {
  scroll-margin-top: 100px;
}
.section h1 {
  max-width: 980px;
}
.diagnostic-card {
  padding: 28px;
  border: 1px solid var(--border, #64646a);
  border-radius: 16px;
  background: var(--surface, transparent);
  min-width: 0;
}
.diagnostic-card h2,
.diagnostic-card h3 {
  display: flex;
  align-items: center;
  gap: 10px;
}
.diagnostic-card svg {
  width: 22px;
  height: 22px;
  flex-shrink: 0;
}
.diagnostic-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
.scan-row {
  display: flex;
  gap: 12px;
  margin: 12px 0;
}
.scan-row input {
  flex: 1;
  min-width: 0;
  min-height: 48px;
  border: 1px solid var(--border, #777);
  border-radius: 10px;
  padding: 12px;
  background: var(--surface, transparent);
  color: inherit;
  font: inherit;
}
.scan-row button {
  white-space: nowrap;
}
#scan-state {
  margin-block: 20px;
}
#report {
  overflow-wrap: anywhere;
}
#report li {
  margin-block: 12px;
}
.notice {
  padding: 16px;
  border: 1px solid var(--border, #777);
  border-radius: 8px;
}
.muted {
  font-size: 14px;
}
.diagnostic-card [disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
button:focus-visible,
input:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (max-width: 760px) {
  .scan-row {
    flex-direction: column;
  }
  .diagnostic-grid {
    grid-template-columns: 1fr;
  }
  .diagnostic-card {
    padding: 20px;
  }
  .section h1 {
    font-size: clamp(32px, 8vw, 56px);
  }
}
/* Product tools compose the immutable corporate shell and its native controls. */
.tool-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 24px;
  align-items: start;
  margin-block: 28px;
}
.field {
  display: grid;
  gap: 8px;
  margin-block-end: 20px;
  min-width: 0;
}
.field label {
  font-weight: 600;
}
.field input,
.field textarea,
.tool-result textarea {
  font: inherit;
  line-height: 1.6;
  width: 100%;
  max-width: 100%;
  min-width: 0;
  border: 1px solid var(--border);
  border-radius: 10px;
  padding: 12px;
  color: var(--text);
  background: var(--bg);
}
.field input {
  min-height: 48px;
}
.field textarea,
.tool-result textarea {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
  resize: vertical;
}
.tool-result textarea {
  margin-block: 8px 16px;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  min-height: 280px;
}
.tool-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-block: 16px;
}
.tool-actions .btn {
  white-space: normal;
  text-align: center;
  min-height: 44px;
}
.tool-notice {
  border-inline-start: 3px solid var(--border);
  padding: 8px 18px;
  max-width: 80ch;
  line-height: 1.7;
}
.breadcrumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  font-size: 14px;
  margin-bottom: 28px;
}
.tool-grid {
  margin-block: 28px;
}
.tool-card {
  display: flex;
  flex-direction: column;
  align-items: start;
}
.tool-card h2 {
  font-size: 22px;
  align-items: start;
  line-height: 1.35;
  margin-block: 10px 16px;
}
.tool-card h2 svg {
  margin-top: 3px;
}
.tool-card p {
  line-height: 1.7;
}
.tool-kind {
  font-size: 13px;
  color: var(--muted);
  margin: 0;
}
.catalog-controls {
  max-width: 900px;
  margin-top: 32px;
}
.catalog-controls [aria-pressed="true"] {
  outline: 2px solid var(--text);
  outline-offset: 2px;
}
.diagnostic-card[hidden],
[hidden] {
  display: none !important;
}
.tool-result h2 {
  margin-top: 0;
}
.tool-result [disabled] {
  opacity: 0.5;
}
.finding-list {
  padding: 0;
  list-style: none;
}
.finding-list > li {
  padding-block: 20px;
  border-block-end: 1px solid var(--border);
}
.finding-list h3 {
  font-size: 18px;
  margin: 0 0 8px;
}
.finding-list p {
  margin: 8px 0;
}
.finding-list details {
  margin-top: 10px;
}
.finding-list pre {
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  font: inherit;
}
.report-summary {
  margin-top: 28px;
}
.report-summary h2 {
  font-size: 24px;
}
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}
.tool-result textarea:focus-visible,
textarea:focus-visible,
a:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 3px;
}
@media (max-width: 900px) {
  .tool-layout {
    grid-template-columns: 1fr;
  }
  .tool-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 600px) {
  .tool-grid {
    grid-template-columns: 1fr;
  }
  .tool-actions .btn {
    flex: 1 1 auto;
  }
  .tool-hero .section {
    padding-top: 28px;
  }
  .tool-card h2 {
    font-size: 20px;
  }
}
.bot-widget { min-height: 65px; width: 100%; margin-block: 16px; }
[data-bot-diagnostics] { margin-block: 16px; }
[data-bot-diagnostics] code { display: block; margin-top: 8px; }
.support-container { max-width: 840px; }
.support-container textarea { font-family: inherit; }
.support-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.legal-document { max-width: 880px; line-height: 1.8; overflow-wrap: anywhere; }
.legal-document .tool-notice { margin-block: 32px; }
.legal-document h2 { margin-top: 32px; }
.legal-title {
  line-height: 1.2;
  text-wrap: balance;
  overflow-wrap: anywhere;
  hyphens: auto;
}
html[lang="ja"] .legal-title { line-break: strict; }
html[lang="ko"] .legal-title { word-break: keep-all; }
.legal-tabs {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 6px;
  margin-top: 28px;
  background: var(--bg-soft);
  border: 1px solid var(--border);
  border-radius: var(--radius);
}
.legal-tabs a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 48px;
  padding: 10px 12px;
  border-radius: var(--radius);
  color: var(--text);
  text-decoration: none;
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.legal-tabs a:hover,
.legal-tabs a[aria-current="page"] {
  background: var(--surface);
  color: var(--green-strong);
}
.legal-tabs a[aria-current="page"] { box-shadow: 0 2px 8px #00000008; }
.legal-tabs a:focus-visible {
  outline: 3px solid var(--link);
  outline-offset: -3px;
  background: var(--surface);
  color: var(--link);
}
@media (max-width: 600px) {
  .legal-tabs { grid-template-columns: 1fr; margin-top: 24px; }
  .legal-tabs a { justify-content: flex-start; text-align: start; }
}
/* Product presentation: canonical shell and controls, with semantic accent colors. */
:root {
  --bg: #f9fbff;
  --bg-soft: #f0f5fb;
  --surface: #fff;
  --text: #142037;
  --muted: #56637a;
  --border: #dce4ef;
  --link: #076d67;
  --green: #008f85;
  --green-strong: #076d67;
  --blue: #2563eb;
  --accent: #087c77;
  --accent-soft: #ddf7f1;
  --accent-line: #5bcbb6;
  --free-badge-bg: #ddf7f1;
  --free-badge-text: #076d67;
}
:root[data-theme="dark"] {
  --bg: #0e1523;
  --bg-soft: #152033;
  --surface: #172235;
  --text: #edf3ff;
  --muted: #b4bfd3;
  --border: #34445d;
  --link: #7ee0d0;
  --green: #008f85;
  --green-strong: #7ee0d0;
  --blue: #6697ff;
  --accent: #7ee0d0;
  --accent-soft: #183a3b;
  --accent-line: #3c8d82;
  --free-badge-bg: #183a3b;
  --free-badge-text: #7ee0d0;
}
[data-accent="blue"] { --accent: #245acb; --accent-soft: #e5efff; --accent-line: #aac9fa; }
[data-accent="violet"] { --accent: #7436cc; --accent-soft: #f0e7ff; --accent-line: #c9a7f6; }
[data-accent="amber"] { --accent: #98600d; --accent-soft: #fff1d9; --accent-line: #eccb8f; }
:root[data-theme="dark"] [data-accent="blue"] { --accent: #a2c2ff; --accent-soft: #20375a; --accent-line: #456797; }
:root[data-theme="dark"] [data-accent="violet"] { --accent: #d3b2ff; --accent-soft: #35254e; --accent-line: #7a59a4; }
:root[data-theme="dark"] [data-accent="amber"] { --accent: #ffd48a; --accent-soft: #403321; --accent-line: #8a6c39; }
.nav>a, .mobile-menu-inner>a, .footer-site>a { display: flex; align-items: center; gap: 8px; }
.nav>a>.tabler-icon, .mobile-menu-inner>a>.tabler-icon, .footer-site>a>.tabler-icon { width: 18px; height: 18px; flex: none; }
.nav>a { white-space: nowrap; }
.nav>a[aria-current="page"] { color: #b8f5eb; }
.product-wash { background: radial-gradient(ellipse 60% 260px at 7% 0%, #26c9b321, transparent), radial-gradient(ellipse 65% 260px at 85% 0%, #8260ef20, transparent); }
.plans-hero, .catalog-section, .home-hero, .tool-hero { padding-block: 64px 40px; }
.page-heading h1 { margin: 0 0 18px; font-size: clamp(36px, 4vw, 56px); letter-spacing: -.045em; line-height: 1.14; font-weight: 800; text-wrap: balance; }
.page-heading .lead { font-size: 19px; line-height: 1.65; color: var(--muted); max-width: 84ch; margin: 0 0 28px; }
.availability-line { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 24px 0 28px; font-size: 15px; }
.availability-line>svg { width: 22px; height: 22px; color: var(--green-strong); flex: none; }
.availability-line a, .text-action { display: inline-flex; align-items: center; gap: 8px; color: var(--link); font-weight: 650; text-underline-offset: 4px; min-height: 44px; }
.availability-line a { margin-inline-start: 12px; }
.text-action>svg, .availability-line a>svg { width: 19px; height: 19px; flex: none; }
.btn-primary { background: linear-gradient(120deg, #007f76, #087c87); color: #fff; box-shadow: 0 6px 18px #087c7720; }
.icon-tile { width: 48px; height: 48px; border-radius: 12px; display: inline-grid; place-items: center; flex: none; color: var(--accent); background: var(--accent-soft); }
.icon-tile>.tabler-icon { width: 28px; height: 28px; }
.status-notice, .limit-strip { border: 1px solid var(--border); border-radius: 12px; background: color-mix(in srgb, var(--bg-soft) 90%, var(--blue) 10%); }
.status-notice { display: flex; gap: 14px; align-items: start; padding: 18px 22px; margin: 28px 0; font-size: 15px; line-height: 1.65; }
.status-notice>svg { flex: none; margin-top: 2px; }
.plan-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; margin-top: 28px; }
.plan-card { min-width: 0; display: flex; flex-direction: column; padding: 24px; border: 1px solid var(--border); border-radius: 16px; background: var(--surface); box-shadow: 0 8px 24px #17263d05; }
.plan-free { border-color: var(--accent-line); background: linear-gradient(150deg,var(--accent-soft),var(--surface) 65%); }
.plan-card h2 { font-size: 25px; letter-spacing: -.025em; margin: 18px 0 6px; line-height: 1.25; }
.plan-status, .free-label { font-size: 12px; line-height: 1.5; font-weight: 700; background: var(--bg-soft); border-radius: 6px; color: var(--muted); padding: 4px 9px; align-self: flex-start; margin: 0; }
.plan-free .plan-status, .free-label { color: var(--free-badge-text); background: var(--free-badge-bg); }
.plan-price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; font-size: clamp(28px,2.5vw,38px); letter-spacing: -.045em; font-weight: 800; line-height: 1.15; margin: 26px 0 18px; overflow-wrap: anywhere; }
.plan-price>span { font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--muted); }
.plan-description { margin: 0 0 12px; font-size: 14px; color: var(--muted); }
.feature-list { padding: 20px 0 24px; margin: 8px 0 0; border-top: 1px solid var(--border); list-style: none; font-size: 14px; line-height: 1.6; }
.feature-list li { display: flex; align-items: start; gap: 9px; margin-bottom: 12px; }
.feature-list svg { width: 18px; height: 18px; flex: none; color: var(--accent); margin-top: 3px; }
.plan-card>.btn { margin-top: auto; width: 100%; padding: 12px; font-size: 14px; line-height: 1.5; text-align: center; min-height: 48px; white-space: normal; }
.plan-disabled:disabled { cursor: not-allowed; color: var(--muted); background: var(--bg-soft); border-color: var(--border); box-shadow: none; transform: none; }
.proposal-note { font-size: 13px; color: var(--muted); line-height: 1.7; margin: 20px 0 26px; scroll-margin-top: 112px; }
.limit-strip { scroll-margin-top: 112px; display: grid; grid-template-columns: 1.15fr 1fr; gap: 24px; padding: 20px 24px; }
.limit-strip p { display: flex; align-items: start; gap: 12px; font-size: 14px; line-height: 1.7; margin: 0; }
.limit-strip svg { flex: none; width: 22px; height: 22px; margin-top: 2px; color: var(--link); }
.limit-strip p+p { border-inline-start: 1px solid var(--border); padding-inline-start: 24px; }
.comparison-section { padding-block: 36px 64px; }
.comparison-section>.container>h2 { font-size: clamp(28px,3vw,36px); letter-spacing: -.035em; line-height: 1.25; margin: 0 0 32px; text-wrap: balance; }
.comparison-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; }
.comparison-grid>div+div { border-inline-start: 1px solid var(--border); padding-inline-start: 40px; }
.comparison-grid h3, .product-help h2, .support-title { display: flex; gap: 12px; align-items: center; }
.comparison-grid h3 { font-size: 23px; margin: 0 0 24px; }
.comparison-grid h3>svg { color: var(--accent); flex: none; }
.comparison-grid h4 { font-size: 16px; margin: 22px 0 8px; }
.comparison-grid p { font-size: 15px; line-height: 1.8; color: var(--muted); }
.roadmap-note { padding: 16px; border-radius: 10px; background: var(--accent-soft); }
.product-help { padding-block: 40px; background: var(--bg-soft); border-top: 1px solid var(--border); }
.product-help p { max-width: 80ch; color: var(--muted); }
.catalog-controls { max-width: none; margin: 26px 0 12px; }
.catalog-controls label { display: flex; align-items: center; gap: 8px; font-size: 14px; }
.catalog-controls label svg { width: 18px; height: 18px; }
.catalog-controls input { background: var(--surface); }
.catalog-controls [aria-pressed="true"] { background: var(--green-strong); border-color: var(--green-strong); color: var(--bg); }
#catalog-count { color: var(--muted); font-size: 13px; }
.tool-grid { gap: 18px; }
.tool-card { position: relative; padding: 26px 24px 24px; border-radius: 14px; border-color: var(--border); background: var(--surface); color: var(--text); text-decoration: none; cursor: pointer; -webkit-tap-highlight-color: #26c9b330; transition: transform .18s ease, border-color .18s ease, background-color .18s ease, box-shadow .18s ease; }
.tool-card:focus-visible { outline: 3px solid var(--accent); outline-offset: 3px; border-color: var(--accent-line); background: color-mix(in srgb, var(--surface) 94%, var(--accent) 6%); }
.tool-card:active { transform: translateY(-1px); background: color-mix(in srgb, var(--surface) 90%, var(--accent) 10%); }
@media (hover: hover) and (pointer: fine) {
  .tool-card:hover { transform: translateY(-3px); border-color: var(--accent-line); background: color-mix(in srgb, var(--surface) 94%, var(--accent) 6%); box-shadow: 0 10px 28px #14203712; }
  .tool-card:hover h2 { color: var(--accent); }
}
.tool-card>.free-label { margin-inline-start: auto; margin-bottom: 12px; }
.tool-card-title { display: grid; grid-template-columns: 48px minmax(0,1fr); gap: 14px; align-items: start; width: 100%; }
.tool-card-title h2 { margin: 0 0 6px; font-size: 19px; line-height: 1.35; letter-spacing: -.015em; }
.tool-card-title .tool-kind { font-size: 12px; line-height: 1.5; }
.tool-description { font-size: 14px; line-height: 1.7; color: var(--muted); margin-block: 18px; }
.tool-card>.tool-description { margin-bottom: 0; }
.scan-limits-note { font-size: 13px; color: var(--muted); margin-top: auto; padding-top: 14px; }
.tool-heading { display: flex; gap: 18px; align-items: start; margin-bottom: 24px; }
.tool-heading>.icon-tile { margin-top: 6px; width: 56px; height: 56px; }
.tool-heading h1 { margin: 8px 0 0; font-size: clamp(30px,3.5vw,48px); line-height: 1.2; letter-spacing: -.035em; text-wrap: balance; }
.tool-availability { font-size: 14px; font-weight: 650; color: var(--link); margin: 0; }
.tool-hero>.container>.lead { max-width: 85ch; color: var(--muted); font-size: 17px; }
.tool-layout>.diagnostic-card { border-radius: 14px; background: var(--surface); }
.home-hero h2 { margin-top: 46px; font-size: 26px; }
.home-hero #check { background: var(--surface); border-radius: 16px; padding: 24px; margin-top: 20px; max-width: 960px; }
@media (min-width: 1061px) and (max-width: 1280px) { .nav { gap: 6px; } .nav>a { gap: 5px; font-size: 13px; padding-inline: 8px; } }
@media (max-width: 1050px) { .plan-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 680px) {
  .plans-hero, .catalog-section, .home-hero, .tool-hero { padding-block: 36px 28px; }
  .page-heading h1 { font-size: clamp(32px,8.5vw,42px); }
  .page-heading .lead { font-size: 16px; }
  .plan-grid { grid-template-columns: 1fr; gap: 16px; }
  .plan-card { padding: 24px; }
  .plan-price { font-size: 38px; }
  .plan-card h2 { font-size: 25px; }
  .availability-line { align-items: start; gap: 8px; font-size: 14px; }
  .availability-line a { margin-inline-start: 30px; }
  .limit-strip, .comparison-grid { grid-template-columns: 1fr; gap: 24px; }
  .limit-strip { padding: 20px; }
  .limit-strip p+p { border: 0; border-top: 1px solid var(--border); padding: 20px 0 0; }
  .comparison-grid>div+div { border: 0; border-top: 1px solid var(--border); padding: 28px 0 0; }
  .comparison-section { padding-block: 28px 40px; }
  .tool-card { padding: 22px; }
  .tool-heading { gap: 12px; }
  .tool-heading>.icon-tile { width: 44px; height: 44px; }
  .tool-heading h1 { font-size: clamp(27px,7vw,34px); }
  .home-hero #check { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .tool-card { transition: none; }
  .tool-card:hover, .tool-card:active { transform: none; }
}
.tool-heading>div, .tool-card-title>div { min-width: 0; }
.catalog-controls [aria-pressed="true"] { outline: none; }
.catalog-controls button:focus-visible { outline: 3px solid var(--link); outline-offset: 3px; }
/* Tool-page pattern observed in emonster.tools; product-local content and controllers. */
.tool-detail { padding-bottom: 48px; }
.tool-detail>.container>.lead { max-width: 100ch; margin-bottom: 16px; }
.tool-availability .free-label { display: inline-block; margin-inline-end: 8px; }
.detail-actions { display: flex; gap: 10px; flex-wrap: wrap; align-items: start; position: relative; margin: 20px 0 10px; }
.detail-actions>.btn, .bookmark-action>summary { font-size: 14px; min-height: 44px; font-weight: 650; }
.bookmark-action>summary { list-style: none; cursor: pointer; }
.bookmark-action>summary::-webkit-details-marker { display: none; }
.bookmark-action>p { position: absolute; inset-inline-start: 0; top: 48px; z-index: 20; width: min(440px,calc(100vw - 40px)); padding: 20px; margin: 0; border: 1px solid var(--border); border-radius: var(--radius); background: var(--surface); box-shadow: var(--shadow-soft); font-size: 14px; line-height: 1.7; }
.link-privacy { font-size: 12px; color: var(--muted); margin: 0 0 32px; line-height: 1.6; }
#tool-link-fallback { width: 100%; padding: 12px; background: var(--surface); color: var(--text); border: 1px solid var(--border); border-radius: var(--radius); }
.detail-workspace { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; gap: 24px; margin: 32px 0; }
.tool-input-panel { border-top: 3px solid var(--blue); }
.tool-input-panel>h2, .detail-result>h2, .tool-sources>h2 { display: flex; gap: 10px; align-items: center; margin: 0 0 20px; font-size: 22px; line-height: 1.35; letter-spacing: -.02em; }
.tool-input-panel>h2>svg { color: var(--blue); }
.tool-panel-note { color: var(--muted); font-size: 14px; line-height: 1.75; margin: 0 0 24px; }
.tool-input-panel .field>label { font-size: 14px; }
.tool-input-panel .field { margin-bottom: 24px; gap: 8px; }
.tool-input-panel textarea { min-height: 190px; }
.tool-input-panel .tool-actions { margin-top: 28px; }
.tool-input-panel .tool-actions .btn { font-size: 14px; font-weight: 650; }
.tool-input-limit { border-top: 1px solid var(--border); padding-top: 20px; margin: 24px 0 0; color: var(--muted); font-size: 13px; line-height: 1.75; }
.field-hint { font-size: 12px; color: var(--muted); margin: 0; line-height: 1.6; overflow-wrap: anywhere; }
.field-hint:empty, .field-error:empty { display: none; }
.field-error { font-size: 13px; line-height: 1.6; color: #a33127; margin: 0; }
[aria-invalid="true"] { border-color: #a33127 !important; }
:root[data-theme="dark"] .field-error { color: #ffad98; }
:root[data-theme="dark"] [aria-invalid="true"] { border-color: #ffad98 !important; }
.result-stack { display: grid; gap: 24px; min-width: 0; }
.detail-result { min-width: 0; min-height: 330px; border-top: 3px solid var(--green-strong); background: color-mix(in srgb,var(--surface) 96%,var(--green-strong) 4%); }
.detail-result>h2>svg { color: var(--green-strong); }
.detail-result [role="status"] { color: var(--muted); font-size: 14px; line-height: 1.7; margin: 0 0 16px; }
.result-empty { padding: 32px 10px; text-align: center; }
.result-empty>svg { width: 38px; height: 38px; color: var(--green-strong); margin-bottom: 14px; }
.result-empty h3 { font-size: 18px; line-height: 1.4; margin: 0 0 10px; }
.result-empty p { font-size: 14px; line-height: 1.75; color: var(--muted); max-width: 38ch; margin: 0 auto; }
.result-actions { gap: 10px; border-top: 1px solid var(--border); padding-top: 20px; margin-top: 24px; }
.result-actions .btn, .result-actions .text-action { font-size: 13px; font-weight: 650; }
.result-actions .text-action { margin-inline-start: auto; }
.detail-result .btn:disabled { opacity: 1; color: var(--muted); background: var(--bg-soft); border-color: var(--border); box-shadow: none; transform: none; }
.result-text { white-space: pre-wrap; overflow-wrap: anywhere; word-break: break-word; max-height: 360px; overflow: auto; padding: 14px; border: 1px solid var(--border); border-radius: 8px; font: 14px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; background: var(--surface); }
.result-values { margin: 0; }
.result-values>div { padding-block: 14px; border-top: 1px solid var(--border); }
.result-values dt { color: var(--muted); font-size: 13px; margin-bottom: 6px; }
.result-values dd { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 320px; overflow: auto; font: 14px/1.7 ui-monospace,SFMono-Regular,Consolas,monospace; }
#raw-result { margin-top: 24px; }
#raw-result>summary { cursor: pointer; min-height: 44px; font-size: 14px; font-weight: 650; }
#raw-result textarea { min-height: 180px; font-size: 13px; }
.detail-result[data-result-state="stale"], .detail-result[data-result-state="error"] { border-top-color: var(--amber); }
.detail-result[data-result-state="stale"]>[role="status"] { color: var(--amber); }
.tool-warning { border-inline-start: 3px solid var(--amber); padding: 12px 14px; font-size: 13px; line-height: 1.7; background: color-mix(in srgb,var(--surface) 93%,var(--amber) 7%); margin: 0 0 24px; }
.tool-sources { border: 1px solid var(--border); border-radius: 10px; padding: 20px; background: var(--surface); }
.tool-sources>h2 { font-size: 17px; margin-bottom: 10px; }
.tool-sources>h2>svg { color: var(--blue); width: 19px; height: 19px; }
.tool-sources ul { margin: 0; padding: 0; list-style: none; }
.tool-sources a { display: inline-flex; gap: 6px; align-items: center; font-size: 13px; min-height: 36px; max-width: 100%; overflow-wrap: anywhere; }
.tool-sources a>svg { flex: none; width: 16px; height: 16px; }
.tool-sources p { color: var(--muted); font-size: 11px; margin: 12px 0 0; }
.tool-editorial>section { margin-top: 32px; padding-top: 28px; border-top: 1px solid var(--border); }
.tool-editorial h2 { display: flex; align-items: center; gap: 12px; font-size: 23px; line-height: 1.4; letter-spacing: -.02em; margin: 0 0 18px; }
.tool-editorial h2>svg { color: var(--blue); flex: none; }
.tool-editorial p { color: var(--muted); font-size: 15px; line-height: 1.85; max-width: 100ch; }
.tool-editorial>.method-panel, .tool-editorial>.assumptions-panel { padding: 24px; border: 1px solid var(--border); border-top: 3px solid var(--blue); border-radius: var(--radius); background: color-mix(in srgb,var(--surface) 97%,var(--blue) 3%); }
.tool-editorial>.assumptions-panel { border-top-color: var(--amber); background: color-mix(in srgb,var(--surface) 97%,var(--amber) 3%); }
.assumptions-panel h2>svg { color: var(--amber); }
.method-panel p, .assumptions-panel p { margin-bottom: 0; }
.worked-example { padding: 20px; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); font: 14px/1.8 ui-monospace,SFMono-Regular,Consolas,monospace; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 320px; overflow: auto; }
.tool-related { margin-top: 40px; padding-top: 28px; border-top: 1px solid var(--border); }
.tool-related>h2 { font-size: 24px; }
.network-workspace .report-summary { margin-top: 20px; }
.network-workspace .report-summary h2 { font-size: 24px; }
.network-workspace .finding-list>li { padding-block: 18px; border-bottom: 1px solid var(--border); }
.network-workspace .finding-list h3 { font-size: 16px; }
@media(max-width:900px) { .detail-workspace { grid-template-columns: minmax(0,1fr); } }
@media(max-width:600px) {
 .tool-input-panel,.detail-result { padding: 20px; }
 .tool-input-panel>h2,.detail-result>h2 { font-size: 21px; }
 .tool-editorial>.method-panel,.tool-editorial>.assumptions-panel { padding: 20px; }
 .tool-editorial h2 { font-size: 21px; align-items: start; }
 .detail-result { min-height: 300px; }
 .detail-actions { gap: 8px; }
 .detail-actions .btn { padding-inline: 12px; }
 .result-actions .text-action { margin-inline-start: 0; }
}

.tool-link-status { display: inline-flex; align-items: center; min-height: 44px; color: var(--link); font-size: 13px; font-weight: 650; }
.tool-link-status:empty { display: none; }

/* Browser-local password controls; native range, checkboxes and shared dropdown wrapper. */
.password-settings{display:grid;gap:24px;min-width:0}
.password-settings fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;gap:16px}
.password-settings legend{font-weight:700;padding:0;margin-bottom:12px}
.password-settings .field{margin:0}
.password-length{display:grid;grid-template-columns:minmax(0,1fr);gap:8px}
.password-length>.field{display:grid;grid-template-columns:minmax(0,1fr) 94px;align-items:center;gap:16px}
.password-length>.field label{margin:0}
.password-length>.field .field-hint,.password-length>.field .field-error{grid-column:1/-1;margin:0}
.password-length input[type=number]{text-align:center;font-weight:750;font-size:1.15rem;padding:10px;min-height:44px}
.password-length input[type=range]{width:100%;min-height:44px;margin:0;padding:0;cursor:pointer;accent-color:var(--accent);background:transparent;border:0;box-shadow:none}
.password-length input[type=range]:disabled{cursor:default;opacity:.5}
.password-length input[type=range]::-webkit-slider-runnable-track{height:8px;border-radius:8px;background:linear-gradient(to right,var(--accent) var(--password-range-progress,20%),var(--border) var(--password-range-progress,20%))}
.password-length input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;height:24px;width:24px;margin-top:-8px;border-radius:50%;background:var(--accent);border:3px solid var(--surface);box-shadow:0 1px 5px #0003}
.password-length input[type=range]{-webkit-appearance:none;appearance:none}
.password-length input[type=range]::-moz-range-track{height:8px;border-radius:8px;background:var(--border)}
.password-length input[type=range]::-moz-range-progress{height:8px;background:var(--accent)}
.password-length input[type=range]::-moz-range-thumb{height:20px;width:20px;border-radius:50%;background:var(--accent);border:3px solid var(--surface)}
.password-range-ends{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;margin-top:-6px}
.password-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.password-choice{display:flex;align-items:center;gap:12px;min-height:48px;cursor:pointer;font-size:.95rem;min-width:0}
.password-choice-grid .password-choice{padding:12px;border:1px solid var(--border);border-radius:10px;background:var(--surface);transition:border-color .15s,background .15s}
.password-choice-grid .password-choice:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 5%,var(--surface))}
.password-choice input[type=checkbox]{width:20px;height:20px;min-width:20px;min-height:20px;padding:0;margin:0;accent-color:var(--accent);box-shadow:none}
.password-choice span{min-width:0;overflow-wrap:anywhere;line-height:1.4}
.password-choice code{display:block;font-size:.78rem;color:var(--muted);font-weight:400;margin-top:4px}
.password-settings #symbols,.password-settings #pattern{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.04em}
.password-settings .field-hint{margin:0}
.password-syntax{padding:14px 16px;background:color-mix(in srgb,var(--accent) 5%,var(--surface));border:1px solid var(--border);border-radius:10px}
.password-syntax summary{cursor:pointer;font-weight:650;min-height:24px}
.password-syntax p{font-size:.88rem;line-height:1.8}
.password-pattern-examples{display:flex;gap:8px;flex-wrap:wrap}
.password-pattern-examples code{padding:4px 8px;border:1px solid var(--border);border-radius:5px;font-size:.8rem;overflow-wrap:anywhere}
@media(max-width:360px){.password-choice-grid{grid-template-columns:1fr}}
@media(forced-colors:active){.password-length input[type=range]{appearance:auto}.password-choice-grid .password-choice:has(input:checked){border:2px solid Highlight}}
.password-workspace .result-text{font-size:1.2rem;line-height:1.8;letter-spacing:.03em;white-space:pre-wrap;overflow-wrap:anywhere}
@media(min-width:901px){.password-workspace .result-stack{position:sticky;top:110px;align-self:start}}

/* Tool control families extend the owning public shell, without replacing it. */
.utility-settings,.input-source{min-width:0;border:0;padding:0;margin:18px 0;display:grid;gap:14px}
.utility-settings{padding:18px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--accent) 3%,var(--surface))}
.utility-settings legend{font-weight:700;padding:0 6px}
.utility-settings .field,.input-source .field{margin:0}
.option-check{display:flex;align-items:center;gap:12px;min-height:44px;font-size:.94rem;cursor:pointer}
.option-check input[type=checkbox]{width:20px;height:20px;min-width:20px;margin:0;accent-color:var(--accent)}
#utility-form input[type=range]{width:100%;height:44px;margin:0;accent-color:var(--accent);padding:0;cursor:pointer}
#prefix-value{display:block;font-weight:750;color:var(--accent)}
.result-table-wrap{overflow:auto;max-width:100%;margin:20px 0;border:1px solid var(--border);border-radius:10px}
.result-table-wrap table{border-collapse:collapse;width:100%;font-size:.88rem}
.result-table-wrap th,.result-table-wrap td{padding:12px;text-align:start;border-bottom:1px solid var(--border);white-space:nowrap}
.result-table-wrap th{background:var(--surface);font-weight:700}
.result-values details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-family:inherit;color:var(--link)}
.result-values details pre{white-space:pre-wrap;overflow-wrap:anywhere;font-size:.8rem}
.report-controls{margin:18px 0;padding:18px;border:1px solid var(--border);border-radius:12px;background:var(--surface)}
.report-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.report-filter-row .field{margin:0}
.home-opening{padding:64px 0 0}
.home-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
.home-intro h1{font-size:clamp(2.6rem,4.1vw,3.8rem);line-height:1.1;letter-spacing:-.045em;max-width:600px;text-wrap:balance;margin:0 0 26px}
.home-intro .lead{font-size:1.12rem;line-height:1.75;max-width:560px;margin:0 0 28px}
.home-links{display:flex;gap:26px;flex-wrap:wrap;align-items:center;font-weight:700}
.home-links a,.home-section-heading>a,.home-plan-summary>a,.home-support{display:inline-flex;align-items:center;gap:8px}
.home-links svg,.home-section-heading>a svg,.home-plan-summary>a svg,.home-support svg{width:20px;height:20px;flex-shrink:0}
.home-language{margin:12px 0 0}
.home-language a:not([hidden]){display:inline-flex;align-items:center;min-height:44px;color:var(--link);text-decoration:underline;text-underline-offset:.2em}
.home-no-account{font-size:.94rem;color:var(--muted);margin-top:26px}
.home-scan{background:var(--surface);border-top:4px solid var(--blue);box-shadow:0 16px 45px #1f4f8f0d;padding:28px}
.home-scan h2{font-size:1.5rem;margin:0 0 22px;line-height:1.3}
.home-scan .field{margin-bottom:16px}
.home-scan .tool-actions{margin-top:16px}
.home-scan #scan-submit{width:100%;justify-content:center;min-height:52px;font-size:1.06rem}
.home-verification{margin:16px 0}
.home-verification>p:first-child{font-size:.86rem;font-weight:650;margin:0 0 8px}
.home-verification .bot-widget{min-height:65px;margin:0}
.home-allowance{font-size:.8rem;text-align:center;line-height:1.6;color:var(--muted);margin:14px 0 0}
.home-limit{font-size:.8rem;color:var(--muted);margin-top:10px}
.home-limit summary{cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.home-limit p{font-size:.82rem;line-height:1.7}
.home-scan #scan-state:empty{display:none}
.home-capabilities{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-block:1px solid var(--border);padding:22px 0;margin-top:48px}
.home-capabilities span{display:flex;align-items:center;justify-content:center;gap:14px;font-weight:700;line-height:1.4}
.home-capabilities span+span{border-inline-start:1px solid var(--border)}
.home-capabilities svg{width:26px;height:26px;color:var(--accent);flex-shrink:0}
.home-toolkit{padding:64px 0}
.home-section-heading{display:flex;gap:24px;align-items:flex-end;justify-content:space-between;margin-bottom:26px}
.home-section-heading h2,.home-focused h2,.home-guidance h2{font-size:clamp(1.8rem,2.45vw,2.4rem);line-height:1.25;letter-spacing:-.03em;margin:0 0 14px;text-wrap:balance}
.home-section-heading p{margin:0;color:var(--muted);max-width:740px}
.home-section-heading>a{font-weight:700;flex-shrink:0;font-size:.92rem}
.home-tool-list{display:grid;grid-template-columns:1fr 1fr;column-gap:34px}
.home-tool-row{display:flex;align-items:center;gap:18px;text-decoration:none;color:var(--text);padding:24px 12px;border-bottom:1px solid var(--border);border-radius:12px 12px 0 0;min-width:0;transition:background .15s,transform .15s}
.home-tool-row:hover,.home-tool-row:focus-visible{background:var(--surface);transform:translateY(-2px)}
.home-tool-row:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.home-tool-row .icon-tile{width:48px;height:48px;flex-shrink:0}
.home-tool-text{min-width:0;flex:1}
.home-tool-text h3{font-size:1.03rem;line-height:1.4;margin:0 0 6px;letter-spacing:-.015em}
.home-tool-text p{color:var(--muted);font-size:.9rem;line-height:1.6;margin:0}
.home-tool-row .free-label{position:static;flex-shrink:0;margin:0;font-size:.73rem}
.home-focused{margin-top:46px}
.home-focused h2{font-size:1.55rem}
.home-focused-links{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0 16px}
.home-focused-links a{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:10px 14px;border:1px solid var(--border);border-radius:8px;text-decoration:none;background:var(--surface);font-size:.9rem;font-weight:650}
.home-focused-links a:hover{border-color:var(--accent);color:var(--accent)}
.home-focused-links svg{height:18px;width:18px;flex-shrink:0}
.home-focused>p{font-size:.87rem;color:var(--muted);margin:0}
.home-guidance{padding:58px 0;background:color-mix(in srgb,var(--accent) 3%,var(--bg))}
.home-guidance-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:52px;align-items:start}
.home-support{margin-top:24px;font-size:.94rem;font-weight:650}
.home-plan-summary{border:1px solid var(--accent-line);border-radius:14px;padding:28px;background:var(--surface)}
.home-plan-summary h2{font-size:1.7rem}
.home-plan-summary h3{font-size:1.35rem;margin:0 0 14px}
.home-plan-summary p{font-size:.94rem;line-height:1.75;color:var(--muted)}
.home-plan-summary>a{font-weight:700;font-size:.94rem}
.home-plan-summary hr{border:0;border-top:1px solid var(--border);margin:26px 0}
.home-about{padding:26px 0;border-top:1px solid var(--border)}
.home-about>.container{display:flex;gap:24px;align-items:center}
.home-about h2{font-size:1.3rem;color:var(--accent);margin:0;white-space:nowrap}
.home-about p{margin:0;font-size:.9rem;color:var(--muted);flex:1}
.home-about a{font-size:.9rem}
.home-report{padding-top:30px;padding-bottom:10px}
@media(max-width:1000px){.home-hero-grid{gap:30px}.home-section-heading{display:block}.home-section-heading>a{margin-top:18px}.home-guidance-grid{gap:30px}.home-tool-row{gap:12px;padding-inline:4px}}
@media(max-width:760px){.home-opening{padding-top:36px}.home-hero-grid,.home-guidance-grid{grid-template-columns:1fr;gap:30px}.home-intro h1{font-size:clamp(2.35rem,8.6vw,3.1rem);max-width:620px}.home-intro .lead{font-size:1.02rem}.home-no-account{margin-top:18px}.home-capabilities{margin-top:30px;gap:12px;padding:18px 0}.home-capabilities span{flex-direction:column;gap:8px;font-size:.8rem;text-align:center}.home-toolkit{padding:38px 0}.home-tool-list{grid-template-columns:1fr}.home-tool-row{padding:20px 4px}.home-tool-text h3{font-size:1rem}.home-focused{margin-top:30px}.home-guidance{padding:38px 0}.home-about>.container{flex-wrap:wrap;gap:12px}.home-about p{flex-basis:100%;order:2}.home-scan{padding:22px}.home-links{gap:20px}.home-plan-summary{padding:24px}.report-filter-row{grid-template-columns:1fr}.home-section-heading h2,.home-guidance h2{font-size:1.85rem}}
@media(prefers-reduced-motion:reduce){.home-tool-row{transition:none}.home-tool-row:hover,.home-tool-row:focus-visible{transform:none}}
html[lang="en"] .home-intro h1{text-wrap:wrap}
@media(min-width:901px){.detail-workspace .result-stack{position:sticky;top:110px;align-self:start}}
.home-toolkit,.home-guidance,.home-plan-summary,.home-about,.home-report{scroll-margin-top:110px}

/* Product-owned adaptation of SkyStamp FAQ cards, spacing and motion. */
.faq-list{display:grid;gap:12px;min-width:0;font-size:17px;line-height:1.6}
.faq-motion{min-width:0;margin:0;padding:0;overflow:clip;border:1px solid var(--border);border-radius:16px;background:color-mix(in srgb,var(--surface) 78%,transparent);transition:border-color 220ms ease,background-color 220ms ease}
.faq-motion:not([data-faq-ready])[open],.faq-motion[data-open]{border-color:var(--accent-line);background:color-mix(in srgb,var(--surface) 94%,var(--accent) 6%)}
.faq-motion>summary{display:flex;align-items:center;justify-content:space-between;gap:24px;list-style:none;width:100%;min-height:68px;padding:20px 24px;cursor:pointer;color:var(--text);font:inherit;text-align:start;background:transparent;overflow-wrap:anywhere}
.faq-motion>summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}
.faq-motion>summary::-webkit-details-marker{display:none}
.faq-motion>summary::marker{content:""}
.faq-motion>summary>span:first-child{min-width:0;flex:1}
.faq-motion .faq-chevron{display:flex;align-items:center;flex:0 0 20px;width:20px;height:20px;color:var(--accent);transition:transform 260ms cubic-bezier(.2,.75,.2,1),color 220ms ease}
.faq-motion .faq-chevron>svg{width:20px;height:20px;display:block}
.faq-motion:not([data-faq-ready])[open] .faq-chevron,.faq-motion[data-open] .faq-chevron{transform:rotate(180deg)}
.faq-motion[data-faq-ready]>.faq-answer{height:0;overflow:hidden;opacity:0;transition:height 350ms cubic-bezier(.25,.46,.45,.94),opacity 250ms cubic-bezier(.25,.46,.45,.94) 100ms}
.faq-motion .faq-answer-inner{min-height:0;display:flow-root}
.faq-motion .faq-answer-inner>p{max-width:760px;margin:0;padding:0 24px 20px;color:var(--muted);font:inherit;overflow-wrap:anywhere}
@media(max-width:620px){.faq-list{font-size:16px}.faq-motion{border-radius:12px}.faq-motion .faq-chevron{flex-basis:16px;width:16px;height:16px}.faq-motion .faq-chevron>svg{width:16px;height:16px}.faq-motion .faq-answer-inner>p{padding:0 16px 16px}}
@media(prefers-reduced-motion:reduce){.faq-motion,.faq-motion[data-faq-ready]>.faq-answer,.faq-motion .faq-chevron{transition:none!important}}

/* Visible scan progress and evidence; outcome labels accompany every color. */
:root { --finding-failed: #b42332; --finding-caution: #805400; }
:root[data-theme="dark"] { --finding-failed: #ffb1b7; --finding-caution: #f4cb79; }
#scan-state[data-loading="true"] { display: flex; align-items: center; gap: 10px; color: var(--blue); }
#scan-state[data-loading="true"]::before,
#free-check[aria-busy="true"] #scan-submit::before {
  content: ""; display: inline-block; flex: none; width: 18px; height: 18px;
  border: 2px solid currentColor; border-inline-end-color: transparent;
  border-radius: 50%; animation: scan-spin .8s linear infinite;
}
#free-check[aria-busy="true"] #scan-submit > svg { display: none; }
@keyframes scan-spin { to { transform: rotate(360deg); } }
.scan-overview {
  --gauge-poor: #d94c58;
  --gauge-fair: #e6a534;
  --gauge-good: #83b641;
  --gauge-excellent: #23a66f;
  display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px;
  padding: 20px; border: 1px solid color-mix(in srgb,var(--blue) 45%,var(--border)); border-radius: 12px;
  background: color-mix(in srgb,var(--blue) 7%,var(--surface));
}
.scan-overview .scan-gauge { display: block; flex: none; width: min(100%, 208px); height: auto; margin-inline: auto; stroke: none; stroke-linecap: butt; }
.scan-gauge-band { fill: none; stroke: var(--gauge-color); stroke-width: 20px; }
.scan-overview [data-band="poor"] { --gauge-color: var(--gauge-poor); }
.scan-overview [data-band="fair"] { --gauge-color: var(--gauge-fair); }
.scan-overview [data-band="good"] { --gauge-color: var(--gauge-good); }
.scan-overview [data-band="excellent"] { --gauge-color: var(--gauge-excellent); }
.scan-gauge-needle { fill: var(--text); stroke: var(--surface); stroke-width: 1.5px; }
.scan-gauge-scale { fill: var(--muted); font-size: 11px; text-anchor: middle; }
.scan-overview-copy { flex: 1 1 180px; min-width: 0; }
.scan-overview h2 { display: block; color: var(--blue); margin: 0 0 12px; }
.scan-overview h2:has(.scan-score-reading) { font-size: 1rem; }
.scan-score-reading {
  display: block; color: var(--text); font-size: clamp(1.9rem, 5vw, 2.5rem);
  font-weight: 750; font-variant-numeric: tabular-nums; line-height: 1.15; white-space: nowrap;
}
.scan-score-band {
  display: inline-flex; align-items: center; gap: 7px;
  margin: 0; font-weight: 700; font-size: .875rem;
}
.scan-score-band::before { content: ""; width: .65em; height: .65em; border-radius: 50%; background: var(--gauge-color); }
.scan-overview p:last-child { margin-bottom: 0; }
.scan-headline-metrics { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-block: 12px; }
.scan-headline-metrics div { border-inline-start: 2px solid var(--blue); padding-inline-start: 9px; }
.scan-headline-metrics dt { font-size: .8rem; color: var(--muted); }
.scan-headline-metrics dd { margin: 0; font-weight: 750; font-variant-numeric: tabular-nums; }
.scan-comparison { margin-block: 18px; }
.scan-comparison table { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .85rem; }
.scan-comparison th, .scan-comparison td { padding: 8px 5px; border-bottom: 1px solid var(--border); text-align: start; overflow-wrap: anywhere; vertical-align: top; }
.scan-comparison thead th { color: var(--blue); }
.diagnostic-header-diff { margin-block-start: 12px; }
.diagnostic-header-diff table { font-family: ui-monospace, monospace; font-size: .77rem; }
.diagnostic-header-diff [data-state="changed"] small { color: var(--finding-caution); }
.diagnostic-header-diff small, .diagnostic-lighthouse-list small { display: block; color: var(--muted); margin-block-start: 3px; }
.diagnostic-diff-controls { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 155px), 1fr)); gap: 8px; }
.diagnostic-diff-controls label { min-width: 0; font-size: .85rem; }
.diagnostic-diff-controls input, .diagnostic-diff-controls select { display: block; width: 100%; margin-block-start: 4px; }
.diagnostic-lighthouse-list { padding-inline-start: 1.25em; margin-block: 6px 12px; }
.diagnostic-lighthouse-list li { overflow-wrap: anywhere; margin-block: 8px; }
.report-summary .finding-list > li {
  --finding-color: var(--muted);
  padding: 18px; border: 1px solid var(--border); border-inline-start: 4px solid var(--finding-color);
  border-radius: 12px; background: var(--surface);
}
.report-summary .finding-list > li[data-outcome="passed"] { --finding-color: var(--green-strong); }
.report-summary .finding-list > li[data-outcome="failed"], .report-summary .finding-list > li[data-outcome="errored"] { --finding-color: var(--finding-failed); }
.report-summary .finding-list > li[data-outcome="inconclusive"] { --finding-color: var(--finding-caution); }
.finding-heading { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 14px; }
.finding-list .finding-heading h3 { margin: 0; }
.pdf-paper-field { width: 10.5rem; }
.finding-status { flex: none; padding: 3px 9px; border-radius: 6px; font-size: 12px; font-weight: 700; color: var(--finding-color); background: color-mix(in srgb,var(--finding-color) 10%,var(--surface)); border: 1px solid color-mix(in srgb,var(--finding-color) 35%,var(--border)); }
.finding-values { margin: 14px 0; }
.finding-values > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 8px 18px; padding: 10px 0; border-bottom: 1px solid var(--border); }
.finding-values dt { color: var(--muted); font-size: 13px; }
.finding-values dd { margin: 0; color: var(--finding-color); font-weight: 600; white-space: pre-wrap; overflow-wrap: anywhere; }
.finding-list > li > p { color: var(--muted); font-size: 13px; line-height: 1.7; }
@media (max-width: 520px) { .finding-values > div { grid-template-columns: minmax(0,1fr); gap: 4px; } }
@media (prefers-reduced-motion: reduce) {
  #scan-state[data-loading="true"]::before,
  #free-check[aria-busy="true"] #scan-submit::before { animation: none; }
}

/* Local utilities share the scan progress language and parameter/value cards. */
#utility-status[data-loading="true"] { display: flex; align-items: center; gap: 10px; color: var(--blue); }
#utility-status[data-loading="true"]::before,
#utility-form[aria-busy="true"] button[data-action][data-loading="true"]::before {
  content: ""; display: inline-block; flex: none; width: 18px; height: 18px;
  border: 2px solid currentColor; border-inline-end-color: transparent;
  border-radius: 50%; animation: scan-spin .8s linear infinite;
}
#utility-form[aria-busy="true"] button[data-action][data-loading="true"] > svg { display: none; }
.detail-result[data-result-state="complete"] > #utility-status { color: var(--green-strong); }
#utility-result-data { min-width: 0; }
#utility-result-data .result-values > div {
  --value-color: var(--blue);
  display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 8px 18px;
  padding: 16px; margin: 12px 0; border: 1px solid var(--border);
  border-inline-start: 4px solid var(--value-color); border-radius: 10px;
  background: var(--surface);
}
#utility-result-data .result-values > div[data-tone="success"] { --value-color: var(--green-strong); }
#utility-result-data .result-values > div[data-tone="danger"] { --value-color: var(--finding-failed); }
#utility-result-data .result-values > div[data-tone="caution"] { --value-color: var(--finding-caution); }
#utility-result-data .result-values dt { margin: 0; line-height: 1.7; }
#utility-result-data .result-values dd { color: var(--value-color); font-weight: 600; max-height: none; min-width: 0; }
#utility-result-data .result-values > div[data-value-key="header"],
#utility-result-data .result-values > div[data-value-key="payload"],
#utility-result-data .result-values > div[data-value-key="recordValue"],
#utility-result-data .result-values > div[data-value-key="privateKey"] { grid-template-columns: minmax(0,1fr); }
.jwt-parameters { margin: 0; }
.jwt-parameters > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.4fr); gap: 8px 18px; padding: 10px 0; border-top: 1px solid var(--border); }
#utility-result-data .jwt-parameters dt { font-weight: 400; overflow-wrap: anywhere; }
#utility-result-data .jwt-parameters dd { max-height: 360px; overflow: auto; }
#utility-result-data .result-text { margin: 0; padding: 18px; border-inline-start: 4px solid var(--blue); color: var(--blue); background: color-mix(in srgb,var(--blue) 4%,var(--surface)); }
#utility-result-data td[data-tone="success"] { color: var(--green-strong); font-weight: 700; }
#utility-result-data td[data-tone="danger"] { color: var(--finding-failed); font-weight: 700; }
#utility-result-data td[data-tone="caution"] { color: var(--finding-caution); font-weight: 700; }
#utility-result-data td[data-tone="neutral"] { color: var(--muted); }
#utility-result-data [data-value-key="privateKey"] details { font-weight: 400; color: var(--text); }
#utility-result-data [data-value-key="privateKey"] summary { min-height: 44px; cursor: pointer; }
#utility-result-data [data-value-key="privateKey"] pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; }
@media (max-width: 520px) {
  #utility-result-data .result-values > div, .jwt-parameters > div { grid-template-columns: minmax(0,1fr); gap: 5px; }
}
@media (prefers-reduced-motion: reduce) {
  #utility-status[data-loading="true"]::before,
  #utility-form[aria-busy="true"] button[data-action][data-loading="true"]::before { animation: none; }
}

/* Product FAQ reuses the existing reference-matched cards and motion. */
.faq-container { max-width: 920px; }
.faq-page .page-heading { margin-bottom: 32px; }
.faq-page .page-heading .lead { max-width: 64ch; margin-bottom: 0; }
.faq-contact { margin-top: 36px; padding-top: 28px; border-top: 1px solid var(--border); }
.faq-contact h2, .plans-faq h2 { font-size: clamp(24px,3vw,32px); line-height: 1.3; letter-spacing: -.025em; }
.plans-faq h2 { margin: 0 0 24px; }
.plans-faq h2>svg { width: 26px; height: 26px; color: var(--green-strong); flex: none; }
.plans-faq .tool-actions, .faq-contact .tool-actions { margin-top: 24px; }

/* Support uses the same local feedback/progress language as the tools. */
#support-state { overflow-wrap: anywhere; }
#support-state[data-loading="true"] { display: flex; align-items: center; gap: 10px; color: var(--blue); }
#support-state[data-loading="true"]::before,
#support-form[aria-busy="true"] #support-submit::before {
  content: ""; display: inline-block; flex: none; width: 18px; height: 18px;
  border: 2px solid currentColor; border-inline-end-color: transparent;
  border-radius: 50%; animation: scan-spin .8s linear infinite;
}
#support-form[aria-busy="true"] #support-submit { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  #support-state[data-loading="true"]::before,
  #support-form[aria-busy="true"] #support-submit::before { animation: none; }
}

/* Optional report diagnostics use the same theme and status vocabulary as findings. */
.diagnostic-report-grid {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr));
  gap: 14px; margin-block: 18px;
}
.diagnostic-report-panel {
  --diagnostic-good: var(--green-strong);
  --diagnostic-caution: var(--finding-caution);
  --diagnostic-danger: var(--finding-failed);
  --diagnostic-dns: #9484e6;
  --diagnostic-wait: var(--blue);
  --diagnostic-transfer: var(--green-strong);
  min-width: 0; padding: 16px; border: 1px solid var(--border); border-radius: 12px; background: var(--surface);
}
.diagnostic-report-panel h3 { margin: 0 0 12px; font-size: 1rem; }
.diagnostic-report-title { display: inline-flex; align-items: center; gap: 8px; }
.diagnostic-report-title svg { width: 18px; height: 18px; color: var(--blue); flex: none; }
.diagnostic-report-panel > p { color: var(--muted); font-size: .875rem; }
.diagnostic-report-panel [data-tone="good"] { --diagnostic-tone: var(--diagnostic-good); }
.diagnostic-report-panel [data-tone="caution"] { --diagnostic-tone: var(--diagnostic-caution); }
.diagnostic-report-panel [data-tone="danger"] { --diagnostic-tone: var(--diagnostic-danger); }
.diagnostic-report-panel [data-tone="dns"] { --diagnostic-tone: var(--diagnostic-dns); }
.diagnostic-report-panel [data-tone="wait"] { --diagnostic-tone: var(--diagnostic-wait); }
.diagnostic-report-panel [data-tone="transfer"] { --diagnostic-tone: var(--diagnostic-transfer); }
.diagnostic-report-panel .diagnostic-report-score {
  margin: 0 0 10px; color: var(--diagnostic-tone, var(--text)); font-size: 1.6rem;
  font-weight: 750; font-variant-numeric: tabular-nums;
}
.diagnostic-report-panel svg.diagnostic-chart {
  display: block; width: 100%; height: 10px; border-radius: 999px;
  overflow: hidden; stroke: none; background: color-mix(in srgb,var(--muted) 16%,var(--surface));
}
.diagnostic-chart rect { fill: var(--diagnostic-tone); }
.diagnostic-chart g { transform-origin: 0 50%; animation: diagnostic-reveal 620ms ease-out both; }
@keyframes diagnostic-reveal { from { transform: scaleX(0); } to { transform: scaleX(1); } }
.diagnostic-report-panel summary { cursor: pointer; font-weight: 650; padding-block: 9px; }
.diagnostic-report-checks { list-style: none; margin: 0; padding: 0; }
#report .diagnostic-report-checks li { border-top: 1px solid var(--border); margin: 0; padding: 10px 0; }
.diagnostic-report-checks li div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 10px; }
.diagnostic-report-checks strong { font-size: .875rem; }
.diagnostic-report-checks li span { font-size: .78rem; color: var(--muted); }
.diagnostic-report-checks li [data-state="passed"] { color: var(--green-strong); }
.diagnostic-report-checks li [data-state="failed"] { color: var(--finding-failed); }
.diagnostic-report-checks li [data-state="inconclusive"] { color: var(--finding-caution); }
.diagnostic-report-checks code { font-size: .8rem; color: var(--muted); overflow-wrap: anywhere; }
.diagnostic-report-values { margin: 8px 0 0; font-size: .875rem; }
.diagnostic-report-values > div { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; padding: 7px 0; border-bottom: 1px solid var(--border); }
.diagnostic-report-values dt { color: var(--muted); }
.diagnostic-report-values dd { margin: 0; overflow-wrap: anywhere; font-variant-numeric: tabular-nums; }
.diagnostic-report-values [data-tone] dt::before { content: ""; display: inline-block; width: .55em; height: .55em; margin-inline-end: .4em; border-radius: 50%; background: var(--diagnostic-tone); }
.diagnostic-report-headers { grid-column: 1 / -1; }
.diagnostic-resolver-panel { grid-column: 1 / -1; }
.diagnostic-region-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 245px), 1fr)); gap: 10px; }
.diagnostic-region-grid > section { min-width: 0; padding: 10px; border: 1px solid var(--border); border-radius: 8px; }
.diagnostic-region-grid h4 { margin: 0; }
.diagnostic-region-grid p { margin: 5px 0 10px; font-size: .8rem; color: var(--muted); }
.diagnostic-resolver-map { width: 100%; table-layout: fixed; border-collapse: collapse; font-size: .8rem; }
.diagnostic-resolver-map th, .diagnostic-resolver-map td {
  padding: 5px 2px; border-block-end: 1px solid var(--border); text-align: center;
}
.diagnostic-resolver-map th:first-child { width: 34%; text-align: start; overflow-wrap: anywhere; }
.diagnostic-resolver-map td span[aria-hidden] {
  display: inline-grid; place-items: center; width: 1.7em; height: 1.7em; border-radius: 5px;
  color: var(--diagnostic-tone, var(--muted)); font-weight: 700;
  background: color-mix(in srgb, var(--diagnostic-tone, var(--muted)) 15%, var(--surface));
}
.diagnostic-origin-status {
  display: block; color: var(--diagnostic-tone, var(--muted)); font-size: .8rem;
}
.diagnostic-report-panel summary { overflow-wrap: anywhere; }
.diagnostic-report-headers summary .diagnostic-report-title { vertical-align: middle; margin-inline: 4px 10px; }
.diagnostic-report-headers .diagnostic-report-values { font-family: ui-monospace, monospace; }
.diagnostic-report-headers .diagnostic-report-values > div { grid-template-columns: minmax(0,1fr) minmax(0,2fr); }
@media (max-width: 520px) {
  .diagnostic-report-headers .diagnostic-report-values > div { grid-template-columns: minmax(0,1fr); gap: 3px; }
}
@media (prefers-reduced-motion: reduce) {
  .diagnostic-chart g { animation: none; }
}

.diagnostic-fixes > div { border-top: 1px solid var(--border); margin-top: 8px; padding-block: 12px; }
.diagnostic-fixes pre { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--text); font-size: .85rem; }
.diagnostic-fixes [role="status"] { margin-inline-start: 8px; }
.diagnostic-report-checks li [data-state="missing"] { color: var(--finding-caution); }
.diagnostic-report-values dd { white-space: pre-line; }
.recent-scans, .shared-scan { margin-block: 16px; }
.recent-scans ul { list-style: none; margin: 0 0 12px; padding: 0; }
.recent-scans li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; margin-block: 6px; }
.recent-scans time { color: var(--muted); font-size: .78rem; }
.recent-scans .btn { white-space: normal; overflow-wrap: anywhere; }
.print-scan-report { display: none; }
@media print {
  body.printing-scan-report > :not(.print-scan-report) { display: none !important; }
  body.printing-scan-report { background: #fff; margin: 0; }
  .print-scan-report {
    --surface: #fff;
    --text: #152437;
    --muted: #394b60;
    --border: #c9d5df;
    --blue: #165d9b;
    --green-strong: #086b60;
    --finding-caution: #875011;
    --finding-failed: #a12447;
    --diagnostic-good: #086b60;
    display: block;
    margin: 0;
    color: var(--text);
    background: #fff;
    font-size: 10pt;
    line-height: 1.4;
  }
  .print-report-brand { border-bottom: 2px solid #086b60; padding-bottom: 3mm; margin-bottom: 4mm; break-inside: avoid; }
  .print-report-logo { display: block; object-fit: contain; width: 35mm; height: auto; }
  .print-report-brand h1 { font-size: 21pt; margin: 2mm 0; }
  .print-report-brand p { margin: 1mm 0 0; overflow-wrap: anywhere; }
  .print-report-brand .scan-meta { color: var(--muted); font-size: 9pt; }
  .print-scan-report .diagnostic-report-grid { display: block; }
  .print-scan-report .diagnostic-report-panel, .print-scan-report .finding-list > li { margin-block: 2.5mm; padding: 3mm; }
  .print-scan-report .scan-overview { gap: 4mm; padding: 3mm 5mm; break-inside: avoid; }
  .print-scan-report .scan-overview .scan-gauge { width: 42mm; margin: 0; }
  .print-scan-report .scan-overview h2 { font-size: 12pt; }
  .print-scan-report .scan-score-reading { font-size: 23pt; }
  .print-scan-report .diagnostic-report-panel h3,
  .print-scan-report .diagnostic-report-panel summary,
  .print-scan-report .finding-heading { break-after: avoid; }
  .print-scan-report .diagnostic-report-panel summary { padding-block: 1mm; }
  .print-scan-report .diagnostic-report-checks li { margin: 0; padding: 1mm 0; border-top: 1px solid var(--border); }
  .print-scan-report .finding-values { margin: 1mm 0; }
  .print-scan-report .finding-values > div,
  .print-scan-report .diagnostic-report-values > div { padding-block: 1mm; }
  .print-scan-report .finding-list > li > p { margin: 1mm 0 0; font-size: 9pt; line-height: 1.4; }
  .print-scan-report .finding-status { font-size: 8pt; }
  .print-scan-report li, .print-scan-report dl > div { break-inside: avoid; }
  .print-scan-report .diagnostic-chart, .print-scan-report .scan-gauge,
  .print-scan-report .print-report-logo { print-color-adjust: exact; }
  .print-scan-report .diagnostic-chart g { animation: none; }
}
.diagnostic-report-panel .diagnostic-advisory { color: var(--finding-caution); font-weight: 650; }

.scan-options { margin-block: 14px; }
.scan-options summary { color: var(--blue); cursor: pointer; font-weight: 650; }
.scan-options .field { margin-block: 12px 0; }
.scan-options .option-check { margin-block: 12px 4px; }
.scan-report-selection { display: flex; flex-wrap: wrap; gap: 8px; margin-block-end: 12px; }
.scan-report-selection button { min-width: 0; overflow-wrap: anywhere; }
.scan-report-selection button[aria-pressed="true"] { border-color: var(--blue); }
@media print { .scan-report-selection { display: none !important; } }
