:root {
    color-scheme: light;
    --ink: #172b45;
    --muted: #5d6f86;
    --navy: #102f54;
    --navy-deep: #09213e;
    --brand: #2168b0;
    --brand-light: #69b5f2;
    --mist: #eaf3fc;
    --canvas: #f4f7fb;
    --surface: #ffffff;
    --line: #dbe4ef;
    --success: #14815f;
    --warning: #b26a0a;
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

/* Release management */
.release-toolbar {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
    padding: 1rem 1.2rem;
}

.release-toolbar label,
.visibility-form label {
    display: grid;
    gap: .4rem;
}

.release-toolbar label > span {
    color: var(--muted);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.release-toolbar select,
.visibility-form input,
.share-create-form input {
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    min-height: 42px;
    padding: .65rem .75rem;
}

.release-summary-card,
.validation-card,
.distribution-card,
.export-history-card {
    padding: 1.35rem;
}

.release-title-row,
.release-title-chips,
.release-action-bar,
.public-feed-owner {
    display: flex;
    align-items: center;
}

.release-title-row {
    justify-content: space-between;
    gap: 1rem;
}

.release-title-row h2,
.section-heading h2 {
    margin-bottom: .25rem;
}

.release-title-row p,
.validation-stamp,
.share-section p,
.public-feed-description,
.public-feed-note {
    color: var(--muted);
    margin: 0;
}

.release-title-chips,
.release-action-bar {
    gap: .65rem;
    flex-wrap: wrap;
}

.release-pipeline {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 0;
    list-style: none;
    margin: 1.4rem 0;
    padding: 0;
}

.release-pipeline li {
    position: relative;
    display: grid;
    justify-items: center;
    gap: .25rem;
    color: var(--muted);
    text-align: center;
}

.release-pipeline li::before {
    content: "";
    position: absolute;
    z-index: 0;
    top: 17px;
    right: 50%;
    width: 100%;
    height: 2px;
    background: var(--line);
}

.release-pipeline li:first-child::before { display: none; }

.release-pipeline li > span {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 2px solid var(--line);
    border-radius: 50%;
    background: #fff;
    font-weight: 800;
}

.release-pipeline li.complete::before,
.release-pipeline li.complete > span {
    border-color: #198754;
    background-color: #198754;
    color: #fff;
}

.release-pipeline li.complete::before { background: #198754; }
.release-pipeline li.blocked > span { border-color: #c94848; color: #a92d2d; background: #fff6f6; }
.release-pipeline strong { color: var(--ink); font-size: .88rem; }
.release-pipeline small { font-size: .73rem; }
.release-action-bar { border-top: 1px solid var(--line); padding-top: 1rem; }
.release-action-bar form { margin: 0; }
.text-action { color: var(--brand, #184f75); font-weight: 750; padding: .65rem .2rem; }
.release-guidance { margin: .8rem 0 0; color: var(--muted); font-size: .88rem; }

.release-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.05fr) minmax(360px, .95fr);
    gap: 1rem;
    margin: 1rem 0;
    align-items: start;
}

.validation-score,
.visibility-chip,
.revoked-label {
    border-radius: 999px;
    padding: .35rem .65rem;
    font-size: .76rem;
    font-weight: 800;
}

.validation-score.passing { color: #11693e; background: #e8f7ef; }
.validation-score.failing { color: #a52c2c; background: #fff0f0; }
.visibility-chip.restricted { color: #6e4d00; background: #fff5d9; }
.visibility-chip.public { color: #11693e; background: #e8f7ef; }
.validation-stamp { font-size: .82rem; }

.inline-warning {
    display: grid;
    gap: .2rem;
    margin: 1rem 0;
    padding: .8rem .9rem;
    border: 1px solid #e4c66a;
    border-radius: 10px;
    color: #684c00;
    background: #fff9e7;
    font-size: .86rem;
}

.validation-empty {
    display: grid;
    justify-items: center;
    gap: .3rem;
    margin-top: 1.2rem;
    padding: 1.3rem;
    border-radius: 12px;
    background: #f0faf4;
    color: #11693e;
    text-align: center;
}

.validation-empty > span { font-size: 1.5rem; }
.validation-empty p { margin: 0; color: #3f7257; }
.release-issue-list { display: grid; gap: .55rem; margin-top: 1rem; max-height: 540px; overflow: auto; }
.release-issue { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: .65rem; padding: .75rem; border: 1px solid var(--line); border-left-width: 4px; border-radius: 9px; }
.release-issue.error { border-left-color: #c94848; }
.release-issue.warning { border-left-color: #d59b16; }
.release-issue > span { color: #a52c2c; font-size: .68rem; font-weight: 850; text-transform: uppercase; }
.release-issue div { display: grid; gap: .25rem; }
.release-issue strong { font-size: .84rem; }
.release-issue small { color: var(--muted); }
.release-issue a { font-size: .78rem; font-weight: 800; }

.visibility-form { display: grid; grid-template-columns: 1fr 1fr; gap: .65rem; margin: 1rem 0; }
.visibility-form label { grid-template-columns: auto 1fr; align-items: start; border: 1px solid var(--line); border-radius: 10px; padding: .7rem; cursor: pointer; }
.visibility-form input { min-height: auto; margin-top: .15rem; padding: 0; }
.visibility-form label span { display: grid; gap: .15rem; }
.visibility-form small { color: var(--muted); }
.visibility-form button { grid-column: 1 / -1; justify-self: start; }
.published-url { display: grid; gap: .25rem; padding: .8rem; border-radius: 10px; background: #edf7fb; }
.published-url span { color: var(--muted); font-size: .75rem; font-weight: 800; text-transform: uppercase; }
.published-url a { word-break: break-all; font-weight: 750; }
.share-section { margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.share-create-form { display: grid; grid-template-columns: 1fr auto; gap: .55rem; margin: .8rem 0; }
.share-link-list { display: grid; gap: .5rem; }
.share-link-row { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .7rem; border: 1px solid var(--line); border-radius: 9px; }
.share-link-row > div { display: grid; gap: .15rem; min-width: 0; }
.share-link-row a { overflow: hidden; color: var(--brand, #184f75); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.share-link-row small { color: var(--muted); }
.share-link-row.revoked { opacity: .65; }
.danger-text-action { border: 0; background: transparent; color: #a52c2c; cursor: pointer; font-weight: 800; }
.revoked-label { color: var(--muted); background: #eef0f2; }

.export-history-card { margin-bottom: 1rem; }
.export-list { display: grid; }
.export-row { display: grid; grid-template-columns: minmax(220px, 1fr) auto minmax(130px, auto) auto; align-items: center; gap: 1rem; padding: .8rem 0; border-top: 1px solid var(--line); }
.export-row > span:first-child { display: grid; gap: .2rem; }
.export-row small { color: var(--muted); }
.compact-action { min-height: auto; padding: .45rem .65rem; }

/* Public release pages */
.public-release-shell { min-height: 100vh; display: grid; grid-template-rows: auto 1fr auto; background: radial-gradient(circle at 90% 5%, #dcecff 0, transparent 30%), #f5f8fa; }
.public-release-header,
.public-release-footer { display: flex; justify-content: space-between; align-items: center; padding: 1rem clamp(1rem, 5vw, 4rem); background: rgba(255,255,255,.9); border-bottom: 1px solid var(--line); }
.public-release-footer { border-top: 1px solid var(--line); border-bottom: 0; color: var(--muted); font-size: .82rem; }
.verified-release-label { padding: .4rem .7rem; border-radius: 999px; color: #11693e; background: #e8f7ef; font-size: .78rem; font-weight: 800; }
.public-release-content { display: grid; place-items: center; padding: clamp(1.5rem, 6vw, 5rem) 1rem; }
.public-feed-card { width: min(700px, 100%); padding: clamp(1.5rem, 5vw, 3.5rem); border: 1px solid var(--line); border-radius: 22px; background: #fff; box-shadow: 0 22px 60px rgba(30, 61, 82, .12); text-align: center; }
.public-feed-owner { justify-content: center; gap: .45rem; margin-bottom: 1.3rem; }
.public-feed-owner strong { color: var(--ink); }
.public-feed-icon { display: grid; place-items: center; width: 66px; height: 66px; margin: 0 auto 1rem; border-radius: 18px; background: #f2f4f6; color: var(--muted); font-size: 1.8rem; font-weight: 850; }
.public-feed-icon.available { background: linear-gradient(145deg, #2168b0, #367fc4); color: #fff; }
.public-feed-card h1 { margin: .3rem 0 .65rem; font-size: clamp(2rem, 5vw, 3.2rem); }
.public-feed-description { max-width: 560px; margin-inline: auto; line-height: 1.6; }
.public-feed-facts { display: grid; grid-template-columns: 1fr 1fr; gap: .7rem; margin: 1.6rem 0; text-align: left; }
.public-feed-facts div { display: grid; gap: .25rem; padding: .85rem; border-radius: 11px; background: #f6f8f9; }
.public-feed-facts span { color: var(--muted); font-size: .73rem; font-weight: 800; text-transform: uppercase; }
.public-download-action { display: flex; align-items: center; justify-content: center; gap: .75rem; width: 100%; padding: 1rem; border-radius: 12px; background: linear-gradient(135deg, #2168b0, #184f8b); color: #fff; text-decoration: none; }
.public-download-action > span:first-child { font-size: 1.7rem; }
.public-download-action > span:last-child { display: grid; text-align: left; }
.public-download-action small { color: rgba(255,255,255,.78); }
.public-feed-note { margin-top: .7rem; font-size: .78rem; }
.public-export-pending,
.restricted-access-note { display: flex; align-items: center; gap: .75rem; padding: 1rem; border-radius: 11px; text-align: left; }
.public-export-pending { display: grid; background: #fff7df; color: #684c00; }
.public-export-pending span { font-size: .85rem; }
.restricted-access-note { margin-top: 1rem; background: #eef4f7; }
.restricted-access-note > span:last-child { display: grid; gap: .15rem; }
.restricted-access-note small { color: var(--muted); }

@media (max-width: 900px) {
    .release-detail-grid { grid-template-columns: 1fr; }
    .release-toolbar { grid-template-columns: 1fr; }
    .release-pipeline { grid-template-columns: 1fr; gap: .55rem; }
    .release-pipeline li { grid-template-columns: auto 1fr; justify-items: start; text-align: left; }
    .release-pipeline li::before { display: none; }
    .release-pipeline li small { grid-column: 2; }
}

@media (max-width: 620px) {
    .release-title-row,
    .public-release-header,
    .public-release-footer,
    .share-link-row { align-items: flex-start; flex-direction: column; }
    .visibility-form,
    .public-feed-facts,
    .share-create-form { grid-template-columns: 1fr; }
    .visibility-form button { grid-column: auto; }
    .export-row { grid-template-columns: 1fr auto; }
}

* {
    box-sizing: border-box;
}

html,
body {
    min-height: 100%;
}

body {
    margin: 0;
    background: var(--canvas);
    color: var(--ink);
}

a {
    color: inherit;
}

.product-shell {
    min-height: 100vh;
}

.product-header {
    height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 0 28px;
    background: var(--navy);
    color: #f8fcfd;
    border-bottom: 1px solid var(--navy-deep);
}

.product-brand {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    color: inherit;
    text-decoration: none;
}

.product-brand strong,
.product-brand small {
    display: block;
}

.product-brand strong {
    font-size: 17px;
    letter-spacing: .01em;
}

.product-brand small {
    margin-top: 2px;
    color: #bed2eb;
    font-size: 11px;
}

.product-mark {
    width: 42px;
    height: 42px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
}

.product-mark img {
    width: 42px;
    height: 42px;
    display: block;
    object-fit: contain;
}

.header-actions {
    display: flex;
    align-items: center;
    gap: 18px;
}

.beta-pill {
    padding: 6px 10px;
    color: #cee7ff;
    background: rgba(105, 181, 242, .12);
    border: 1px solid rgba(147, 202, 255, .28);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
}

.text-link {
    color: #f8fcfd;
    font-size: 13px;
    font-weight: 700;
    text-decoration: none;
}

.header-actions button.text-link {
    appearance: none;
    min-height: 36px;
    padding: 8px 12px;
    border: 1px solid #8faed1;
    border-radius: 6px;
    background: #193f6a;
    color: #ffffff;
    font-family: inherit;
    line-height: 1.25;
    white-space: nowrap;
    cursor: pointer;
}

.header-actions button.text-link:hover {
    background: #275886;
    border-color: #ffffff;
}

.header-actions button.text-link:focus-visible {
    outline: 3px solid #ffffff;
    outline-offset: 3px;
}

.product-frame {
    min-height: calc(100vh - 72px);
    display: grid;
    grid-template-columns: 238px minmax(0, 1fr);
}

.product-navigation {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    padding: 24px 16px 18px;
    background: #fbfdfd;
    border-right: 1px solid var(--line);
}

.product-navigation nav {
    display: grid;
    gap: 6px;
}

.navigation-section-heading {
    margin: 16px 0 2px;
    padding: 16px 13px 0;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 11px;
    font-weight: 750;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.product-navigation nav a {
    display: flex;
    align-items: center;
    gap: 11px;
    min-height: 43px;
    padding: 0 13px;
    color: #40545d;
    border-radius: 8px;
    font-size: 14px;
    font-weight: 650;
    text-decoration: none;
}

.product-navigation nav a span {
    width: 20px;
    color: #6f858e;
    font-size: 18px;
    text-align: center;
}

.product-navigation nav a:hover {
    background: #f0f5f6;
}

.product-navigation nav a.active {
    color: var(--navy);
    background: var(--mist);
}

.product-navigation nav a.active span {
    color: var(--brand);
}

.navigation-footer {
    display: grid;
    gap: 4px;
    padding: 12px;
    color: var(--muted);
    font-size: 12px;
    border-top: 1px solid var(--line);
}

.navigation-footer small {
    font-size: 10px;
}

.product-content {
    min-width: 0;
    padding: 42px clamp(24px, 4vw, 64px) 64px;
}

.page-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 30px;
    margin-bottom: 30px;
}

.page-heading h1 {
    max-width: 760px;
    margin: 7px 0 8px;
    font-size: clamp(30px, 4vw, 46px);
    line-height: 1.08;
    letter-spacing: -.035em;
}

.product-content h1:focus {
    outline: none;
}

.compact-heading h1 {
    font-size: clamp(28px, 3.4vw, 40px);
}

.page-heading p {
    max-width: 720px;
    margin: 0;
    color: var(--muted);
    font-size: 16px;
    line-height: 1.6;
}

.eyebrow,
.card-label {
    color: var(--brand);
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .1em;
    text-transform: uppercase;
}

.primary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 0 17px;
    flex: 0 0 auto;
    color: #fff;
    background: var(--brand);
    border: 1px solid #1c5c9c;
    border-radius: 8px;
    box-shadow: 0 7px 18px rgba(33, 104, 176, .16);
    font-size: 13px;
    font-weight: 750;
    text-decoration: none;
}

.primary-action:hover {
    background: #18548f;
}

.status-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 20px;
}

.status-card,
.content-card {
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 12px;
    box-shadow: 0 7px 25px rgba(31, 58, 70, .045);
}

.status-card {
    min-height: 166px;
    padding: 21px 22px;
}

.status-card p {
    margin: 13px 0 0;
    color: var(--muted);
    font-size: 13px;
    line-height: 1.55;
}

.status-line,
.price-line {
    display: flex;
    align-items: center;
    gap: 9px;
    margin-top: 18px;
}

.status-line strong {
    font-size: 22px;
}

.status-dot {
    width: 9px;
    height: 9px;
    background: #95a5ab;
    border-radius: 50%;
    box-shadow: 0 0 0 4px rgba(149, 165, 171, .12);
}

.status-dot.healthy {
    background: var(--success);
    box-shadow: 0 0 0 4px rgba(20, 129, 95, .12);
}

.status-dot.warning {
    background: var(--warning);
    box-shadow: 0 0 0 4px rgba(178, 106, 10, .12);
}

.accent-card {
    color: #f6fbfc;
    background: linear-gradient(140deg, var(--navy), #1b487a);
    border-color: transparent;
}

.accent-card .card-label {
    color: #93caff;
}

.accent-card p {
    color: #c5d8ef;
}

.price-line strong {
    font-size: 32px;
    letter-spacing: -.04em;
}

.price-line span {
    color: #c5d8ef;
    font-size: 13px;
}

.dashboard-columns {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
    gap: 20px;
}

.content-card {
    padding: 26px;
}

.content-card h2 {
    margin: 5px 0 0;
    font-size: 20px;
    letter-spacing: -.015em;
}

.card-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 16px;
}

.progress-value {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}

.progress-track {
    height: 5px;
    margin: 22px 0 20px;
    overflow: hidden;
    background: #e9eff1;
    border-radius: 99px;
}

.progress-track span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--brand), var(--brand-light));
}

.migration-list {
    display: grid;
    gap: 4px;
    margin: 0;
    padding: 0;
    list-style: none;
}

.migration-list li {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    padding: 9px 7px;
    border-radius: 8px;
}

.migration-list li.complete {
    background: #f1f7fd;
}

.step-marker {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    color: #6b7e86;
    background: #eef3f4;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 800;
}

.complete .step-marker {
    color: #fff;
    background: var(--success);
}

.migration-list strong,
.migration-list small {
    display: block;
}

.migration-list strong {
    font-size: 13px;
}

.migration-list small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 11px;
}

.decision-card dl {
    display: grid;
    gap: 0;
    margin: 20px 0 0;
}

.decision-card dl div {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    padding: 13px 0;
    border-bottom: 1px solid var(--line);
}

.decision-card dl div:last-child {
    border-bottom: 0;
}

.decision-card dt,
.decision-card dd {
    margin: 0;
    font-size: 12px;
}

.decision-card dt {
    color: var(--muted);
}

.decision-card dd {
    font-weight: 750;
    text-align: right;
}

.transition-card {
    max-width: 900px;
}

.transition-card p {
    max-width: 720px;
    color: var(--muted);
    line-height: 1.65;
}

.transition-visual {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 16px;
    margin-bottom: 28px;
}

.transition-visual span {
    padding: 28px 16px;
    background: #f3f8f9;
    border: 1px solid var(--line);
    border-radius: 10px;
    font-size: 14px;
    font-weight: 750;
    text-align: center;
}

.transition-visual span:last-child {
    color: #fff;
    background: var(--navy);
    border-color: var(--navy);
}

.transition-visual i {
    color: var(--brand);
    font-size: 24px;
    font-style: normal;
}

.company-heading {
    align-items: center;
}

.signed-in-summary {
    display: grid;
    gap: 3px;
    min-width: 230px;
    padding: 13px 16px;
    background: #edf4fc;
    border: 1px solid #d1e3f6;
    border-radius: 9px;
}

.signed-in-summary span {
    color: var(--muted);
    font-size: 10px;
    font-weight: 750;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.signed-in-summary strong {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
}

.portal-alert {
    margin: -8px 0 20px;
    padding: 12px 15px;
    border: 1px solid;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 650;
}

.success-alert {
    color: #0e654c;
    background: #eefaf6;
    border-color: #bce2d4;
}

.error-alert {
    color: #8d2c24;
    background: #fff4f2;
    border-color: #efc6c1;
}

.company-admin-grid {
    display: grid;
    grid-template-columns: minmax(240px, 310px) minmax(0, 1fr);
    align-items: start;
    gap: 20px;
}

.company-directory {
    padding: 20px;
}

.section-heading,
.company-title-row,
.team-heading-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.section-heading h2,
.company-title-row h2,
.team-heading-row h2 {
    margin-top: 4px;
}

.count-pill {
    min-width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    color: var(--brand);
    background: var(--mist);
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
}

.company-list {
    display: grid;
    gap: 5px;
    margin-top: 18px;
}

.company-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    padding: 11px 10px;
    color: var(--ink);
    border: 1px solid transparent;
    border-radius: 8px;
    text-decoration: none;
}

.company-list a:hover {
    background: #f4f8f9;
}

.company-list a.selected {
    background: var(--mist);
    border-color: #c9dff5;
}

.company-list a > span:first-child {
    min-width: 0;
}

.company-list strong,
.company-list small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.company-list strong {
    font-size: 12px;
}

.company-list small {
    margin-top: 4px;
    color: var(--muted);
    font-size: 10px;
}

.status-chip,
.signin-chip {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .045em;
    text-transform: uppercase;
    white-space: nowrap;
}

.status-chip.active,
.signin-chip.signed-in {
    color: #0d6b50;
    background: #e7f8f2;
}

.status-chip.inactive,
.signin-chip.pending {
    color: #80520c;
    background: #fff4db;
}

.create-company-panel {
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid var(--line);
}

.create-company-panel summary {
    color: var(--brand);
    cursor: pointer;
    font-size: 12px;
    font-weight: 750;
}

.stacked-form,
.company-settings-form,
.add-member-form {
    display: grid;
    gap: 13px;
}

.stacked-form {
    margin-top: 15px;
}

.stacked-form label,
.company-settings-form label,
.add-member-form label {
    display: grid;
    gap: 6px;
}

.stacked-form label span,
.company-settings-form label span,
.add-member-form label span {
    color: #526770;
    font-size: 10px;
    font-weight: 750;
}

.stacked-form input,
.stacked-form select,
.company-settings-form input,
.company-settings-form select,
.add-member-form input,
.add-member-form select,
.role-form select {
    width: 100%;
    min-height: 39px;
    padding: 0 10px;
    color: var(--ink);
    background: #fff;
    border: 1px solid #cbdadd;
    border-radius: 7px;
    font: inherit;
    font-size: 12px;
}

.stacked-form input:focus,
.company-settings-form input:focus,
.company-settings-form select:focus,
.add-member-form input:focus,
.add-member-form select:focus,
.role-form select:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 3px rgba(33, 104, 176, .12);
    outline: none;
}

.company-detail-column {
    min-width: 0;
    display: grid;
    gap: 20px;
}

.company-overview-card,
.team-card {
    padding: 25px;
}

.company-title-row p,
.team-heading-row p {
    margin: 7px 0 0;
    color: var(--muted);
    font-size: 12px;
}

.company-settings-form {
    grid-template-columns: minmax(220px, 1fr) minmax(140px, 180px) auto;
    align-items: end;
    margin-top: 22px;
    padding-top: 20px;
    border-top: 1px solid var(--line);
}

.secondary-action,
.text-action {
    color: var(--brand);
    background: transparent;
    border: 0;
    cursor: pointer;
    font: inherit;
    font-size: 11px;
    font-weight: 750;
}

.secondary-action {
    min-height: 39px;
    padding: 0 13px;
    background: #edf4fc;
    border: 1px solid #cddff3;
    border-radius: 7px;
}

.seat-meter {
    display: grid;
    gap: 2px;
    min-width: 104px;
    text-align: right;
}

.seat-meter strong {
    color: var(--brand);
    font-size: 20px;
}

.seat-meter span {
    color: var(--muted);
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.seat-track {
    height: 5px;
    margin: 19px 0 22px;
    overflow: hidden;
    background: #e8eff1;
    border-radius: 999px;
}

.seat-track span {
    display: block;
    height: 100%;
    background: linear-gradient(90deg, var(--brand), var(--brand-light));
}

.add-member-form {
    grid-template-columns: minmax(220px, 1fr) minmax(160px, 210px) auto;
    align-items: end;
    padding: 17px;
    background: #f6fafb;
    border: 1px solid #e0eaec;
    border-radius: 9px;
}

.seat-limit-note {
    padding: 13px 15px;
    color: #725018;
    background: #fff8e9;
    border: 1px solid #eeddb7;
    border-radius: 8px;
    font-size: 11px;
    line-height: 1.5;
}

.member-table {
    margin-top: 20px;
    border: 1px solid var(--line);
    border-radius: 9px;
    overflow: hidden;
}

.member-row {
    display: grid;
    grid-template-columns: minmax(200px, 1.25fr) minmax(105px, .55fr) minmax(210px, 1fr) 68px;
    align-items: center;
    gap: 12px;
    min-height: 68px;
    padding: 10px 14px;
    border-top: 1px solid var(--line);
}

.member-row:first-child {
    border-top: 0;
}

.member-header {
    min-height: 37px;
    color: var(--muted);
    background: #f5f8f9;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .07em;
    text-transform: uppercase;
}

.member-person {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}

.avatar {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--navy);
    background: var(--mist);
    border-radius: 50%;
    font-size: 10px;
    font-weight: 850;
}

.member-person > span:last-child {
    min-width: 0;
}

.member-person strong,
.member-person small {
    display: block;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.member-person strong {
    font-size: 12px;
}

.member-person small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 10px;
}

.role-form {
    display: flex;
    align-items: center;
    gap: 5px;
}

.role-form select {
    min-height: 33px;
}

.danger-text {
    color: #aa3128;
}

.remove-member-confirm summary {
    color: #aa3128;
    cursor: pointer;
    font-size: 11px;
    font-weight: 750;
}

.remove-member-confirm form {
    margin-top: 5px;
}

.empty-copy {
    color: var(--muted);
    font-size: 12px;
    line-height: 1.55;
}

.team-empty-copy {
    margin: 20px 0 0;
    padding: 18px;
    background: #f7fafb;
    border-radius: 8px;
    text-align: center;
}

.access-state-card {
    display: flex;
    align-items: flex-start;
    gap: 16px;
    max-width: 780px;
}

.access-state-card p {
    color: var(--muted);
    font-size: 13px;
    line-height: 1.6;
}

.access-state-card .primary-action {
    margin-top: 6px;
}

.access-state-icon {
    width: 40px;
    height: 40px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    color: var(--brand);
    background: var(--mist);
    border-radius: 50%;
    font-weight: 850;
}

.compact-state-card {
    max-width: none;
}

.feed-admin-layout {
    display: grid;
    grid-template-columns: 276px minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

.feed-directory {
    position: sticky;
    top: 22px;
    padding: 18px;
}

.feed-company-heading {
    margin-bottom: 15px;
}

.company-switcher,
.selected-company-label {
    display: grid;
    gap: 5px;
    margin-bottom: 14px;
    padding: 11px 12px;
    background: #f5f9fa;
    border: 1px solid var(--line);
    border-radius: 8px;
}

.company-switcher > span,
.selected-company-label > span {
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.company-switcher select {
    min-height: 34px;
    padding: 0 8px;
    background: var(--surface);
    border: 1px solid var(--line);
    border-radius: 6px;
    color: var(--ink);
    font: inherit;
    font-size: 12px;
}

.selected-company-label strong {
    font-size: 12px;
}

.feed-list,
.version-list {
    display: grid;
    gap: 6px;
}

.feed-directory .create-agency-action {
    margin-top: 20px;
}

.company-admin-grid.company-information-layout {
    grid-template-columns: minmax(0, 1fr);
}

.feed-list a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    padding: 11px;
    border: 1px solid transparent;
    border-radius: 8px;
    text-decoration: none;
}

.feed-list a:hover {
    background: #f5f9fa;
}

.feed-list a.selected {
    background: var(--mist);
    border-color: #b9d7f5;
}

.feed-list a > span:first-child {
    min-width: 0;
}

.feed-list strong,
.feed-list small {
    display: block;
}

.feed-list strong {
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.feed-list small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
}

.create-feed-panel,
.feed-settings-panel {
    margin-top: 15px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}

.create-feed-panel summary,
.feed-settings-panel summary,
.validation-panel summary,
.file-inventory-panel summary {
    cursor: pointer;
    font-size: 11px;
    font-weight: 800;
}

.create-feed-panel .stacked-form {
    margin-top: 13px;
}

.feed-detail-column {
    min-width: 0;
    display: grid;
    gap: 18px;
}

.feed-overview-card,
.import-card,
.version-navigation,
.version-detail-card {
    padding: 20px;
}

.feed-title-row,
.version-title-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}

.feed-title-row h2,
.version-title-row h2,
.import-card h2 {
    margin: 3px 0 4px;
}

.feed-title-row p,
.version-title-row p,
.import-card-copy p {
    margin: 0;
    color: var(--muted);
    font-size: 11px;
}

.feed-title-row code {
    color: var(--brand);
    font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

.feed-facts {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 8px;
    margin-top: 17px;
}

.feed-facts > div {
    min-width: 0;
    padding: 11px 12px;
    background: #f7fafb;
    border: 1px solid #e5edef;
    border-radius: 8px;
}

.feed-facts span,
.feed-facts strong {
    display: block;
}

.feed-facts span {
    color: var(--muted);
    font-size: 9px;
    font-weight: 750;
    text-transform: uppercase;
}

.feed-facts strong {
    margin-top: 4px;
    overflow: hidden;
    font-size: 12px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.feed-settings-form {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) minmax(160px, 1fr) minmax(120px, .6fr) auto;
    align-items: end;
    gap: 10px;
    margin-top: 13px;
}

.feed-settings-form input,
.feed-settings-form select,
.feed-settings-form button {
    box-sizing: border-box;
    height: 44px;
    min-width: 0;
}

.feed-settings-form button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.feed-settings-help {
    grid-column: 1 / -1;
    color: var(--muted);
    font-size: 11px;
    line-height: 1.4;
}

.feed-settings-form label,
.import-form label {
    display: grid;
    gap: 5px;
}

.feed-settings-form label > span,
.import-form label > span {
    font-size: 10px;
    font-weight: 750;
}

.feed-settings-form input,
.feed-settings-form select,
.import-form input {
    width: 100%;
    min-height: 37px;
    padding: 0 10px;
    background: var(--surface);
    border: 1px solid #cbdadd;
    border-radius: 6px;
    color: var(--ink);
    font: inherit;
    font-size: 12px;
}

.import-card {
    display: grid;
    grid-template-columns: minmax(220px, .75fr) minmax(420px, 1.25fr);
    align-items: center;
    gap: 24px;
    background: linear-gradient(135deg, #fff 60%, #edf5ff);
}

.import-card-copy p {
    max-width: 480px;
    line-height: 1.55;
}

.import-form {
    display: grid;
    grid-template-columns: minmax(220px, 1.2fr) minmax(160px, .8fr) auto;
    align-items: end;
    gap: 10px;
}

.import-form input,
.import-form button {
    box-sizing: border-box;
    height: 44px;
    min-width: 0;
}

.import-upload-help {
    grid-column: 1 / -1;
    color: var(--muted);
    font-size: 9px;
}

.file-picker input[type="file"] {
    padding: 7px;
}

.version-workspace {
    display: grid;
    grid-template-columns: minmax(250px, 320px) minmax(0, 1fr);
    align-items: start;
    gap: 18px;
}

.version-navigation {
    padding: 14px;
}

.version-navigation .section-heading {
    padding: 3px 4px 11px;
}

.version-list a {
    position: relative;
    display: grid;
    grid-template-columns: 8px minmax(0, 1fr) auto;
    align-items: start;
    gap: 9px;
    padding: 11px 9px;
    border: 1px solid transparent;
    border-radius: 8px;
    text-decoration: none;
}

.version-list a:hover {
    background: #f6f9fa;
}

.version-list a.selected {
    background: var(--mist);
    border-color: #b9d7f5;
}

.version-list strong,
.version-list small {
    display: block;
}

.version-list strong {
    overflow: hidden;
    font-size: 11px;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.version-list small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 8px;
    line-height: 1.35;
}

.version-marker {
    width: 7px;
    height: 7px;
    margin-top: 4px;
    background: #82949b;
    border-radius: 50%;
}

.version-marker.loaded,
.version-marker.published {
    background: var(--success);
}

.version-marker.failed {
    background: #c64537;
}

.version-marker.importing {
    background: var(--warning);
}

.active-version-chip {
    padding: 3px 5px;
    color: #0f6b4e;
    background: #e5f5ef;
    border-radius: 999px;
    font-size: 7px;
    font-weight: 800;
    text-transform: uppercase;
}

.version-detail-card {
    min-width: 0;
}

.empty-version-state {
    display: grid;
    place-items: center;
    min-height: 250px;
    color: var(--muted);
    text-align: center;
}

.empty-version-state > span {
    color: var(--brand);
    font-size: 30px;
}

.empty-version-state h2,
.empty-version-state p {
    margin: 4px 0;
}

.empty-version-state p {
    font-size: 11px;
}

.version-metrics {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
    margin-top: 16px;
}

.metric {
    padding: 12px;
    background: #f7fafb;
    border: 1px solid #e4ecef;
    border-radius: 8px;
}

.metric strong,
.metric span {
    display: block;
}

.metric strong {
    font-size: 17px;
}

.metric span {
    margin-top: 2px;
    color: var(--muted);
    font-size: 9px;
}

.success-metric strong {
    color: var(--success);
}

.error-metric strong {
    color: #b6382d;
}

.warning-metric strong {
    color: var(--warning);
}

.row-count-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: 1px;
    margin-top: 14px;
    overflow: hidden;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: 8px;
}

.row-count-grid div {
    display: flex;
    justify-content: space-between;
    gap: 8px;
    padding: 9px 10px;
    background: var(--surface);
    font-size: 9px;
}

.row-count-grid span {
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap;
}

.validation-panel,
.file-inventory-panel {
    margin-top: 15px;
    padding-top: 13px;
    border-top: 1px solid var(--line);
}

.validation-list {
    display: grid;
    gap: 6px;
    max-height: 420px;
    margin-top: 10px;
    overflow: auto;
}

.validation-item {
    display: grid;
    grid-template-columns: 56px minmax(0, 1fr);
    gap: 9px;
    padding: 9px;
    background: #f8fafb;
    border-left: 3px solid #84979e;
    border-radius: 5px;
}

.validation-item.error {
    background: #fff6f4;
    border-left-color: #c64537;
}

.validation-item.warning {
    background: #fffaf1;
    border-left-color: var(--warning);
}

.issue-severity {
    padding-top: 1px;
    color: var(--muted);
    font-size: 8px;
    font-weight: 850;
    text-transform: uppercase;
}

.validation-item strong,
.validation-item small {
    display: block;
}

.validation-item strong {
    font-size: 10px;
    line-height: 1.4;
}

.validation-item small {
    margin-top: 3px;
    color: var(--muted);
    font-size: 8px;
}

.truncation-note {
    color: var(--muted);
    font-size: 9px;
}

.file-inventory-table {
    display: grid;
    gap: 1px;
    margin-top: 10px;
    overflow: hidden;
    background: var(--line);
    border: 1px solid var(--line);
    border-radius: 7px;
}

.file-inventory-row {
    display: grid;
    grid-template-columns: minmax(150px, 1.5fr) minmax(70px, .6fr) minmax(70px, .6fr) auto;
    align-items: center;
    gap: 8px;
    padding: 8px 10px;
    background: var(--surface);
    font-size: 9px;
}

.file-inventory-row strong,
.file-inventory-row small {
    display: block;
}

.file-inventory-row small {
    margin-top: 2px;
    color: var(--brand);
    font-size: 7px;
    font-weight: 800;
    text-transform: uppercase;
}

.version-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 17px;
    padding-top: 14px;
    border-top: 1px solid var(--line);
}

.version-actions .secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.version-actions span {
    color: var(--muted);
    font-size: 9px;
    line-height: 1.4;
}

.sr-only {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.editor-context-bar {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
    align-items: end;
    gap: 10px;
    margin-bottom: 16px;
    padding: 14px;
}

.editor-context-bar label {
    display: grid;
    gap: 5px;
}

.editor-context-bar label > span {
    color: var(--muted);
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .06em;
    text-transform: uppercase;
}

.editor-context-bar select {
    width: 100%;
    min-height: 38px;
    padding: 0 9px;
    background: var(--surface);
    border: 1px solid #cbdadd;
    border-radius: 6px;
    color: var(--ink);
    font: inherit;
    font-size: 11px;
}

.editor-version-state {
    display: grid;
    justify-items: end;
    gap: 5px;
    min-width: 105px;
    padding-bottom: 2px;
}

.editor-version-state small {
    color: var(--muted);
    font-size: 8px;
}

.draft-gate-card {
    display: grid;
    grid-template-columns: minmax(260px, 1fr) minmax(360px, .9fr);
    align-items: end;
    gap: 24px;
    margin-bottom: 16px;
    padding: 18px 20px;
    background: linear-gradient(120deg, #fff 55%, #edf5ff);
    border-left: 3px solid var(--brand);
}

.draft-gate-card h2 {
    margin: 3px 0 4px;
}

.draft-gate-card p {
    margin: 0;
    color: var(--muted);
    font-size: 10px;
    line-height: 1.5;
}

.draft-create-form {
    display: grid;
    grid-template-columns: minmax(180px, 1fr) auto;
    align-items: end;
    gap: 9px;
}

.draft-create-form label {
    display: grid;
    gap: 5px;
}

.draft-create-form label span {
    font-size: 9px;
    font-weight: 750;
}

.draft-create-form input {
    width: 100%;
    min-height: 38px;
    padding: 0 10px;
    background: #fff;
    border: 1px solid #cbdadd;
    border-radius: 6px;
    font: inherit;
    font-size: 11px;
}

.gtfs-editor-shell {
    display: grid;
    grid-template-columns: 224px minmax(0, 1fr);
    align-items: start;
    gap: 14px;
}

.table-directory,
.row-editor-panel {
    position: sticky;
    top: 18px;
}

.table-directory {
    padding: 13px;
}

.table-directory .section-heading {
    padding: 3px 5px 10px;
}

.table-directory nav {
    display: grid;
    gap: 4px;
}

.table-directory nav a {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 7px;
    padding: 9px;
    border: 1px solid transparent;
    border-radius: 7px;
    text-decoration: none;
}

.table-directory nav a:hover {
    background: #f5f9fa;
}

.table-directory nav a.selected {
    background: var(--mist);
    border-color: #b9d7f5;
}

.table-directory strong,
.table-directory small {
    display: block;
    line-height: 1.4;
}

.table-directory strong {
    font-size: 14px;
}

.table-directory small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 14px;
}

.map-available-chip {
    padding: 3px 5px;
    color: #205f9e;
    background: #e1efff;
    border-radius: 999px;
    font-size: 7px;
    font-weight: 850;
    text-transform: uppercase;
}

.editor-main-column {
    min-width: 0;
    display: grid;
    gap: 14px;
}

.table-browser-card,
.stop-map-card,
.row-editor-panel {
    padding: 16px;
}

.table-browser-card,
.stop-map-card {
    width: 100%;
    min-width: 0;
}

.table-browser-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
}

.table-browser-heading h2 {
    margin: 3px 0 3px;
}

.table-browser-heading p {
    margin: 0;
    color: var(--muted);
    font-size: 9px;
}

.compact-action {
    min-height: 34px;
    padding: 0 12px;
    font-size: 9px;
}

.table-search-form {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: 13px;
}

.table-search-form label {
    flex: 1;
}

.table-search-form input {
    width: 100%;
    min-height: 35px;
    padding: 0 10px;
    background: #f8fafb;
    border: 1px solid #d5e1e4;
    border-radius: 6px;
    font: inherit;
    font-size: 10px;
}

.table-search-form .secondary-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    line-height: 1;
    min-height: 35px;
    padding: 0 11px;
}

.gtfs-table-scroll {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    margin-top: 13px;
    overflow-x: auto;
    border: 1px solid var(--line);
    border-radius: 7px;
}

.gtfs-data-table {
    width: 100%;
    min-width: 640px;
    border-collapse: collapse;
    color: var(--ink);
    font-size: 14px;
    line-height: 1.5;
    white-space: nowrap;
}

.gtfs-data-table th,
.gtfs-data-table td {
    max-width: 320px;
    padding: 12px 14px;
    overflow: hidden;
    border-bottom: 1px solid #e8eef0;
    text-align: left;
    text-overflow: ellipsis;
}

.gtfs-data-table th {
    position: sticky;
    top: 0;
    z-index: 1;
    color: var(--ink);
    background: #f3f7f8;
    font-size: 13px;
    font-weight: 750;
    letter-spacing: normal;
    text-transform: none;
}

.gtfs-data-table tbody tr:last-child td {
    border-bottom: 0;
}

.gtfs-data-table tbody tr:hover td,
.gtfs-data-table tbody tr.selected td {
    background: #eff6ff;
}

.gtfs-data-table .key-cell {
    color: var(--ink);
    font-weight: 750;
}

.selectable-row {
    cursor: pointer;
}

.gtfs-data-table .expired-trip td,
.gtfs-data-table .expired-trip .key-cell { color: #b57752; }
.service-expiry summary { cursor: pointer; text-decoration: underline dotted; text-underline-offset: 3px; }
.service-expiry-popup { position: fixed; z-index: 100; width: min(260px, calc(100vw - 16px)); padding: 12px 14px; border: 1px solid #cbdadd; border-radius: 7px; background: white; color: var(--ink); box-shadow: 0 4px 16px #102f5426; white-space: normal; cursor: default; font-size: 14px; line-height: 1.5; }
.service-expiry-popup strong, .service-expiry-popup a { display: block; }
.service-expiry-popup a { margin-top: 4px; color: var(--brand); text-decoration: underline; }

.optional-file-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; align-items: start; }
.optional-file-picker { padding: 18px 22px; }
.optional-file-picker form { display: flex; align-items: center; flex-wrap: wrap; gap: 12px; font-size: 14px; }
.optional-file-picker select { flex: 1; min-width: 0; max-width: 100%; padding: 10px; font: inherit; color: var(--ink); border: 1px solid var(--line); border-radius: 6px; background: white; }
.optional-file-layout .table-directory { position: static; }
.optional-file-content { min-width: 0; padding: 22px; }
.optional-file-content textarea { width: 100%; font: 14px/1.5 monospace; padding: 12px; border: 1px solid var(--line); border-radius: 7px; }
.optional-row-form { max-width: 650px; padding: 18px; border: 1px solid var(--line); margin-top: 24px; }
.optional-file-action { margin-top: 24px; }
@media(max-width: 800px) { .optional-file-layout { grid-template-columns: 1fr; } }

.row-select-link {
    color: inherit;
    text-decoration: none;
}

.gtfs-data-table tbody tr:focus-within td {
    background: #eff6ff;
}

.row-select-link:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: 3px;
}

.gtfs-editor-shell.has-row-editor {
    grid-template-columns: 224px minmax(0, 1fr) 294px;
}

@keyframes row-editor-enter {
    from { opacity: 0; transform: translateX(28px); }
    to { opacity: 1; transform: translateX(0); }
}

@media (prefers-reduced-motion: no-preference) {
    .row-editor-panel {
        animation: row-editor-enter 180ms ease-out;
    }
}

.table-pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: 10px;
    color: var(--muted);
    font-size: 8px;
}

.table-pagination > div {
    display: flex;
    gap: 12px;
}

.editor-empty-state {
    display: grid;
    justify-items: center;
    gap: 3px;
    min-height: 120px;
    place-content: center;
    color: var(--muted);
    text-align: center;
}

.editor-empty-state strong {
    color: var(--ink);
    font-size: 11px;
}

.editor-empty-state span {
    font-size: 9px;
}

.map-count {
    padding: 5px 7px;
    color: #205f9e;
    background: var(--mist);
    border-radius: 999px;
    font-size: 8px;
    font-weight: 800;
}

.coordinate-map {
    position: relative;
    height: 280px;
    margin-top: 13px;
    overflow: hidden;
    background:
        radial-gradient(circle at 22% 28%, rgba(105, 181, 242, .12), transparent 25%),
        linear-gradient(145deg, #edf4fc, #e3eefb);
    border: 1px solid #cfe0e3;
    border-radius: 9px;
}

.coordinate-map::before,
.coordinate-map::after {
    content: "";
    position: absolute;
    background: rgba(33, 104, 176, .08);
    border-radius: 46% 54% 62% 38%;
    transform: rotate(-12deg);
}

.coordinate-map::before {
    width: 52%;
    height: 38%;
    left: 6%;
    top: 16%;
}

.coordinate-map::after {
    width: 44%;
    height: 46%;
    right: 2%;
    bottom: 5%;
}

.map-grid {
    position: absolute;
    z-index: 1;
    background: rgba(73, 126, 137, .13);
}

.map-grid.horizontal-one,
.map-grid.horizontal-two {
    width: 100%;
    height: 1px;
}

.map-grid.horizontal-one { top: 33%; }
.map-grid.horizontal-two { top: 66%; }

.map-grid.vertical-one,
.map-grid.vertical-two {
    width: 1px;
    height: 100%;
}

.map-grid.vertical-one { left: 33%; }
.map-grid.vertical-two { left: 66%; }

.stop-map-point {
    position: absolute;
    z-index: 3;
    width: 10px;
    height: 10px;
    margin: -5px 0 0 -5px;
    background: var(--brand);
    border: 2px solid #fff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(9, 33, 43, .35);
    transition: transform .15s ease;
}

.stop-map-point:hover,
.stop-map-point.selected {
    z-index: 4;
    background: #e05a3f;
    transform: scale(1.5);
}

.map-axis,
.map-range {
    position: absolute;
    z-index: 4;
    color: #56727b;
    font-size: 7px;
    font-weight: 800;
}

.map-axis.north { top: 8px; right: 9px; }
.map-range.west { left: 8px; bottom: 6px; }
.map-range.east { right: 8px; bottom: 6px; }

.row-editor-panel {
    min-width: 0;
}

.row-editor-empty {
    display: grid;
    justify-items: center;
    min-height: 260px;
    place-content: center;
    color: var(--muted);
    text-align: center;
}

.row-editor-empty > span {
    color: var(--brand);
    font-size: 25px;
}

.row-editor-empty h2,
.row-editor-empty p {
    margin: 4px 0;
}

.row-editor-empty p {
    font-size: 9px;
}

.row-editor-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.row-editor-heading h2 {
    margin: 3px 0 0;
}

.panel-close {
    width: 27px;
    height: 27px;
    display: grid;
    place-items: center;
    color: var(--muted);
    background: #f3f7f8;
    border-radius: 50%;
    font-size: 16px;
    text-decoration: none;
}

.row-editor-form {
    display: grid;
    gap: 10px;
    margin-top: 14px;
}

.row-editor-form label {
    display: grid;
    gap: 4px;
}

.row-editor-form label > span {
    font-size: 14px;
    font-weight: 750;
}

.row-editor-form label em {
    margin-left: 4px;
    color: #b54537;
    font-size: 14px;
    font-style: normal;
    font-weight: 800;
    text-transform: uppercase;
}

.row-editor-form input {
    width: 100%;
    min-height: 35px;
    padding: 0 9px;
    background: #fff;
    border: 1px solid #cbdadd;
    border-radius: 6px;
    color: var(--ink);
    font: inherit;
    font-size: 14px;
}

.row-editor-form input[readonly] {
    color: #526a73;
    background: #f3f7f8;
}

.row-editor-form label small {
    color: var(--muted);
    font-size: 14px;
    line-height: 1.35;
}

.row-editor-form .primary-action {
    justify-content: center;
    margin-top: 3px;
}

.google-maps-link {
    color: var(--brand);
    font-size: 8px;
    font-weight: 750;
}

.delete-row-panel {
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--line);
}

.delete-row-panel summary {
    color: #a83d31;
    cursor: pointer;
    font-size: 9px;
    font-weight: 800;
}

.delete-row-panel p {
    color: var(--muted);
    font-size: 8px;
    line-height: 1.4;
}

@media (max-width: 1360px) {
    .company-admin-grid {
        grid-template-columns: 250px minmax(0, 1fr);
    }

    .company-settings-form,
    .add-member-form {
        grid-template-columns: 1fr 1fr;
    }

    .company-settings-form button,
    .add-member-form button {
        justify-self: start;
    }

    .member-header {
        display: none;
    }

    .member-row {
        grid-template-columns: 1fr auto;
    }

    .feed-admin-layout {
        grid-template-columns: 244px minmax(0, 1fr);
    }

    .import-card,
    .import-form {
        grid-template-columns: 1fr;
    }

    .import-form button {
        justify-self: start;
    }

    .feed-settings-form {
        grid-template-columns: 1fr 1fr;
    }

    .feed-settings-form button {
        justify-self: start;
    }

    .version-workspace {
        grid-template-columns: minmax(230px, 280px) minmax(0, 1fr);
    }

    .gtfs-editor-shell {
        grid-template-columns: 200px minmax(0, 1fr);
    }

    .gtfs-editor-shell.has-row-editor {
        grid-template-columns: 200px minmax(0, 1fr) 260px;
    }
}

@media (max-width: 980px) {
    .status-grid,
    .dashboard-columns {
        grid-template-columns: 1fr;
    }

    .status-card {
        min-height: 0;
    }

    .company-admin-grid {
        grid-template-columns: 1fr;
    }

    .company-directory {
        position: static;
    }

    .feed-admin-layout,
    .version-workspace {
        grid-template-columns: 1fr;
    }

    .feed-directory {
        position: static;
    }

    .feed-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .editor-context-bar {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .draft-gate-card,
    .gtfs-editor-shell.has-row-editor,
    .gtfs-editor-shell {
        grid-template-columns: 1fr;
    }

    .table-directory,
    .row-editor-panel {
        position: static;
    }

    .table-directory nav {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 720px) {
    .product-header {
        height: auto;
        min-height: 68px;
        padding: 11px 16px;
    }

    .product-brand small,
    .beta-pill {
        display: none;
    }

    .product-frame {
        display: block;
        min-height: calc(100vh - 68px);
    }

    .product-navigation {
        display: block;
        padding: 9px 12px;
        border-right: 0;
        border-bottom: 1px solid var(--line);
    }

    .product-navigation nav {
        display: flex;
        flex-wrap: wrap;
        gap: 6px;
        overflow-x: auto;
    }

    .navigation-section-heading {
        flex-basis: 100%;
        margin-top: 6px;
        padding-top: 12px;
    }

    .product-navigation nav a {
        white-space: nowrap;
    }

    .navigation-footer {
        display: none;
    }

    .product-content {
        padding: 28px 18px 44px;
    }

    .page-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .primary-action {
        align-self: flex-start;
    }

    .transition-visual {
        grid-template-columns: 1fr;
    }

    .transition-visual i {
        transform: rotate(90deg);
        text-align: center;
    }

    .signed-in-summary {
        min-width: 0;
    }

    .company-settings-form,
    .add-member-form {
        grid-template-columns: 1fr;
    }

    .team-heading-row,
    .company-title-row {
        align-items: flex-start;
        flex-direction: column;
    }

    .seat-meter {
        text-align: left;
    }

    .member-row {
        grid-template-columns: 1fr;
        gap: 9px;
        padding: 15px;
    }

    .role-form {
        align-items: stretch;
        flex-direction: column;
    }

    .feed-list,
    .feed-settings-form,
    .feed-facts,
    .version-metrics {
        grid-template-columns: 1fr;
    }

    .feed-title-row,
    .version-title-row,
    .version-actions {
        align-items: flex-start;
        flex-direction: column;
    }

    .file-inventory-row {
        grid-template-columns: 1fr 1fr;
    }

    .editor-context-bar,
    .draft-create-form,
    .table-directory nav {
        grid-template-columns: 1fr;
    }

    .editor-version-state {
        justify-items: start;
    }

    .table-browser-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .table-search-form {
        align-items: stretch;
        flex-wrap: wrap;
    }

    .table-search-form label {
        flex-basis: 100%;
    }
}

/* Subscription and billing */
.billing-heading {
    padding: 20px 24px;
    background: linear-gradient(120deg, rgba(33, 104, 176, .1), rgba(105, 181, 242, .04) 48%, transparent);
}

.billing-company-picker {
    margin-bottom: 1rem;
    padding: 1rem 1.2rem;
}

.billing-company-picker label,
.checkout-form label {
    display: grid;
    gap: .4rem;
}

.billing-company-picker label > span,
.checkout-form label > span {
    color: var(--muted);
    font-size: .75rem;
    font-weight: 800;
    letter-spacing: .08em;
    text-transform: uppercase;
}

.billing-company-picker select,
.checkout-form input {
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: #fff;
    color: var(--ink);
    padding: .65rem .75rem;
}

.billing-status-grid,
.billing-plan-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 1rem;
    margin-bottom: 1rem;
}

.subscription-status-card,
.seat-license-card,
.billing-setup-card,
.billing-policy-card,
.plan-card {
    padding: 1.35rem;
}

.subscription-status-card {
    border-top: 4px solid var(--brand);
}

.subscription-status-card.grace {
    border-top-color: var(--warning);
}

.subscription-status-card.blocked {
    border-top-color: #b33c52;
}

.billing-status-chip,
.setup-state-chip,
.plan-badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: .38rem .65rem;
    font-size: .72rem;
    font-weight: 850;
    letter-spacing: .05em;
    text-transform: uppercase;
}

.billing-status-chip.active,
.billing-status-chip.trialing {
    background: #e5f6ef;
    color: var(--success);
}

.billing-status-chip.past_due,
.setup-state-chip {
    background: #fff3db;
    color: #8b5509;
}

.billing-status-chip.canceled,
.billing-status-chip.unpaid,
.billing-status-chip.incomplete,
.billing-status-chip.incomplete_expired,
.billing-status-chip.paused {
    background: #fde8ec;
    color: #9a2840;
}

.subscription-status-card > p,
.seat-license-card > p,
.billing-setup-card > p,
.billing-policy-card > p,
.plan-card > p,
.pricing-heading > p {
    color: var(--muted);
}

.subscription-facts {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .7rem;
    margin: 1.1rem 0;
}

.subscription-facts > div {
    display: grid;
    gap: .2rem;
    border-radius: 12px;
    background: var(--canvas);
    padding: .75rem;
}

.subscription-facts span,
.trial-countdown span,
.billing-grace-warning span {
    color: var(--muted);
    font-size: .78rem;
}

.billing-grace-warning,
.trial-countdown {
    display: flex;
    justify-content: space-between;
    gap: .75rem;
    margin: 1rem 0;
    border-radius: 11px;
    padding: .8rem .9rem;
}

.billing-grace-warning {
    background: #fff3db;
    color: #7a4800;
}

.trial-countdown {
    background: var(--mist);
    color: var(--navy);
}

.billing-seat-track {
    height: 9px;
    overflow: hidden;
    margin: 1rem 0;
    border-radius: 999px;
    background: #e6edef;
}

.billing-seat-track span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand), var(--brand-light));
}

.seat-license-card dl {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: .7rem;
    margin: 0;
}

.seat-license-card dl div {
    display: grid;
    gap: .2rem;
}

.seat-license-card dt {
    color: var(--muted);
    font-size: .75rem;
}

.seat-license-card dd {
    margin: 0;
    color: var(--navy);
    font-size: 1.2rem;
    font-weight: 850;
}

.billing-setup-card,
.billing-policy-card {
    margin-bottom: 1rem;
}

.stripe-setup-list {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: .65rem;
    margin: 1rem 0;
    padding: 0;
    list-style: none;
}

.stripe-setup-list li {
    display: flex;
    align-items: center;
    gap: .75rem;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: .8rem;
}

.stripe-setup-list li > span {
    display: grid;
    width: 30px;
    height: 30px;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    background: #e7edef;
    color: var(--muted);
    font-weight: 850;
}

.stripe-setup-list li.complete > span {
    background: #e5f6ef;
    color: var(--success);
}

.stripe-setup-list div {
    display: grid;
    gap: .15rem;
}

.stripe-setup-list small,
.setup-footnote {
    color: var(--muted);
}

.pricing-section {
    margin: 1.8rem 0 1rem;
}

.pricing-heading {
    margin-bottom: 1rem;
}

.pricing-heading h2 {
    margin: .25rem 0;
}

.pricing-group-heading {
    margin: 1.25rem 0 .8rem;
}

.pricing-group-heading h3 {
    margin: .2rem 0;
    color: var(--navy);
    font-size: 1.35rem;
}

.pricing-group-heading p {
    margin: 0;
    color: var(--muted);
}

.managed-pricing-heading {
    margin-top: 1.8rem;
    border-top: 1px solid var(--line);
    padding-top: 1.5rem;
}

.plan-card {
    position: relative;
}

.recommended-plan {
    border: 2px solid var(--brand);
    box-shadow: 0 15px 35px rgba(16, 47, 84, .1);
}

.managed-plan-card {
    background: linear-gradient(145deg, #fff, rgba(33, 104, 176, .055));
}

.plan-badge {
    position: absolute;
    top: 1rem;
    right: 1rem;
    background: var(--navy);
    color: #fff;
}

.plan-label {
    color: var(--brand);
    font-weight: 850;
}

.plan-price {
    display: flex;
    align-items: baseline;
    gap: .4rem;
    margin: .45rem 0;
}

.plan-price strong {
    color: var(--navy);
    font-size: clamp(2rem, 5vw, 3rem);
    line-height: 1;
}

.plan-price span,
.plan-card li {
    color: var(--muted);
}

.plan-card ul {
    display: grid;
    gap: .45rem;
    padding-left: 1.2rem;
}

.checkout-form {
    display: grid;
    gap: .8rem;
    margin-top: 1.1rem;
}

.seat-update-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: end;
    gap: .65rem;
    margin: 1rem 0;
    border-top: 1px solid var(--line);
    padding-top: 1rem;
}

.seat-update-form label {
    display: grid;
    gap: .35rem;
}

.seat-update-form label span,
.seat-update-form small {
    color: var(--muted);
    font-size: .75rem;
}

.seat-update-form input {
    min-height: 42px;
    border: 1px solid var(--line);
    border-radius: 10px;
    padding: .65rem .75rem;
}

.seat-update-form small {
    grid-column: 1 / -1;
}

.seat-update-form button[disabled] {
    cursor: not-allowed;
    opacity: .48;
}

.checkout-form button[disabled] {
    cursor: not-allowed;
    opacity: .48;
}

.billing-entitlement-warning {
    margin-top: 1rem;
}

.billing-entitlement-warning a {
    color: inherit;
    font-weight: 800;
}

@media (max-width: 980px) {
    .billing-status-grid,
    .billing-plan-grid {
        grid-template-columns: 1fr;
    }
}

@media (max-width: 720px) {
    .subscription-facts,
    .stripe-setup-list {
        grid-template-columns: 1fr;
    }

    .billing-grace-warning,
    .trial-countdown {
        align-items: flex-start;
        flex-direction: column;
    }

    .seat-update-form {
        grid-template-columns: 1fr;
    }

    .seat-update-form small {
        grid-column: auto;
    }
}

.account-card { max-width: 34rem; }

.company-deletion-card { border-color: #d8a19a; }
.company-deletion-card summary { color: #922c24; font-weight: 700; cursor: pointer; }
.company-deletion-card p { color: var(--muted); line-height: 1.5; }
.company-deletion-card .company-delete-button { background: #922c24; border-color: #922c24; color: #fff; }
.company-deletion-card .company-delete-button:hover { background: #701f19; }
.company-deletion-card .company-delete-button:focus-visible { outline: 3px solid #922c24; outline-offset: 3px; }

.workspace-view-tabs { display: flex; gap: 8px; }
.workspace-view-tabs a { padding: 12px 20px; border-radius: 8px; background: white; text-decoration: none; font-weight: 700; }
.workspace-view-tabs a[aria-current="page"] { background: #216bb0; color: white; }
.stop-map { height: clamp(320px, 55vh, 560px); border-radius: 10px; z-index: 0; }
.stop-map-status { color: var(--muted); font-size: 12px; }

#create-agency { margin-top: 24px; scroll-margin-top: 24px; }

.table-browser-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; }
.expired-cleanup-action { background: #fff2e8; border: 1px solid #d6a17d; color: #88451f; }
.expired-cleanup-action:hover { background: #fbe2d0; color: #713817; }
.expired-cleanup-review { margin: 1rem 0; padding: 1rem; border: 1px solid #d6a17d; border-radius: .6rem; background: #fff8f2; font-size: 14px; }
.expired-cleanup-review form { display: inline-block; margin-right: 1rem; }

.all-feed-files { max-height: min(65vh, 720px); overflow-y: auto; scrollbar-gutter: stable; }
.missing-feed-file { padding: 10px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.missing-feed-file > span { color: #788496; display: grid; gap: 4px; }
.missing-feed-file strong, .missing-feed-file small { font-size: 14px; overflow-wrap: anywhere; }
.table-directory .file-upload-link { display: inline-flex; padding: 4px 8px; font-size: 12px; color: var(--brand); border: 1px solid var(--line); }
.unified-file-editor { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.unified-file-editor.has-file-row { grid-template-columns: minmax(0, 1fr) minmax(260px, 320px); }
.unified-file-editor > .optional-file-content { min-width: 0; }
.unified-file-editor .optional-row-form { border: 0; padding: 0; margin: 0; }
@media(max-width: 1100px) { .unified-file-editor.has-file-row { grid-template-columns: minmax(0, 1fr); } }
.all-feed-files > a span { min-width: 0; }
.all-feed-files strong, .all-feed-files small { overflow-wrap: anywhere; white-space: normal; }
.available-feed-files { margin-top: 12px; border-top: 1px solid var(--line); padding-top: 12px; }
.available-feed-files > summary { cursor: pointer; padding: 8px; color: var(--muted); font-size: 14px; font-weight: 700; }
.available-feed-files > summary:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; border-radius: 4px; }
.header-account { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.header-company-link { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.header-company-link:hover { color: #cee7ff; }
.header-company-link:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
.shape-map-filters { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0; max-height: 180px; overflow-y: auto; }
.shape-map-filters button { white-space: normal; overflow-wrap: anywhere; max-width: 100%; font-size: 14px; cursor: pointer; }
.shape-map-filters button[aria-pressed="true"] { background: var(--brand); color: white; }
.shape-map-filters button:focus-visible { outline: 2px solid var(--brand); outline-offset: 2px; }
.shape-edit-tools { margin: 14px 0; padding: 14px; border: 1px solid var(--line); border-radius: 8px; background: #f6f9fc; font-size: 14px; }
.shape-edit-actions { display: flex; flex-wrap: wrap; gap: 8px; margin: 10px 0; }
.shape-edit-tools label { display: grid; gap: 6px; max-width: 360px; }
.shape-edit-tools input { padding: 8px; font-size: 14px; }
.shape-edit-tools button:disabled { opacity: .5; cursor: not-allowed; }
.shape-map-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; align-items: start; }
.shape-map-layout.with-editor { grid-template-columns: minmax(0, 1fr) 280px; }
.shape-map-surface { min-width: 0; }
.shape-map-layout .shape-edit-tools { margin: 0; }
@media (max-width: 1200px) { .shape-map-layout.with-editor { grid-template-columns: minmax(0, 1fr); } }
/* Collapsible primary navigation leaves the full workspace available. */
.product-frame { grid-template-columns: minmax(0, 1fr); }
.header-brand-group { display: flex; align-items: center; gap: 16px; min-width: 0; }
.navigation-toggle { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; flex-shrink: 0; padding: 10px; border: 1px solid #8faed1; border-radius: 6px; background: #193f6a; color: white; cursor: pointer; }
.navigation-toggle span { display: block; width: 22px; height: 2px; background: currentColor; }
.navigation-toggle:hover { background: #275886; }
.navigation-toggle:focus-visible { outline: 3px solid white; outline-offset: 3px; }
.navigation-drawer { position: fixed; inset: 0 auto 0 0; margin: 0; padding: 0; width: min(300px, 90vw); max-width: none; height: 100dvh; max-height: none; border: 0; background: #fbfdfd; color: var(--navy); box-shadow: 8px 0 32px #102f5430; }
.navigation-drawer[open] { animation: navigation-slide-in .2s ease-out; }
.navigation-drawer::backdrop { background: #102f5466; }
.navigation-drawer .product-navigation { display: flex; min-height: 100%; box-sizing: border-box; padding: 18px 16px; border: 0; gap: 18px; }
.navigation-drawer .product-navigation nav { display: grid; gap: 6px; overflow: visible; }
.navigation-drawer .navigation-footer { display: flex; margin-top: auto; }
.navigation-drawer-heading { display: flex; align-items: center; justify-content: space-between; }
.navigation-drawer-heading button { width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 6px; background: #eef4fa; color: var(--navy); font-size: 26px; cursor: pointer; }
.navigation-is-open { overflow: hidden; }
@keyframes navigation-slide-in { from { transform: translateX(-100%); } to { transform: translateX(0); } }
@media (prefers-reduced-motion: reduce) { .navigation-drawer[open] { animation: none; } }
@media (max-width: 720px) { .product-header { flex-wrap: wrap; gap: 12px; } .header-brand-group { gap: 10px; } .header-actions { flex-wrap: wrap; } }
.shape-map-layout.with-editor:not(:has(.shape-edit-tools:not([hidden]))) { grid-template-columns: minmax(0, 1fr); }
.shape-edit-tools[hidden] { display: none; }
.shape-choice-group { display: inline-flex; align-items: stretch; gap: 2px; }
.shape-map-filters .shape-icon-action { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; min-height: 40px; padding: 8px; font-size: 22px; }
.navigation-is-pinned .product-frame { padding-left: 300px; }
.navigation-is-pinned .navigation-drawer { top: 72px; height: calc(100dvh - 72px); box-shadow: none; border-right: 1px solid var(--line); }
.navigation-drawer-heading strong { margin-right: auto; }
.navigation-drawer-heading { gap: 8px; }
.navigation-drawer-heading [aria-pressed="true"] { background: #216bb0; color: white; }
.shape-edit-choice { display: inline-flex; align-items: center; gap: 8px; }
.shape-edit-choice span { display: inline-flex; }
.primary-action.shape-delete-action { background: #b42318; border-color: #b42318; color: white; }
.primary-action.shape-delete-action:hover { background: #912018; border-color: #912018; }
.all-feed-files { scrollbar-width: thin; scrollbar-color: #b9c9d9 transparent; }
.all-feed-files::-webkit-scrollbar { width: 5px; }
.all-feed-files::-webkit-scrollbar-thumb { background: #b9c9d9; border-radius: 8px; }
.all-feed-files::-webkit-scrollbar-track { background: transparent; }
@media (max-width: 720px) { .navigation-is-pinned .product-frame { padding-left: 0; } .navigation-is-pinned .navigation-drawer { top: 0; height: 100dvh; width: min(300px, 85vw); } }
.shape-map-filters .shape-stops-toggle { margin-left: auto; border: 1px solid #16806a; background: #e8f6f1; color: #0e594a; }
.shape-map-filters .shape-stops-toggle[aria-pressed="true"] { background: #16806a; color: white; }
.shape-choice-group { gap: 0; }
.shape-choice-group > button:first-child { border-radius: 6px 0 0 6px; }
.shape-choice-group > .shape-more-action { border-radius: 0 6px 6px 0; border-left: 0; min-width: 34px; font-size: 20px; padding: 4px 8px; }
.shape-actions-menu { position: fixed; inset: auto; margin: 0; padding: 6px; min-width: 160px; border: 1px solid var(--line); border-radius: 8px; background: white; box-shadow: 0 6px 24px #102f5426; }
.shape-actions-menu button { display: block; width: 100%; padding: 10px 12px; border: 0; border-radius: 4px; background: white; color: var(--navy); font: inherit; text-align: left; cursor: pointer; }
.shape-actions-menu button:hover, .shape-actions-menu button:focus-visible { background: #eef4fa; }
.shape-actions-menu .shape-menu-delete { color: #b42318; }

/* Keep workspace controls readable and the file directory aligned with its content. */
.navigation-toggle { width: 34px; height: 34px; padding: 7px; gap: 4px; background: transparent; border-color: #6f8ba9; }
.navigation-toggle span { width: 18px; }
.editor-context-bar label > span { font-size: 14px; letter-spacing: .025em; }
.editor-context-bar select { font-size: 14px; min-height: 42px; }
@media (min-width: 981px) {
    .gtfs-editor-shell .workspace-file-column > .table-directory { position: static; align-self: stretch; display: flex; flex-direction: column; min-height: 700px; contain: size; }
    .gtfs-editor-shell .workspace-file-column > .table-directory .all-feed-files { flex: 1; min-height: 0; max-height: none; align-content: start; }
}
#processing-overlay { position: fixed; inset: 0; z-index: 100000; display: grid; place-items: center; background: rgb(16 47 84 / 38%); cursor: wait; }
#processing-overlay[hidden] { display: none; }
.processing-card { display: grid; justify-items: center; gap: 12px; padding: 28px 36px; margin: 20px; border-radius: 12px; background: white; color: var(--navy); box-shadow: 0 12px 40px #102f5430; font-size: 14px; text-align: center; }
.processing-spinner { width: 36px; height: 36px; border: 4px solid #dce8f4; border-top-color: #216bb0; border-radius: 50%; animation: processing-spin .8s linear infinite; }
@keyframes processing-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .processing-spinner { animation-duration: 2s; } }

.gtfs-editor-shell .workspace-file-column > .table-directory { min-height: 700px; }
/* Keep Google control state images mutually exclusive after enhanced page updates. */
.stop-map .gm-control-active > img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); display: none; }
.stop-map .gm-control-active > img:first-child { display: block; }
.stop-map .gm-control-active:hover > img:first-child,
.stop-map .gm-control-active:focus-visible > img:first-child { display: none; }
.stop-map .gm-control-active:hover > img:nth-child(2),
.stop-map .gm-control-active:focus-visible > img:nth-child(2) { display: block; }
.stop-map .gm-control-active:active > img:nth-child(2) { display: none; }
.stop-map .gm-control-active:active > img:nth-child(3) { display: block; }
.stop-map .gm-control-active:disabled > img { display: none; }
.stop-map .gm-control-active:disabled > img:last-child { display: block; }

.workspace-file-column { display: flex; flex-direction: column; gap: 12px; align-self: stretch; min-width: 0; }
.visualizer-link { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; box-sizing: border-box; min-height: 44px; font-size: 14px; text-decoration: none; }
.visualizer-link[aria-current="page"] { background: #216bb0; color: white; }
.workspace-file-column > .table-directory { flex: 1; }
.gtfs-visualizer .stop-map { height: max(620px, 72vh); }
@media (max-width: 720px) { .gtfs-visualizer .stop-map { height: 65vh; min-height: 360px; } }
.visualizer-controls { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; font-size: 14px; }
.visualizer-controls > details { padding: 10px; border: 1px solid var(--line); border-radius: 6px; }
.visualizer-controls summary { cursor: pointer; font-weight: 700; }
.visualizer-controls input[type="search"] { display: block; width: 100%; margin: 8px 0; padding: 8px; }
.visualizer-options { max-height: 180px; overflow: auto; }
.visualizer-options label { display: flex; gap: 8px; padding: 4px; }
.visualizer-options label[hidden] { display: none; }
.visualizer-playback { display: flex; align-items: center; gap: 12px; grid-column: 1 / -1; }
.visualizer-playback input { flex: 1; }
.visualizer-controls > p, .visualizer-controls > details:last-child { grid-column: 1 / -1; }
.visualizer-timetables { max-height: 260px; overflow: auto; }
.visualizer-timetables td, .visualizer-timetables th { padding: 5px 10px; text-align: left; }
@media(max-width: 720px) { .visualizer-controls { grid-template-columns: 1fr; } }
.visualizer-selectors { display: flex; gap: 10px; margin-left: auto; align-items: flex-start; flex-wrap: wrap; }
.visualizer-selection-group { display: flex; align-items: flex-start; gap: 4px; }
.visualizer-selection-group details { position: relative; min-width: 140px; }
.visualizer-selection-group summary { padding: 10px; border: 1px solid var(--line); border-radius: 6px; background: #eef4fa; font-size: 14px; cursor: pointer; }
.visualizer-selection-menu { position: absolute; top: 100%; right: 0; width: min(320px, 75vw); z-index: 20; padding: 12px; border: 1px solid var(--line); background: white; border-radius: 6px; box-shadow: 0 5px 20px #102f5426; }
.visualizer-selection-menu input[type="search"] { width: 100%; padding: 8px; margin-bottom: 8px; }
.visualizer-eye { display: inline-flex; align-items: center; justify-content: center; min-height: 40px; }
.visualizer-eye[aria-pressed="true"] { background: #216bb0; color: white; }
.gtfs-visualizer .shape-map-filters { overflow: visible; max-height: none; align-items: flex-start; }
