.lrc {
  --lrc-blue: #2563EB; --lrc-blue-dark: #1D4ED8; --lrc-blue-soft: #EFF6FF; --lrc-bg: #F8FAFC;
  --lrc-ink: #0F172A; --lrc-body: #334155; --lrc-muted: #64748B; --lrc-line: #E2E8F0;
  --lrc-strong: #059669; --lrc-developing: #2563EB; --lrc-significant: #D97706; --lrc-foundational: #E11D48; --lrc-insufficient: #94A3B8;
  --lrc-ai: linear-gradient(135deg, #2563EB 0%, #6D28D9 100%);
  --lrc-heading: "Manrope", "Inter", system-ui, sans-serif;
  background: var(--lrc-bg); color: var(--lrc-body); font-family: "Inter", var(--font-sans, system-ui), sans-serif;
}
.lrc [hidden] { display: none !important; }
.lrc .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.lrc h1, .lrc h2, .lrc h3 { font-family: var(--lrc-heading); color: var(--lrc-ink); letter-spacing: -0.015em; }
.lrc :focus-visible { outline: 3px solid rgba(37, 99, 235, .45); outline-offset: 2px; border-radius: 8px; }
.lrc [tabindex="-1"]:focus-visible { outline: none; }
.lrc-note { margin: 4px 0 0; font-size: var(--fs-body-sm, 14px); color: var(--lrc-muted); line-height: 1.5; }
.lrc-optional { font-weight: 500; color: var(--lrc-muted); }

.lrc-hero { padding: 52px 0 28px; background: radial-gradient(circle at 15% 0%, rgba(37, 99, 235, .12), transparent 45%), radial-gradient(circle at 90% 20%, rgba(109, 40, 217, .08), transparent 40%); }
.lrc-hero__inner { max-width: 820px; text-align: center; }
.lrc-hero h1 { font-size: var(--fs-h1, clamp(30px, 5vw, 48px)); line-height: 1.15; margin: 8px 0 14px; font-weight: 800; }
.lrc-lead { font-size: var(--fs-body-lg, 18px); line-height: 1.6; margin: 0 auto; max-width: 660px; }
.lrc-hero__meta { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px; margin: 16px 0 0; font-size: 14px; color: var(--lrc-muted); }
.lrc-hero__meta svg, .lrc-hero__meta i { width: 16px; height: 16px; color: var(--lrc-blue); }

.lrc-app-wrap { padding: 8px 0 64px; }
.lrc-noscript { text-align: center; font-weight: 600; }
.lrc-card { background: #fff; border: 1px solid var(--lrc-line); border-radius: 20px; box-shadow: 0 1px 2px rgba(15, 23, 42, .04), 0 12px 32px -20px rgba(15, 23, 42, .18); padding: 24px; min-width: 0; }
.lrc-card h2 { font-size: 20px; line-height: 1.3; margin: 0; }

.lrc-tool { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 20px; max-width: 1100px; margin: 0 auto; scroll-margin-top: 96px; }

/* Inputs */
.lrc-inputs { display: flex; flex-direction: column; gap: 4px; }
.lrc-inputs > .lrc-note { margin-bottom: 10px; }
.lrc-input { padding: 12px 0; border-top: 1px solid var(--lrc-line); }
.lrc-input label { display: block; font-weight: 700; color: var(--lrc-ink); font-size: 15px; }
.lrc-hint { margin: 2px 0 8px; font-size: 13px; color: var(--lrc-muted); line-height: 1.45; }
.lrc-input__row { display: flex; align-items: center; gap: 14px; }
.lrc-number { position: relative; display: inline-flex; flex: none; }
.lrc-number input { width: 150px; height: 44px; padding: 0 12px; border: 1.5px solid #CBD5E1; border-radius: 12px; font: inherit; font-size: 16px; font-weight: 600; color: var(--lrc-ink); background: #fff; font-variant-numeric: tabular-nums; }
.lrc-number--pct input { width: 104px; padding-right: 30px; }
.lrc-number__unit { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); color: var(--lrc-muted); font-weight: 600; pointer-events: none; }
.lrc-number input:focus { border-color: var(--lrc-blue); outline: 3px solid rgba(37, 99, 235, .2); outline-offset: 0; }
.lrc-input.has-error .lrc-number input { border-color: var(--lrc-foundational); }
.lrc-slider { flex: 1; min-width: 0; accent-color: var(--lrc-blue); height: 28px; cursor: pointer; }
.lrc-error { margin: 6px 0 0; font-size: 13px; color: #BE123C; font-weight: 600; }
.lrc-error:empty { display: none; }
.lrc-privacy { display: flex; gap: 8px; align-items: center; margin: 10px 0 0; font-size: 13px; color: var(--lrc-muted); }
.lrc-privacy i, .lrc-privacy svg { width: 16px; height: 16px; flex: none; }

/* Dashboard */
.lrc-dash { display: flex; flex-direction: column; gap: 18px; }
.lrc-dash__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.lrc-chip { display: inline-flex; align-items: center; min-height: 28px; padding: 2px 12px; border-radius: 999px; font-size: 13px; font-weight: 700; background: #F1F5F9; color: var(--lrc-muted); }
.lrc-chip--sm { min-height: 22px; padding: 1px 10px; font-size: 12px; }
.lrc-chip[data-band="strong"], .lrc-chip[data-band="available"] { background: #ECFDF5; color: #047857; }
.lrc-chip[data-band="developing"] { background: var(--lrc-blue-soft); color: var(--lrc-blue-dark); }
.lrc-chip[data-band="significant"], .lrc-chip[data-band="roadmap"] { background: #FFFBEB; color: #B45309; }
.lrc-chip[data-band="foundational"] { background: #FFF1F2; color: #BE123C; }
.lrc-chip[data-band="reported"] { background: var(--lrc-blue-soft); color: var(--lrc-blue-dark); }

.lrc-dash__score { display: flex; align-items: center; gap: 24px; }
.lrc-gauge { position: relative; width: 148px; height: 148px; flex: none; }
.lrc-gauge svg { width: 100%; height: 100%; transform: rotate(-90deg); }
.lrc-gauge__track { fill: none; stroke: #EEF2F7; stroke-width: 11; }
.lrc-gauge__fill { fill: none; stroke: var(--lrc-insufficient); stroke-width: 11; stroke-linecap: round; transition: stroke-dashoffset .35s ease, stroke .2s; stroke-dasharray: 326.73; stroke-dashoffset: 326.73; }
.lrc-gauge__fill--strong { stroke: var(--lrc-strong); }
.lrc-gauge__fill--developing { stroke: var(--lrc-developing); }
.lrc-gauge__fill--significant { stroke: var(--lrc-significant); }
.lrc-gauge__fill--foundational { stroke: var(--lrc-foundational); }
.lrc-gauge__value { position: absolute; inset: 0; display: flex; align-items: baseline; justify-content: center; padding-top: 50px; color: var(--lrc-ink); }
.lrc-gauge__value strong { font-family: var(--lrc-heading); font-size: 40px; font-weight: 800; line-height: 1; font-variant-numeric: tabular-nums; }
.lrc-gauge__value small { font-size: 14px; color: var(--lrc-muted); font-weight: 600; margin-left: 2px; }
.lrc-dash__band { min-width: 0; }
.lrc-dash__band p { margin: 0 0 12px; line-height: 1.55; font-size: 15px; }
.lrc-parts { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.lrc-parts li { display: flex; justify-content: space-between; gap: 12px; font-size: 14px; padding: 6px 10px; border-radius: 10px; background: var(--lrc-bg); }
.lrc-parts--grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.lrc-parts strong { color: var(--lrc-ink); font-variant-numeric: tabular-nums; }

.lrc-coverage__label { display: flex; justify-content: space-between; font-size: 14px; font-weight: 600; color: var(--lrc-ink); margin-bottom: 6px; }
.lrc-coverage__bar { height: 10px; border-radius: 999px; background: #EEF2F7; overflow: hidden; }
.lrc-coverage__bar span { display: block; height: 100%; width: 0; background: var(--lrc-blue); border-radius: inherit; transition: width .3s ease; }

.lrc-metrics { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 0; }
.lrc-metrics div { border: 1px solid var(--lrc-line); border-radius: 14px; padding: 12px; }
.lrc-metrics dt { font-size: 12px; color: var(--lrc-muted); line-height: 1.35; }
.lrc-metrics dd { margin: 6px 0 0; font-family: var(--lrc-heading); font-size: 22px; font-weight: 800; color: var(--lrc-ink); font-variant-numeric: tabular-nums; }
.lrc-scope { display: flex; gap: 8px; margin: 0; padding: 12px 14px; border-radius: 12px; background: var(--lrc-blue-soft); font-size: 13px; line-height: 1.5; color: #1E3A8A; }
.lrc-scope i, .lrc-scope svg, .lrc-disclaimer i, .lrc-disclaimer svg { width: 16px; height: 16px; flex: none; margin-top: 2px; }

/* Details */
.lrc-details { max-width: 1100px; margin: 20px auto 0; display: flex; flex-direction: column; gap: 20px; }
.lrc-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 20px; }
.lrc-block > .lrc-note { margin-bottom: 14px; }
.lrc-findings, .lrc-observations, .lrc-unassessed, .lrc-tools, .lrc-fit ul, .lrc-notes ul { list-style: none; padding: 0; margin: 0; }
.lrc-finding { display: flex; gap: 12px; padding: 14px 0; border-top: 1px solid var(--lrc-line); }
.lrc-finding:first-child { border-top: 0; padding-top: 0; }
.lrc-finding__icon { flex: none; width: 36px; height: 36px; border-radius: 10px; display: grid; place-items: center; background: var(--lrc-blue-soft); color: var(--lrc-blue); }
.lrc-finding__icon svg, .lrc-finding__icon i { width: 18px; height: 18px; }
.lrc-finding--p1 .lrc-finding__icon { background: #FFF1F2; color: #BE123C; }
.lrc-finding--p3 .lrc-finding__icon { background: #F1F5F9; color: var(--lrc-muted); }
.lrc-finding__head { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.lrc-finding h3 { font-size: 16px; margin: 0; }
.lrc-priority { font-size: 12px; font-weight: 700; color: var(--lrc-muted); }
.lrc-finding--p1 .lrc-priority { color: #BE123C; }
.lrc-finding p { margin: 6px 0 0; font-size: 14px; line-height: 1.55; }
.lrc-finding__evidence { color: var(--lrc-muted); }
.lrc-finding b { color: var(--lrc-ink); }
.lrc-empty { color: var(--lrc-muted); font-size: 14px; }
.lrc-observations { margin-top: 12px; }
.lrc-observations li { display: flex; gap: 6px; padding: 6px 0; font-size: 14px; line-height: 1.5; }
.lrc-observations svg, .lrc-observations i { width: 16px; height: 16px; flex: none; margin-top: 3px; color: var(--lrc-blue); }
.lrc-how { margin-top: 14px; border-top: 1px solid var(--lrc-line); padding-top: 12px; font-size: 14px; line-height: 1.55; }
.lrc-how summary { cursor: pointer; font-weight: 700; color: var(--lrc-blue-dark); }
.lrc-calc { font-variant-numeric: tabular-nums; color: var(--lrc-ink); font-weight: 600; }
.lrc-calc:empty { display: none; }

.lrc-advanced { padding: 0; }
.lrc-advanced > summary { list-style: none; cursor: pointer; padding: 20px 24px; display: flex; flex-direction: column; gap: 2px; }
.lrc-advanced > summary::-webkit-details-marker { display: none; }
.lrc-advanced > summary::after { content: "+"; position: absolute; right: 24px; top: 18px; font-size: 22px; color: var(--lrc-blue); font-weight: 700; }
.lrc-advanced { position: relative; }
.lrc-advanced[open] > summary::after { content: "–"; }
.lrc-advanced__title { display: block; font-family: var(--lrc-heading); font-weight: 800; font-size: 17px; line-height: 1.35; color: var(--lrc-ink); padding-right: 28px; }
.lrc-advanced__title svg, .lrc-advanced__title i { display: inline-block; width: 18px; height: 18px; margin-right: 8px; vertical-align: -3px; color: var(--lrc-blue); }
.lrc-advanced__form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 24px; padding: 4px 24px 20px; border-top: 1px solid var(--lrc-line); padding-top: 18px; }
.lrc-advanced__form .btn { justify-self: start; }
.lrc-field { margin: 0; border: 0; padding: 0; min-width: 0; }
.lrc-field > legend { font-weight: 700; font-size: 14px; color: var(--lrc-ink); margin-bottom: 8px; padding: 0; }
.lrc-pills { display: flex; flex-wrap: wrap; gap: 6px; }
.lrc-pill { position: relative; margin: 0; }
.lrc-pill input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.lrc-pill span { display: inline-flex; align-items: center; gap: 4px; min-height: 36px; padding: 0 12px; border: 1.5px solid var(--lrc-line); border-radius: 10px; font-size: 13px; font-weight: 500; background: #fff; transition: border-color .15s, background .15s; }
.lrc-pill input:checked + span { background: var(--lrc-blue-soft); border-color: var(--lrc-blue); color: var(--lrc-blue-dark); font-weight: 700; }
.lrc-pill input:checked + span::before { content: "✓"; }
.lrc-pill input:focus-visible + span { outline: 3px solid rgba(37, 99, 235, .45); outline-offset: 2px; }
.lrc-notes { padding: 0 24px 22px; }
.lrc-notes h3 { font-size: 15px; margin: 0 0 8px; }
.lrc-notes li { padding: 8px 0; border-top: 1px solid var(--lrc-line); font-size: 14px; line-height: 1.5; display: flex; flex-direction: column; gap: 2px; }
.lrc-notes small, .lrc-unassessed small { color: var(--lrc-muted); font-size: 12px; }

.lrc-unassessed { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.lrc-unassessed li { display: flex; flex-direction: column; gap: 6px; border: 1px dashed #CBD5E1; border-radius: 14px; padding: 12px; font-size: 13px; line-height: 1.45; }
.lrc-unassessed li.is-reported { border-style: solid; border-color: #BFDBFE; }
.lrc-unassessed__head { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; justify-content: space-between; }
.lrc-unassessed strong { color: var(--lrc-ink); font-size: 14px; }

.lrc-tools li { display: flex; flex-direction: column; gap: 2px; padding: 10px 0; border-top: 1px solid var(--lrc-line); font-size: 14px; }
.lrc-tools li:first-child { border-top: 0; }
.lrc-tools a { display: inline-flex; gap: 6px; align-items: center; color: var(--lrc-blue-dark); text-decoration: none; }
.lrc-tools a svg, .lrc-tools a i { width: 16px; height: 16px; }

.lrc-cta { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0; border-radius: 20px; overflow: hidden; border: 1px solid var(--lrc-line); background: #fff; }
.lrc-cta__main { padding: 28px; background: var(--lrc-ai); color: #fff; }
.lrc-cta__main h2 { color: #fff; font-size: 22px; margin: 10px 0 8px; }
.lrc-cta__main p { margin: 0 0 18px; line-height: 1.6; color: rgba(255, 255, 255, .9); font-size: 15px; }
.lrc-cta__ai { display: inline-flex; gap: 6px; align-items: center; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; background: rgba(255, 255, 255, .16); padding: 4px 10px; border-radius: 999px; }
.lrc-cta__ai svg, .lrc-cta__ai i { width: 14px; height: 14px; }
.lrc-btn-ai { background: #fff; color: var(--lrc-blue-dark); border: 0; font-weight: 700; display: inline-flex; gap: 8px; align-items: center; white-space: normal; text-align: left; }
.lrc-btn-ai:hover { background: #F1F5FF; }
.lrc-btn-ai:disabled { opacity: .6; cursor: not-allowed; }
.lrc-btn-ai:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.lrc-cta__status { margin: 12px 0 0 !important; font-size: 13px !important; min-height: 1em; }
.lrc-fit { padding: 28px; }
.lrc-fit h3 { font-size: 17px; margin: 0 0 12px; }
.lrc-fit li { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; font-size: 14px; line-height: 1.45; flex-wrap: wrap; }
.lrc-fit li > span:first-of-type { flex: 1; min-width: 160px; }
.lrc-fit li svg, .lrc-fit li i { width: 16px; height: 16px; flex: none; margin-top: 2px; color: var(--lrc-strong); }
.lrc-fit .lrc-note { margin: 8px 0 14px; font-size: 12px; }
.lrc-disclaimer { display: flex; gap: 8px; margin: 0; font-size: 13px; color: var(--lrc-muted); line-height: 1.5; }

/* SEO content */
.lrc-method .container, .lrc-faq .container { max-width: 860px; }
.lrc-method h2, .lrc-faq h2 { font-size: var(--fs-h2, 30px); }
.lrc-method h3 { font-size: 18px; margin: 26px 0 8px; }
.lrc-method p, .lrc-method li, .lrc-faq p { line-height: 1.65; }
.lrc-bands { padding-left: 18px; }
.lrc-bands li { margin: 6px 0; }
.lrc-legal { font-size: 13px; color: var(--lrc-muted); margin-top: 24px; }
.lrc-faq details { border-bottom: 1px solid var(--lrc-line); padding: 14px 0; }
.lrc-faq summary { cursor: pointer; font-weight: 700; color: var(--lrc-ink); }
.lrc-related { margin-top: 24px; font-size: 14px; }

@media (max-width: 960px) {
  .lrc-tool, .lrc-grid, .lrc-cta { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .lrc-card { padding: 18px; border-radius: 16px; }
  .lrc-dash__score { flex-direction: column; align-items: stretch; gap: 14px; }
  .lrc-gauge { align-self: center; }
  .lrc-metrics { grid-template-columns: minmax(0, 1fr); }
  .lrc-metrics div { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
  .lrc-metrics dd { margin: 0; font-size: 18px; }
  .lrc-parts--grid { grid-template-columns: minmax(0, 1fr); }
  .lrc-number input { width: 130px; }
  .lrc-advanced > summary { padding: 18px; }
  .lrc-advanced > summary::after { right: 18px; }
  .lrc-advanced__form { grid-template-columns: minmax(0, 1fr); padding: 16px 18px 18px; }
  .lrc-notes { padding: 0 18px 18px; }
  .lrc-cta__main, .lrc-fit { padding: 22px 18px; }
}
@media (prefers-reduced-motion: reduce) {
  .lrc-gauge__fill, .lrc-coverage__bar span { transition: none; }
}
