/* ==========================================================================
   Legislation Pages — Detail + Index
   BEM naming: .leg-{block}__{element}--{modifier}
   ========================================================================== */


/* --------------------------------------------------------------------------
   DETAIL PAGE
   -------------------------------------------------------------------------- */

.leg-detail {
    max-width: 960px;
    margin: 0 auto;
    background: var(--color-bg-white);
    padding: 2rem 2.5rem;
    border: 1px solid var(--color-border-light);
}

@media (max-width: 640px) {
    .leg-detail {
        padding: 1.25rem 1rem;
        margin: 0 -1rem;
        border-left: none;
        border-right: none;
    }
}


/* --- Header --- */

.leg-detail__header {
    margin-bottom: 1.5rem;
    padding-bottom: 1.5rem;
    border-bottom: 1px solid var(--color-border-light);
}

.leg-detail__meta {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.75rem;
}

.leg-detail__year {
    font-size: 0.875rem;
    color: var(--color-text-secondary);
}

.leg-detail__coverage {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.leg-detail__title {
    margin: 0 0 0.25rem;
    font-size: 2.25rem;
    line-height: 1.15;
    letter-spacing: -0.01em;
}

.leg-detail__full-title {
    margin: 0;
    font-size: 1rem;
    color: var(--color-text-secondary);
}


/* --- Badges (shared detail + index) --- */

.leg-badge {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    border-radius: 2px;
    white-space: nowrap;
    vertical-align: middle;
}

.leg-badge--primary_act  { background: var(--color-error);     color: #fff; }
.leg-badge--statutory_instrument { background: var(--color-gov-blue); color: #fff; }
.leg-badge--scottish_si  { background: var(--color-scotland);  color: #fff; }
.leg-badge--welsh_si     { background: var(--color-wales);     color: #fff; }
.leg-badge--ni_statutory_rule { background: var(--color-northern-ireland); color: #fff; }
.leg-badge--eu_retained  { background: var(--color-turquoise); color: #fff; }
.leg-badge--other        { background: var(--color-text-muted); color: #fff; }
.leg-badge--guidance     { background: var(--color-bg-light);  color: var(--color-text-primary); font-weight: 400; }
.leg-badge--editorial    { background: var(--color-purple);    color: #fff; }


/* --- Status Banner --- */

.leg-status-banner {
    padding: 1rem 1.25rem;
    margin-bottom: 1.5rem;
    border-left: 4px solid;
    border-radius: 0 3px 3px 0;
}

.leg-status-banner strong {
    font-size: 1rem;
}

.leg-status-banner__date {
    color: var(--color-text-secondary);
    margin-left: 0.25rem;
}

.leg-status-banner__date::before {
    content: "— ";
}

.leg-status-banner__detail {
    margin: 0.5rem 0 0;
    font-size: 0.9375rem;
}

.leg-status-banner__notes {
    margin: 0.5rem 0 0;
    font-size: 0.875rem;
    font-style: italic;
    color: var(--color-text-secondary);
}

.leg-status-banner--repealed            { background: var(--color-error-bg);   border-color: var(--color-error); }
.leg-status-banner--partially_repealed  { background: var(--color-warning-bg); border-color: var(--color-warning); }
.leg-status-banner--amended             { background: var(--color-info-bg);    border-color: var(--color-gov-blue); }
.leg-status-banner--not_yet_in_force    { background: var(--color-bg-light);   border-color: var(--color-text-muted); }


/* --- At a Glance --- */

.leg-glance {
    padding: 1.25rem 1.5rem;
    border: 1px solid var(--color-border);
    border-left: 4px solid var(--color-gov-blue);
    border-radius: 0 4px 4px 0;
    margin-bottom: 2rem;
}

.leg-glance__description {
    margin: 0 0 1rem;
    font-size: 1.0625rem;
    line-height: 1.55;
    color: var(--color-text-primary);
}

.leg-glance__list {
    margin: 0;
    padding: 0;
}

.leg-glance__row {
    display: flex;
    gap: 0.75rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--color-border-light);
    font-size: 0.9375rem;
}

.leg-glance__row:last-child {
    border-bottom: none;
}

.leg-glance__row dt {
    flex: 0 0 120px;
    font-weight: 700;
    color: var(--color-text-secondary);
}

.leg-glance__row dd {
    margin: 0;
    flex: 1;
}

.leg-glance__row dd a {
    color: var(--color-link);
}

.leg-glance__row dd a:hover {
    color: var(--color-link-hover);
}

.leg-glance__link {
    display: inline-block;
    margin-top: 1rem;
    padding: 0.5rem 1rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border);
    border-radius: 3px;
    color: var(--color-link);
    text-decoration: none;
    font-size: 0.875rem;
    font-weight: 600;
    transition: background 0.15s, border-color 0.15s;
}

.leg-glance__link:hover {
    background: var(--color-bg-hover);
    border-color: var(--color-text-secondary);
}


/* --- Contents Nav --- */

.leg-contents {
    margin-bottom: 2rem;
    padding: 1.25rem 1.5rem;
    background: var(--color-bg-light);
    border-radius: 4px;
}

.leg-contents__heading {
    margin: 0 0 0.75rem;
    font-size: 1rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.leg-contents__list {
    margin: 0;
    padding: 0 0 0 1.25rem;
    list-style-type: none;
    counter-reset: contents;
}

.leg-contents__list li {
    counter-increment: contents;
    padding: 0.25rem 0;
    font-size: 0.9375rem;
}

.leg-contents__list li::before {
    content: counter(contents) ".";
    display: inline-block;
    width: 1.5rem;
    margin-left: -1.5rem;
    color: var(--color-text-muted);
    font-variant-numeric: tabular-nums;
}

.leg-contents__list a {
    color: var(--color-link);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.leg-contents__list a:hover {
    color: var(--color-link-hover);
}

.leg-contents__count {
    color: var(--color-text-muted);
    font-size: 0.8125rem;
}


/* --- Sections (shared) --- */

.leg-section {
    margin-bottom: 2.5rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid var(--color-border-light);
}

.leg-section:last-child {
    border-bottom: none;
}

.leg-section__heading {
    margin: 0 0 0.5rem;
    font-size: 1.5rem;
    line-height: 1.2;
}

.leg-section__intro {
    margin: 0 0 1.25rem;
    color: var(--color-text-secondary);
    font-size: 0.9375rem;
}


/* --- Empty state --- */

.leg-empty {
    padding: 2rem;
    background: var(--color-bg-light);
    border-radius: 4px;
    text-align: center;
}

.leg-empty p {
    margin: 0 0 1rem;
    color: var(--color-text-secondary);
}

.leg-empty__link {
    color: var(--color-link);
    font-weight: 600;
}


/* --- Guide Cards --- */

.leg-guide-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.75rem;
}

.leg-guide-card {
    display: block;
    padding: 1rem 1.25rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-left: 3px solid var(--color-gov-blue);
    border-radius: 0 3px 3px 0;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.leg-guide-card:hover {
    border-left-color: var(--color-gov-blue-dark);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.leg-guide-card__title {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-link);
    line-height: 1.35;
}

.leg-guide-card:hover .leg-guide-card__title {
    color: var(--color-link-hover);
    text-decoration: underline;
}

.leg-guide-card__desc {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.45;
}


/* --- Topic Clusters --- */

.leg-topic-cluster {
    margin-bottom: 1.75rem;
}

.leg-topic-cluster__heading {
    margin: 0 0 0.75rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-primary);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.leg-topic-cluster__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.375rem;
    background: var(--color-bg-light);
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-text-secondary);
}


/* --- Topic Subgroups (L2) --- */

.leg-topic-subgroup {
    margin-bottom: 1.25rem;
}

.leg-topic-subgroup__heading {
    margin: 0 0 0.5rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-secondary);
    padding-left: 0.75rem;
    border-left: 2px solid var(--color-border-light);
}


/* --- Snippet cards --- */

.leg-snippet-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.75rem;
}

.leg-snippet-card {
    display: flex;
    gap: 0.75rem;
    padding: 0.875rem 1rem;
    background: var(--color-bg-light);
    border-radius: 3px;
    align-items: flex-start;
}

.leg-snippet-card__icon {
    flex-shrink: 0;
    width: 6px;
    height: 6px;
    margin-top: 0.5rem;
    background: var(--color-gov-blue);
    border-radius: 50%;
}

.leg-snippet-card__title {
    display: block;
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-primary);
    line-height: 1.35;
}

.leg-snippet-card__desc {
    margin: 0.2rem 0 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.4;
}

.leg-section__more {
    margin-top: 0.75rem;
    font-size: 0.8125rem;
    font-style: italic;
    color: var(--color-text-muted);
}


/* --- Legislative hierarchy --- */

.leg-hierarchy__parent {
    margin-bottom: 1.5rem;
}

.leg-hierarchy__label {
    display: block;
    font-weight: 700;
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted);
    margin-bottom: 0.5rem;
}

.leg-hierarchy__ref {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.375rem 0;
}

.leg-hierarchy__ref a {
    color: var(--color-link);
}

.leg-hierarchy__year {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.leg-hierarchy__list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.leg-hierarchy__list li {
    border-bottom: 1px solid var(--color-border-light);
}

.leg-hierarchy__list li:last-child {
    border-bottom: none;
}

.leg-hierarchy__ref--more {
    font-style: italic;
    color: var(--color-text-muted);
    font-size: 0.875rem;
}


/* --- Journey cards --- */

.leg-journey-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.75rem;
}

.leg-journey-card {
    display: block;
    padding: 1rem 1.25rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-left: 3px solid var(--color-success);
    border-radius: 0 3px 3px 0;
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}

.leg-journey-card:hover {
    border-left-color: var(--color-success-dark);
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.leg-journey-card__title {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-link);
    line-height: 1.35;
}

.leg-journey-card:hover .leg-journey-card__title {
    text-decoration: underline;
}

.leg-journey-card__desc {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.45;
}


/* --- Auth guidance list --- */

.leg-auth-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.leg-auth-item {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.5rem;
    padding: 0.6rem 0;
    border-bottom: 1px solid var(--color-border-light);
    font-size: 0.9375rem;
}

.leg-auth-item:last-child {
    border-bottom: none;
}

.leg-auth-item a {
    color: var(--color-link);
}

.leg-auth-item__publisher {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

.leg-auth-item__publisher::before {
    content: "from ";
}


/* --- Editorial list --- */

.leg-editorial-list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 0.75rem;
}

.leg-editorial-card {
    display: block;
    padding: 1rem 1.25rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-left: 3px solid var(--color-purple);
    border-radius: 0 3px 3px 0;
    text-decoration: none;
    color: inherit;
    transition: box-shadow 0.15s;
}

.leg-editorial-card:hover {
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.08);
}

.leg-editorial-card__title {
    margin: 0.35rem 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-link);
    line-height: 1.35;
}

.leg-editorial-card:hover .leg-editorial-card__title {
    text-decoration: underline;
}

.leg-editorial-card__date {
    display: block;
    font-size: 0.75rem;
    color: var(--color-text-muted);
}


/* --- Footer nav --- */

.leg-footer-nav {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 0.75rem;
    margin-top: 2rem;
    padding-top: 2rem;
    border-top: 2px solid var(--color-border-light);
}

.leg-footer-nav__card {
    display: block;
    padding: 1.25rem;
    background: var(--color-bg-light);
    border: 1px solid var(--color-border-light);
    border-radius: 4px;
    text-decoration: none;
    color: inherit;
    transition: background 0.15s, border-color 0.15s;
}

.leg-footer-nav__card:hover {
    background: var(--color-bg-hover);
    border-color: var(--color-border);
}

.leg-footer-nav__card h3 {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    color: var(--color-link);
}

.leg-footer-nav__card:hover h3 {
    text-decoration: underline;
}

.leg-footer-nav__card p {
    margin: 0;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    line-height: 1.45;
}


/* --------------------------------------------------------------------------
   INDEX PAGE
   -------------------------------------------------------------------------- */

/* --- Index Stats Bar --- */

.leg-idx-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 2rem;
    padding: 1.25rem 1.5rem;
    background: var(--color-bg-light, #f3f2f1);
    border-radius: 4px;
}

.leg-idx-stats__item {
    text-align: center;
    min-width: 100px;
    flex: 1;
}

.leg-idx-stats__item--obligations {
    border-left: 2px solid var(--color-gov-blue, #1d70b8);
    padding-left: 1rem;
}

.leg-idx-stats__item--severe {
    border-left: 2px solid #8b0000;
    padding-left: 1rem;
}

.leg-idx-stats__value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-text-primary, #0b0c0c);
}

.leg-idx-stats__label {
    font-size: 0.875rem;
    color: var(--color-text-secondary, #505a5f);
}

/* Legacy stat classes preserved for backwards compat */
.legislation-stats {
    display: flex;
    gap: 2rem;
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--color-bg-light, #f3f2f1);
    border-radius: 4px;
}

.stat-item {
    text-align: center;
}

.stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--color-text-primary, #0b0c0c);
}

.stat-label {
    font-size: 0.875rem;
    color: var(--color-text-secondary, #505a5f);
}

.legislation-filters {
    margin-bottom: 2rem;
    padding: 1.5rem;
    background: var(--color-bg-white, #fff);
    border: 1px solid var(--color-border, #b1b4b6);
}

.filter-form .filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    align-items: flex-end;
}

.filter-group {
    flex: 1;
    min-width: 150px;
}

.filter-group label {
    display: block;
    font-weight: 700;
    margin-bottom: 0.25rem;
    font-size: 0.875rem;
}

.filter-group input,
.filter-group select {
    width: 100%;
    padding: 0.5rem;
    border: 2px solid var(--color-text-primary, #0b0c0c);
    font-size: 1rem;
}

.filter-actions {
    display: flex;
    gap: 0.5rem;
}

.legislation-list {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.legislation-card {
    padding: 1.5rem;
    background: var(--color-bg-white, #fff);
    border-left: 4px solid var(--color-gov-blue, #1d70b8);
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.legislation-header {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 0.5rem;
}

.legislation-year {
    font-size: 0.875rem;
    color: var(--color-text-secondary, #505a5f);
}

.legislation-title {
    font-size: 1.25rem;
    margin: 0 0 0.5rem;
}

.legislation-title a {
    color: var(--color-link, #1d70b8);
    text-decoration: underline;
}

.legislation-full-title {
    font-size: 0.875rem;
    color: var(--color-text-secondary, #505a5f);
    margin: 0 0 0.75rem;
}

.legislation-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
    margin-bottom: 1rem;
    font-size: 0.875rem;
}

.meta-item {
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.meta-label {
    color: var(--color-text-secondary, #505a5f);
}

.coverage-badge {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    background: var(--color-bg-light, #f3f2f1);
    border-radius: 2px;
    font-size: 0.75rem;
}

.legislation-actions {
    margin-top: 0.75rem;
}

.btn-external {
    display: inline-block;
    padding: 0.5rem 1rem;
    background: var(--color-bg-light, #f3f2f1);
    color: var(--color-text-primary, #0b0c0c);
    text-decoration: none;
    font-size: 0.875rem;
}

.btn-external:hover {
    background: var(--color-bg-hover, #e8e6e3);
}

.pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1rem;
    margin-top: 2rem;
    padding: 1rem;
}

.results-count {
    color: var(--color-text-secondary, #505a5f);
    margin-bottom: 1rem;
}

/* Index page status badges */
.legislation-status-badge {
    display: inline-block;
    padding: 0.125rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    border-radius: 2px;
    letter-spacing: 0.025em;
}

.legislation-status-badge.repealed {
    background: var(--color-error, #d4351c);
    color: #fff;
}

.legislation-status-badge.partially-repealed {
    background: var(--color-warning, #f47738);
    color: #fff;
}

.legislation-status-badge.amended {
    background: var(--color-gov-blue, #1d70b8);
    color: #fff;
}

.legislation-status-badge.not-yet-in-force {
    background: var(--color-text-muted, #505a5f);
    color: #fff;
}

/* --- Index Severity Badges --- */

.leg-idx-severity {
    display: inline-block;
    padding: 0.15rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 2px;
    white-space: nowrap;
}

.leg-idx-severity--severe {
    background: #8b0000;
    color: #fff;
}

.leg-idx-severity--high {
    background: #d4351c;
    color: #fff;
}

.leg-idx-severity--medium {
    background: #f47738;
    color: #fff;
}

/* --- Index Card Severity Modifiers --- */

.legislation-card--severe {
    border-left-color: #8b0000;
}

.legislation-card--high {
    border-left-color: #d4351c;
}

/* --- Obligation badge in coverage row --- */

.coverage-badge--obligations {
    background: #e8f0fe;
    color: #1d70b8;
    font-weight: 600;
}

/* --- Filter row second line --- */

.filter-row--second {
    margin-top: 0.75rem;
}

/* Index page link cards */
.link-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 1rem;
}

.link-card {
    padding: 1.5rem;
    background: var(--color-bg-light, #f3f2f1);
}

.link-card h3 {
    margin: 0 0 0.5rem;
}

.link-card p {
    margin: 0;
    color: var(--color-text-secondary, #505a5f);
}


/* --- Provision groups --- */

.leg-provision-nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.leg-provision-nav__item {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.75rem 1.25rem;
    background: var(--color-bg-light);
    border-radius: 4px;
    border-top: 3px solid var(--color-text-secondary);
    text-decoration: none;
    color: inherit;
    transition: background 0.15s;
    min-width: 100px;
}

.leg-provision-nav__item:hover {
    background: var(--color-bg-hover);
}

.leg-provision-nav__item--duty { border-top-color: #1d70b8; }
.leg-provision-nav__item--offence { border-top-color: #d4351c; }
.leg-provision-nav__item--power { border-top-color: #f47738; }
.leg-provision-nav__item--definition { border-top-color: #505a5f; }
.leg-provision-nav__item--exemption { border-top-color: #00703c; }

.leg-provision-nav__count {
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1.2;
}

.leg-provision-nav__label {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
}

.leg-provision-group {
    margin-bottom: 1.5rem;
}

.leg-provision-group__heading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 0.75rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid var(--color-border-light);
}

.leg-provision-group__heading--duty { border-bottom-color: #1d70b8; }
.leg-provision-group__heading--offence { border-bottom-color: #d4351c; }
.leg-provision-group__heading--power { border-bottom-color: #f47738; }
.leg-provision-group__heading--definition { border-bottom-color: #505a5f; }
.leg-provision-group__heading--exemption { border-bottom-color: #00703c; }

.leg-provision-group__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.375rem;
    background: var(--color-bg-light);
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-text-secondary);
}

.leg-provision-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.leg-provision-item {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    padding: 0.5rem 0;
    border-bottom: 1px solid var(--color-border-light);
    font-size: 0.9375rem;
}

.leg-provision-item:last-child {
    border-bottom: none;
}

.leg-provision-item--more {
    font-size: 0.8125rem;
    font-style: italic;
    color: var(--color-text-muted);
}

.leg-provision-item__ref {
    font-family: var(--font-mono, monospace);
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
    white-space: nowrap;
    min-width: 4rem;
}

.leg-provision-item__title {
    flex: 1;
    font-weight: 500;
    color: var(--color-text-primary);
}

.leg-provision-item__badge {
    font-size: 0.75rem;
}

.leg-provision-item__penalty {
    font-size: 0.8125rem;
    color: #d4351c;
    font-weight: 500;
    white-space: nowrap;
}

.leg-provision-item__terms {
    display: flex;
    gap: 0.25rem;
    flex-wrap: wrap;
}

.leg-provision-item__terms .badge {
    font-size: 0.6875rem;
    padding: 0.1rem 0.4rem;
}

.leg-provision-item__link {
    font-size: 0.8125rem;
    color: var(--color-link);
    text-decoration: none;
    padding: 0 0.25rem;
}

.leg-provision-item__link:hover {
    text-decoration: underline;
}


/* --- Stat tiles --- */

.leg-stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 1.25rem 0;
}

.leg-stat {
    display: flex;
    flex-direction: column;
    align-items: center;
    min-width: 90px;
    padding: 0.75rem 1.25rem;
    background: var(--color-bg-light);
    border-radius: 4px;
    border-top: 3px solid var(--color-text-secondary);
    text-align: center;
}

.leg-stat--duty    { border-top-color: #1d70b8; }
.leg-stat--penalty { border-top-color: #d4351c; }
.leg-stat--severe  { border-top-color: #8b0000; }
.leg-stat--guide   { border-top-color: #00703c; }

.leg-stat__value {
    font-size: 1.75rem;
    font-weight: 700;
    line-height: 1.2;
    color: var(--color-text-primary);
}

.leg-stat__label {
    font-size: 0.75rem;
    color: var(--color-text-secondary);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    font-weight: 600;
}

.leg-glance__title {
    margin: 0 0 0.75rem;
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text-primary);
}


/* --- Obligation groups --- */

.leg-ob-group {
    margin-bottom: 1.75rem;
}

.leg-ob-group__heading {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 0 0 0.75rem;
    font-size: 1.125rem;
    font-weight: 700;
    color: var(--color-text-primary);
}

.leg-ob-group__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.5rem;
    height: 1.5rem;
    padding: 0 0.375rem;
    background: var(--color-bg-light);
    border-radius: 10px;
    font-size: 0.75rem;
    font-weight: 700;
    color: var(--color-text-secondary);
}

.leg-ob-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.leg-ob-card {
    padding: 1rem 1.25rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-left: 3px solid #1d70b8;
    border-radius: 0 4px 4px 0;
}

.leg-ob-card--severe {
    border-left-color: #8b0000;
    background: #fef7f7;
}

.leg-ob-card--high {
    border-left-color: #d4351c;
    background: #fff9f8;
}

.leg-ob-card__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.75rem;
    margin-bottom: 0.35rem;
}

.leg-ob-card__title {
    margin: 0;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary);
    line-height: 1.35;
}

.leg-ob-card__penalty-badge {
    flex-shrink: 0;
    display: inline-block;
    padding: 0.15rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    border-radius: 2px;
    white-space: nowrap;
}

.leg-ob-card__penalty-badge--severe {
    background: #8b0000;
    color: #fff;
}

.leg-ob-card__penalty-badge--high {
    background: #d4351c;
    color: #fff;
}

.leg-ob-card__penalty-badge--standard {
    background: var(--color-bg-light);
    color: var(--color-text-primary);
}

.leg-ob-card__summary {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    line-height: 1.5;
}

.leg-ob-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.leg-ob-card__duty-holder {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    background: #e8f0fe;
    color: #1d70b8;
    border-radius: 2px;
    font-weight: 600;
}

.leg-ob-card__section {
    font-family: var(--font-mono, monospace);
    color: var(--color-text-muted);
}

.leg-ob-card__regulator {
    color: var(--color-link);
    text-decoration: underline;
    text-underline-offset: 2px;
}

.leg-ob-card__regulator:hover {
    color: var(--color-link-hover);
}

.leg-ob-card__trigger {
    color: var(--color-text-secondary);
    font-style: italic;
}


/* --- Penalty cards --- */

.leg-penalty-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.leg-penalty-card {
    display: flex;
    gap: 0;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-radius: 4px;
    overflow: hidden;
}

.leg-penalty-card__severity {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 110px;
    padding: 0.75rem 0.5rem;
    text-align: center;
}

.leg-penalty-severity {
    display: inline-block;
    padding: 0.2rem 0.5rem;
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    border-radius: 2px;
    white-space: nowrap;
}

.leg-penalty-severity--severe  { background: #8b0000; color: #fff; }
.leg-penalty-severity--high    { background: #d4351c; color: #fff; }
.leg-penalty-severity--medium  { background: #f47738; color: #fff; }
.leg-penalty-severity--standard { background: var(--color-bg-light); color: var(--color-text-primary); }

.leg-penalty-card__body {
    flex: 1;
    padding: 0.875rem 1rem;
    border-left: 1px solid var(--color-border-light);
}

.leg-penalty-card--severe {
    border-left: 3px solid #8b0000;
}

.leg-penalty-card--high {
    border-left: 3px solid #d4351c;
}

.leg-penalty-card--medium {
    border-left: 3px solid #f47738;
}

.leg-penalty-card__title {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary);
    line-height: 1.35;
}

.leg-penalty-card__amount {
    margin: 0 0 0.35rem;
    font-size: 0.875rem;
    color: #d4351c;
    font-weight: 600;
}

.leg-penalty-card--severe .leg-penalty-card__amount {
    color: #8b0000;
}

.leg-penalty-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.8125rem;
    color: var(--color-text-secondary);
}

.leg-penalty-card__trial {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    background: var(--color-bg-light);
    border-radius: 2px;
    font-weight: 500;
}

.leg-penalty-card__section {
    font-family: var(--font-mono, monospace);
    color: var(--color-text-muted);
}

.leg-penalty-card__oblref {
    color: var(--color-text-muted);
    font-style: italic;
}


/* --- Exemption cards --- */

.leg-exemption-list {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.leg-exemption-card {
    padding: 1rem 1.25rem;
    background: var(--color-bg-white);
    border: 1px solid var(--color-border-light);
    border-left: 3px solid #00703c;
    border-radius: 0 4px 4px 0;
}

.leg-exemption-card__title {
    margin: 0 0 0.25rem;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text-primary);
    line-height: 1.35;
}

.leg-exemption-card__desc {
    margin: 0 0 0.5rem;
    font-size: 0.875rem;
    color: var(--color-text-secondary);
    line-height: 1.5;
}

.leg-exemption-card__meta {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    font-size: 0.8125rem;
}

.leg-exemption-card__condition {
    display: inline-block;
    padding: 0.1rem 0.4rem;
    background: #e8f5e9;
    color: #00703c;
    border-radius: 2px;
    font-weight: 600;
}

.leg-exemption-card__oblref {
    color: var(--color-text-muted);
    font-style: italic;
}

.leg-exemption-card__section {
    font-family: var(--font-mono, monospace);
    color: var(--color-text-muted);
}


/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */

@media (max-width: 640px) {
    .leg-detail__title {
        font-size: 1.625rem;
    }

    .leg-glance__row {
        flex-direction: column;
        gap: 0.15rem;
    }

    .leg-glance__row dt {
        flex: none;
    }

    .leg-guide-grid,
    .leg-journey-grid,
    .leg-editorial-list {
        grid-template-columns: 1fr;
    }

    .leg-provision-nav {
        gap: 0.5rem;
    }

    .leg-provision-nav__item {
        min-width: 70px;
        padding: 0.5rem 0.75rem;
    }

    .leg-provision-item {
        flex-wrap: wrap;
    }

    .leg-footer-nav {
        grid-template-columns: 1fr;
    }

    .leg-contents__list {
        padding-left: 1rem;
    }

    .leg-stats {
        gap: 0.5rem;
    }

    .leg-stat {
        min-width: 70px;
        padding: 0.5rem 0.75rem;
    }

    .leg-stat__value {
        font-size: 1.375rem;
    }

    .leg-ob-card__header {
        flex-direction: column;
        gap: 0.25rem;
    }

    .leg-ob-card__meta {
        flex-direction: column;
        gap: 0.25rem;
    }

    .leg-penalty-card {
        flex-direction: column;
    }

    .leg-penalty-card__severity {
        width: 100%;
        padding: 0.5rem;
    }

    .leg-penalty-card__body {
        border-left: none;
        border-top: 1px solid var(--color-border-light);
    }

    .legislation-stats {
        flex-direction: column;
        gap: 1rem;
    }

    .leg-idx-stats {
        gap: 0.5rem;
    }

    .leg-idx-stats__item {
        min-width: 70px;
    }

    .leg-idx-stats__value {
        font-size: 1.375rem;
    }

    .leg-idx-stats__item--obligations,
    .leg-idx-stats__item--severe {
        border-left: none;
        padding-left: 0;
        border-top: 2px solid var(--color-border-light);
        padding-top: 0.5rem;
    }

    .filter-form .filter-row {
        flex-direction: column;
    }

    .filter-row--second {
        margin-top: 0.5rem;
    }
}
