/* ==========================================================================
   The COVID Project: page-specific styles.
   Loaded by SiteAssets after covid.css. Each page agent APPENDS a block
   under a banner naming the page and never edits another page's block.
   Shared components belong in covid.css, not here.
   ========================================================================== */

/* ==========================================================================
   The Law: statute.aspx, notice.aspx, cases.aspx, standards.aspx,
   authorities.aspx. The clause parser, the Notice Q&A panel, the decisions
   and authorities filters, and the fragments' plain-voice opening box.
   ========================================================================== */
.cp-law-article .cp-plain {
    margin: 0 0 2rem;
    padding: 18px 22px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-left: 4px solid var(--cp-gold);
    border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
    font-size: 1.02rem;
    line-height: 1.6;
}

.cp-law-article .cp-plain > p:last-child { margin-bottom: 0; }

.cp-law-article > .cp-callout { margin: 0 0 2rem; }

.cp-law-loading { margin: 1rem 0 0; }

/* The clause parser: the Suspension Clause with seven clickable elements. */
.cp-clause-parser {
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    padding: 28px 32px 24px;
}

.cp-clause-parser__label {
    margin: 0 0 12px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cp-secondary);
}

.cp-clause-parser__text {
    margin: 0;
    font-family: var(--cp-serif);
    font-size: clamp(1.25rem, 2.2vw, 1.6rem);
    line-height: 1.6;
    color: var(--cp-ink);
    max-width: 62ch;
}

.cp-clause-parser__cite {
    display: block;
    margin: 14px 0 0;
    font-family: var(--cp-mono);
    font-size: 0.8rem;
    color: var(--cp-muted);
}

.cp-clause-el {
    display: inline;
    padding: 0 2px;
    margin: 0;
    border: 0;
    border-bottom: 2px dotted var(--cp-gold);
    border-radius: 2px;
    background: transparent;
    color: inherit;
    font: inherit;
    line-height: inherit;
    cursor: pointer;
    text-align: left;
    transition: background-color 0.15s var(--cp-ease), border-color 0.15s var(--cp-ease);
}

.cp-clause-el:hover,
.cp-clause-el:focus-visible {
    background: rgba(184, 147, 63, 0.16);
    border-bottom-style: solid;
}

.cp-clause-el[aria-expanded="true"] {
    background: rgba(168, 50, 30, 0.1);
    border-bottom: 2px solid var(--cp-signal);
    color: var(--cp-signal);
}

.cp-clause-el__n {
    font-family: var(--cp-mono);
    font-size: 0.55em;
    font-weight: 500;
    color: var(--cp-secondary);
    margin-left: 2px;
    line-height: 0;
}

.cp-clause-el[aria-expanded="true"] .cp-clause-el__n { color: var(--cp-signal); }

.cp-clause-panels {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--cp-rule-2);
    min-height: 120px;
}

.cp-clause-intro p { margin: 0; color: var(--cp-muted); }

.cp-clause-panel { animation: cp-fade-in 0.2s var(--cp-ease); }

.cp-clause-panel__title { margin: 0 0 8px; font-size: 1.35rem; }

.cp-clause-panel__phrase {
    margin: 0 0 12px;
    font-family: var(--cp-serif);
    font-size: 1.1rem;
    color: var(--cp-signal);
}

.cp-clause-panel__gloss { max-width: var(--cp-measure); margin: 0 0 12px; }

.cp-clause-panel__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    align-items: center;
    margin: 0;
    font-size: 0.9rem;
}

html:not(.cp-js) .cp-clause-panel[hidden] { display: block; margin-bottom: 20px; }
html:not(.cp-js) .cp-clause-intro { display: none; }

.cp-clause-key {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin: 16px 0 0;
    padding: 0;
    list-style: none;
}

.cp-clause-key li { margin: 0; }

.cp-clause-key button {
    padding: 4px 10px;
    border: 1px solid var(--cp-rule);
    border-radius: 999px;
    background: var(--cp-card);
    color: var(--cp-text);
    font-family: var(--cp-sans);
    font-size: 0.8rem;
    font-weight: 600;
    cursor: pointer;
}

.cp-clause-key button:hover { border-color: var(--cp-gold); }
.cp-clause-key button[aria-pressed="true"] { background: var(--cp-ink); border-color: var(--cp-ink); color: #fff; }
.cp-clause-key button .cp-clause-el__n { font-size: 0.7rem; color: inherit; margin-right: 4px; margin-left: 0; }

/* The Notice, Q&A by Q&A: a sticky index beside the cards. */
.cp-qa-panel {
    display: grid;
    grid-template-columns: 280px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
    margin-top: 20px;
}

.cp-qa-index {
    position: sticky;
    top: calc(var(--cp-header-h) + 20px);
    max-height: calc(100vh - var(--cp-header-h) - 40px);
    overflow-y: auto;
    font-size: 0.85rem;
}

.cp-qa-index ol { list-style: none; margin: 0; padding: 0; }
.cp-qa-index li { margin: 0; }

.cp-qa-index a {
    display: grid;
    grid-template-columns: 64px minmax(0, 1fr);
    gap: 8px;
    padding: 7px 8px;
    border-left: 2px solid transparent;
    color: var(--cp-text);
    text-decoration: none;
    line-height: 1.35;
}

.cp-qa-index a:hover { background: rgba(184, 147, 63, 0.08); border-left-color: var(--cp-gold); }
.cp-qa-index a[aria-current="true"] { border-left-color: var(--cp-signal); color: var(--cp-signal); }

.cp-qa-index__num { font-family: var(--cp-mono); font-size: 0.78rem; color: var(--cp-muted); padding-top: 1px; }
.cp-qa-index__topic { display: block; }
.cp-qa-index .cp-chip { margin-top: 4px; }

.cp-qa-list > * + * { margin-top: 14px; }

.cp-qa {
    padding: 18px 22px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    scroll-margin-top: calc(var(--cp-header-h) + 16px);
}

.cp-qa:target { border-color: var(--cp-gold); box-shadow: 0 0 0 3px rgba(184, 147, 63, 0.18); }

.cp-qa__head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 8px 16px;
    align-items: start;
}

.cp-qa__num { font-family: var(--cp-mono); font-size: 0.82rem; color: var(--cp-secondary); letter-spacing: 0.04em; }

.cp-qa__topic { margin: 2px 0 6px; font-size: 1.18rem; line-height: 1.3; }

.cp-qa__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    align-items: center;
    font-size: 0.82rem;
    color: var(--cp-muted);
}

.cp-qa__details { margin-top: 12px; border-top: 1px solid var(--cp-rule-2); }

.cp-qa__details > summary {
    padding: 10px 0;
    cursor: pointer;
    font-weight: 600;
    font-size: 0.9rem;
    color: var(--cp-ink);
    list-style: none;
}

.cp-qa__details > summary::-webkit-details-marker { display: none; }

.cp-qa__details > summary::before {
    content: "";
    display: inline-block;
    width: 0;
    height: 0;
    margin-right: 8px;
    border-left: 5px solid var(--cp-signal);
    border-top: 4px solid transparent;
    border-bottom: 4px solid transparent;
    vertical-align: 1px;
    transition: transform 0.15s var(--cp-ease);
}

.cp-qa__details[open] > summary::before { transform: rotate(90deg); }

.cp-qa__text {
    padding: 4px 0 8px;
    font-size: 0.95rem;
    line-height: 1.6;
    color: var(--cp-text);
}

.cp-qa__text p { margin: 0 0 0.7rem; max-width: var(--cp-measure); }
.cp-qa__text p:last-child { margin-bottom: 0; }

.cp-qa__links {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 16px;
    align-items: center;
    margin: 12px 0 0;
    font-size: 0.88rem;
}

.cp-chip[data-notice="helps"] { --chip: var(--cp-verified); }
.cp-chip[data-notice="narrows"] { --chip: var(--cp-signal); }
.cp-chip[data-notice="mixed"] { --chip: var(--cp-secondary); }
.cp-chip[data-notice="neutral"] { --chip: var(--cp-muted); }

.cp-qa-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 18px;
    margin: 12px 0 0;
    padding: 0;
    list-style: none;
    font-size: 0.88rem;
    color: var(--cp-muted);
}

.cp-qa-legend li { margin: 0; display: inline-flex; gap: 8px; align-items: center; }

/* Decisions and authorities: filter toolbars and disposition chips. */
.cp-law-toolbar {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 20px;
    align-items: center;
    margin: 0 0 16px;
}

.cp-law-toolbar .cp-search { flex: 1 1 320px; max-width: 480px; }

.cp-law-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.cp-law-pills li { margin: 0; }

.cp-law-pills button {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 5px 12px;
    border: 1px solid var(--cp-rule);
    border-radius: 999px;
    background: var(--cp-card);
    color: var(--cp-text);
    font-family: var(--cp-sans);
    font-size: 0.82rem;
    font-weight: 600;
    cursor: pointer;
    transition: background-color 0.15s var(--cp-ease), border-color 0.15s var(--cp-ease);
}

.cp-law-pills button:hover { border-color: var(--cp-gold); }
.cp-law-pills button[aria-pressed="true"] { background: var(--cp-ink); border-color: var(--cp-ink); color: #fff; }
.cp-law-pills button .cp-num { font-family: var(--cp-mono); font-weight: 400; opacity: 0.75; }

.cp-law-count { margin: 0; font-size: 0.88rem; color: var(--cp-muted); }

.cp-chip[data-disposition="favorable"] { --chip: var(--cp-verified); }
.cp-chip[data-disposition="adverse"] { --chip: var(--cp-signal); }
.cp-chip[data-disposition="mixed"] { --chip: var(--cp-secondary); }
.cp-chip[data-disposition="neutral"] { --chip: var(--cp-muted); }
.cp-chip[data-disposition="other"] { --chip: var(--cp-muted); }

.cp-decisions .cp-table td { font-size: 0.86rem; }
.cp-decisions .cp-table em { font-style: italic; }
.cp-decisions__posture { display: block; margin-top: 4px; font-size: 0.8rem; color: var(--cp-muted); }
.cp-decisions__detail { display: block; margin-top: 4px; font-size: 0.8rem; color: var(--cp-muted); max-width: 36ch; }

.cp-auth-group { margin: 0 0 40px; scroll-margin-top: calc(var(--cp-header-h) + 20px); }
.cp-auth-group[hidden] { display: none; }

.cp-auth-group__head {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 14px;
    align-items: baseline;
    margin: 0 0 12px;
}

.cp-auth-group__head h2 { margin: 0; font-size: 1.45rem; }
.cp-auth-group__n { font-family: var(--cp-mono); font-size: 0.85rem; color: var(--cp-muted); }

.cp-auth-table .cp-table th, .cp-auth-table .cp-table td { font-size: 0.85rem; }
.cp-auth-table .cp-table td:nth-child(2) { min-width: 26ch; }
.cp-auth-table__inst { display: block; margin-top: 3px; font-size: 0.78rem; color: var(--cp-muted); }
.cp-auth-table__doc { white-space: nowrap; }
.cp-auth-table__doc a + a { margin-left: 10px; }

.cp-law-rail .cp-toc__actions a, .cp-law-rail .cp-toc__actions button { text-align: left; }

@media (max-width: 900px) {
    .cp-clause-parser { padding: 20px 18px 18px; }
    .cp-qa-panel { display: block; }
    .cp-qa-index { position: static; max-height: none; margin: 0 0 20px; padding: 10px 12px; border: 1px solid var(--cp-rule); border-radius: var(--cp-radius); background: var(--cp-card); }
    .cp-qa-index ol { columns: 2; column-gap: 16px; }
    .cp-qa-index li { break-inside: avoid; }
    .cp-qa__head { grid-template-columns: minmax(0, 1fr); }
}

@media (max-width: 640px) {
    .cp-qa-index ol { columns: 1; }
    .cp-qa { padding: 14px 16px; }
    .cp-law-toolbar .cp-search { flex-basis: 100%; max-width: none; }
}

@media print {
    /* covid.css sets [hidden] { display: none !important }, so the print expansion needs !important too. */
    .cp-clause-panel[hidden] { display: block !important; margin-bottom: 16px; }
    .cp-clause-intro, .cp-clause-key, .cp-law-toolbar { display: none; }
    .cp-qa-index { display: none; }
    .cp-qa-panel { display: block; }
    .cp-auth-group[hidden] { display: block; }
    .cp-table tr.is-hidden { display: table-row; }
}

/* ==========================================================================
   home.aspx (the home page): hero rhythm and texture, the sentence band, the
   clock teaser, the industry tiles, the pull quotes, the highlights, the tools.
   ========================================================================== */
.cp-home .cp-section { padding: 88px 0; }
.cp-home .cp-section__head { margin-bottom: 32px; }

/* hero: full-bleed ink; the texture is ruled lines and a margin rule drawn in CSS, no photography */
.cp-home-hero {
    display: flex;
    align-items: center;
    min-height: 660px;
    padding: 88px 0 72px;
}

.cp-home-hero::before {
    background:
        radial-gradient(ellipse at 85% 12%, rgba(184, 147, 63, 0.2), transparent 55%),
        repeating-linear-gradient(180deg, transparent 0 31px, rgba(255, 255, 255, 0.04) 31px 32px),
        linear-gradient(90deg, rgba(255, 255, 255, 0.035), transparent 45%);
}

.cp-home-hero::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: calc(50% + 300px);
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(184, 147, 63, 0.45) 30%, rgba(184, 147, 63, 0.45) 70%, transparent);
    pointer-events: none;
}

.cp-home-hero > .cp-shell { width: 100%; }
.cp-home-hero .cp-hero__inner { max-width: 840px; }
.cp-home-hero .cp-hero__title { font-size: clamp(2.5rem, 4.6vw, 3.25rem); }
.cp-home-hero .cp-hero__lead { font-size: 1.25rem; max-width: 720px; }

.cp-home-hero__stats { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-top: 56px; }
.cp-home-hero .cp-stats .cp-stat { background: rgba(255, 255, 255, 0.05); border-color: rgba(255, 255, 255, 0.16); }
.cp-home-hero .cp-stats .cp-stat__num { font-family: var(--cp-mono); font-size: 2.75rem; font-weight: 500; letter-spacing: -0.02em; color: #fff; }
.cp-home-hero .cp-stats .cp-stat__label { font-variant-caps: all-small-caps; letter-spacing: 0.08em; font-size: 0.98rem; color: rgba(255, 255, 255, 0.85); }
.cp-home-hero .cp-stats .cp-stat__note { color: rgba(255, 255, 255, 0.5); opacity: 1; }
.cp-home-notice { margin: 40px 0 0; max-width: 640px; }

/* the sentence band */
.cp-home-sentence__quote { margin-top: 0; }
.cp-home-sentence__quote > p { font-size: clamp(1.25rem, 2.2vw, 1.6rem); line-height: 1.4; }
.cp-home-answer { margin: 20px 0 0; padding: 22px 26px 20px; }
.cp-home-answer__lead { font-family: var(--cp-serif); font-size: 1.35rem; line-height: 1.35; color: var(--cp-ink); margin: 0 0 14px; }
.cp-home-answer__day { font-weight: 500; color: var(--cp-signal); }

.cp-home-answer__pick {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: flex-end;
    padding: 14px 0 16px;
    margin-bottom: 14px;
    border-top: 1px solid var(--cp-rule-2);
    border-bottom: 1px solid var(--cp-rule-2);
}

.cp-home-answer__field { display: flex; flex-direction: column; gap: 6px; flex: 1 1 200px; min-width: 0; }
.cp-home-answer__field .cp-select, .cp-home-answer__field .cp-input { min-height: 42px; }
.cp-home-answer__pick .cp-btn { min-height: 42px; }
.cp-home-answer__count { font-size: 1.02rem; margin: 0 0 10px; }
.cp-home-answer__count strong { color: var(--cp-ink); font-weight: 500; font-size: 1.15em; }
.cp-home-answer__list { margin: 0 0 12px; font-size: 0.95rem; }
.cp-home-answer__list > li { display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; padding: 9px 0; }
.cp-home-answer__inst { flex: 1 1 300px; min-width: 0; }
.cp-home-answer__name { font-weight: 600; color: var(--cp-ink); }
.cp-home-answer__meta { color: var(--cp-muted); font-size: 0.88rem; }
.cp-home-answer__meta .cp-date { color: var(--cp-muted); }
.cp-home-answer__more { font-size: 0.88rem; color: var(--cp-muted); margin: 0; }

/* the clock teaser */
.cp-home-clock__grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(280px, 2fr); gap: 40px; align-items: start; }
.cp-home-map { padding: 16px; }
.cp-home-map svg { max-height: 560px; }
.cp-home-map svg .separator1 { fill: none; }
.cp-home-map svg path, .cp-home-map svg circle { cursor: default; }
.cp-home-map.is-wired svg path, .cp-home-map.is-wired svg circle { cursor: pointer; }
.cp-home-clock__aside { padding-top: 4px; }
.cp-home-clock__date { font-family: var(--cp-serif); font-size: 1.9rem; line-height: 1.1; color: var(--cp-ink); margin: 0 0 18px; }
.cp-home-clock__date .cp-kicker { display: block; margin-bottom: 8px; }

.cp-home-clock__figure {
    display: flex;
    align-items: baseline;
    gap: 12px;
    margin: 0 0 12px;
    padding: 0 0 12px;
    border-bottom: 1px solid var(--cp-rule);
    font-size: 0.95rem;
    color: var(--cp-text);
}

.cp-home-clock__figure strong { flex: 0 0 auto; font-family: var(--cp-mono); font-size: 2.2rem; font-weight: 500; line-height: 1; letter-spacing: -0.02em; color: var(--cp-ink); }
.cp-home-clock__text { font-size: 0.98rem; margin: 16px 0 0; }
.cp-home-clock__actions { display: flex; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; }

/* the industry tiles */
.cp-home-industries__grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: 12px; }

.cp-home-tile {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-height: 112px;
    padding: 14px 16px 12px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    color: var(--cp-ink);
    text-decoration: none;
    box-shadow: var(--cp-shadow-soft);
    transition: transform 0.15s var(--cp-ease), border-color 0.15s var(--cp-ease), box-shadow 0.15s var(--cp-ease);
}

.cp-home-tile:hover, .cp-home-tile:focus-visible { transform: translateY(-4px); border-top-color: var(--cp-signal); box-shadow: var(--cp-shadow); color: var(--cp-ink); }
.cp-home-tile__num { font-family: var(--cp-mono); font-size: 0.76rem; letter-spacing: 0.06em; color: var(--cp-gold); }
.cp-home-tile__name { flex: 1 1 auto; font-family: var(--cp-serif); font-size: 1.08rem; font-weight: 500; line-height: 1.2; }
.cp-home-tile:hover .cp-home-tile__name { color: var(--cp-signal); }
.cp-home-tile__count { font-family: var(--cp-mono); font-size: 0.74rem; color: var(--cp-muted); }
.cp-home-industries__note { max-width: 68ch; margin: 28px 0 0; font-size: 0.95rem; color: var(--cp-muted); }

/* the Government's own words (ink band, white quote cards) */
.cp-home-words__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.cp-home-words__quote { margin: 0; height: 100%; }
.cp-home-words__quote > p { font-size: 1.08rem; }
.cp-home-words__empty { color: rgba(255, 255, 255, 0.82); margin: 0; }
.cp-home-words .cp-section__more { color: var(--cp-gold-2); }

/* highlights from the analysis */
.cp-home-highlights__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px 32px; }
.cp-home-highlight { display: flex; flex-direction: column; gap: 12px; margin: 0; padding: 22px 0 0; border-top: 3px solid var(--cp-gold); }
.cp-home-highlight__text { flex: 1 1 auto; font-family: var(--cp-serif); font-size: 1.18rem; line-height: 1.4; color: var(--cp-ink); margin: 0; }
.cp-home-highlight__link { font-size: 0.88rem; font-weight: 600; text-decoration: none; }

/* the tools */
.cp-home-tool { border-top: 3px solid var(--cp-gold); }
.cp-home-tool:hover { border-top-color: var(--cp-signal); transform: translateY(-4px); }
.cp-home-tool .cp-kicker { margin-bottom: 8px; }
.cp-home-tool .cp-card__title { font-size: 1.2rem; }
.cp-home-tool .cp-card__foot { color: var(--cp-ink); font-weight: 600; }
.cp-home-tools .cp-disclaimer { margin-top: 32px; }

@media (max-width: 1100px) {
    .cp-home-words__grid, .cp-home-highlights__list, .cp-home-tools__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-home-hero::after { display: none; }
}

@media (max-width: 900px) {
    .cp-home .cp-section { padding: 60px 0; }
    .cp-home-hero { min-height: 0; padding: 64px 0 56px; }
    .cp-home-hero__stats { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 40px; }
    .cp-home-clock__grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
}

@media (max-width: 640px) {
    .cp-home .cp-section { padding: 48px 0; }
    .cp-home-hero { padding: 48px 0 40px; }
    .cp-home-hero .cp-hero__title { font-size: 2.15rem; }
    .cp-home-hero .cp-stats .cp-stat__num { font-size: 2rem; }
    .cp-home-words__grid, .cp-home-highlights__list, .cp-home-tools__grid { grid-template-columns: minmax(0, 1fr); }
    .cp-home-industries__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .cp-home-tile { min-height: 0; }
    .cp-home-answer { padding: 16px 16px 14px; }
    .cp-home-answer__lead { font-size: 1.15rem; }
    .cp-home-answer__field { flex-basis: 100%; }
    .cp-home-answer__pick .cp-btn { width: 100%; }
    .cp-home-clock__date { font-size: 1.5rem; }
}

/* ==========================================================================
   story pages: story.aspx, timeline.aspx, irs_chronology.aspx, scale.aspx
   ========================================================================== */

/* The plain opening of a content fragment, and the fragment's measure (the
   fragment sits inside .cp-fragment, out of reach of the article's
   direct-child rules). */
.cp-page-story .cp-plain,
.cp-page-scale .cp-plain,
.cp-page-irs-chronology .cp-plain {
    margin: 0 0 1.75rem;
    padding: 18px 22px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-left: 4px solid var(--cp-gold);
    border-radius: var(--cp-radius);
}

.cp-page-story .cp-plain p,
.cp-page-scale .cp-plain p,
.cp-page-irs-chronology .cp-plain p {
    font-family: var(--cp-serif);
    font-size: 1.12rem;
    line-height: 1.55;
    color: var(--cp-ink);
    margin: 0;
    max-width: none;
}

.cp-page-story .cp-plain p + p,
.cp-page-scale .cp-plain p + p,
.cp-page-irs-chronology .cp-plain p + p { margin-top: 0.8rem; }

.cp-fragment > p,
.cp-fragment > ul,
.cp-fragment > ol:not(.cp-footnotes) { max-width: var(--cp-measure); }

/* The milestone strip on the story page */
.cp-story-strip {
    margin: 0 0 2.25rem;
    padding: 16px 14px 12px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
}

.cp-story-strip .cp-kicker { margin: 0 0 10px; }

.cp-story-strip__list {
    position: relative;
    display: flex;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 16px 0 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.cp-story-strip__list::before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 6px;
    height: 2px;
    background: var(--cp-rule);
}

.cp-story-strip__item {
    --dot: var(--cp-muted);
    position: relative;
    flex: 1 1 84px;
    min-width: 84px;
    padding-top: 12px;
    padding-right: 6px;
}

.cp-story-strip__item::before {
    content: "";
    position: absolute;
    left: 0;
    top: -16px;
    width: 13px;
    height: 13px;
    border-radius: 50%;
    background: var(--dot);
    border: 2px solid var(--cp-card);
    box-shadow: 0 0 0 1px var(--dot);
}

.cp-story-strip__item[data-category="statute"] { --dot: var(--cp-c-statute); }
.cp-story-strip__item[data-category="irs"] { --dot: var(--cp-c-irs); }
.cp-story-strip__item[data-category="litigation"] { --dot: var(--cp-c-litigation); }
.cp-story-strip__item[data-category="orders"] { --dot: var(--cp-c-orders); }
.cp-story-strip__item[data-category="guidance"] { --dot: var(--cp-c-guidance); }

.cp-story-strip__item a { display: block; text-decoration: none; color: inherit; }
.cp-story-strip__item a:hover .cp-story-strip__label,
.cp-story-strip__item a:focus-visible .cp-story-strip__label { color: var(--cp-signal); text-decoration: underline; }

.cp-story-strip__date {
    display: block;
    font-family: var(--cp-mono);
    font-size: 0.74rem;
    letter-spacing: 0.02em;
    color: var(--cp-muted);
}

.cp-story-strip__label {
    display: block;
    margin-top: 2px;
    font-family: var(--cp-serif);
    font-size: 0.9rem;
    line-height: 1.3;
    color: var(--cp-ink);
    text-wrap: balance;
}

.cp-story-strip__more { margin: 10px 0 0; font-size: 0.85rem; }

/* The timeline line: one section per year so each sticky year label releases
   when its year scrolls past; the vertical rule moves to the wrapper. */
.cp-tl {
    position: relative;
    padding-left: 148px;
    margin: 1.25rem 0 2rem;
}

.cp-tl::before {
    content: "";
    position: absolute;
    left: 128px;
    top: 6px;
    bottom: 6px;
    width: 2px;
    background: var(--cp-rule);
}

.cp-tl .cp-timeline { margin: 0; padding-left: 0; }
.cp-tl .cp-timeline::before { display: none; }

.cp-tl-year { position: relative; }

.cp-tl .cp-timeline__year {
    position: sticky;
    top: calc(var(--cp-header-h) + 4px);
    z-index: 2;
    margin: 18px 0 14px;
    padding: 8px 4px 6px;
    border-top: 0;
    background: var(--cp-paper);
    font-size: 1.6rem;
}

.cp-tl .cp-timeline__year::before { top: 22px; }

.cp-tl .cp-timeline__item,
.cp-tl .cp-timeline__date { scroll-margin-top: calc(var(--cp-header-h) + 72px); }

.cp-tl .cp-timeline__text + .cp-timeline__text { margin-top: 0.4rem; }

.cp-tl .cp-timeline__item.is-target {
    background: rgba(184, 147, 63, 0.1);
    box-shadow: -10px 0 0 rgba(184, 147, 63, 0.1), 10px 0 0 rgba(184, 147, 63, 0.1);
    border-radius: var(--cp-radius);
}

.cp-tl-filters {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 0 0 6px;
}

.cp-tl-filters__label {
    font-size: 0.74rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp-muted);
    margin-right: 2px;
}

.cp-tl-filters .cp-chip {
    cursor: pointer;
    font-family: var(--cp-sans);
    font-size: 0.78rem;
    padding: 4px 10px;
    transition: background-color 0.15s var(--cp-ease), color 0.15s var(--cp-ease), opacity 0.15s var(--cp-ease);
}

.cp-tl-filters .cp-chip[aria-pressed="true"] { background: var(--chip); color: #fff; }
.cp-tl-filters .cp-chip[aria-pressed="true"]::before { background: rgba(255, 255, 255, 0.85); }
.cp-tl-filters .cp-chip[aria-pressed="true"] .cp-chip__count { opacity: 0.85; }
.cp-tl-filters .cp-chip[aria-pressed="false"] { opacity: 0.55; background: var(--cp-paper); }
.cp-tl-filters .cp-chip:hover { opacity: 1; }
.cp-tl-filters .cp-chip:focus-visible { outline: none; box-shadow: var(--cp-focus); }
.cp-tl-filters__all { font-size: 0.82rem; }

.cp-tl-status {
    min-height: 1.2em;
    margin: 0 0 1rem;
    font-size: 0.82rem;
    color: var(--cp-muted);
}

.cp-tl-source { font-size: 0.8rem; }

.cp-tl-permalink {
    font-family: var(--cp-mono);
    color: var(--cp-muted);
    text-decoration: none;
    opacity: 0.5;
}

.cp-tl-permalink:hover,
.cp-tl-permalink:focus-visible { opacity: 1; color: var(--cp-signal); }

.cp-irs-key .cp-date { white-space: nowrap; }

/* a line the Notice page's administrative chronology adds to an event */
.cp-tl .cp-tl-note {
    margin-top: 0.5rem;
    padding-left: 10px;
    border-left: 2px solid var(--cp-rule);
    font-size: 0.85rem;
    color: var(--cp-muted);
}

/* The scale tiles and the table of every figure */
.cp-scale-tiles {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 16px;
    margin: 1.25rem 0 2rem;
}

.cp-scale-tiles .cp-figure { display: flex; flex-direction: column; margin: 0; }
.cp-scale-tiles .cp-figure__value { font-size: clamp(1.7rem, 3vw, 2.3rem); }
.cp-scale-tiles .cp-figure__label { flex: 1 1 auto; }
.cp-scale-tiles .cp-figure__source { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 10px; }
.cp-scale-tile__unit { margin: 0 0 8px; font-size: 0.8rem; color: var(--cp-muted); }
.cp-scale-tile__asof { font-family: var(--cp-mono); font-size: 0.78rem; color: var(--cp-muted); overflow-wrap: anywhere; }
.cp-scale-tile__src { margin: 6px 0 0; font-size: 0.76rem; color: var(--cp-muted); }

.cp-scale-table td { vertical-align: top; }
.cp-scale-table__figure { min-width: 220px; }
.cp-scale-table__value { font-family: var(--cp-mono); white-space: nowrap; }
.cp-scale-table__asof { font-family: var(--cp-mono); font-size: 0.8rem; }
.cp-scale-table__source { min-width: 260px; font-size: 0.8rem; }

.cp-scale-quote { margin-top: 4px; font-size: 0.8rem; }
.cp-scale-quote summary { cursor: pointer; color: var(--cp-ink-2); }
.cp-scale-quote blockquote {
    margin: 6px 0 0;
    padding: 6px 10px;
    border-left: 3px solid var(--cp-gold);
    background: var(--cp-paper);
    font-family: var(--cp-serif);
    font-size: 0.9rem;
    line-height: 1.5;
}

@media (max-width: 640px) {
    .cp-tl { padding-left: 0; margin-left: 12px; }
    .cp-tl::before { left: -1px; }
    .cp-tl .cp-timeline__year { padding-left: 18px; }
    .cp-tl .cp-timeline__year::before { left: -4px; }
    .cp-story-strip__item { flex-basis: 132px; }
    .cp-scale-tiles { grid-template-columns: minmax(0, 1fr); }
}

@media print {
    .cp-tl-filters,
    .cp-tl-status,
    .cp-tl-permalink,
    .cp-story-strip__more { display: none !important; }
    .cp-tl .cp-timeline__year { position: static; }
    .cp-tl .cp-timeline__item[hidden],
    .cp-tl-year[hidden] { display: block !important; }
}

/* ==========================================================================
   irs pages: grounds.aspx, ground.aspx, positions.aspx, letter.aspx
   (scoped to main.cp-page-irs; the fragments' .cp-plain opening block is
   styled here until the design system carries it)
   ========================================================================== */
.cp-page-irs .cp-plain {
    margin: 0 0 2rem;
    padding: 18px 22px;
    background: var(--cp-paper-2);
    border-left: 4px solid var(--cp-gold);
    border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
    font-size: 1.02rem;
    line-height: 1.6;
}
.cp-page-irs .cp-plain > p:last-child { margin-bottom: 0; }
.cp-page-irs .cp-article__body > .cp-plain:first-child + h2 { border-top: 0; padding-top: 0; margin-top: 0; }

/* The rail: a sticky wrapper holding the TOC and the positions box. The aside comes first in the
   markup so it reads first on a phone; the grid puts it in the right column on wide screens. */
.cp-page-irs .cp-article > .cp-irs-rail { grid-column: 2; grid-row: 1; align-self: stretch; min-width: 0; }
.cp-page-irs .cp-article > .cp-article__body { grid-column: 1; grid-row: 1; }
.cp-irs-rail__inner {
    position: sticky;
    top: calc(var(--cp-header-h) + 24px);
    max-height: calc(100vh - var(--cp-header-h) - 48px);
    overflow-y: auto;
    padding-right: 2px;
}
.cp-irs-rail__inner .cp-toc { position: static; max-height: none; overflow: visible; }
.cp-ground-positions .cp-toc__title { margin-bottom: 8px; }
.cp-ground-positions .cp-small { margin: 10px 0 0; }

/* Compact position lists (the ground rail, the decoder results). */
.cp-position-list { list-style: none; margin: 0; padding: 0; }
.cp-position-list__item { padding: 8px 0; border-top: 1px solid var(--cp-rule); font-size: 0.85rem; line-height: 1.45; }
.cp-position-list__item:first-child { border-top: 0; padding-top: 0; }
.cp-position-list__id { font-weight: 500; color: var(--cp-signal); text-decoration: none; margin-right: 4px; }
.cp-position-list__id:hover { text-decoration: underline; }
.cp-position-list__topic { color: var(--cp-ink); }
.cp-position-list__quote { display: block; margin: 4px 0 2px; font-family: var(--cp-serif); color: var(--cp-text); quotes: "\201C" "\201D"; }
.cp-position-list__pin { display: block; }

/* The list of fourteen sentences on /irs/fourteen-grounds. */
.cp-grounds-list { list-style: none; margin: 1rem 0 2.5rem; padding: 0; max-width: none; }
.cp-grounds-list__item.cp-ground-row { padding: 22px 0; }
.cp-grounds-list .cp-ground-num { text-decoration: none; }
.cp-grounds-list .cp-ground-num:hover { background: var(--cp-ink); }
.cp-grounds-list__body { min-width: 0; }
.cp-grounds-list .cp-quote-irs { margin: 0 0 0.6rem; }
.cp-grounds-list__link { margin: 0; font-weight: 600; }
.cp-grounds-list__link a { text-decoration: none; }
.cp-grounds-list__link a:hover { text-decoration: underline; }

/* Ground page: the closing callout and the previous / next navigation. */
.cp-ground-apply { margin-top: 2.5rem; }
.cp-ground-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin: 2.5rem 0 0;
    padding-top: 20px;
    border-top: 1px solid var(--cp-rule);
}
.cp-ground-nav__link {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 12px 14px;
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    background: var(--cp-card);
    text-decoration: none;
    color: var(--cp-ink);
    min-height: 72px;
}
.cp-ground-nav__link:hover { border-color: var(--cp-gold); }
.cp-ground-nav__link--empty { border: 0; background: none; }
.cp-ground-nav__link--next { text-align: right; align-items: flex-end; }
.cp-ground-nav__link--all { text-align: center; align-items: center; }
.cp-ground-nav__label { font-family: var(--cp-mono); font-size: 0.78rem; color: var(--cp-muted); }
.cp-ground-nav__title { font-family: var(--cp-serif); font-size: 1rem; line-height: 1.3; }

/* Positions page: filter bar, position entries, tables, letter patterns. */
.cp-filter-bar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 1rem 0 1.25rem; }
.cp-filter-bar__label { font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-muted); }
.cp-filter-bar__chips { display: flex; flex-wrap: wrap; gap: 6px; }
.cp-chip--filter { cursor: pointer; border: 1px solid var(--cp-rule); background: var(--cp-card); color: var(--cp-ink-2); font: inherit; font-size: 0.82rem; }
.cp-chip--filter::before { display: none; }
.cp-chip--filter:hover { border-color: var(--cp-gold); }
.cp-chip--filter[aria-pressed="true"] { background: var(--cp-ink); border-color: var(--cp-ink); color: #fff; }
.cp-chip--filter[aria-pressed="true"] .cp-chip__count { color: rgba(255, 255, 255, 0.75); }
.cp-position-groups h3 { margin-top: 2.2rem; }
.cp-position {
    padding: 18px 0 6px;
    border-top: 1px solid var(--cp-rule);
    scroll-margin-top: calc(var(--cp-header-h) + 20px);
}
.cp-position.is-target, .cp-position:target { background: linear-gradient(90deg, rgba(184, 147, 63, 0.12), transparent 60%); }
.cp-position__head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 0.4rem; }
.cp-position__id { flex: 0 0 auto; color: var(--cp-signal); text-decoration: none; font-weight: 500; }
.cp-position__id:hover { text-decoration: underline; }
.cp-position__topic { margin: 0; font-family: var(--cp-sans); font-size: 1rem; font-weight: 600; line-height: 1.4; color: var(--cp-ink); }
.cp-position .cp-quote-gov { margin: 0.75rem 0 0.9rem; }
.cp-position__adopted, .cp-position__contrast { font-size: 0.92rem; margin: 0 0 0.7rem; max-width: var(--cp-measure); }
.cp-position__adopted strong { color: var(--cp-verified); }
.cp-position__contrast strong { color: var(--cp-signal); }
.cp-holdings__quote, .cp-transcript__text { min-width: 320px; font-family: var(--cp-serif); font-size: 0.98rem; line-height: 1.5; }
.cp-tristate td:nth-child(3) { min-width: 260px; }
.cp-letter-pattern { margin: 0 0 2rem; padding-top: 4px; }
.cp-letter-pattern__title { margin: 0 0 0.25rem; font-size: 1.05rem; }
.cp-letter-pattern .cp-quote-irs, .cp-letter-pattern .cp-answer { margin: 0.75rem 0; }
.cp-letter-pattern__by { font-size: 0.9rem; margin: 0 0 0.4rem; }
.cp-letter-pattern__by a { text-decoration: none; color: var(--cp-signal); }
.cp-letter-pattern__by a:hover { text-decoration: underline; }
.cp-citation-key dt { font-family: var(--cp-mono); }

/* Letter decoder: intro, form card, checkboxes, results. */
.cp-letter-intro { padding: 32px 0 8px; }
.cp-letter-card { padding: 28px 28px 22px; }
.cp-letter-card h2 { margin-top: 0; }
.cp-letter-checks { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; }
.cp-letter-checks__item { border-top: 1px solid var(--cp-rule); padding: 9px 0; }
.cp-letter-checks__item:first-child { border-top: 0; }
.cp-letter-checks__num { font-family: var(--cp-mono); color: var(--cp-muted); }
.cp-letter-checks__badge { display: none; margin-left: 6px; vertical-align: middle; }
.cp-letter-checks__item.is-suggested { background: linear-gradient(90deg, rgba(168, 50, 30, 0.07), transparent 70%); }
.cp-letter-checks__item.is-suggested .cp-letter-checks__badge { display: inline-block; }
.cp-letter-status { min-height: 1.4em; }
.cp-letter-results { scroll-margin-top: calc(var(--cp-header-h) + 16px); }
.cp-letter-results:focus { outline: none; }
.cp-letter-results h2 { margin-top: 0; }
.cp-decoded { margin: 1.75rem 0 0; padding: 20px 24px 18px; background: var(--cp-card); border: 1px solid var(--cp-rule); border-radius: var(--cp-radius); }
.cp-decoded__head { display: flex; align-items: flex-start; gap: 16px; }
.cp-decoded__title { margin: 4px 0 2px; font-size: 1.3rem; }
.cp-decoded__how { margin: 0; }
.cp-decoded .cp-quote-irs, .cp-decoded .cp-answer { margin: 1rem 0; }
.cp-decoded__more { margin: 0.5rem 0 0; font-weight: 600; }
.cp-decoded__more a { text-decoration: none; }
.cp-decoded__more a:hover { text-decoration: underline; }
.cp-decoded__positions { margin-top: 1rem; padding-top: 12px; border-top: 1px solid var(--cp-rule); }
.cp-decoded__positions .cp-toc__title { margin-bottom: 6px; }
.cp-ground-num--pattern { background: var(--cp-ink); }
.cp-letter-results__actions { margin-top: 2rem; }

@media (max-width: 900px) {
    .cp-irs-rail__inner { position: static; max-height: none; overflow: visible; }
    .cp-ground-positions { margin: 0 0 28px; }
    .cp-ground-nav { grid-template-columns: minmax(0, 1fr); }
    .cp-ground-nav__link--empty { display: none; }
    .cp-ground-nav__link--next { text-align: left; align-items: flex-start; }
    .cp-ground-nav__link--all { text-align: left; align-items: flex-start; }
    .cp-letter-card { padding: 20px 18px 16px; }
    .cp-decoded { padding: 16px 16px 14px; }
}
@media print {
    .cp-irs-rail, .cp-ground-nav, .cp-letter-card, .cp-letter-results__actions, .cp-filter-bar { display: none; }
    .cp-page-irs .cp-article > .cp-article__body { grid-column: auto; }
    .cp-decoded { break-inside: avoid; }
}

/* ==========================================================================
   Footer pages: about, methodology, sources, contact, privacy, terms.
   Prefix cp-fp-. Everything below belongs to those six pages; other pages
   append their own block after this one and never edit it.
   ========================================================================== */

/* The fragments open with a plain-terms box (<div class="cp-plain">); render it as the lede. */
.cp-fp-article .cp-plain {
    margin: 0 0 2rem;
    padding: 18px 22px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-left: 4px solid var(--cp-gold);
    border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
    font-family: var(--cp-serif);
    font-size: 1.15rem;
    line-height: 1.5;
    color: var(--cp-ink);
}

.cp-fp-article .cp-plain p { margin: 0; max-width: none; }
.cp-fp-article .cp-plain p + p { margin-top: 0.6rem; }
.cp-fp-article .cp-plain + h2 { margin-top: 0; padding-top: 0; border-top: 0; }

/* The article layout styles the first paragraph as a lede; on these pages the lede is the plain box or an explicit .cp-lede. */
.cp-fp-article > p:first-of-type:not(.cp-lede) {
    font-family: var(--cp-sans);
    font-size: inherit;
    line-height: inherit;
    color: inherit;
}

.cp-fp-rail-links li { padding: 4px 0; }
.cp-fp-rail-links a { text-decoration: none; }
.cp-fp-rail-links a:hover { text-decoration: underline; color: var(--cp-signal); }

/* Methodology: the grades card and the identifier scheme table. */
.cp-fp-grades__list { margin: 0.5rem 0 0.75rem; }

.cp-fp-grades__row {
    display: grid;
    grid-template-columns: max-content minmax(0, 1fr);
    gap: 6px 16px;
    align-items: start;
    padding: 10px 0;
    border-top: 1px solid var(--cp-rule-2);
}

.cp-fp-grades__row:first-child { border-top: 0; padding-top: 0; }
.cp-fp-grades__row dt { margin: 0; padding-top: 2px; }
.cp-fp-grades__row dd { margin: 0; }

.cp-fp-prefix { font-size: 0.85rem; white-space: nowrap; }
.cp-fp-scheme td:nth-child(2) { font-size: 0.9rem; }

/* Sources. */
.cp-fp-layers td:first-child { font-weight: 500; }
.cp-fp-sources .cp-card__body { font-size: 0.92rem; }

/* Contact. */
.cp-fp-form-card {
    max-width: none;
    padding: 24px 28px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    box-shadow: var(--cp-shadow-soft);
}

.cp-fp-form-card .is-invalid { border-color: var(--cp-signal); }
.cp-fp-form-card .cp-form__status { flex: 1 1 240px; }
.cp-fp-form-errors { margin-top: 0; }
.cp-fp-thanks { margin-top: 0; }
.cp-fp-contact-aside .cp-callout { margin-top: 0; }
.cp-fp-contact-aside .cp-callout + .cp-callout { margin-top: 1rem; }

/* The honeypot field sits off screen for people and in the form for automated posts. */
.cp-fp-hp {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 640px) {
    .cp-fp-form-card { padding: 18px 16px; }
    .cp-fp-grades__row { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

@media print {
    .cp-fp-hp,
    .cp-fp-rail { display: none; }
}

/* ==========================================================================
   industries.aspx and industry.aspx (The Industries): the 27-card grid, the
   NAICS finder, the shared industry header, the eight-page sub-navigation,
   the partial-suspension panel, the regime table and the part pager.
   Prefix cp-ind-. Appended by the industries agent; edit only this block.
   ========================================================================== */
.cp-ind-cards { margin-top: 8px; }

.cp-ind-card {
    padding-top: 16px;
    border-top: 3px solid var(--cp-gold);
}

.cp-ind-card:hover {
    border-top-color: var(--cp-signal);
    transform: translateY(-4px);
}

.cp-ind-card__num {
    display: block;
    font-family: var(--cp-mono);
    font-size: 0.74rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp-secondary);
    margin-bottom: 6px;
}

.cp-ind-card .cp-card__title { font-size: 1.15rem; }
.cp-ind-card .cp-card__body { font-size: 0.9rem; }
.cp-ind-card .cp-card__foot { font-family: var(--cp-mono); font-size: 0.76rem; color: var(--cp-muted); }

.cp-ind-finder {
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    box-shadow: var(--cp-shadow);
    padding: 24px 28px 20px;
}

.cp-ind-finder__label {
    display: block;
    font-family: var(--cp-serif);
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--cp-ink);
    margin: 0 0 6px;
}

.cp-ind-finder__help {
    font-size: 0.9rem;
    color: var(--cp-muted);
    margin: 0 0 14px;
    max-width: 68ch;
}

.cp-ind-finder .cp-search--light { max-width: 640px; }

.cp-ind-finder__examples {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
    align-items: center;
    margin: 14px 0 0;
    font-size: 0.85rem;
    color: var(--cp-muted);
}

.cp-ind-finder__examples .cp-chip { --chip: var(--cp-ink-2); font-weight: 500; letter-spacing: 0; }

.cp-ind-results { margin-top: 20px; }
.cp-ind-results .cp-results-bar { margin-bottom: 0; }
.cp-ind-results .cp-table-wrap { margin-top: 0; border-top: 0; border-radius: 0 0 var(--cp-radius) var(--cp-radius); }
.cp-ind-results__code { font-family: var(--cp-mono); white-space: nowrap; }

.cp-ind-results__note {
    display: block;
    font-size: 0.78rem;
    line-height: 1.4;
    color: var(--cp-muted);
    margin-top: 2px;
    font-family: var(--cp-sans);
    white-space: normal;
}

.cp-ind-results .cp-table td a .cp-mono { margin-right: 2px; }

.cp-ind-pagehead { padding-bottom: 0; }
.cp-ind-pagehead h1 { margin-bottom: 0.6rem; }

.cp-ind-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 32px;
}

.cp-ind-head__main { flex: 1 1 auto; min-width: 0; }

.cp-ind-head__actions {
    display: flex;
    flex-direction: column;
    gap: 10px;
    flex: 0 0 auto;
    padding-top: 36px;
}

.cp-ind-fnchips {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
}

.cp-ind-fnchip {
    --chip: var(--cp-ink-2);
    gap: 6px;
    padding: 3px 9px 3px 7px;
    font-weight: 500;
    letter-spacing: 0;
    white-space: normal;
}

.cp-ind-fnchip__code {
    font-family: var(--cp-mono);
    font-weight: 600;
    font-size: 0.78rem;
    letter-spacing: 0.06em;
    color: var(--cp-secondary);
}

a.cp-ind-fnchip:hover .cp-ind-fnchip__code { color: #fff; }

.cp-ind-subnav {
    margin: 22px 0 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
}

.cp-ind-subnav .cp-tabs__list {
    flex-wrap: nowrap;
    margin: 0;
    min-width: max-content;
    border-bottom: 0;
}

.cp-ind-subnav .cp-tabs__list li { margin: 0; }
.cp-ind-subnav .cp-tab { display: inline-block; padding: 12px 14px; }

.cp-ind-article { padding-top: 28px; }

.cp-ind-overview .cp-plain > p { max-width: var(--cp-measure); font-size: 1.04rem; }
.cp-ind-overview .cp-plain > p:first-child {
    font-family: var(--cp-serif);
    font-size: 1.24rem;
    line-height: 1.5;
    color: var(--cp-ink);
}

.cp-article__body section[data-part] > h2:first-child { border-top: 0; padding-top: 0; margin-top: 0; }
.cp-article__body section[data-part] > h3 { scroll-margin-top: calc(var(--cp-header-h) + 20px); }
.cp-ind-body h2 { scroll-margin-top: calc(var(--cp-header-h) + 20px); }

.cp-ind-panel {
    margin: 2.5rem 0;
    padding: 22px 26px 18px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-left: 4px solid var(--cp-gold);
    border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
}

.cp-ind-panel > h2 { border-top: 0 !important; padding-top: 0 !important; margin-top: 0 !important; font-size: 1.55rem; }
.cp-ind-panel > p { max-width: var(--cp-measure); }

.cp-ind-steps {
    list-style: none;
    counter-reset: cp-step;
    margin: 1rem 0 0;
    padding: 0;
}

.cp-ind-steps > li {
    counter-increment: cp-step;
    position: relative;
    padding: 12px 0 12px 54px;
    border-top: 1px solid var(--cp-rule-2);
    font-size: 0.95rem;
    line-height: 1.55;
    max-width: none;
}

.cp-ind-steps > li::before {
    content: counter(cp-step);
    position: absolute;
    left: 0;
    top: 12px;
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--cp-ink);
    color: #fff;
    font-family: var(--cp-serif);
    font-size: 1.1rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.cp-ind-steps__label {
    display: block;
    font-weight: 600;
    color: var(--cp-ink);
    margin-bottom: 2px;
}

.cp-ind-steps .cp-chips { display: inline-flex; vertical-align: middle; margin: 2px 2px; }
.cp-ind-steps .cp-ind-fnchip { white-space: nowrap; }

.cp-ind-keytable td:first-child { width: 6ch; }

.cp-ind-fncode {
    display: inline-block;
    font-family: var(--cp-mono);
    font-size: 0.78rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--cp-secondary);
    border-bottom: 1px dotted var(--cp-gold);
    margin-right: 3px;
    cursor: help;
}

.cp-ind-filter {
    display: flex;
    flex-wrap: wrap;
    gap: 10px 16px;
    align-items: center;
    margin: 12px 0 0;
}

.cp-ind-filter .cp-input { max-width: 320px; min-height: 40px; }
.cp-ind-filter__count { font-family: var(--cp-mono); font-size: 0.82rem; color: var(--cp-muted); }

.cp-ind-regime td {
    min-width: 20ch;
    max-width: 46ch;
    font-size: 0.8rem;
    line-height: 1.45;
    white-space: normal;
}

.cp-ind-regime td.cp-ind-regime__state { min-width: 0; white-space: nowrap; font-weight: 600; }
.cp-ind-regime td.cp-ind-regime__state a { text-decoration: none; }
.cp-ind-regime td.cp-ind-regime__state .cp-mono { color: var(--cp-muted); font-size: 0.76rem; font-weight: 400; margin-left: 6px; }
.cp-ind-regime tbody tr[hidden] { display: none; }
.cp-ind-regime .cp-badge { white-space: nowrap; }

.cp-ind-regulators td, .cp-ind-sector td, .cp-ind-meetings td { white-space: normal; }
.cp-ind-regulators td:nth-child(2) { min-width: 26ch; }

.cp-ind-parts .cp-card__title { font-size: 1.12rem; }

.cp-ind-pager {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin: 2.5rem 0 0;
    padding-top: 18px;
    border-top: 1px solid var(--cp-rule);
    font-size: 0.95rem;
}

.cp-ind-pager a { text-decoration: none; max-width: 48%; font-family: var(--cp-serif); font-size: 1.05rem; }
.cp-ind-pager__next { text-align: right; margin-left: auto; }

.cp-ind-pager__label {
    display: block;
    font-family: var(--cp-sans);
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cp-muted);
    margin-bottom: 2px;
}

.cp-ind-qchips { margin: 0 0 1.5rem; }
.cp-ind-qchips .cp-chip { font-size: 0.84rem; padding: 4px 11px; }

.cp-ind-rail { min-width: 0; }

@media (max-width: 900px) {
    .cp-ind-head { flex-direction: column; gap: 16px; }
    .cp-ind-head__actions { flex-direction: row; flex-wrap: wrap; padding-top: 0; }
    .cp-ind-regime td { max-width: 70vw; }
    .cp-ind-rail .cp-toc ol ol { display: none; }
}

@media (max-width: 640px) {
    .cp-ind-finder { padding: 18px 16px 16px; }
    .cp-ind-head__actions .cp-btn { flex: 1 1 100%; }
    .cp-ind-steps > li { padding-left: 44px; }
    .cp-ind-steps > li::before { width: 30px; height: 30px; font-size: 0.95rem; }
    .cp-ind-pager { flex-direction: column; }
    .cp-ind-pager a { max-width: none; }
    .cp-ind-pager__next { text-align: left; margin-left: 0; }
}

@media print {
    .cp-ind-subnav, .cp-ind-filter, .cp-ind-head__actions, .cp-ind-pager, .cp-ind-finder { display: none !important; }
    .cp-ind-regime td { max-width: none; min-width: 0; }
    .cp-ind-panel { break-inside: avoid; }
}

/* ==========================================================================
   Layers pages: federal.aspx, agencies.aspx, agency.aspx, duties.aspx,
   meetings.aspx. The summary-and-aside grid, the quarter and character
   filter bars over a records table, the duties picker and its State blocks,
   the agency cards' counts and the meetings table cells.
   ========================================================================== */
.cp-layer__scope { max-width: 90ch; margin: -8px 0 16px; }
.cp-layer-actions { margin: 0 0 20px; }
.cp-layer__grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 40px; align-items: start; margin-bottom: 8px; }
.cp-layer__summary h3:first-child, .cp-layer__aside h3:first-child { margin-top: 0; }
.cp-layer__aside h3 { font-family: var(--cp-sans); font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-muted); margin: 1.4rem 0 0.5rem; }
.cp-layer__aside .cp-quarter-strip { margin: 0.5rem 0 0; }
.cp-layer__aside .cp-quarter-strip__q { line-height: 1.3; }
.cp-layer-rail .cp-list-rule > li { padding: 8px 0; font-size: 0.9rem; }
.cp-layer-rail a { text-decoration: none; }
.cp-layer-rail a:hover { text-decoration: underline; }
.cp-quarters-table th[scope="row"] { white-space: nowrap; vertical-align: top; }
.cp-quarters-table__dates { display: block; margin-top: 4px; font-family: var(--cp-mono); font-size: 0.72rem; font-weight: 400; color: var(--cp-muted); }
.cp-quarters-table td { font-size: 0.86rem; max-width: 60ch; }

/* quarter and character filter bars over a records table */
.cp-qtabs { display: flex; flex-wrap: wrap; gap: 6px; margin: 0.75rem 0 0.5rem; }
.cp-qtabs__btn { --q: var(--cp-ink); display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; border: 1px solid var(--cp-rule); border-radius: 999px; background: var(--cp-card); color: var(--cp-muted); font-family: var(--cp-sans); font-size: 0.82rem; font-weight: 600; cursor: pointer; transition: background 0.15s var(--cp-ease), border-color 0.15s var(--cp-ease), color 0.15s var(--cp-ease); }
.cp-qtabs__btn::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--q); flex: 0 0 auto; }
.cp-qtabs__btn:hover { border-color: var(--q); color: var(--cp-ink); }
.cp-qtabs__btn[aria-pressed="true"] { background: var(--q); border-color: var(--q); color: #fff; }
.cp-qtabs__btn[aria-pressed="true"]::before { background: rgba(255, 255, 255, 0.85); }
.cp-qtabs__n { font-family: var(--cp-mono); font-weight: 400; font-size: 0.78rem; opacity: 0.85; }
.cp-qtabs__btn[data-quarter="2020Q2"] { --q: var(--cp-q1); }
.cp-qtabs__btn[data-quarter="2020Q3"] { --q: var(--cp-q2); }
.cp-qtabs__btn[data-quarter="2020Q4"] { --q: var(--cp-q3); }
.cp-qtabs__btn[data-quarter="2021Q1"] { --q: var(--cp-q4); }
.cp-qtabs__btn[data-quarter="2021Q2"] { --q: var(--cp-q5); }
.cp-qtabs__btn[data-quarter="2021Q3"] { --q: var(--cp-q6); }
.cp-qtabs--character .cp-qtabs__btn[data-value="binding"] { --q: var(--cp-verified); }
.cp-qtabs--character .cp-qtabs__btn[data-value="context"] { --q: var(--cp-muted); }
.cp-filter-status { margin: 0 0 0.5rem; }
.cp-records__title { display: block; color: var(--cp-muted); font-size: 0.76rem; line-height: 1.35; margin-top: 2px; }
.cp-records__quarters { white-space: nowrap; }
.cp-states-reached .cp-chip { font-family: var(--cp-mono); }

/* agency cards */
.cp-agency-card__counts { justify-content: flex-start; gap: 14px; }
.cp-agency-card__counts .cp-card__arrow { margin-left: auto; }

/* the duties picker and the State blocks */
.cp-duty-picker { max-width: 560px; margin-bottom: 20px; }
.cp-duty-list { display: flex; flex-direction: column; gap: 8px; }
.cp-duty { border: 1px solid var(--cp-rule); border-radius: var(--cp-radius); background: var(--cp-card); scroll-margin-top: calc(var(--cp-header-h) + 16px); }
.cp-duty:target, .cp-duty[open] { border-color: var(--cp-gold); }
.cp-duty__summary { list-style: none; display: flex; align-items: center; gap: 14px; padding: 12px 16px; cursor: pointer; font-family: var(--cp-serif); font-size: 1.15rem; color: var(--cp-ink); }
.cp-duty__summary::-webkit-details-marker { display: none; }
.cp-duty__summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid var(--cp-muted); border-bottom: 2px solid var(--cp-muted); transform: rotate(45deg); transition: transform 0.2s var(--cp-ease); flex: 0 0 auto; margin-right: 4px; }
.cp-duty[open] .cp-duty__summary::after { transform: rotate(-135deg); }
.cp-duty__code { font-size: 0.8rem; color: var(--cp-secondary); letter-spacing: 0.06em; min-width: 3ch; }
.cp-duty__name { flex: 1 1 auto; }
.cp-duty__count { font-family: var(--cp-mono); font-size: 0.78rem; color: var(--cp-muted); white-space: nowrap; }
.cp-duty__body { padding: 4px 16px 18px; border-top: 1px solid var(--cp-rule-2); }
.cp-duty__body .cp-layer__grid { margin-top: 12px; }
.cp-duty-table__cite { font-size: 0.84rem; max-width: 34ch; }
.cp-duty-table__penalty { font-size: 0.82rem; max-width: 40ch; }
.cp-duty-table .cp-clause { font-size: 0.92rem; }
.cp-duties-article .cp-plain p { font-size: 1.05rem; }
.cp-duties-article .cp-table { font-size: 0.82rem; }
.cp-duties-article .cp-table td, .cp-duties-article .cp-table th[scope="row"] { min-width: 18ch; vertical-align: top; }

/* meetings */
.cp-meeting-filters { align-items: flex-end; }
.cp-meeting-table__title { display: block; font-weight: 600; text-decoration: none; }
.cp-meeting-table__title:hover { text-decoration: underline; }
.cp-meeting-table__organizer { display: block; margin-top: 2px; }
.cp-meeting-table__quote { display: block; margin-top: 4px; font-family: var(--cp-serif); font-size: 0.92rem; line-height: 1.45; color: var(--cp-text); max-width: 60ch; }
.cp-meeting-table__event > .cp-mono { display: block; margin-top: 4px; }
.cp-meeting-table__links a { white-space: nowrap; }

@media (max-width: 900px) {
    .cp-layer__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
}

@media (max-width: 640px) {
    .cp-duty__summary { flex-wrap: wrap; font-size: 1.02rem; gap: 8px 12px; }
    .cp-duty__count { width: 100%; }
    .cp-qtabs__btn { padding: 5px 10px; font-size: 0.76rem; }
}

@media print {
    .cp-table tr.is-hidden { display: table-row; }
    .cp-qtabs, .cp-filter-status, .cp-layer-actions, .cp-duty-picker { display: none !important; }
}

/* ==========================================================================
   library.aspx, record.aspx and download.ashx (the Library pages)
   Prefixes cp-lib- (the faceted search) and cp-rec- (the record page).
   ========================================================================== */

/* --- library: head, search, browse strip --------------------------------- */
.cp-lib-head .cp-pagehead__lead { margin-bottom: 18px; }

.cp-lib-search { max-width: 760px; }
.cp-lib-search__box { height: 50px; }
.cp-lib-search__box .cp-search__input { font-size: 1.02rem; }
.cp-lib-search__help { margin: 8px 0 0; }

.cp-lib-browse {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px 8px;
    margin-top: 18px;
    font-size: 0.85rem;
}

.cp-lib-browse__label {
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cp-muted);
    margin-right: 4px;
}

.cp-lib-browse a {
    display: inline-flex;
    align-items: center;
    min-height: 30px;
    padding: 0 11px;
    border: 1px solid var(--cp-rule);
    border-radius: 999px;
    background: var(--cp-card);
    color: var(--cp-ink-2);
    text-decoration: none;
    white-space: nowrap;
    transition: border-color 0.15s var(--cp-ease), color 0.15s var(--cp-ease);
}

.cp-lib-browse a:hover { border-color: var(--cp-gold); color: var(--cp-signal); }

/* --- library: layout ------------------------------------------------------ */
.cp-lib-layout {
    display: grid;
    grid-template-columns: 260px minmax(0, 1fr);
    gap: 32px;
    align-items: start;
}

.cp-lib-layout.is-loading .cp-lib-results { opacity: 0.55; transition: opacity 0.15s var(--cp-ease); }
.cp-lib-layout.is-loading .cp-lib-facets { opacity: 0.7; }

.cp-lib-facets {
    position: sticky;
    top: calc(var(--cp-header-h) + 16px);
    max-height: calc(100vh - var(--cp-header-h) - 32px);
    overflow-y: auto;
    padding-right: 2px;
}

.cp-lib-facets .cp-facet__item {
    text-decoration: none;
    color: var(--cp-text);
}

.cp-lib-facets .cp-facet__item::before {
    content: "";
    width: 12px;
    height: 12px;
    flex: 0 0 auto;
    border: 1px solid var(--cp-rule);
    border-radius: 2px;
    background: var(--cp-card);
}

.cp-lib-facets .cp-facet__item:hover { color: var(--cp-signal); }
.cp-lib-facets .cp-facet__item.is-selected::before { background: var(--cp-signal); border-color: var(--cp-signal); }
.cp-lib-facets .cp-facet__item.is-selected .cp-facet__label { color: var(--cp-ink); }

.cp-lib-results { min-width: 0; }

/* --- library: results bar, controls, download menu ------------------------ */
.cp-lib-count { font-size: 0.92rem; color: var(--cp-text); }
.cp-lib-count strong { font-size: 1.05rem; }

.cp-lib-controls {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px 14px;
}

.cp-lib-control {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 0.82rem;
    color: var(--cp-muted);
}

.cp-lib-controls .cp-select {
    width: auto;
    min-height: 34px;
    padding: 4px 30px 4px 10px;
    font-size: 0.85rem;
    background-position: right 9px center;
}

.cp-js .cp-lib-apply { display: none; }

.cp-lib-menu { position: relative; }
.cp-lib-menu > summary { list-style: none; }
.cp-lib-menu > summary::-webkit-details-marker { display: none; }
.cp-lib-menu > summary::after {
    content: "";
    width: 6px;
    height: 6px;
    margin-left: 2px;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
}

.cp-lib-menu__list {
    position: absolute;
    right: 0;
    top: calc(100% + 6px);
    z-index: 20;
    min-width: 300px;
    margin: 0;
    padding: 6px 0;
    list-style: none;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    box-shadow: var(--cp-shadow);
    font-size: 0.88rem;
}

.cp-lib-menu__list li { margin: 0; }

.cp-lib-menu__list a,
.cp-lib-menu__list button,
.cp-lib-menu__list span {
    display: block;
    width: 100%;
    padding: 8px 14px;
    text-align: left;
    color: var(--cp-ink-2);
    text-decoration: none;
}

.cp-lib-menu__list a:hover,
.cp-lib-menu__list button:hover { background: var(--cp-paper); color: var(--cp-signal); }
.cp-lib-menu__list .is-disabled { color: var(--cp-muted); cursor: not-allowed; }
.cp-lib-menu__list a[aria-disabled="true"] { color: var(--cp-muted); pointer-events: none; }
.cp-lib-zip-note { color: var(--cp-muted); font-family: var(--cp-mono); font-size: 0.8em; }

/* --- library: active chips ------------------------------------------------ */
.cp-lib-chip { cursor: pointer; }
.cp-lib-chip[data-kind="q"] { --chip: var(--cp-ink); }
.cp-lib-chip__x { font-size: 1.05em; line-height: 1; opacity: 0.7; }
.cp-lib-chip:hover .cp-lib-chip__x { opacity: 1; }

/* --- library: table ------------------------------------------------------- */
.cp-lib-table .cp-lib-instr a { text-decoration: none; color: var(--cp-ink); font-weight: 500; }
.cp-lib-table .cp-lib-instr a:hover { color: var(--cp-signal); text-decoration: underline; }
.cp-lib-table .cp-lib-instr small,
.cp-lib-table .cp-lib-juris small {
    display: block;
    margin-top: 2px;
    font-size: 0.78rem;
    line-height: 1.35;
    color: var(--cp-muted);
}
.cp-lib-table .cp-lib-instr { min-width: 220px; max-width: 34ch; }
.cp-lib-table .cp-lib-issuer { max-width: 22ch; }
.cp-lib-table .cp-lib-juris { white-space: nowrap; }
.cp-lib-table .cp-lib-file { text-align: center; width: 40px; }
.cp-lib-file__link { display: inline-flex; color: var(--cp-signal); }
.cp-lib-file__link:hover { color: var(--cp-ink); }
.cp-lib-table .cp-chips { gap: 4px; }
.cp-lib-table .cp-chip { font-size: 0.7rem; padding: 1px 6px; }
.cp-lib-table .cp-badge { white-space: nowrap; }

.cp-lib-pager { margin-top: 8px; }

/* --- record page ---------------------------------------------------------- */
.cp-rec-head .cp-crumbs { margin-bottom: 18px; }
.cp-rec-head .cp-record-head__id .cp-ex { font-size: 1rem; }
.cp-rec-title {
    font-family: var(--cp-serif);
    font-size: 1.2rem;
    line-height: 1.35;
    color: var(--cp-text);
    margin: 0 0 0.6rem;
}
.cp-rec-actions { margin: 6px 0 0; justify-content: flex-end; }

.cp-rec-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 320px;
    gap: 40px;
    align-items: start;
}

.cp-rec-main { min-width: 0; }
.cp-rec-main h2 { font-size: 1.35rem; margin-top: 2rem; }
.cp-rec-facts dd .cp-chips { display: inline-flex; }
.cp-rec-facts .cp-quarter-strip { margin: 8px 0 0; max-width: 420px; }
.cp-rec-list { font-size: 0.92rem; }
.cp-rec-list li { margin: 0 0 3px; }
.cp-rec-retrieval { font-size: 0.88rem; }

.cp-rec-aside { position: sticky; top: calc(var(--cp-header-h) + 16px); }
.cp-rec-cite { margin: 0 0 16px; }
.cp-rec-cite__text {
    font-family: var(--cp-mono);
    font-size: 0.86rem;
    line-height: 1.5;
    color: var(--cp-ink);
    margin: 0 0 10px;
    overflow-wrap: anywhere;
}
.cp-rec-box { margin: 0 0 16px; }
.cp-rec-box .cp-kicker { margin-bottom: 6px; }
.cp-rec-links li { padding: 7px 0; font-size: 0.88rem; }
.cp-rec-links a { text-decoration: none; }
.cp-rec-links a:hover { text-decoration: underline; }

.cp-rec-related { margin-top: 40px; }
.cp-rec-related .cp-section__head { margin-bottom: 8px; }
.cp-rec-sub { display: block; font-size: 0.76rem; }

.cp-clause-block[data-kind="meeting"]::before { content: "The organizer's words, verbatim"; }
.cp-clause-block[data-kind="duty"]::before { content: "The duty, verbatim"; }
.cp-clause-block[data-kind="gov"]::before { content: "The filing's words, verbatim"; }
.cp-clause-block[data-kind="law"]::before { content: "The text, verbatim"; }
.cp-clause-block[data-kind="context"]::before { content: "The words, verbatim"; }

@media (max-width: 1100px) {
    .cp-rec-grid { grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; }
}

@media (max-width: 900px) {
    .cp-lib-layout { grid-template-columns: minmax(0, 1fr); gap: 20px; }
    .cp-lib-facets { position: static; max-height: none; overflow: visible; }
    .cp-lib-facets .cp-facets { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .cp-rec-grid { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .cp-rec-aside { position: static; }
    .cp-rec-actions { justify-content: flex-start; }
}

@media (max-width: 640px) {
    .cp-lib-facets .cp-facets { grid-template-columns: minmax(0, 1fr); }
    .cp-lib-menu__list { right: auto; left: 0; min-width: 260px; }
    .cp-lib-controls { width: 100%; }
    .cp-lib-table .cp-lib-instr { min-width: 180px; }
}

@media print {
    .cp-lib-browse, .cp-lib-search, .cp-lib-controls, .cp-lib-menu, .cp-lib-facets, .cp-lib-pager, .cp-lib-file, .cp-rec-actions, .cp-rec-links, .cp-rec-cite .cp-btn { display: none !important; }
    .cp-lib-layout, .cp-rec-grid { display: block; }
    .cp-lib-table .cp-lib-instr, .cp-lib-table .cp-lib-issuer { max-width: none; }
}

/* ==========================================================================
   browse pages: types.aspx (/library/types), issuers.aspx (/library/issuers),
   calendar.aspx (/library/calendar/{yyyy-mm}) and partial_suspension.aspx
   (/analysis/partial-suspension). Prefixes cp-browse-, cp-type-, cp-minibar,
   cp-issuer-, cp-cal, cp-month-strip, cp-steps, cp-step, cp-cta-band.
   Appended by the browse agent; edit only this block.
   ========================================================================== */

/* The list of browse axes ("Other ways in") and the legend line on the types page. */
.cp-browse-axes {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0 28px;
}

.cp-browse-axes li {
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 10px 0;
    border-top: 1px solid var(--cp-rule-2);
}

.cp-browse-axes a { font-weight: 600; text-decoration: none; }
.cp-browse-axes a:hover { text-decoration: underline; }
.cp-browse-axes span { font-size: 0.85rem; color: var(--cp-muted); }
.cp-browse-legend { margin: 0 0 20px; max-width: 78ch; }

/* Type cards (gold top rule; oxblood and a lift on hover). */
.cp-type-cards { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.cp-type-card { border-top: 3px solid var(--cp-gold); padding-top: 16px; }
.cp-type-card:hover { border-top-color: var(--cp-signal); transform: translateY(-4px); box-shadow: var(--cp-shadow); }

.cp-type-card__head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 10px;
}

.cp-type-card__code { font-family: var(--cp-mono); font-size: 0.74rem; letter-spacing: 0.08em; color: var(--cp-muted); }
.cp-type-card .cp-card__title { font-size: 1.32rem; }
.cp-type-card__def { flex: 0 0 auto; min-height: 4.5em; }
.cp-type-card__count { margin: 12px 0 0; font-size: 1rem; }
.cp-type-card__count a { text-decoration: none; color: var(--cp-ink); }
.cp-type-card__count a:hover { color: var(--cp-signal); }
.cp-type-card__count strong { font-size: 1.45rem; font-weight: 500; }

.cp-type-card__label,
.cp-issuer-card__label {
    margin: 12px 0 4px;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: var(--cp-muted);
}

.cp-type-card__juris { list-style: none; margin: 0; padding: 0; font-size: 0.88rem; }
.cp-type-card__juris li { display: flex; justify-content: space-between; gap: 8px; margin: 0; padding: 4px 0; border-top: 1px solid var(--cp-rule-2); }
.cp-type-card__juris a { text-decoration: none; }
.cp-type-card__juris a:hover { text-decoration: underline; }
.cp-type-card__juris .cp-num { color: var(--cp-muted); font-size: 0.82rem; }
.cp-type-card__foot { align-items: center; }
.cp-type-card__downloads { font-size: 0.85rem; }

/* The six-quarter mini bar: one column per quarter, heights relative to the busiest quarter. */
.cp-minibar { display: flex; align-items: flex-end; gap: 4px; height: 52px; margin: 12px 0 0; }
.cp-minibar__bar { --q: var(--cp-q0); flex: 1 1 0; height: 100%; display: flex; align-items: flex-end; background: var(--cp-paper-2); border-radius: 2px; }
.cp-minibar__fill { display: block; width: 100%; min-height: 2px; background: var(--q); border-radius: 2px 2px 0 0; }
.cp-minibar__bar[data-quarter="2020Q2"] { --q: var(--cp-q1); }
.cp-minibar__bar[data-quarter="2020Q3"] { --q: var(--cp-q2); }
.cp-minibar__bar[data-quarter="2020Q4"] { --q: var(--cp-q3); }
.cp-minibar__bar[data-quarter="2021Q1"] { --q: var(--cp-q4); }
.cp-minibar__bar[data-quarter="2021Q2"] { --q: var(--cp-q5); }
.cp-minibar__bar[data-quarter="2021Q3"] { --q: var(--cp-q6); }

.cp-minibar__labels {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 4px;
    margin-top: 4px;
    font-family: var(--cp-mono);
    font-size: 0.6rem;
    color: var(--cp-muted);
    text-align: center;
}

/* Issuer cards, the alphabetical list and the rules table. */
.cp-issuer-cards { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); }
.cp-issuer-card { border-top: 3px solid var(--cp-gold); padding-top: 16px; }
.cp-issuer-card:hover { border-top-color: var(--cp-signal); transform: translateY(-4px); box-shadow: var(--cp-shadow); }
.cp-issuer-card .cp-card__title { font-size: 1.22rem; }
.cp-issuer-card .cp-card__meta strong { font-size: 1.2rem; font-weight: 500; color: var(--cp-ink); }
.cp-issuer-card__blurb { font-size: 0.9rem; }
.cp-issuer-card__list { list-style: none; margin: 0; padding: 0; font-size: 0.86rem; }
.cp-issuer-card__list li { display: flex; justify-content: space-between; gap: 10px; margin: 0; padding: 4px 0; border-top: 1px solid var(--cp-rule-2); }
.cp-issuer-card__list a { text-decoration: none; min-width: 0; }
.cp-issuer-card__list a:hover { text-decoration: underline; }
.cp-issuer-card__list .cp-num { color: var(--cp-muted); font-size: 0.8rem; flex: 0 0 auto; }
.cp-issuer-card__list--agencies { columns: 2; column-gap: 20px; }
.cp-issuer-card__list--agencies li { break-inside: avoid; }

.cp-issuer-filter { max-width: 520px; margin: 0 0 20px; }
.cp-issuer-filter .cp-field__label { display: block; margin-bottom: 6px; }
.cp-issuer-filter .cp-field__help { min-height: 1.3em; margin-top: 6px; }

.cp-issuer-letters { display: flex; flex-wrap: wrap; gap: 4px; margin: 0 0 16px; }

.cp-issuer-letters a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 30px;
    height: 30px;
    padding: 0 6px;
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    background: var(--cp-paper);
    font-family: var(--cp-mono);
    font-size: 0.8rem;
    text-decoration: none;
}

.cp-issuer-letters a:hover { border-color: var(--cp-gold); color: var(--cp-signal); }
.cp-issuer-letters a[hidden] { display: none; }

.cp-issuer-letter {
    font-size: 1.15rem;
    margin: 22px 0 6px;
    padding-bottom: 4px;
    border-bottom: 1px solid var(--cp-rule);
    scroll-margin-top: calc(var(--cp-header-h) + 16px);
}

.cp-issuer-list { list-style: none; margin: 0; padding: 0; columns: 3; column-gap: 32px; font-size: 0.88rem; }
.cp-issuer-list li { display: flex; justify-content: space-between; gap: 10px; margin: 0; padding: 5px 0; border-bottom: 1px solid var(--cp-rule-2); break-inside: avoid; }
.cp-issuer-list li[hidden] { display: none; }
.cp-issuer-list a { text-decoration: none; min-width: 0; overflow-wrap: anywhere; }
.cp-issuer-list a:hover { text-decoration: underline; }
.cp-issuer-list__n { color: var(--cp-muted); font-size: 0.8rem; flex: 0 0 auto; }
.cp-issuer-rules td:first-child { width: 5ch; }
.cp-issuer-rules td:nth-child(2) { white-space: nowrap; }
.cp-issuer-rules td:nth-child(3) { white-space: normal; min-width: 40ch; }

/* Calendar: the month strip, the seven-column grid and the day view. */
.cp-cal-nav { display: inline-flex; flex-wrap: wrap; gap: 10px; }
.cp-cal-capnote { max-width: 60ch; align-self: center; }

.cp-month-strip {
    display: grid;
    grid-template-columns: repeat(21, minmax(0, 1fr));
    gap: 3px;
    margin: 0 0 20px;
}

.cp-month-strip__m {
    --q: var(--cp-q0);
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1px;
    padding: 6px 2px 5px;
    border: 1px solid var(--cp-rule);
    border-top: 4px solid var(--q);
    border-radius: var(--cp-radius);
    background: var(--cp-card);
    color: var(--cp-text);
    font-family: var(--cp-mono);
    font-size: 0.68rem;
    line-height: 1.2;
    text-decoration: none;
    transition: border-color 0.15s var(--cp-ease), transform 0.15s var(--cp-ease);
}

.cp-month-strip__m:hover { border-color: var(--cp-gold); border-top-color: var(--q); color: var(--cp-ink); transform: translateY(-2px); }
.cp-month-strip__m.is-current { background: var(--cp-ink); border-color: var(--cp-ink); border-top-color: var(--q); color: #fff; }
.cp-month-strip__y { font-size: 0.58rem; color: var(--cp-muted); }
.cp-month-strip__m.is-current .cp-month-strip__y { color: rgba(255, 255, 255, 0.7); }
.cp-month-strip__n { margin-top: 3px; font-size: 0.78rem; font-weight: 500; }
.cp-month-strip__m[data-quarter="pre"] { --q: var(--cp-q0); }
.cp-month-strip__m[data-quarter="2020Q2"] { --q: var(--cp-q1); }
.cp-month-strip__m[data-quarter="2020Q3"] { --q: var(--cp-q2); }
.cp-month-strip__m[data-quarter="2020Q4"] { --q: var(--cp-q3); }
.cp-month-strip__m[data-quarter="2021Q1"] { --q: var(--cp-q4); }
.cp-month-strip__m[data-quarter="2021Q2"] { --q: var(--cp-q5); }
.cp-month-strip__m[data-quarter="2021Q3"] { --q: var(--cp-q6); }

.cp-cal { display: flex; flex-direction: column; gap: 4px; }
.cp-cal__row { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 4px; }
.cp-cal__row--head { margin-bottom: 2px; }
.cp-cal__wd { padding: 4px 8px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-muted); }
.cp-cal__wd abbr { text-decoration: none; }

.cp-cal__day {
    display: flex;
    flex-direction: column;
    min-width: 0;
    min-height: 128px;
    padding: 8px 10px 10px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
}

.cp-cal__day--weekend { background: var(--cp-paper-2); }
.cp-cal__day--quiet { color: var(--cp-muted); }
.cp-cal__day--blank { background: transparent; border-color: transparent; min-height: 0; }
.cp-cal__day.is-selected { border-color: var(--cp-gold); box-shadow: var(--cp-focus); }
.cp-cal__top { display: flex; align-items: baseline; gap: 8px; margin-bottom: 6px; }
.cp-cal__num { font-family: var(--cp-mono); font-size: 1rem; font-weight: 500; color: var(--cp-ink); text-decoration: none; }
a.cp-cal__num:hover { color: var(--cp-signal); text-decoration: underline; }
.cp-cal__day--quiet .cp-cal__num { color: var(--cp-muted); }
.cp-cal__wdname { display: none; font-size: 0.78rem; color: var(--cp-muted); }
.cp-cal__count { margin-left: auto; font-family: var(--cp-mono); font-size: 0.72rem; padding: 0 6px; border-radius: 999px; background: var(--cp-ink); color: #fff; line-height: 1.6; }
.cp-cal__list { list-style: none; margin: 0; padding: 0; font-size: 0.76rem; line-height: 1.35; flex: 1 1 auto; }
.cp-cal__list li { margin: 0 0 5px; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cp-cal__list .cp-ex { font-size: 0.72rem; }
.cp-cal__what { color: var(--cp-muted); }
.cp-cal__more { display: inline-block; margin-top: 6px; font-size: 0.76rem; font-weight: 600; text-decoration: none; }
.cp-cal__more:hover { text-decoration: underline; }

.cp-cal-day {
    margin: 32px 0 0;
    padding-top: 24px;
    border-top: 1px solid var(--cp-rule);
    scroll-margin-top: calc(var(--cp-header-h) + 16px);
}

.cp-cal-day .cp-section__head { align-items: baseline; }
.cp-cal-day__table td { white-space: normal; }
.cp-cal-day__table td:nth-child(4) { min-width: 18ch; }
.cp-cal-day__table td:nth-child(5) { min-width: 24ch; }
.cp-cal-day__table .cp-chips { display: inline-flex; }

/* Partial suspension: the five steps and the closing band. */
.cp-steps-section { padding-bottom: 8px; }
.cp-steps { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.cp-steps > li { margin: 0; display: flex; }

.cp-step {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    width: 100%;
    padding: 20px 20px 18px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    color: var(--cp-text);
    text-decoration: none;
    box-shadow: var(--cp-shadow-soft);
    transition: transform 0.15s var(--cp-ease), border-color 0.15s var(--cp-ease), box-shadow 0.15s var(--cp-ease);
}

.cp-step:hover,
.cp-step:focus-visible { border-top-color: var(--cp-signal); transform: translateY(-4px); box-shadow: var(--cp-shadow); color: var(--cp-text); }

.cp-step__num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--cp-ink);
    color: #fff;
    font-family: var(--cp-serif);
    font-size: 1.25rem;
    font-weight: 500;
}

.cp-step:hover .cp-step__num { background: var(--cp-signal); }
.cp-step__title { font-family: var(--cp-serif); font-size: 1.22rem; font-weight: 500; line-height: 1.2; color: var(--cp-ink); }
.cp-step__text { font-size: 0.88rem; line-height: 1.5; color: var(--cp-text); }

.cp-cta-band { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 40px; align-items: center; }
.cp-cta-band__text h2 { margin-top: 0; }
.cp-cta-band__text p:last-child { margin-bottom: 0; color: rgba(255, 255, 255, 0.8); max-width: 62ch; }
.cp-cta-band .cp-hero__actions { justify-content: flex-end; margin: 0; }

@media (max-width: 1100px) {
    .cp-steps { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .cp-cta-band { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .cp-cta-band .cp-hero__actions { justify-content: flex-start; }
    .cp-issuer-list { columns: 2; }
}

@media (max-width: 900px) {
    .cp-month-strip { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .cp-cal__row--head { display: none; }
    .cp-cal__row { grid-template-columns: minmax(0, 1fr); }
    .cp-cal__day--blank { display: none; }
    .cp-cal__day { min-height: 0; }
    .cp-cal__day--quiet { padding: 6px 10px; }
    .cp-cal__day--quiet .cp-cal__top { margin-bottom: 0; }
    .cp-cal__wdname { display: inline; }
    .cp-cal__list li { white-space: normal; }
}

@media (max-width: 640px) {
    .cp-steps { grid-template-columns: minmax(0, 1fr); }
    .cp-type-cards, .cp-issuer-cards { grid-template-columns: minmax(0, 1fr); }
    .cp-issuer-list { columns: 1; }
    .cp-issuer-card__list--agencies { columns: 1; }
    .cp-cal-nav .cp-btn { flex: 1 1 100%; }
}

@media print {
    .cp-issuer-filter, .cp-issuer-letters, .cp-cal-nav, .cp-month-strip, .cp-steps-section .cp-section__more, .cp-cta-band { display: none !important; }
    .cp-cal__row { grid-template-columns: repeat(7, minmax(0, 1fr)); }
    .cp-cal__row--head { display: grid; }
    .cp-step, .cp-cal__day, .cp-type-card, .cp-issuer-card { break-inside: avoid; }
    .cp-issuer-list li[hidden] { display: flex; }
}

/* ==========================================================================
   Jurisdictions: states.aspx, state.aspx, metros.aspx, metro.aspx (prefix cp-jx-)
   ========================================================================== */
.cp-jx-head .cp-pagehead__lead { max-width: 820px; }
.cp-jx-meta { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.cp-jx-meta__k { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-muted); }
.cp-jx-meta + .cp-jx-meta::before { content: ""; width: 1px; height: 14px; background: var(--cp-rule); margin-right: 6px; }
.cp-jx-stats { margin-top: 24px; }

/* The article grid: the rail (a TOC) is first in the DOM so it leads on phones; on desktop it takes the right column. */
.cp-jx-article > .cp-jx-rail { order: 2; min-width: 0; }
.cp-jx-article > .cp-article__body { order: 1; }
.cp-jx-section { margin-bottom: 2.75rem; }
.cp-jx-section > h2 { scroll-margin-top: calc(var(--cp-header-h) + 20px); }
.cp-jx-section__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.cp-jx-section__head h2 { margin-bottom: 0.6em; }
.cp-jx-summary p { font-size: 1.02rem; }
.cp-jx-scope .cp-kicker { display: block; margin-bottom: 0.2rem; }

/* The six-quarter table: the row heading carries the quarter chip and its long name. */
.cp-jx-qtable th.cp-jx-qcell { vertical-align: top; min-width: 150px; font-weight: 500; }
.cp-jx-qtable .cp-jx-qlabel { display: block; margin-top: 6px; font-family: var(--cp-serif); font-size: 1rem; color: var(--cp-ink); }
.cp-jx-qtable .cp-jx-qlink { display: block; margin-top: 6px; font-weight: 400; }
.cp-jx-qtable td { font-size: 0.9rem; line-height: 1.5; max-width: 58ch; }

/* End of general restrictions and preemption cards. */
.cp-jx-cards { align-items: stretch; }
.cp-jx-card .cp-card__title { margin-bottom: 0.25rem; }
.cp-jx-bigdate { font-family: var(--cp-serif); font-size: 1.9rem; color: var(--cp-ink); }
.cp-jx-bigdate--text { font-size: 1.05rem; line-height: 1.45; }
.cp-jx-card__row { font-size: 0.92rem; margin: 0 0 0.6rem; }
.cp-jx-card__k { display: inline-block; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-muted); margin-right: 4px; }
.cp-jx-card__sub { font-family: var(--cp-sans); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-secondary); margin: 1rem 0 0.4rem; }
.cp-jx-card .cp-card__body p { font-size: 0.92rem; }

/* Lists of in-force / not-in-force items. */
.cp-jx-list li { font-size: 0.92rem; line-height: 1.5; }

/* The sector chronology accordion. */
.cp-jx-acc-group { border: 1px solid var(--cp-rule); border-radius: var(--cp-radius); background: var(--cp-card); }
.cp-jx-acc { border-top: 1px solid var(--cp-rule-2); }
.cp-jx-acc:first-child { border-top: 0; }
.cp-jx-acc__summary { list-style: none; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 16px; font-family: var(--cp-serif); font-size: 1.08rem; font-weight: 500; color: var(--cp-ink); cursor: pointer; }
.cp-jx-acc__summary::-webkit-details-marker { display: none; }
.cp-jx-acc__summary::after { content: ""; width: 8px; height: 8px; flex: 0 0 auto; border-right: 2px solid var(--cp-gold); border-bottom: 2px solid var(--cp-gold); transform: rotate(45deg); transition: transform 0.2s var(--cp-ease); margin-right: 4px; }
.cp-jx-acc[open] .cp-jx-acc__summary::after { transform: rotate(-135deg); }
.cp-jx-acc[open] .cp-jx-acc__summary { color: var(--cp-signal); }
.cp-jx-acc__summary:hover { background: var(--cp-paper); }
.cp-jx-acc__body { padding: 0 16px 14px; font-size: 0.92rem; line-height: 1.55; max-width: 76ch; }
.cp-jx-acc__body p:last-child { margin-bottom: 0; }

/* The standing-duties card. */
.cp-jx-duties .cp-card__body p { font-size: 0.95rem; }
.cp-jx-duties__q { margin: 1rem 0 0; }
.cp-jx-counts { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 4px 16px; font-size: 0.88rem; }
.cp-jx-counts li { margin: 0; }
.cp-jx-counts__n { display: inline-block; min-width: 2ch; font-family: var(--cp-mono); color: var(--cp-ink); font-weight: 500; }
.cp-jx-exlist { line-height: 2; }

/* The calendar: rows past the first forty fold until asked for (scripting on). */
.cp-js .cp-jx-gantt:not(.is-expanded) .cp-jx-gantt__extra { display: none; }
.cp-jx-gantt__more { margin: 0.75rem 0 0; }
.cp-jx-gantt .cp-gantt__bar { text-decoration: none; }
.cp-jx-gantt .cp-gantt__bar:hover, .cp-jx-gantt .cp-gantt__bar:focus-visible { filter: brightness(1.15); outline-offset: 1px; }

/* Quarter pills and type chips above the instrument table. */
.cp-jx-filter { display: flex; flex-direction: column; gap: 10px; margin: 0 0 6px; }
.cp-jx-pills, .cp-jx-chips { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cp-jx-pill { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--cp-rule); border-radius: 999px; background: var(--cp-card); color: var(--cp-muted); font-family: var(--cp-mono); font-size: 0.8rem; font-weight: 500; letter-spacing: 0.03em; cursor: pointer; transition: background 0.12s var(--cp-ease), color 0.12s var(--cp-ease), border-color 0.12s var(--cp-ease); }
.cp-jx-pill:hover { color: var(--cp-ink); border-color: var(--cp-muted); }
.cp-jx-pill[aria-pressed="true"] { background: var(--cp-ink); border-color: var(--cp-ink); color: #fff; }
.cp-jx-pill__n { font-weight: 400; opacity: 0.75; }
button.cp-chip { cursor: pointer; font-size: 0.78rem; padding: 3px 9px; }
button.cp-chip:hover { background: var(--cp-paper-2); }
button.cp-chip[aria-pressed="true"] { background: var(--chip); color: #fff; }
button.cp-chip[aria-pressed="true"]::before { background: rgba(255, 255, 255, 0.85); }
.cp-jx-reset { margin-left: 6px; }
.cp-jx-table td small { display: block; color: var(--cp-muted); font-size: 0.76rem; line-height: 1.35; }
.cp-jx-table .cp-jx-table__inst { min-width: 200px; max-width: 34ch; }
.cp-jx-table .cp-chips { flex-wrap: wrap; gap: 4px; }
.cp-jx-table tr.is-hover td, .cp-jx-states tr.is-hover td, .cp-jx-states tr.is-hover th { background: rgba(184, 147, 63, 0.12); }

/* The download menu (a details element in the page-head actions). */
.cp-jx-menu { position: relative; display: inline-block; }
.cp-jx-menu > summary { list-style: none; }
.cp-jx-menu > summary::-webkit-details-marker { display: none; }
.cp-jx-menu[open] > summary { background: var(--cp-card); border-color: var(--cp-ink); }
.cp-jx-menu__panel { position: absolute; left: 0; top: calc(100% + 6px); z-index: 40; min-width: 320px; max-width: min(420px, calc(100vw - 32px)); padding: 12px 0 6px; background: var(--cp-card); border: 1px solid var(--cp-rule); border-top: 3px solid var(--cp-gold); border-radius: var(--cp-radius); box-shadow: var(--cp-shadow); text-align: left; }
.cp-jx-menu__title { margin: 0 16px 6px; font-size: 0.72rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cp-muted); }
.cp-jx-menu__list, .cp-jx-menu__sub { list-style: none; margin: 0; padding: 0; }
.cp-jx-menu__list li, .cp-jx-menu__sub li { margin: 0; }
.cp-jx-menu__sub { padding-left: 14px; border-left: 2px solid var(--cp-rule-2); margin: 0 0 6px 20px; }
.cp-jx-menu__item { display: block; width: 100%; padding: 8px 16px; background: none; border: 0; text-align: left; font: inherit; font-size: 0.9rem; font-weight: 600; color: var(--cp-ink); text-decoration: none; cursor: pointer; border-radius: 0; }
.cp-jx-menu__item:hover { background: var(--cp-paper); color: var(--cp-signal); }
.cp-jx-menu__item--plain, .cp-jx-menu__item.cp-muted { cursor: default; }
.cp-jx-menu__item--plain:hover, .cp-jx-menu__item.cp-muted:hover { background: none; color: inherit; }
.cp-jx-menu__meta { display: block; font-size: 0.78rem; font-weight: 400; color: var(--cp-muted); line-height: 1.4; }

/* The States map: the five bins (mirrored in states.aspx.cs BinColors) and the legend. */
.cp-jx-map svg a { outline: none; }
.cp-jx-map svg a:focus-visible path { stroke: var(--cp-gold); stroke-width: 2.5; }
.cp-jx-bin-0 { background: #DCD6C9; }
.cp-jx-bin-1 { background: #B6BFCB; }
.cp-jx-bin-2 { background: #8593A8; }
.cp-jx-bin-3 { background: #4F6584; }
.cp-jx-bin-4 { background: #12294A; }
.cp-jx-legend__item { display: inline-flex; align-items: center; font-family: var(--cp-mono); font-size: 0.76rem; }
.cp-jx-legend__hint { margin-left: auto; }
.cp-jx-states th[scope="row"], .cp-jx-metros th[scope="row"] { font-weight: 500; text-align: left; white-space: nowrap; }
.cp-jx-states th[scope="row"] a, .cp-jx-metros th[scope="row"] a { text-decoration: none; }
.cp-jx-states th[scope="row"] a:hover, .cp-jx-metros th[scope="row"] a:hover { text-decoration: underline; }

@media (max-width: 900px) {
    .cp-jx-article > .cp-jx-rail { margin-bottom: 24px; }
    .cp-jx-menu__panel { left: auto; right: 0; }
}

@media (max-width: 640px) {
    .cp-jx-map { padding: 8px; }
    .cp-map__count { display: none; }
    .cp-jx-legend__hint { display: none; }
    .cp-jx-menu { display: block; }
    .cp-jx-menu > summary { width: 100%; }
    .cp-jx-menu__panel { left: 0; right: 0; min-width: 0; max-width: none; }
    .cp-jx-bigdate { font-size: 1.5rem; }
}

@media print {
    .cp-jx-acc { break-inside: avoid; }
    .cp-jx-acc:not([open]) > .cp-jx-acc__body { display: block; }
    .cp-jx-gantt .cp-jx-gantt__extra { display: block !important; }
    .cp-jx-filter, .cp-jx-menu { display: none !important; }
}

/* ==========================================================================
   clock.aspx (/tools/orders-clock): the Orders Clock page
   ========================================================================== */
.cp-clock-page .cp-clock__controls { flex-wrap: wrap; }
.cp-clock-page .cp-clock__when { min-width: 0; }
.cp-clock-page .cp-clock__step { margin-left: 0; flex-wrap: wrap; }
.cp-clock-page .cp-clock__summary { margin-left: auto; }
.cp-clock-page .cp-clock__bands,
.cp-clock-page .cp-clock__ticks { left: 11px; right: 11px; }
.cp-clock-page__typehelp { margin: 10px 0 0; }
.cp-clock-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 360px;
    gap: 24px;
    align-items: start;
    margin-top: 16px;
}
.cp-clock-map svg path[data-fill],
.cp-clock-map svg circle[data-fill] { fill: var(--cp-map-fill); }
.cp-clock-map svg .separator1 { fill: none; pointer-events: none; }
.cp-clock-map svg circle.dccircle { stroke: #fff; stroke-width: 1; cursor: pointer; }
.cp-clock-page__legend { justify-content: flex-start; }
.cp-clock-page__legend-title {
    font-weight: 600;
    color: var(--cp-ink);
    margin-right: 6px;
}
.cp-clock-page__tools {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px 14px;
    margin-top: 14px;
}
.cp-clock-page__tools .cp-field__label { margin: 0; }
.cp-clock-page__select { width: auto; min-width: 220px; min-height: 38px; padding-top: 6px; padding-bottom: 6px; }
.cp-clock-panel {
    position: sticky;
    top: calc(var(--cp-header-h) + 16px);
    max-height: calc(100vh - var(--cp-header-h) - 32px);
    overflow-y: auto;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    padding: 16px 18px 18px;
    transition: opacity 0.15s var(--cp-ease);
}
.cp-clock-panel.is-loading { opacity: 0.55; }
.cp-clock-panel__head { margin-bottom: 12px; }
.cp-clock-panel__head .cp-kicker { margin-bottom: 4px; }
.cp-clock-panel__title {
    font-size: 1.5rem;
    margin: 0 0 6px;
}
.cp-clock-panel__title a { color: inherit; text-decoration: none; }
.cp-clock-panel__title a:hover { color: var(--cp-signal); }
.cp-clock-panel__sub {
    margin: 0 0 8px;
    font-size: 0.9rem;
    color: var(--cp-muted);
}
.cp-clock-panel__sub strong { color: var(--cp-ink); font-family: var(--cp-mono); font-weight: 500; }
.cp-clock-panel__actions { margin-top: 8px; }
.cp-clock-panel__list { border-top: 1px solid var(--cp-rule-2); }
.cp-clock-panel__item {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 10px 0;
    border-bottom: 1px solid var(--cp-rule-2);
    font-size: 0.88rem;
}
.cp-clock-panel__row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 8px;
}
.cp-clock-panel__level {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp-muted);
}
.cp-clock-panel__inst {
    font-weight: 600;
    color: var(--cp-ink);
    text-decoration: none;
}
.cp-clock-panel__inst:hover { color: var(--cp-signal); text-decoration: underline; }
.cp-clock-panel__desc { color: var(--cp-text); font-size: 0.85rem; }
.cp-clock-panel__meta { color: var(--cp-muted); font-size: 0.82rem; }
.cp-clock-panel__item .cp-chips { margin-top: 2px; }
.cp-clock-panel__empty { font-size: 0.9rem; color: var(--cp-muted); }
.cp-clock-panel__links { margin: 12px 0 0; font-size: 0.88rem; display: flex; flex-wrap: wrap; gap: 6px 14px; }
.cp-clock-panel__hint { margin: 10px 0 0; }
.cp-clock-panel__table { font-size: 0.82rem; }
.cp-clock-panel .cp-table-wrap { overflow: visible; }
.cp-clock-panel .cp-table thead th { position: static; white-space: normal; }
.cp-clock-panel .cp-table th, .cp-clock-panel .cp-table td { padding: 5px 6px; }
.cp-clock-panel .cp-table td:first-child .cp-chip { white-space: normal; }
.cp-clock-panel__legend { margin: 8px 0 0; }
/* The year labels sit on the quarter ticks; the month after each would collide with them. */
.cp-clock-page .cp-clock__tick--q + .cp-clock__tick span { display: none; }
@media (max-width: 1100px) {
    .cp-clock-layout { grid-template-columns: minmax(0, 1fr) 320px; }
    .cp-clock-page .cp-clock__tick:not(.cp-clock__tick--q) span { display: none; }
}
@media (max-width: 900px) {
    .cp-clock-layout { grid-template-columns: minmax(0, 1fr); }
    .cp-clock-panel { position: static; max-height: none; }
    .cp-clock-page .cp-clock__summary { margin-left: 0; width: 100%; text-align: left; }
}
@media (max-width: 640px) {
    .cp-clock-page .cp-clock__bands,
    .cp-clock-page .cp-clock__ticks { left: 8px; right: 8px; }
    .cp-clock-page__select { min-width: 0; flex: 1 1 100%; }
}
@media print {
    .cp-clock-panel { position: static; max-height: none; overflow: visible; }
    .cp-clock-page__tools { display: none; }
}

/* ==========================================================================
   cite.aspx (/tools/cite): Cite an order
   ========================================================================== */
.cp-cite__picker { max-width: 720px; margin-bottom: 20px; }
.cp-cite__picker .cp-field__label { display: block; margin-bottom: 6px; }
.cp-cite__picker .cp-field__help { margin-top: 8px; }
.cp-cite__examples { margin: 8px 0 0; display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cp-cite__examples .cp-chip { font-family: var(--cp-mono); text-decoration: none; }
.cp-cite__examples .cp-chip:hover { border-color: var(--cp-gold); color: var(--cp-signal); }
.cp-cite__example--current { border-color: var(--cp-gold); color: var(--cp-ink); background: rgba(184, 147, 63, 0.14); }
.cp-cite__layout {
    display: grid;
    grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);
    gap: 28px;
    align-items: start;
    margin-top: 8px;
}
.cp-cite__record { border-top: 3px solid var(--cp-gold); }
.cp-cite__record-top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 8px; }
.cp-cite__record-title { color: var(--cp-muted); margin: -4px 0 12px; font-size: 0.95rem; }
.cp-cite__record .cp-kv { margin-bottom: 14px; }
.cp-cite__record .cp-cluster a { white-space: nowrap; }
.cp-cite-box {
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    padding: 12px 16px 12px;
    margin: 0 0 14px;
}
.cp-cite-box__head {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    margin-bottom: 6px;
}
.cp-cite-box__label {
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp-muted);
}
.cp-cite-box__text {
    font-family: var(--cp-serif);
    font-size: 1.02rem;
    line-height: 1.5;
    margin: 0;
    overflow-wrap: anywhere;
    color: var(--cp-text);
}
.cp-cite-box__text a:not(.cp-ex) { color: var(--cp-ink); text-decoration-color: var(--cp-rule); }
.cp-cite-box__text a:not(.cp-ex):hover { color: var(--cp-signal); }
.cp-cite-box__note {
    margin: 8px 0 0;
    font-size: 0.82rem;
    color: var(--cp-muted);
}
@media (max-width: 900px) {
    .cp-cite__layout { grid-template-columns: minmax(0, 1fr); }
}
@media print {
    .cp-cite-box__head .cp-btn { display: none; }
}

/* ==========================================================================
   search.aspx (/search): site search
   ========================================================================== */
.cp-search-page__boxwrap { margin-top: 18px; max-width: 760px; }
.cp-search-page__box { position: relative; }
.cp-search-page__box .cp-search__input { font-size: 1.05rem; min-height: 50px; }
.cp-search-page__box .cp-search__btn { width: 52px; }
.cp-search-page__box .cp-suggest__list { left: 0; right: 0; }
.cp-search-page__boxwrap .cp-field__help { margin-top: 8px; }
.cp-search-page__examples { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.cp-search-page__examples .cp-chip { text-decoration: none; }
.cp-search-page__examples .cp-chip:hover { border-color: var(--cp-gold); color: var(--cp-signal); }
.cp-search-page__jump { display: flex; gap: 12px; }
.cp-search-page__group { margin: 0 0 36px; }
.cp-search-page__group .cp-section__head { margin-bottom: 6px; }
.cp-search-page__more { margin: 14px 0 0; }
.cp-search-results > li { padding: 14px 0; border-bottom: 1px solid var(--cp-rule); }
.cp-search-results > li:first-child { border-top: 1px solid var(--cp-rule); }
.cp-search-hit__top { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; font-size: 0.82rem; color: var(--cp-muted); margin-bottom: 4px; }
.cp-search-hit__kind {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: var(--cp-muted);
}
.cp-search-hit__title {
    font-family: var(--cp-sans);
    font-size: 1.08rem;
    font-weight: 600;
    line-height: 1.35;
    margin: 0 0 4px;
}
.cp-search-hit__title a { color: var(--cp-ink); text-decoration: none; }
.cp-search-hit__title a:hover { color: var(--cp-signal); text-decoration: underline; }
.cp-search-hit__meta { margin: 0 0 6px; font-size: 0.88rem; color: var(--cp-muted); }
.cp-search-hit__snippet { font-size: 0.92rem; line-height: 1.55; color: var(--cp-text); }
.cp-search-hit--record .cp-search-hit__snippet { margin: 0 0 6px; font-family: var(--cp-serif); }
.cp-search-hit__chips { display: flex; flex-wrap: wrap; gap: 6px 10px; }
.cp-search-hit__snippets > li { margin: 0 0 6px; }
.cp-search-hit__where {
    display: inline-block;
    font-size: 0.74rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--cp-secondary);
    text-decoration: none;
    margin-right: 4px;
}
.cp-search-hit__where:hover { color: var(--cp-signal); text-decoration: underline; }
mark.cp-hl {
    background: rgba(184, 147, 63, 0.28);
    color: inherit;
    padding: 0 1px;
    border-radius: 2px;
    box-decoration-break: clone;
    -webkit-box-decoration-break: clone;
}
@media (max-width: 640px) {
    .cp-search-page__jump { display: none; }
}

/* ==========================================================================
   quarters.aspx, quarter.aspx, nation.aspx, ecosystem.aspx, broken_leg.aspx
   (the analysis pages of The Story). Scoped under .cp-analysis / .cp-quarter.
   ========================================================================== */

/* The plain-voice opening of every analysis fragment (div.cp-plain). */
.cp-analysis .cp-plain {
    margin: 0 0 2rem;
    padding: 18px 22px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-left: 4px solid var(--cp-gold);
    border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
}

.cp-analysis .cp-plain p {
    font-family: var(--cp-serif);
    font-size: 1.12rem;
    line-height: 1.5;
    color: var(--cp-ink);
    margin: 0;
    max-width: none;
}

.cp-analysis .cp-plain p + p { margin-top: 0.8rem; }

.cp-analysis .cp-article__body > .cp-plain + h2 { border-top: 0; padding-top: 0; margin-top: 0; }

.cp-analysis .cp-article__body table.cp-table { margin: 1.25rem 0; }

.cp-analysis .cp-pagehead__meta strong { color: var(--cp-ink); font-weight: 500; }

/* Jump to a State (nation.aspx) */
.cp-jump { margin-top: 22px; max-width: 520px; }
.cp-jump__row { display: flex; gap: 10px; align-items: stretch; margin-top: 6px; }
.cp-jump__row .cp-select { flex: 1 1 auto; }
.cp-jump__row .cp-btn { flex: 0 0 auto; }
.cp-jump .cp-field__help { margin-top: 6px; }

/* The six quarter cards (quarters.aspx) */
.cp-qcard { padding-bottom: 18px; }
.cp-qcard .cp-card__title { font-size: 1.5rem; margin-top: 4px; }
.cp-qcard__stat { display: block; margin: 8px 0 10px; }
.cp-qcard__num { font-family: var(--cp-mono); font-size: 1.7rem; font-weight: 500; color: var(--cp-ink); letter-spacing: -0.01em; font-feature-settings: "tnum" 1; }
.cp-qcard__label { font-size: 0.85rem; color: var(--cp-muted); }
.cp-qcard__types { margin: 0 0 12px; }
.cp-qcard .cp-card__body { font-size: 0.98rem; }
.cp-qcard .cp-card__foot { margin-top: 16px; }

/* Stacked bars of limitation types per quarter (quarters.aspx) */
.cp-qbars__legend { margin: 0 0 18px; }
.cp-qbars { display: flex; flex-direction: column; gap: 10px; margin: 0 0 12px; }
.cp-qbars__row {
    display: grid;
    grid-template-columns: 200px minmax(0, 1fr);
    gap: 16px;
    align-items: center;
    padding: 8px 10px;
    border: 1px solid transparent;
    border-radius: var(--cp-radius);
    text-decoration: none;
    color: inherit;
    transition: background 0.15s var(--cp-ease), border-color 0.15s var(--cp-ease);
}
.cp-qbars__row:hover { background: var(--cp-paper); border-color: var(--cp-rule); color: inherit; }
.cp-qbars__label { display: flex; flex-direction: column; gap: 4px; align-items: flex-start; }
.cp-qbars__total { font-family: var(--cp-mono); font-size: 0.8rem; color: var(--cp-muted); }
.cp-qbars__bar { display: flex; height: 26px; min-width: 6px; border-radius: 2px; overflow: hidden; background: var(--cp-rule-2); }
.cp-qbars__seg { --seg: var(--cp-t-other); display: block; flex: 0 1 auto; flex-basis: 0; min-width: 2px; background: var(--seg); border-right: 1px solid rgba(255, 255, 255, 0.6); }
.cp-qbars__seg:last-child { border-right: 0; }
.cp-qbars__row:hover .cp-qbars__seg { filter: saturate(1.15); }
.cp-qbars__table { margin-top: 12px; }
.cp-qbars__table > summary { cursor: pointer; font-size: 0.9rem; color: var(--cp-ink-2); }

/* The quarter page (quarter.aspx) */
.cp-quarter__range { font-size: 1.05rem; color: var(--cp-ink); }
.cp-quarter__stats { margin: 16px 0 36px; }
.cp-quarter__stats .cp-stat__label { font-size: 0.86rem; color: var(--cp-text); }

.cp-qmap { margin: 0 0 8px; }
.cp-qmap__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.cp-qmap__toggle { display: inline-flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.cp-qmap__toggle .cp-btn { background: var(--cp-card); border-color: var(--cp-rule); color: var(--cp-ink); }
.cp-qmap__toggle .cp-btn[aria-pressed="true"] { background: var(--cp-ink); border-color: var(--cp-ink); color: #fff; }
.cp-qmap__status { margin-left: 6px; }
.cp-qmap__map { padding-top: 56px; }
/* Specificity (0,3,2) on purpose: covid.css paints every State path with ".cp-map svg .state path" (0,2,2). */
.cp-quarter .cp-qmap__map svg path[data-level], .cp-quarter .cp-qmap__map svg circle[data-level] { fill: var(--cp-rule-2); }
.cp-quarter .cp-qmap__map svg path[data-level="1"], .cp-quarter .cp-qmap__map svg circle[data-level="1"] { fill: #EBD5CF; }
.cp-quarter .cp-qmap__map svg path[data-level="2"], .cp-quarter .cp-qmap__map svg circle[data-level="2"] { fill: #D9AC9F; }
.cp-quarter .cp-qmap__map svg path[data-level="3"], .cp-quarter .cp-qmap__map svg circle[data-level="3"] { fill: #C47C68; }
.cp-quarter .cp-qmap__map svg path[data-level="4"], .cp-quarter .cp-qmap__map svg circle[data-level="4"] { fill: var(--cp-signal); }
.cp-quarter .cp-qmap__map svg path[data-level="5"], .cp-quarter .cp-qmap__map svg circle[data-level="5"] { fill: var(--cp-signal-2); }
.cp-quarter .cp-qmap__map svg .borders path, .cp-quarter .cp-qmap__map svg path.separator1 { fill: none; cursor: default; }
.cp-quarter .cp-qmap__map svg circle[data-level] { stroke: #fff; stroke-width: 1; cursor: pointer; }
.cp-qmap__map .cp-map__count { top: 14px; right: 16px; max-width: 260px; }
.cp-qmap__legend { gap: 6px 14px; }
.cp-qmap__legend-title { font-weight: 600; color: var(--cp-ink); }
.cp-qmap__legend .cp-map__legend-swatch { border: 1px solid rgba(10, 26, 47, 0.12); }
.cp-qmap__legend .cp-map__legend-swatch[data-level="0"] { background: var(--cp-rule-2); }
.cp-qmap__legend .cp-map__legend-swatch[data-level="1"] { background: #EBD5CF; }
.cp-qmap__legend .cp-map__legend-swatch[data-level="2"] { background: #D9AC9F; }
.cp-qmap__legend .cp-map__legend-swatch[data-level="3"] { background: #C47C68; }
.cp-qmap__legend .cp-map__legend-swatch[data-level="4"] { background: var(--cp-signal); }
.cp-qmap__legend .cp-map__legend-swatch[data-level="5"] { background: var(--cp-signal-2); }

/* The five steps (quarter.aspx) */
.cp-partial { margin-top: 3rem; padding-top: 0.4em; border-top: 1px solid var(--cp-rule); }
.cp-steps { list-style: none; counter-reset: cp-step; margin: 1.5rem 0 0; padding: 0; }
.cp-steps__item { position: relative; counter-increment: cp-step; padding: 0 0 22px 64px; margin: 0 0 6px; border-bottom: 1px solid var(--cp-rule-2); }
.cp-steps__item:last-child { border-bottom: 0; }
.cp-steps__item::before {
    content: counter(cp-step);
    position: absolute;
    left: 0;
    top: 2px;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: var(--cp-ink);
    color: #fff;
    font-family: var(--cp-serif);
    font-size: 1.3rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: center;
}
.cp-steps__title { margin: 6px 0 0.5rem; font-size: 1.3rem; }
.cp-steps__item > p, .cp-steps__item > ul { max-width: var(--cp-measure); }
.cp-steps__examples li { padding: 8px 0; line-height: 1.5; }
.cp-steps__examples .cp-chips { display: inline-flex; vertical-align: middle; margin-left: 4px; }
.cp-steps__functions { margin: 0 0 1rem; }
.cp-steps__functions .cp-chip, .cp-mech__fns .cp-chip { font-weight: 500; letter-spacing: 0; text-transform: none; white-space: normal; }
.cp-steps .cp-clause-block .cp-clause { font-size: 1.05rem; }
.cp-statute {
    margin: 1rem 0 1.25rem;
    padding: 16px 22px 14px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-left: 4px solid var(--cp-ink);
    border-radius: 0 var(--cp-radius) var(--cp-radius) 0;
}
.cp-statute::before {
    content: "The Suspension Clause";
    display: block;
    margin-bottom: 0.55rem;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: var(--cp-ink);
}
.cp-statute p { font-family: var(--cp-serif); font-size: 1.08rem; line-height: 1.5; color: var(--cp-ink); margin: 0 0 0.5rem; }
.cp-statute cite { display: block; font-family: var(--cp-mono); font-style: normal; font-size: 0.8rem; color: var(--cp-muted); }

/* The instruments table and downloads (quarter.aspx) */
.cp-quarter__instruments { margin-top: 3rem; padding-top: 0.4em; border-top: 1px solid var(--cp-rule); }
.cp-quarter__typechips { margin: 0 0 1rem; }
.cp-quarter__typechips a.cp-chip { text-decoration: none; }
.cp-quarter__zip { margin: 1rem 0; padding: 12px 16px; background: var(--cp-card); border: 1px solid var(--cp-rule); border-radius: var(--cp-radius); }
.cp-quarter__zip > summary { cursor: pointer; font-weight: 600; color: var(--cp-ink); }
.cp-quarter__zip li { margin: 0 0 4px; font-size: 0.92rem; }
.cp-quarter__build { margin-top: 3rem; }
.cp-quarter__build .cp-callout--ink p:last-child { margin-bottom: 0; }

.cp-quarter-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 2rem 0 0; }
.cp-quarter-nav__link {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 14px 16px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-radius: var(--cp-radius);
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s var(--cp-ease);
}
.cp-quarter-nav__link:hover { border-color: var(--cp-gold); color: inherit; }
.cp-quarter-nav__dir { font-size: 0.74rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--cp-secondary); }
.cp-quarter-nav__label { font-family: var(--cp-serif); font-size: 1.1rem; color: var(--cp-ink); }
.cp-quarter-nav__next { text-align: right; align-items: flex-end; }
.cp-quarter-nav__all { text-align: center; align-items: center; }

/* The six-mechanism diagram (ecosystem.aspx) */
.cp-mech { counter-reset: none; }
.cp-mech__card { border-top: 3px solid var(--cp-gold); transition: border-color 0.15s var(--cp-ease), transform 0.15s var(--cp-ease), box-shadow 0.15s var(--cp-ease); }
.cp-mech__card:hover { border-top-color: var(--cp-signal); transform: translateY(-2px); box-shadow: var(--cp-shadow); }
.cp-mech__head { display: flex; gap: 14px; align-items: flex-start; }
.cp-mech__num {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: var(--cp-ink);
    color: #fff;
    font-family: var(--cp-serif);
    font-size: 1.2rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}
.cp-mech__card .cp-card__title { font-size: 1.22rem; margin: 6px 0 0; }
.cp-mech__card .cp-card__title a { text-decoration: none; color: inherit; }
.cp-mech__card .cp-card__title a:hover { color: var(--cp-signal); }
.cp-mech__card .cp-card__body { margin-top: 12px; flex: 0 0 auto; }
.cp-mech__label { margin: 12px 0 6px; font-size: 0.7rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--cp-muted); }
.cp-mech__fns { margin: 0; }
.cp-mech__fn-label { font-weight: 400; }
.cp-mech__examples { flex: 1 1 auto; font-size: 0.9rem; }
.cp-mech__examples li { padding: 6px 0; border-bottom: 1px solid var(--cp-rule-2); line-height: 1.45; }
.cp-mech__examples li:last-child { border-bottom: 0; }
.cp-mech__examples .cp-chips { display: inline-flex; vertical-align: middle; margin-left: 4px; }

/* Restoration arithmetic (broken_leg.aspx) */
.cp-restore { margin-top: 16px; }
.cp-restore__head { display: flex; flex-direction: column; gap: 6px; max-width: 420px; margin-bottom: 18px; }
.cp-restore__block { padding: 20px 24px; background: var(--cp-card); border: 1px solid var(--cp-rule); border-top: 3px solid var(--cp-gold); border-radius: var(--cp-radius); }
.cp-restore__block + .cp-restore__block { margin-top: 20px; }
.cp-restore__title { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 8px; }
.cp-restore__title h3 { margin: 0; font-size: 1.6rem; }
.cp-restore__sentence { font-family: var(--cp-serif); font-size: 1.15rem; line-height: 1.5; color: var(--cp-ink); max-width: 80ch; }
.cp-restore__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px; margin-top: 12px; }
.cp-restore__col { min-width: 0; }
.cp-restore__col .cp-inforce__title { margin-top: 14px; }
.cp-restore__col .cp-inforce__title:first-child { margin-top: 0; }
.cp-restore__date { font-family: var(--cp-mono); font-size: 1.6rem; font-weight: 500; color: var(--cp-signal); margin: 0 0 6px; letter-spacing: -0.01em; }
.cp-restore__instrument { font-size: 0.98rem; line-height: 1.5; margin: 0 0 8px; }
.cp-restore__datetext { line-height: 1.45; }
.cp-restore__remained { font-size: 0.92rem; line-height: 1.5; }
.cp-restore__list { font-size: 0.9rem; max-height: 420px; overflow-y: auto; }
.cp-restore__list li { padding: 7px 0; line-height: 1.45; }
.cp-restore__details { margin: 12px 0; font-size: 0.92rem; }
.cp-restore__details > summary { cursor: pointer; color: var(--cp-ink-2); }
.cp-restore__actions { margin-top: 14px; }

@media (max-width: 900px) {
    .cp-qbars__row { grid-template-columns: 150px minmax(0, 1fr); gap: 10px; }
    .cp-restore__grid { grid-template-columns: minmax(0, 1fr); gap: 18px; }
    .cp-qmap__map { padding-top: 12px; }
    .cp-qmap__map .cp-map__count { position: static; text-align: left; margin: 0 0 8px; max-width: none; }
}

@media (max-width: 640px) {
    .cp-qbars__row { grid-template-columns: minmax(0, 1fr); gap: 6px; padding: 8px 4px; }
    .cp-qbars__label { flex-direction: row; align-items: center; gap: 10px; }
    .cp-qbars__bar { height: 20px; }
    .cp-quarter-nav { grid-template-columns: minmax(0, 1fr); }
    .cp-quarter-nav__next, .cp-quarter-nav__all { text-align: left; align-items: flex-start; }
    .cp-steps__item { padding-left: 50px; }
    .cp-steps__item::before { width: 36px; height: 36px; font-size: 1.1rem; }
    .cp-jump__row { flex-direction: column; }
    .cp-restore__title h3 { font-size: 1.35rem; }
    .cp-restore__block { padding: 16px; }
}

@media print {
    .cp-qmap__toggle, .cp-restore__head, .cp-quarter-nav, .cp-quarter__build, .cp-jump { display: none !important; }
    .cp-restore__block[hidden] { display: block !important; }
    .cp-qbars__seg { border-right-color: #fff; }
    .cp-steps__item::before { background: #000; color: #fff; }
}

/* ==========================================================================
   report.aspx (/report), report_pdf.ashx, report_docx.ashx and
   builder.aspx (/tools/record-builder): the eligibility report.
   ========================================================================== */
.cp-report__cover .cp-hero__title { font-size: clamp(1.8rem, 3.4vw, 2.5rem); }
.cp-report__subtitle { font-family: var(--cp-serif); font-size: 1.3rem; }
.cp-report__desc { margin: 0 0 10px; font-style: italic; color: rgba(255, 255, 255, 0.82); }
.cp-report__quarters { margin: 6px 0 14px; }
.cp-report__actions-wrap { background: var(--cp-card); border-bottom: 1px solid var(--cp-rule); }
.cp-report__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 14px 0; }
.cp-report__zip-note { flex-basis: 100%; margin: 0; }
.cp-report .cp-article__body > section:first-of-type > h2 { border-top: 0; padding-top: 0; margin-top: 0; }
.cp-report__section { margin-bottom: 2.75rem; }
.cp-report__section > h2 .cp-report__num { color: var(--cp-gold); font-family: var(--cp-mono); font-weight: 500; font-size: 0.72em; margin-right: 0.15em; }
.cp-report__section > h4 { margin-top: 1.4em; }
.cp-report__caption { margin: 0 0 6px; }
.cp-report__more { font-size: 0.92rem; }
.cp-report__list li { margin-bottom: 0.4rem; }
.cp-report__items { margin: 8px 0 16px; }
.cp-report__item { padding: 14px 0 12px; border-top: 1px solid var(--cp-rule); }
.cp-report__item:last-child { border-bottom: 1px solid var(--cp-rule); }
.cp-report__item-head { display: flex; flex-direction: column; gap: 3px; align-items: flex-start; }
.cp-report__item-title { font-family: var(--cp-serif); font-size: 1.12rem; font-weight: 600; line-height: 1.3; margin: 4px 0 0; color: var(--cp-ink); }
.cp-report__item-sub { margin: 0; font-style: italic; color: var(--cp-muted); }
.cp-report__item-issuer { margin: 0; font-size: 0.92rem; color: var(--cp-muted); }
.cp-report__kv { margin: 10px 0 8px; font-size: 0.9rem; }
.cp-report__kv dd { margin-bottom: 4px; }
.cp-report__item .cp-clause-block { margin: 10px 0; }
.cp-report__item-enf, .cp-report__item-cite { font-size: 0.9rem; margin: 6px 0 0; }
.cp-report__compact { margin: 6px 0 18px; }
.cp-report__table td { vertical-align: top; }
.cp-report__toc, .cp-report__toc ol { list-style: none; margin: 0; padding: 0; }
.cp-report__toc > li { margin: 0 0 2px; }
.cp-report__toc ol { padding-left: 12px; margin: 2px 0 6px; }
.cp-report__toc ol a { font-size: 0.8rem; }
.cp-report__rail { min-width: 0; }
@media (max-width: 900px) {
    .cp-report.cp-article { grid-template-columns: minmax(0, 1fr); gap: 24px; }
    .cp-report__rail { order: -1; }
    .cp-report .cp-toc { position: static; max-height: none; border-left: 0; padding-left: 0; }
}
@media print {
    .cp-report__cover { break-after: page; }
    .cp-report__section { break-before: page; }
    .cp-report__section:first-of-type { break-before: auto; }
    .cp-report__item, .cp-report__table tr { break-inside: avoid; }
    .cp-report__actions-wrap, .cp-report__rail { display: none !important; }
    .cp-report.cp-article { display: block; }
    .cp-report__cover .cp-hero__inner { padding: 0; }
    .cp-report__section > h2 .cp-report__num { color: #000; }
}
.cp-builder { max-width: none; background: var(--cp-card); border: 1px solid var(--cp-rule); border-radius: var(--cp-radius); padding: 24px 24px 18px; box-shadow: 0 10px 30px rgba(10, 26, 47, 0.06); }
.cp-builder .cp-fieldset { background: transparent; }
.cp-builder__split { align-items: start; }
.cp-builder__aside { display: flex; flex-direction: column; gap: 16px; }
.cp-builder__picked { color: var(--cp-verified); font-weight: 600; }
.cp-builder__examples { margin: 14px 0 0; }
.cp-builder .cp-quarter-picker__dates { font-size: 0.68rem; }
@media (max-width: 700px) {
    .cp-builder { padding: 16px; }
    .cp-builder .cp-quarter-picker { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* ==========================================================================
   Ground pages (/irs/fourteen-grounds/{n}): heading outline.
   The rail titles and the closing callout title are h2 elements so the page
   outline runs h1, h2, h3; these rules keep them styled as the labels they
   were, not as display headings (the base h2 and .cp-article__body h2 rules
   would otherwise size them and draw the section rule).
   ========================================================================== */
.cp-page-irs h2.cp-toc__title {
    font-family: var(--cp-sans);
    line-height: 1.35;
    text-wrap: initial;
    padding-top: 0;
    border-top: 0;
}
.cp-page-irs h2.cp-callout__title {
    font-family: var(--cp-sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.4;
    letter-spacing: 0;
    margin: 0 0 0.35rem;
    padding-top: 0;
    border-top: 0;
    text-wrap: initial;
}

/* ==========================================================================
   ground.aspx: the rail follows the article in the markup (the plain-terms
   opening and the letter's sentence lead on a phone and for a screen reader;
   the irs block above still places the rail in the right column on wide
   screens). Below 900px the rail sits after the previous / next navigation,
   so it takes a rule and a margin above it.
   ========================================================================== */
@media (max-width: 900px) {
    .cp-page-irs .cp-article > .cp-irs-rail--follows {
        margin-top: 28px;
        padding-top: 24px;
        border-top: 1px solid var(--cp-rule);
    }
}

/* ==========================================================================
   clock.aspx (/tools/orders-clock): the page without scripting. covid.js adds
   cp-js to <html>; until it does, the controls only the script can drive
   (play, the day steps, the State list and the copy button) are hidden, the
   slider and the type chips stand still as a legend of the day and of the
   types the map counts, the sentence that invites a click is hidden, and the
   noscript note under the controls says so. The day, the quarter, the summary
   line, the map, the legend and the national table are server-rendered.
   ========================================================================== */
html:not(.cp-js) .cp-clock-page .cp-clock__play,
html:not(.cp-js) .cp-clock-page .cp-clock__step { visibility: hidden; }
html:not(.cp-js) .cp-clock-page .cp-clock-page__tools,
html:not(.cp-js) .cp-clock-page .cp-clock-page__js-only { display: none; }
html:not(.cp-js) .cp-clock-page .cp-clock__range,
html:not(.cp-js) .cp-clock-page .cp-clock__type { pointer-events: none; }
.cp-clock-page__noscript { margin: 12px 0 0; }

/* ==========================================================================
   home.aspx (coverage tile): five hero tiles; the text tile links to the industries coverage note.
   ========================================================================== */
.cp-home-hero .cp-stats { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.cp-home-hero .cp-stats .cp-stat--text .cp-stat__link { display: block; color: inherit; text-decoration: none; }
.cp-home-hero .cp-stats .cp-stat--text .cp-stat__link:hover .cp-stat__num,
.cp-home-hero .cp-stats .cp-stat--text .cp-stat__link:focus-visible .cp-stat__num { color: var(--cp-gold); }
@media (max-width: 1100px) { .cp-home-hero .cp-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cp-home-hero .cp-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }

/* ==========================================================================
   referral: the attorney-referral plug (ReferralPlug.cs: the "rail", "card"
   and "band" variants; at most one per page, never inside analysis text or a
   fragment, never printed) and the referral page itself (/referral,
   referral.aspx; prefix cp-ref-). The card, the rail and the band carry the
   site's 3px gold top rule, which turns oxblood while the button is hovered or
   focused, the kicker, one button and the not-a-law-firm small print.
   ========================================================================== */
.cp-referral { font-family: var(--cp-sans); }
.cp-referral__kicker { color: var(--cp-secondary); }
.cp-referral__text { margin: 0 0 0.9rem; }
.cp-referral__actions { margin: 0; }
.cp-referral__small { margin: 0.7rem 0 0; }

/* Rail: a right-rail box after the table of contents (the grounds, a ground, the positions). */
.cp-referral--rail {
    border-top: 3px solid var(--cp-gold);
    transition: border-color 0.15s var(--cp-ease);
}
.cp-referral--rail .cp-referral__kicker { margin-bottom: 0.5rem; }
.cp-referral--rail .cp-referral__text { font-size: 0.85rem; line-height: 1.55; color: var(--cp-text); }
.cp-referral--rail:has(.cp-referral__btn:hover),
.cp-referral--rail:has(.cp-referral__btn:focus-visible) { border-top-color: var(--cp-signal); }

/* Card: the end of an article (the letter decoder, the report, a quarter, an industry overview, the chronology, the two analyses). */
.cp-referral--card {
    margin: 40px 0 8px;
    padding: 22px 26px 20px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    box-shadow: var(--cp-shadow-soft);
    max-width: var(--cp-prose);
    transition: border-color 0.15s var(--cp-ease);
}
.cp-referral--card:has(.cp-referral__btn:hover),
.cp-referral--card:has(.cp-referral__btn:focus-visible) { border-top-color: var(--cp-signal); }
.cp-referral--card .cp-referral__kicker { margin-bottom: 0.35rem; }
.cp-referral__title {
    font-family: var(--cp-serif);
    font-size: 1.35rem;
    font-weight: 500;
    line-height: 1.2;
    color: var(--cp-ink);
    margin: 0 0 0.6rem;
}
.cp-referral--card .cp-referral__text { font-size: 0.97rem; line-height: 1.55; max-width: 62ch; }

/* Band: a full-width quiet band on a landing page (home, after the tools). */
.cp-referral--band {
    background: var(--cp-paper-2);
    border-top: 3px solid var(--cp-gold);
    border-bottom: 1px solid var(--cp-rule);
    padding: 28px 0;
    transition: border-color 0.15s var(--cp-ease);
}
.cp-referral--band:has(.cp-referral__btn:hover),
.cp-referral--band:has(.cp-referral__btn:focus-visible) { border-top-color: var(--cp-signal); }
.cp-referral--band .cp-referral__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 20px 32px;
}
.cp-referral--band .cp-referral__copy { flex: 1 1 480px; max-width: 76ch; }
.cp-referral--band .cp-referral__text { margin: 0; font-size: 1rem; line-height: 1.55; }
.cp-referral--band .cp-referral__small { margin: 0.45rem 0 0; }
.cp-referral--band .cp-referral__kicker {
    display: block;
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin-bottom: 0.35rem;
}
.cp-referral--band .cp-referral__btn { flex: 0 0 auto; }

/* The one-line form under the record builder. */
.cp-referral-line { margin: 12px 0 0; color: var(--cp-muted); }
.cp-referral-line a { color: var(--cp-ink); }

@media (max-width: 640px) {
    .cp-referral--card { padding: 18px 16px 16px; }
    .cp-referral--band { padding: 22px 0; }
}

/* referral.aspx: the intro, the form card, the consent box, the aside. */
.cp-ref-intro { margin-bottom: 28px; }
.cp-ref-intro h2 { margin-top: 0; }
.cp-ref-form-card {
    max-width: none;
    padding: 24px 28px;
    background: var(--cp-card);
    border: 1px solid var(--cp-rule);
    border-top: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
    box-shadow: var(--cp-shadow-soft);
}
.cp-ref-form-card__title { font-size: 1.5rem; margin: 0 0 0.5rem; }
.cp-ref-form-card__required { margin: 0 0 1rem; }
.cp-ref-form-card .is-invalid { border-color: var(--cp-signal); }
.cp-ref-form-card .cp-form__status { flex: 1 1 240px; }
.cp-ref-grid { gap: 0 20px; }
.cp-ref-quarters { padding-bottom: 10px; }
.cp-ref-quarters__grid { grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
.cp-ref-authorize {
    margin: 4px 0 20px;
    padding: 14px 16px;
    background: var(--cp-paper);
    border: 1px solid var(--cp-rule);
    border-left: 3px solid var(--cp-gold);
    border-radius: var(--cp-radius);
}
.cp-ref-authorize__check { padding: 0; font-size: 0.92rem; line-height: 1.5; }
.cp-ref-authorize__check label { cursor: pointer; }
.cp-ref-authorize__check.is-invalid label { color: var(--cp-signal); }
.cp-ref-authorize .cp-field__error { margin: 8px 0 0; }
.cp-ref-form-errors { margin-top: 0; margin-bottom: 18px; }
.cp-ref-thanks { margin-top: 0; }
.cp-ref-disclaimer { margin-top: 18px; }
.cp-ref-aside .cp-callout { margin-top: 16px; }
.cp-ref-steps-box { margin-top: 0; }
.cp-ref-steps { margin: 0.5rem 0 0; padding-left: 1.3rem; }
.cp-ref-steps li { padding: 4px 0; }
.cp-ref-steps__label { display: block; font-weight: 600; color: var(--cp-ink); }
.cp-ref-rail-links li { padding: 4px 0; }
.cp-ref-rail-links a { text-decoration: none; }
.cp-ref-rail-links a:hover { text-decoration: underline; color: var(--cp-signal); }

/* The honeypot field sits off screen for people and in the form for automated posts. */
.cp-ref-hp {
    position: absolute;
    left: -10000px;
    top: auto;
    width: 1px;
    height: 1px;
    overflow: hidden;
}

@media (max-width: 640px) {
    .cp-ref-form-card { padding: 18px 16px; }
}

@media print {
    .cp-ref-hp,
    .cp-ref-aside { display: none; }
}
