/* Legal & Housing Resource Center
   A research surface, not a chat window: dense where it should be, calm
   everywhere else, and built on the National Service Pets navy. */

.lc {
    --lc-navy: #0f1f7a;
    --lc-navy-deep: #08123f;
    --lc-navy-soft: #edf1ff;
    --lc-ink: #16192a;
    --lc-body: #4b5468;
    --lc-muted: #79839b;
    --lc-line: #e3e8f4;
    --lc-line-soft: #eef1f9;
    --lc-surface: #ffffff;
    --lc-canvas: #f7f9fe;
    --lc-gold: #a8801f;
    --lc-green: #197a4b;
    --lc-amber: #9a6712;
    --lc-red: #a32020;
    --lc-radius: 14px;
    --lc-radius-lg: 20px;
    --lc-shadow: 0 1px 2px rgba(16, 24, 51, .06), 0 8px 24px rgba(16, 24, 51, .05);

    color: var(--lc-ink);
    font-feature-settings: "kern" 1, "liga" 1;
}

.lc *, .lc *::before, .lc *::after { box-sizing: border-box; }

/* ── Shell ───────────────────────────────────────────────────────────── */
/* base_white.html renders block content inside a centred container, so these
   bands break out of it to run edge to edge. */
.lc-shell,
.lc-masthead,
.lc-section-alt {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    width: 100vw;
}

.lc-shell { background: var(--lc-canvas); }

.lc-wrap {
    width: 100%;
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 1.25rem;
}

/* ── Masthead ────────────────────────────────────────────────────────── */
.lc-masthead {
    position: relative;
    z-index: 1;
    overflow: hidden;
    padding: 3.25rem 0 4.6rem;
    background: var(--lc-navy-deep);
    color: #fff;
}

.lc-masthead::before {
    content: "";
    position: absolute;
    inset: 0;
    background-image: url(/static/images/pet-bg-pattern.png);
    background-repeat: repeat;
    background-size: 475px;
    filter: invert(1);
    opacity: .07;
    pointer-events: none;
    z-index: 0;
}

.lc-masthead > * { position: relative; z-index: 1; }

.lc-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .38rem .85rem;
    border: 1px solid rgba(255, 255, 255, .28);
    border-radius: 100px;
    background: rgba(255, 255, 255, .08);
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

.lc-masthead h1 {
    max-width: 20ch;
    margin: 1.15rem 0 .85rem;
    font-size: clamp(2rem, 4.4vw, 3.1rem);
    font-weight: 700;
    line-height: 1.08;
    letter-spacing: -.02em;
}

.lc-masthead p {
    max-width: 62ch;
    margin: 0;
    font-size: 1.03rem;
    line-height: 1.65;
    color: rgba(255, 255, 255, .8);
}

.lc-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 2.25rem;
    margin-top: 2rem;
    padding-top: 1.6rem;
    border-top: 1px solid rgba(255, 255, 255, .16);
}

.lc-stat b {
    display: block;
    font-size: 1.6rem;
    font-weight: 700;
    letter-spacing: -.01em;
}

.lc-stat span {
    font-size: .78rem;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, .62);
}

/* ── Research console ────────────────────────────────────────────────── */
.lc-console {
    position: relative;
    z-index: 2;                 /* sits on top of the masthead it overlaps */
    margin: -2.1rem auto 0;
    border: 1px solid var(--lc-line);
    border-radius: var(--lc-radius-lg);
    background: var(--lc-surface);
    box-shadow: var(--lc-shadow);
    overflow: hidden;
}

.lc-console-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem;
    padding: .9rem 1.15rem;
    border-bottom: 1px solid var(--lc-line-soft);
    background: linear-gradient(180deg, #fbfcff, #fff);
}

.lc-console-title {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin-right: auto;
    font-size: .93rem;
    font-weight: 700;
}

.lc-console-title i { color: var(--lc-navy); }

/* Context chips: jurisdiction and topic, always visible while researching */
.lc-chip {
    display: inline-flex;
    align-items: center;
    gap: .4rem;
    padding: .32rem .7rem;
    border: 1px solid var(--lc-line);
    border-radius: 100px;
    background: #fff;
    font-size: .78rem;
    font-weight: 600;
    color: var(--lc-body);
    white-space: nowrap;
}

.lc-chip i { font-size: .72rem; color: var(--lc-navy); }
.lc-chip-live { border-color: #cfd9f6; background: var(--lc-navy-soft); color: var(--lc-navy); }

.lc-seg {
    display: inline-flex;
    padding: 3px;
    border: 1px solid var(--lc-line);
    border-radius: 100px;
    background: #f2f5fd;
}

.lc-seg button {
    padding: .34rem .82rem;
    border: 0;
    border-radius: 100px;
    background: transparent;
    font-size: .78rem;
    font-weight: 650;
    color: var(--lc-muted);
    cursor: pointer;
    transition: background .18s ease, color .18s ease;
}

.lc-seg button[aria-pressed="true"] {
    background: #fff;
    color: var(--lc-navy);
    box-shadow: 0 1px 3px rgba(16, 24, 51, .12);
}

/* ── Transcript ──────────────────────────────────────────────────────── */
.lc-transcript {
    min-height: 260px;
    max-height: 66vh;
    overflow-y: auto;
    padding: 1.35rem 1.15rem;
    scroll-behavior: smooth;
}

.lc-empty { padding: 1.5rem .25rem 1rem; }

.lc-empty h2 {
    margin: 0 0 .5rem;
    font-size: 1.22rem;
    font-weight: 700;
    letter-spacing: -.01em;
}

.lc-empty p {
    max-width: 60ch;
    margin: 0 0 1.35rem;
    color: var(--lc-body);
    line-height: 1.65;
}

.lc-turn { margin-bottom: 1.6rem; }

.lc-ask {
    display: flex;
    gap: .7rem;
    align-items: flex-start;
    padding: .85rem 1rem;
    border: 1px solid var(--lc-line);
    border-left: 3px solid var(--lc-navy);
    border-radius: 12px;
    background: #fbfcff;
    font-weight: 600;
    line-height: 1.55;
}

.lc-ask i { margin-top: .2rem; color: var(--lc-navy); }

/* Research stages, shown live while the answer is being prepared */
.lc-stages {
    margin: .9rem 0;
    padding: .8rem 1rem;
    border: 1px solid var(--lc-line-soft);
    border-radius: 12px;
    background: #fcfdff;
}

.lc-stage {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .22rem 0;
    font-size: .86rem;
    color: var(--lc-muted);
}

.lc-stage.is-done { color: var(--lc-body); }
.lc-stage.is-active { color: var(--lc-navy); font-weight: 650; }

.lc-stage-dot {
    width: 15px;
    height: 15px;
    flex: none;
    display: grid;
    place-items: center;
    border-radius: 50%;
    border: 2px solid var(--lc-line);
}

.lc-stage.is-done .lc-stage-dot { border-color: var(--lc-green); background: var(--lc-green); }
.lc-stage.is-done .lc-stage-dot::after {
    content: "";
    width: 4px; height: 7px;
    border: solid #fff;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) translate(-1px, -1px);
}

.lc-stage.is-active .lc-stage-dot {
    border-color: var(--lc-navy);
    animation: lc-pulse 1.1s ease-in-out infinite;
}

@keyframes lc-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(15, 31, 122, .28); }
    50%      { box-shadow: 0 0 0 5px rgba(15, 31, 122, 0); }
}

.lc-stage-ms { margin-left: auto; font-variant-numeric: tabular-nums; font-size: .76rem; color: var(--lc-muted); }

/* ── Answer body ─────────────────────────────────────────────────────── */
.lc-answer { font-size: .97rem; line-height: 1.72; color: var(--lc-ink); }
.lc-answer > *:first-child { margin-top: 0; }

.lc-answer h3 {
    margin: 1.6rem 0 .6rem;
    padding-bottom: .35rem;
    border-bottom: 1px solid var(--lc-line-soft);
    font-size: .82rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--lc-navy);
}

.lc-answer p { margin: 0 0 .9rem; }
.lc-answer ul, .lc-answer ol { margin: 0 0 1rem; padding-left: 1.3rem; }
.lc-answer li { margin-bottom: .42rem; }
.lc-answer strong { font-weight: 680; color: var(--lc-ink); }
.lc-answer a { color: var(--lc-navy); text-decoration: underline; text-underline-offset: 2px; }

.lc-answer code {
    padding: .12rem .34rem;
    border-radius: 5px;
    background: #f1f4fb;
    font-size: .88em;
}

/* Tables scroll rather than break the layout */
.lc-tablewrap {
    margin: 0 0 1.1rem;
    overflow-x: auto;
    border: 1px solid var(--lc-line);
    border-radius: 12px;
    -webkit-overflow-scrolling: touch;
}

.lc-answer table,
.lc-tablewrap > table:not([class]) {
    width: 100%;
    min-width: 480px;
    border-collapse: collapse;
    font-size: .89rem;
}

.lc-answer thead th,
.lc-tablewrap > table:not([class]) thead th {
    position: sticky;
    top: 0;
    padding: .7rem .85rem;
    background: #f4f7fe;
    border-bottom: 1px solid var(--lc-line);
    font-size: .74rem;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--lc-navy);
    text-align: left;
    white-space: nowrap;
}

.lc-answer tbody td,
.lc-tablewrap > table:not([class]) tbody td {
    padding: .7rem .85rem;
    border-bottom: 1px solid var(--lc-line-soft);
    vertical-align: top;
}

.lc-answer tbody tr:last-child td,
.lc-tablewrap > table:not([class]) tbody tr:last-child td { border-bottom: 0; }
.lc-answer tbody tr:nth-child(even),
.lc-tablewrap > table:not([class]) tbody tr:nth-child(even) { background: #fcfdff; }

/* Structured blocks */
.lc-callout {
    display: flex;
    gap: .8rem;
    margin: 0 0 1.1rem;
    padding: .9rem 1rem;
    border: 1px solid var(--lc-line);
    border-left: 3px solid var(--lc-navy);
    border-radius: 12px;
    background: #fbfcff;
}

.lc-callout i { margin-top: .18rem; flex: none; }
.lc-callout-body { flex: 1; }
.lc-callout-body > *:last-child { margin-bottom: 0; }

.lc-callout-label {
    display: block;
    margin-bottom: .2rem;
    font-size: .72rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.lc-callout-warning { border-left-color: var(--lc-amber); background: #fffbf3; }
.lc-callout-warning i, .lc-callout-warning .lc-callout-label { color: var(--lc-amber); }
.lc-callout-key { border-left-color: var(--lc-navy); background: var(--lc-navy-soft); }
.lc-callout-key i, .lc-callout-key .lc-callout-label { color: var(--lc-navy); }

.lc-next {
    margin: 0 0 1.1rem;
    padding: 1rem 1.1rem;
    border: 1px solid #cfe4d8;
    border-radius: 12px;
    background: #f4fbf7;
}

.lc-next-label {
    display: flex;
    align-items: center;
    gap: .45rem;
    margin-bottom: .6rem;
    font-size: .74rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--lc-green);
}

.lc-next ol { margin: 0; padding-left: 1.2rem; }
.lc-next li { margin-bottom: .4rem; }

.lc-timeline { margin: 0 0 1.1rem; padding-left: .35rem; }

.lc-timeline-row {
    position: relative;
    padding: 0 0 .95rem 1.4rem;
    border-left: 2px solid var(--lc-line);
}

.lc-timeline-row:last-child { border-left-color: transparent; padding-bottom: 0; }

.lc-timeline-row::before {
    content: "";
    position: absolute;
    left: -6px; top: .32rem;
    width: 10px; height: 10px;
    border-radius: 50%;
    background: var(--lc-navy);
    box-shadow: 0 0 0 3px #fff;
}

.lc-timeline-date {
    font-size: .76rem;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--lc-navy);
}

.lc-timeline-text { color: var(--lc-body); }

/* Inline citation markers */
.lc-cite {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.25rem;
    height: 1.25rem;
    margin: 0 .1rem;
    padding: 0 .3rem;
    border: 1px solid #cfd9f6;
    border-radius: 5px;
    background: var(--lc-navy-soft);
    font-size: .7rem;
    font-weight: 750;
    font-variant-numeric: tabular-nums;
    color: var(--lc-navy);
    text-decoration: none;
    vertical-align: text-top;
    cursor: pointer;
    transition: background .15s ease;
}

.lc-cite:hover { background: #dde5ff; }

/* ── Sources panel ───────────────────────────────────────────────────── */
.lc-sources { margin-top: 1.3rem; }

.lc-sources-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .6rem;
    margin-bottom: .7rem;
}

.lc-sources-head h4 {
    margin: 0;
    margin-right: auto;
    font-size: .78rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--lc-muted);
}

.lc-source {
    display: block;
    padding: .8rem .9rem;
    margin-bottom: .55rem;
    border: 1px solid var(--lc-line);
    border-radius: 11px;
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color .18s ease, transform .18s ease;
}

.lc-source:hover {
    border-color: var(--lc-navy);
    transform: translateY(-1px);
    color: inherit;
    text-decoration: none;
}

.lc-source-top {
    display: flex;
    align-items: center;
    gap: .5rem;
    margin-bottom: .3rem;
}

.lc-source-num {
    display: grid;
    place-items: center;
    width: 1.35rem; height: 1.35rem;
    flex: none;
    border-radius: 6px;
    background: var(--lc-navy);
    color: #fff;
    font-size: .7rem;
    font-weight: 750;
}

.lc-source-name { font-size: .89rem; font-weight: 660; line-height: 1.35; }

.lc-source-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .4rem;
    margin-top: .35rem;
}

/* Inside a card the tag belongs on the bottom edge, so that a short card
   stretched to match a tall neighbour puts its slack above the tag instead of
   below it. */
.lc-card .lc-source-meta { margin-top: auto; padding-top: .7rem; }

.lc-tag {
    display: inline-flex;
    align-items: center;
    gap: .28rem;
    padding: .18rem .5rem;
    border-radius: 5px;
    font-size: .69rem;
    font-weight: 650;
    letter-spacing: .02em;
}

.lc-tag-official { background: var(--lc-navy-soft); color: var(--lc-navy); }
.lc-tag-verified { background: #eaf7f0; color: var(--lc-green); }
.lc-tag-unverified { background: #fdf3e7; color: var(--lc-amber); }
.lc-tag-plain { background: #f2f4fa; color: var(--lc-muted); }

/* ── Composer ────────────────────────────────────────────────────────── */
.lc-composer {
    padding: 1rem 1.15rem 1.15rem;
    border-top: 1px solid var(--lc-line-soft);
    background: linear-gradient(180deg, #fff, #fbfcff);
}

.lc-field {
    position: relative;
    border: 1px solid var(--lc-line);
    border-radius: var(--lc-radius);
    background: #fff;
    transition: border-color .18s ease, box-shadow .18s ease;
}

.lc-field:focus-within {
    border-color: var(--lc-navy);
    box-shadow: 0 0 0 3px rgba(15, 31, 122, .1);
}

.lc-field textarea {
    display: block;
    width: 100%;
    min-height: 58px;
    max-height: 200px;
    padding: .95rem 1rem .5rem;
    border: 0;
    background: transparent;
    font: inherit;
    font-size: .97rem;
    line-height: 1.55;
    color: var(--lc-ink);
    resize: none;
    outline: none;
}

.lc-field textarea::placeholder { color: #9aa3b8; }

.lc-tools {
    display: flex;
    align-items: center;
    gap: .5rem;
    padding: .45rem .55rem .55rem .7rem;
}

.lc-tool {
    display: inline-flex;
    align-items: center;
    gap: .38rem;
    height: 32px;
    padding: 0 .65rem;
    border: 1px solid var(--lc-line);
    border-radius: 8px;
    background: #fff;
    font-size: .8rem;
    font-weight: 600;
    color: var(--lc-body);
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease;
}

.lc-tool:hover { border-color: #c6d0ea; background: #fafbff; }
.lc-tool select { border: 0; background: transparent; font: inherit; font-weight: 600; color: inherit; outline: none; cursor: pointer; }

.lc-send {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .45rem;
    height: 38px;
    min-width: 38px;
    margin-left: auto;
    padding: 0 1rem;
    border: 0;
    border-radius: 10px;
    background: var(--lc-navy);
    color: #fff;
    font-size: .87rem;
    font-weight: 650;
    cursor: pointer;
    transition: background .18s ease, opacity .18s ease;
}

.lc-send:hover { background: #0b1861; }
.lc-send:disabled { opacity: .45; cursor: not-allowed; }
.lc-send-stop { background: var(--lc-red); }
.lc-send-stop:hover { background: #8a1a1a; }

.lc-suggestions {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: .8rem;
}

.lc-suggestion {
    padding: .42rem .8rem;
    border: 1px solid var(--lc-line);
    border-radius: 100px;
    background: #fff;
    font-size: .81rem;
    font-weight: 600;
    color: var(--lc-body);
    cursor: pointer;
    transition: border-color .16s ease, color .16s ease, background .16s ease;
}

.lc-suggestion:hover { border-color: var(--lc-navy); background: var(--lc-navy-soft); color: var(--lc-navy); }

.lc-disclaimer {
    margin: .85rem 0 0;
    font-size: .76rem;
    line-height: 1.55;
    color: var(--lc-muted);
}

.lc-disclaimer strong { color: var(--lc-body); }

/* Time-sensitive banner */
.lc-urgent {
    display: flex;
    gap: .7rem;
    margin: 0 0 1rem;
    padding: .85rem 1rem;
    border: 1px solid #f0d3ad;
    border-left: 3px solid var(--lc-amber);
    border-radius: 12px;
    background: #fffaf1;
    font-size: .89rem;
    line-height: 1.6;
    color: #6f4c0c;
}

.lc-urgent i { margin-top: .15rem; color: var(--lc-amber); }

/* Run summary: how long, what was consulted */
.lc-runbar {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px dashed var(--lc-line);
}

.lc-runstat {
    display: inline-flex;
    align-items: center;
    gap: .35rem;
    font-size: .76rem;
    color: var(--lc-muted);
    font-variant-numeric: tabular-nums;
}

.lc-runstat i { color: var(--lc-navy); opacity: .7; }
.lc-runbar .lc-actions { margin-left: auto; display: flex; gap: .35rem; }

.lc-iconbtn {
    display: inline-grid;
    place-items: center;
    width: 28px; height: 28px;
    border: 1px solid var(--lc-line);
    border-radius: 7px;
    background: #fff;
    color: var(--lc-muted);
    font-size: .76rem;
    cursor: pointer;
    transition: color .16s ease, border-color .16s ease;
}

.lc-iconbtn:hover { color: var(--lc-navy); border-color: var(--lc-navy); }

/* Streaming caret */
.lc-caret {
    display: inline-block;
    width: .5rem; height: 1.05em;
    margin-left: .1rem;
    background: var(--lc-navy);
    vertical-align: text-bottom;
    animation: lc-blink 1s step-end infinite;
}

@keyframes lc-blink { 50% { opacity: 0; } }

/* ── Sections ────────────────────────────────────────────────────────── */
.lc-section { padding: 3.25rem 0; }
.lc-section-alt { background: #fff; border-top: 1px solid var(--lc-line-soft); border-bottom: 1px solid var(--lc-line-soft); }

.lc-section-head { max-width: 62ch; margin-bottom: 1.8rem; }

.lc-section-head h2 {
    margin: 0 0 .55rem;
    font-size: clamp(1.4rem, 2.6vw, 1.95rem);
    font-weight: 700;
    letter-spacing: -.015em;
}

.lc-section-head p { margin: 0; color: var(--lc-body); line-height: 1.68; }

/* Flex rather than grid, so that a final row holding fewer cards than the row
   above grows to the edge instead of leaving empty tracks beside it. The
   flex-basis reproduces what the grid minmax gave: cards wrap at the same
   widths, they simply stretch once wrapped. */
.lc-grid { display: flex; flex-wrap: wrap; gap: 1rem; }
.lc-grid-2 > * { flex: 1 1 280px; min-width: 0; }
.lc-grid-3 > * { flex: 1 1 240px; min-width: 0; }

/* A column, so that cards stretched to match the tallest in their row settle
   their tag against the bottom edge rather than leaving it stranded in the
   middle with blank card beneath it. */
.lc-card {
    display: flex;
    flex-direction: column;
    padding: 1.15rem 1.2rem;
    border: 1px solid var(--lc-line);
    border-radius: var(--lc-radius);
    background: #fff;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}

.lc-card:hover {
    border-color: var(--lc-navy);
    transform: translateY(-2px);
    box-shadow: var(--lc-shadow);
    color: inherit;
    text-decoration: none;
}

.lc-card-icon {
    display: grid;
    place-items: center;
    width: 38px; height: 38px;
    margin-bottom: .8rem;
    border-radius: 10px;
    background: var(--lc-navy-soft);
    color: var(--lc-navy);
}

.lc-card h3 { margin: 0 0 .35rem; font-size: 1rem; font-weight: 680; }
.lc-card p { margin: 0; font-size: .87rem; line-height: 1.6; color: var(--lc-body); }

/* 50-state explorer */
.lc-explorer { border: 1px solid var(--lc-line); border-radius: var(--lc-radius-lg); background: #fff; overflow: hidden; }

.lc-explorer-head {
    display: flex;
    flex-wrap: wrap;
    gap: .7rem;
    align-items: center;
    padding: .9rem 1.1rem;
    border-bottom: 1px solid var(--lc-line-soft);
    background: #fbfcff;
}

.lc-explorer-search {
    flex: 1;
    min-width: 200px;
    height: 36px;
    padding: 0 .8rem;
    border: 1px solid var(--lc-line);
    border-radius: 9px;
    font: inherit;
    font-size: .88rem;
    outline: none;
}

.lc-explorer-search:focus { border-color: var(--lc-navy); box-shadow: 0 0 0 3px rgba(15, 31, 122, .1); }

.lc-states {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: .4rem;
    padding: 1rem;
}

.lc-state {
    display: flex;
    align-items: center;
    gap: .55rem;
    padding: .55rem .7rem;
    border: 1px solid transparent;
    border-radius: 9px;
    text-decoration: none;
    color: var(--lc-body);
    font-size: .87rem;
    font-weight: 600;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.lc-state:hover { background: var(--lc-navy-soft); border-color: #cfd9f6; color: var(--lc-navy); text-decoration: none; }
.lc-state-code {
    display: grid;
    place-items: center;
    width: 26px; height: 22px;
    flex: none;
    border-radius: 5px;
    background: #f1f4fb;
    font-size: .67rem;
    font-weight: 750;
    letter-spacing: .03em;
    color: var(--lc-navy);
}

.lc-state.is-hidden { display: none; }

/* State + topic page furniture */
.lc-breadcrumb { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; font-size: .8rem; color: rgba(255,255,255,.66); }
.lc-breadcrumb a { color: rgba(255,255,255,.86); text-decoration: none; }
.lc-breadcrumb a:hover { text-decoration: underline; color: #fff; }

.lc-split { display: grid; gap: 1.6rem; grid-template-columns: minmax(0, 1fr); }
@media (min-width: 900px) { .lc-split { grid-template-columns: minmax(0, 1fr) 320px; } }

.lc-prose { font-size: .97rem; line-height: 1.75; color: var(--lc-body); }
.lc-prose h2 { margin: 2rem 0 .7rem; font-size: 1.24rem; font-weight: 700; color: var(--lc-ink); letter-spacing: -.01em; }
.lc-prose h2:first-child { margin-top: 0; }
.lc-prose h3 { margin: 1.5rem 0 .5rem; font-size: 1.02rem; font-weight: 680; color: var(--lc-ink); }
.lc-prose p { margin: 0 0 1rem; }
.lc-prose ul { margin: 0 0 1.1rem; padding-left: 1.25rem; }
.lc-prose li { margin-bottom: .48rem; }

/* Closing prose used to carry a 74ch cap, which is the right line length but
   only about half the content column, so the right half of the section sat
   empty. Two columns keep the same measure and use the whole width. Headings
   span both; paragraphs stay whole rather than breaking across the gutter. */
@media (min-width: 980px) {
    .lc-prose-wide { columns: 2; column-gap: 3.1rem; }
    .lc-prose-wide > * { break-inside: avoid; }
    .lc-prose-wide > h2, .lc-prose-wide > h3 { column-span: all; }
    .lc-prose-wide > p:last-child { margin-bottom: 0; }
}

.lc-aside { position: sticky; top: 1.5rem; align-self: start; }

.lc-panel {
    padding: 1.05rem 1.15rem;
    margin-bottom: 1rem;
    border: 1px solid var(--lc-line);
    border-radius: var(--lc-radius);
    background: #fff;
}

.lc-panel h3 {
    margin: 0 0 .75rem;
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .07em;
    text-transform: uppercase;
    color: var(--lc-muted);
}

.lc-faq { border: 1px solid var(--lc-line); border-radius: var(--lc-radius); background: #fff; overflow: hidden; }
.lc-faq details { border-bottom: 1px solid var(--lc-line-soft); }
.lc-faq details:last-child { border-bottom: 0; }

.lc-faq summary {
    display: flex;
    align-items: center;
    gap: .7rem;
    padding: .95rem 1.1rem;
    font-size: .93rem;
    font-weight: 650;
    cursor: pointer;
    list-style: none;
}

.lc-faq summary::-webkit-details-marker { display: none; }
.lc-faq summary::after {
    content: "\f078";
    margin-left: auto;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: .7rem;
    color: var(--lc-muted);
    transition: transform .2s ease;
}

.lc-faq details[open] summary::after { transform: rotate(180deg); }
.lc-faq details[open] summary { color: var(--lc-navy); }
.lc-faq-body { padding: 0 1.1rem 1.05rem; font-size: .91rem; line-height: 1.7; color: var(--lc-body); }
.lc-faq-body > *:last-child { margin-bottom: 0; }

.lc-btn {
    display: inline-flex;
    align-items: center;
    gap: .5rem;
    padding: .7rem 1.25rem;
    border: 1px solid var(--lc-navy);
    border-radius: 10px;
    background: var(--lc-navy);
    color: #fff;
    font-size: .9rem;
    font-weight: 650;
    text-decoration: none;
    transition: background .18s ease;
}

.lc-btn:hover { background: #0b1861; color: #fff; text-decoration: none; }
.lc-btn-ghost { background: transparent; color: var(--lc-navy); }
.lc-btn-ghost:hover { background: var(--lc-navy-soft); color: var(--lc-navy); }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width: 720px) {
    .lc-masthead { padding: 2.4rem 0 2.5rem; }
    .lc-stats { gap: 1.4rem; }
    .lc-transcript { padding: 1rem .85rem; max-height: none; }
    .lc-composer { padding: .85rem; }
    .lc-console-head { padding: .75rem .85rem; }
    .lc-tools { flex-wrap: wrap; }
    .lc-send { width: 100%; margin-left: 0; }
    .lc-states { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); }
    .lc-answer table,
    .lc-tablewrap > table:not([class]) { min-width: 420px; }
}

@media (prefers-reduced-motion: reduce) {
    .lc *, .lc *::before, .lc *::after {
        animation-duration: .001ms !important;
        transition-duration: .001ms !important;
    }
    .lc-transcript { scroll-behavior: auto; }
}
