/* CivilDocket core UI - shared foundations and components only. */

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--cd-page); scroll-behavior: smooth; }
body {
    min-height: 100vh;
    margin: 0;
    color: var(--cd-text);
    background:
        radial-gradient(circle at 100% 0, color-mix(in srgb, var(--cd-sky-500) 8%, transparent) 0, transparent 32rem),
        var(--cd-page);
    font: 400 14px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
}
a { color: var(--cd-blue-700); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: var(--cd-blue-600); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; }
img, svg { display: block; max-width: 100%; }
[hidden] { display: none !important; }
hr { border: 0; border-top: 1px solid var(--cd-border); }
code, pre { font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", monospace; }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: 0; box-shadow: var(--cd-focus-ring); }
::selection { color: var(--cd-on-strong); background: var(--cd-blue-600); }
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
h1, h2, h3, h4 { color: var(--cd-text); font-family: Poppins, Inter, ui-sans-serif, system-ui, sans-serif; letter-spacing: -.02em; }
h1 { font-size: clamp(28px, 3vw, 32px); line-height: 1.25; }
h2 { font-size: clamp(22px, 2.5vw, 26px); line-height: 1.3; }
h3 { font-size: 20px; line-height: 1.4; }
h4 { font-size: 16px; line-height: 1.5; }
p { margin-block: 0 1em; }
.shell { width: 100%; max-width: 1440px; margin-inline: auto; padding-inline: clamp(16px, 2.2vw, 32px); }

/* Product navigation */
.site-header { position: sticky; top: 0; z-index: 60; color: var(--cd-on-strong); background: color-mix(in srgb, var(--cd-navy-900) 96%, transparent); border-bottom: 1px solid rgba(255, 255, 255, .12); box-shadow: 0 4px 20px rgba(4, 17, 32, .12); backdrop-filter: blur(14px); }
.header-inner { min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: var(--cd-space-6); }
.brand { min-width: 0; display: inline-flex; align-items: center; gap: 11px; color: var(--cd-on-strong); text-decoration: none; }
.brand:hover { color: var(--cd-on-strong); text-decoration: none; }
.brand-logo { width: 44px; height: 44px; flex: 0 0 44px; object-fit: contain; border: 2px solid rgba(255, 255, 255, .82); border-radius: 11px; background: var(--cd-document-paper); box-shadow: 0 4px 14px rgba(0, 0, 0, .18); }
.brand-copy { min-width: 0; display: grid; }
.brand-copy strong { display: inline-flex; font-size: 18px; line-height: 1.2; letter-spacing: -.025em; }
.brand-copy strong span { color: var(--cd-on-strong); }
.brand-copy strong em { color: var(--cd-teal-600); font-style: normal; }
.brand-copy small { color: color-mix(in srgb, var(--cd-on-strong) 76%, transparent); font-size: 11px; white-space: nowrap; }
.top-nav { display: flex; align-items: center; gap: 5px; }
.top-nav > a, .top-nav .link-button { min-height: 40px; display: inline-flex; align-items: center; padding: 8px 10px; color: color-mix(in srgb, var(--cd-on-strong) 88%, transparent); border-radius: var(--cd-radius-md); font-weight: 650; text-decoration: none; transition: color var(--cd-transition-fast), background var(--cd-transition-fast); }
.top-nav > a:hover, .top-nav .link-button:hover { color: var(--cd-on-strong); background: rgba(255, 255, 255, .1); }
.top-nav .button { min-height: 38px; margin-left: 4px; }
.user-name { max-width: 160px; margin-inline: 6px 2px; overflow: hidden; color: color-mix(in srgb, var(--cd-on-strong) 70%, transparent); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.inline-form { display: inline; margin: 0; }
.link-button { border: 0; background: transparent; }
.theme-toggle { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 7px 10px; color: color-mix(in srgb, var(--cd-on-strong) 88%, transparent); border: 1px solid rgba(255, 255, 255, .2); border-radius: var(--cd-radius-md); background: rgba(255, 255, 255, .06); transition: background var(--cd-transition-fast), border-color var(--cd-transition-fast); }
.theme-toggle:hover { background: rgba(255, 255, 255, .13); border-color: rgba(255, 255, 255, .36); }
.theme-toggle__icon::before { content: "☾"; font-size: 18px; line-height: 1; }
:root[data-theme="dark"] .theme-toggle__icon::before { content: "☀"; }
.theme-toggle__label { font-size: 12px; font-weight: 700; }
.mobile-nav { display: none; }
.site-main { min-height: calc(100vh - 146px); padding: 28px 0 56px; }
.site-footer { color: var(--cd-text-muted); background: var(--cd-surface); border-top: 1px solid var(--cd-border); }
.footer-inner { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: var(--cd-space-6); font-size: 12px; }
.footer-inner p { margin: 0; }

/* Marketing landing */
.hero { min-height: min(680px, calc(100vh - 124px)); display: grid; grid-template-columns: minmax(0, 1.12fr) minmax(340px, .88fr); align-items: center; gap: clamp(32px, 6vw, 88px); padding: clamp(44px, 7vw, 92px) 0; }
.hero-copy { max-width: 780px; }
.hero h1 { max-width: 780px; margin: 16px 0 18px; font-size: clamp(40px, 6vw, 68px); line-height: 1.03; letter-spacing: -.05em; }
.hero h1 span { color: var(--cd-blue-600); }
.hero p { max-width: 720px; color: var(--cd-text-soft); font-size: 17px; line-height: 1.65; }
.hero-card { position: relative; overflow: hidden; padding: 24px; color: var(--cd-on-strong); border: 1px solid color-mix(in srgb, var(--cd-teal-600) 44%, var(--cd-border)); border-radius: var(--cd-radius-xl); background: linear-gradient(145deg, var(--cd-navy-900), var(--cd-navy-700)); box-shadow: var(--cd-shadow-3); }
.hero-card::after { content: ""; position: absolute; width: 220px; height: 220px; right: -100px; top: -110px; border: 34px solid color-mix(in srgb, var(--cd-teal-600) 36%, transparent); border-radius: 50%; }
.hero-card h2, .hero-card h3 { color: var(--cd-on-strong); }
.hero-card p, .hero-card small { color: color-mix(in srgb, var(--cd-on-strong) 78%, transparent); }
.hero-preview-head { position: relative; z-index: 1; margin-bottom: 22px; }
.hero-preview-head strong { display: block; font: 700 28px/1.12 Poppins, Inter, sans-serif; }
.hero-preview-head span { color: color-mix(in srgb, var(--cd-on-strong) 72%, transparent); font-size: 12px; }
.hero-metrics { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; }
.hero-metric { padding: 14px 12px; border: 1px solid rgba(255,255,255,.14); border-radius: 10px; background: rgba(255,255,255,.07); }
.hero-metric strong { display: block; color: var(--cd-on-strong); font-size: 24px; line-height: 1; }
.hero-metric span { display: block; margin-top: 7px; color: color-mix(in srgb, var(--cd-on-strong) 78%, transparent); font-size: 10px; }
.hero-next { position: relative; z-index: 1; margin-top: 12px; padding: 15px; color: var(--cd-text); border-radius: 10px; background: var(--cd-surface); }
.hero-next small { display: block; color: var(--cd-text-muted); font-weight: 700; letter-spacing: .055em; text-transform: uppercase; }
.hero-next strong { display: block; margin-top: 4px; color: var(--cd-text); }
.trust-list { display: flex; flex-wrap: wrap; gap: 9px 18px; margin-top: 22px; color: var(--cd-text-muted); font-size: 12px; font-weight: 650; }
.trust-list span::before { content: "✓"; margin-right: 6px; color: var(--cd-teal-600); font-weight: 900; }
.feature-grid { margin-top: 8px; }
.feature-card { position: relative; overflow: hidden; min-height: 176px; }
.feature-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 4px; background: var(--cd-blue-600); }
.feature-card:nth-child(2)::before { background: var(--cd-teal-600); }
.feature-card:nth-child(3)::before { background: var(--cd-navy-700); }

/* Shared page and container patterns */
.page-head, .section-title, .record-top, .card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--cd-space-5); }
.page-head { margin-bottom: 24px; }
.page-head h1, .page-head h2 { margin: 0 0 4px; }
.page-head p { margin: 0; color: var(--cd-text-muted); }
.section-title { align-items: center; margin: 28px 0 12px; }
.section-title h2, .section-title h3 { margin: 0; }
.eyebrow, .case-workspace-eyebrow { display: block; margin-bottom: 4px; color: var(--cd-blue-600); font-size: 10px; font-weight: 800; letter-spacing: .075em; text-transform: uppercase; }
.grid { display: grid; gap: var(--cd-space-5); }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.card, .record, .stat { color: var(--cd-text); background: var(--cd-surface); border: 1px solid var(--cd-border); border-radius: var(--cd-radius-lg); }
.card { box-shadow: var(--cd-shadow-1); }
.card.pad { padding: 22px; }
.card h2, .card h3 { margin-top: 0; }
.card-head { padding: 18px 20px; border-bottom: 1px solid var(--cd-border); }
.card-head h2, .card-head h3, .card-head p { margin: 0; }
.card-body { padding: 20px; }
.stat { padding: 18px; background: var(--cd-surface-soft); }
.stat strong { display: block; font-size: 28px; line-height: 1; }
.stat span { display: block; margin-top: 8px; color: var(--cd-text-muted); font-size: 12px; }
.record-list { display: grid; gap: 10px; }
.record { padding: 15px; }
.record h3, .record p { margin-top: 0; }
.record p:last-child { margin-bottom: 0; }
.record-meta { display: flex; flex-wrap: wrap; gap: 5px 14px; color: var(--cd-text-muted); font-size: 12px; }
.details-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 24px; }
.details-grid dt { color: var(--cd-text-muted); font-size: 11px; font-weight: 700; text-transform: uppercase; }
.details-grid dd { margin: 3px 0 0; }

/* Controls */
.button, button.button { min-height: var(--cd-control-h); display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 10px 16px; color: var(--cd-on-strong); border: 1px solid var(--cd-blue-600); border-radius: var(--cd-radius-sm); background: var(--cd-blue-600); box-shadow: 0 1px 2px rgba(11, 29, 51, .1); font-weight: 700; line-height: 1.2; text-decoration: none; transition: transform var(--cd-transition-fast), background var(--cd-transition-fast), border-color var(--cd-transition-fast), box-shadow var(--cd-transition-fast); }
.button:hover { color: var(--cd-on-strong); background: var(--cd-blue-700); border-color: var(--cd-blue-700); text-decoration: none; }
.button:active { transform: translateY(1px); }
.button.secondary { color: var(--cd-blue-700); background: var(--cd-surface); border-color: color-mix(in srgb, var(--cd-blue-600) 42%, var(--cd-border)); }
.button.secondary:hover { color: var(--cd-blue-700); background: var(--cd-info-soft); }
.button.neutral { color: var(--cd-text); background: var(--cd-surface); border-color: var(--cd-border-strong); }
.button.neutral:hover { color: var(--cd-text); background: var(--cd-surface-soft); }
.button.tertiary { color: var(--cd-blue-700); background: var(--cd-info-soft); border-color: transparent; }
.button.danger { color: var(--cd-danger); background: var(--cd-surface); border-color: color-mix(in srgb, var(--cd-danger) 45%, var(--cd-border)); }
.button.danger:hover { color: var(--cd-on-strong); background: var(--cd-danger); border-color: var(--cd-danger); }
.button.small { min-height: 36px; padding: 7px 11px; font-size: 12px; }
.button.full { width: 100%; }
.button:disabled, button:disabled { opacity: .5; }
.button-row, .form-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 9px; }
.form-actions { padding-top: 18px; margin-top: 18px; border-top: 1px solid var(--cd-border); }
form { margin: 0; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.field { display: flex; flex-direction: column; gap: 6px; }
.field.full { grid-column: 1 / -1; }
.field label, label > span:first-child { color: var(--cd-text); font-size: 12px; font-weight: 700; }
.field .help, .help, .help-text { color: var(--cd-text-muted); font-size: 11px; }
input, select, textarea { width: 100%; min-height: var(--cd-control-h); padding: 10px 12px; color: var(--cd-text); border: 1px solid var(--cd-border-strong); border-radius: var(--cd-radius-sm); background: var(--cd-surface); outline: none; transition: border-color var(--cd-transition-fast), box-shadow var(--cd-transition-fast), background var(--cd-transition-fast); }
textarea { min-height: 110px; resize: vertical; }
input::placeholder, textarea::placeholder { color: var(--cd-text-muted); opacity: .82; }
input:focus, select:focus, textarea:focus { border-color: var(--cd-focus); box-shadow: var(--cd-focus-ring); }
input:disabled, select:disabled, textarea:disabled { color: var(--cd-text-muted); background: var(--cd-surface-soft); opacity: 1; }
input[type="checkbox"], input[type="radio"] { width: 18px; min-height: 18px; accent-color: var(--cd-blue-600); }
.checkbox, .check-row, .form-check { display: inline-flex; align-items: flex-start; gap: 9px; }
.checkbox, .check-row { font-weight: 650; }
.check-row { min-height: 42px; align-items: center; }
.check-row input, .form-check input { width: auto; flex: 0 0 auto; }

/* Status and feedback */
.alert, .notice { margin-bottom: 16px; padding: 13px 15px; color: var(--cd-blue-700); border: 1px solid color-mix(in srgb, var(--cd-blue-600) 38%, var(--cd-border)); border-radius: var(--cd-radius-md); background: var(--cd-info-soft); }
.alert.success, .notice.success { color: var(--cd-success); border-color: color-mix(in srgb, var(--cd-success) 38%, var(--cd-border)); background: var(--cd-success-soft); }
.alert.warning, .notice.warning { color: var(--cd-warning); border-color: color-mix(in srgb, var(--cd-warning) 42%, var(--cd-border)); background: var(--cd-warning-soft); }
.alert.danger, .alert.error, .notice.error { color: var(--cd-danger); border-color: color-mix(in srgb, var(--cd-danger) 38%, var(--cd-border)); background: var(--cd-danger-soft); }
.badge, .status { min-height: 24px; display: inline-flex; align-items: center; width: max-content; max-width: 100%; padding: 3px 8px; color: var(--cd-text-muted); border-radius: 999px; background: var(--cd-surface-soft); font-size: 10px; font-weight: 800; line-height: 1.35; }
.badge.accent, .badge.info, .status.processing, .status.queued { color: var(--cd-blue-700); background: var(--cd-info-soft); }
.badge.success, .status.success, .status.published, .status.completed { color: var(--cd-success); background: var(--cd-success-soft); }
.badge.warning, .status.warning, .status.needs_review { color: var(--cd-warning); background: var(--cd-warning-soft); }
.badge.danger, .badge.overdue, .status.failed, .status.error { color: var(--cd-danger); background: var(--cd-danger-soft); }

/* Tables and lists */
.table-wrap { overflow: auto; border-radius: var(--cd-radius-md); }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 12px 13px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--cd-border); }
th { color: var(--cd-text-muted); background: var(--cd-surface-soft); font-size: 10px; font-weight: 800; letter-spacing: .055em; text-transform: uppercase; }
tbody tr { transition: background var(--cd-transition-fast); }
tbody tr:hover { background: color-mix(in srgb, var(--cd-info-soft) 54%, transparent); }
tr:last-child td { border-bottom: 0; }
.empty { padding: 30px; color: var(--cd-text-muted); text-align: center; border: 1px dashed var(--cd-border-strong); border-radius: var(--cd-radius-lg); background: var(--cd-surface-soft); }
.empty h3 { margin-top: 0; color: var(--cd-text); }
.compact-empty { padding: 18px; }

/* Auth, wizard and utility patterns */
.auth-shell, .auth-wrap { width: min(560px, 100%); margin: 28px auto; }
.auth-shell .card, .auth-wrap .card { padding: 28px; }
.steps { display: flex; gap: 8px; margin-bottom: 22px; }
.step { flex: 1; padding: 10px 12px; color: var(--cd-text-muted); border: 1px solid var(--cd-border); border-radius: var(--cd-radius-md); background: var(--cd-surface); font-size: 12px; font-weight: 700; }
.step.active { color: var(--cd-blue-700); border-color: var(--cd-blue-600); background: var(--cd-info-soft); }
.repeat-row { position: relative; padding: 18px; margin-bottom: 12px; border: 1px solid var(--cd-border); border-radius: var(--cd-radius-lg); background: var(--cd-surface-soft); }
.repeat-row .remove-row { position: absolute; top: 10px; right: 10px; }
.muted { color: var(--cd-text-muted); }
.small-text { font-size: 12px; }
.pre-line { white-space: pre-line; }
.document-name { overflow-wrap: anywhere; }
.grow { flex: 1 1 auto; }
.progress-note { padding: 18px; color: var(--cd-blue-700); border: 1px solid var(--cd-border); border-radius: var(--cd-radius-lg); background: var(--cd-info-soft); }

/* Dashboard operational rows */
.dashboard-action-centre { margin-bottom: 20px; }
.dashboard-action-centre .card-head { align-items: center; }
.motion-action-count { min-width: 34px; height: 34px; display: grid; place-items: center; color: var(--cd-on-strong); border-radius: 10px; background: var(--cd-blue-600); font-size: 13px; font-weight: 800; }
.dashboard-action-list { display: grid; gap: 8px; }
.dashboard-action-row { min-height: 62px; display: grid; grid-template-columns: 58px minmax(0, 1fr) auto; gap: 12px; align-items: center; padding: 9px 11px; color: var(--cd-text); border: 1px solid var(--cd-border); border-radius: var(--cd-radius-md); text-decoration: none; }
.dashboard-action-row:hover { color: var(--cd-text); border-color: var(--cd-blue-600); background: var(--cd-info-soft); text-decoration: none; }
.dashboard-action-date { min-height: 42px; display: grid; place-items: center; color: var(--cd-blue-700); border-radius: var(--cd-radius-md); background: var(--cd-info-soft); font-size: 11px; font-weight: 800; }
.dashboard-action-copy { min-width: 0; display: grid; }
.dashboard-action-copy strong, .dashboard-action-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dashboard-action-copy small { color: var(--cd-text-muted); }
.case-card-counts { display: grid; justify-items: end; gap: 6px; }
.deadline-countdown { width: max-content; max-width: 100%; display: inline-flex; margin-top: 7px; padding: 3px 7px; color: var(--cd-text-soft); border-radius: 999px; background: var(--cd-surface-soft); font-size: 10px; font-style: normal; font-weight: 800; }
.deadline-countdown.urgency-critical { color: var(--cd-danger); background: var(--cd-danger-soft); }
.deadline-countdown.urgency-high, .deadline-countdown.urgency-medium { color: var(--cd-warning); background: var(--cd-warning-soft); }
.deadline-countdown.urgency-complete { color: var(--cd-success); background: var(--cd-success-soft); }

/* Context navigation used before the full workspace shell */
.case-header { padding: 22px; margin-bottom: 0; border: 1px solid var(--cd-border); border-radius: var(--cd-radius-xl) var(--cd-radius-xl) 0 0; background: var(--cd-surface); }
.case-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--cd-text-muted); font-size: 12px; }
.case-nav { display: flex; overflow-x: auto; gap: 3px; padding: 0 12px; margin-bottom: 22px; border: 1px solid var(--cd-border); border-top: 0; border-radius: 0 0 var(--cd-radius-xl) var(--cd-radius-xl); background: var(--cd-surface); }
.case-nav a { padding: 14px 12px 12px; color: var(--cd-text-muted); border-bottom: 3px solid transparent; white-space: nowrap; text-decoration: none; }
.case-nav a:hover { color: var(--cd-text); }
.case-nav a.active { color: var(--cd-blue-700); border-bottom-color: var(--cd-blue-600); font-weight: 750; }
.subnav { display: flex; overflow-x: auto; gap: 7px; padding: 8px 0 4px; }
.subnav a { padding: 8px 12px; color: var(--cd-text-muted); border: 1px solid var(--cd-border); border-radius: 999px; background: var(--cd-surface); font-size: 12px; font-weight: 700; white-space: nowrap; text-decoration: none; }
.subnav a.active { color: var(--cd-blue-700); border-color: var(--cd-blue-600); background: var(--cd-info-soft); }
.source-box { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; margin-top: 12px; padding: 11px 13px; color: var(--cd-text-muted); border: 1px solid var(--cd-border); border-radius: var(--cd-radius-md); background: var(--cd-surface-soft); font-size: 12px; }
.source-box strong { color: var(--cd-text); }
.deadline-card { border-left: 4px solid var(--cd-blue-600); }
.timeline { position: relative; display: grid; gap: 16px; margin-top: 22px; padding-left: 30px; }
.timeline::before { content: ""; position: absolute; left: 10px; top: 3px; bottom: 3px; width: 2px; background: var(--cd-border); }
.timeline-item { position: relative; }
.timeline-marker { position: absolute; left: -26px; top: 22px; width: 12px; height: 12px; border: 3px solid var(--cd-surface); border-radius: 50%; background: var(--cd-blue-600); box-shadow: 0 0 0 1px var(--cd-border-strong); }
.timeline-content h3 { margin: 7px 0 0; }
.document-page-break { display: flex; align-items: center; gap: 8px; min-height: 28px; margin: 24px 0; color: var(--cd-text-muted); border-block: 1px dashed var(--cd-border-strong); background: var(--cd-surface-soft); font-size: 9px; text-transform: uppercase; }

/* Full-page loading state */
html.app-busy, html.app-busy body { overflow: hidden; }
.app-loader { position: fixed; inset: 0; z-index: 10000; display: grid; place-items: center; padding: 24px; background: var(--cd-overlay); backdrop-filter: blur(6px); }
.app-loader-panel { width: min(420px, calc(100vw - 32px)); padding: 26px 28px; text-align: center; border: 1px solid var(--cd-border); border-radius: var(--cd-radius-xl); background: var(--cd-surface-elevated); box-shadow: var(--cd-shadow-3); }
.app-spinner { width: 46px; height: 46px; margin: 0 auto 14px; border: 4px solid var(--cd-border); border-top-color: var(--cd-blue-600); border-radius: 50%; animation: civildocket-spin .72s linear infinite; }
.app-loader-title { display: block; margin-bottom: 4px; color: var(--cd-text); font-size: 17px; }
.app-loader-message { margin: 0; color: var(--cd-text-muted); }
@keyframes civildocket-spin { to { transform: rotate(360deg); } }

@media (min-width: 1500px) { .case-workspace-page .shell { max-width: none; } }
@media (max-width: 1024px) {
    .grid.three, .grid.four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hero { grid-template-columns: 1fr 360px; gap: 34px; }
    .brand-copy small, .user-name { display: none; }
}
@media (max-width: 760px) {
    body { font-size: 14px; }
    .shell { padding-inline: 16px; }
    .site-main { padding: 20px 0 92px; }
    .header-inner { min-height: 62px; gap: 12px; }
    .brand-logo { width: 40px; height: 40px; flex-basis: 40px; }
    .brand-copy strong { font-size: 16px; }
    .top-nav > a:not(.button), .top-nav .inline-form, .theme-toggle__label { display: none; }
    .top-nav { margin-left: auto; }
    .theme-toggle { padding: 7px; }
    .mobile-nav { position: fixed; inset: auto 0 0; z-index: 70; min-height: 64px; display: grid; grid-template-columns: repeat(5, 1fr); padding: 6px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left)); border-top: 1px solid var(--cd-border); background: color-mix(in srgb, var(--cd-surface) 96%, transparent); box-shadow: 0 -8px 24px rgba(4, 17, 32, .12); backdrop-filter: blur(14px); }
    .mobile-nav a { min-height: 50px; display: grid; place-items: center; align-content: center; gap: 2px; color: var(--cd-text-muted); border-radius: var(--cd-radius-md); font-size: 10px; font-weight: 700; text-decoration: none; }
    .mobile-nav a:hover, .mobile-nav a.active { color: var(--cd-blue-700); background: var(--cd-info-soft); }
    .mobile-nav a span { font-size: 17px; line-height: 1; }
    .site-footer { padding-bottom: 66px; }
    .footer-inner { min-height: 0; display: block; padding-block: 18px; }
    .footer-inner p + p { margin-top: 8px; }
    .hero { min-height: 0; grid-template-columns: 1fr; padding: 42px 0; }
    .hero h1 { font-size: clamp(38px, 11vw, 54px); }
    .hero-card { max-width: 540px; }
    .grid.two, .grid.three, .grid.four, .form-grid, .form-grid.three, .details-grid { grid-template-columns: 1fr; }
    .page-head, .record-top { flex-direction: column; }
    .page-head .button { width: 100%; }
    .steps { overflow-x: auto; }
    .step { min-width: 150px; }
    .dashboard-action-row { grid-template-columns: 52px minmax(0, 1fr); }
    .dashboard-action-row .badge { grid-column: 2; justify-self: start; }
    .case-card-counts { justify-items: start; }
}
@media (max-width: 480px) {
    .top-nav .button { display: none; }
    .hero-metrics { grid-template-columns: 1fr; }
    .hero-metric { display: flex; align-items: center; justify-content: space-between; }
    .hero-metric span { margin-top: 0; }
    .button-row .button { flex: 1 1 auto; }
}
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
@media print {
    .site-header, .site-footer, .mobile-nav, .theme-toggle, .app-loader { display: none !important; }
    body, .site-main { color: var(--cd-document-ink); background: var(--cd-document-paper); }
    .site-main { padding: 0; }
    .card { box-shadow: none; }
}


/* CivilDocket dialogs and overlays - loaded only for this page family. */

/* CivilDocket local dialog system — no remote runtime dependency. */
html.cd-dialog-open,
html.cd-dialog-open body { overflow: hidden; }
.cd-dialog-overlay {
    position: fixed;
    inset: 0;
    z-index: 10050;
    display: grid;
    place-items: center;
    padding: 24px;
    background: rgba(22, 31, 44, .42);
    backdrop-filter: blur(3px);
    opacity: 0;
    transition: opacity .16s ease;
}
.cd-dialog-overlay.cd-dialog-visible { opacity: 1; }
.cd-dialog-overlay.cd-dialog-closing { opacity: 0; }
.cd-dialog {
    position: relative;
    width: min(520px, 100%);
    max-height: min(760px, calc(100vh - 48px));
    overflow: auto;
    padding: 30px 30px 24px;
    border: 1px solid var(--cd-border);
    border-radius: 20px;
    background: var(--cd-surface);
    box-shadow: 0 24px 70px rgba(20, 34, 50, .24);
    text-align: center;
    transform: translateY(14px) scale(.975);
    transition: transform .18s cubic-bezier(.2,.8,.2,1);
}
.cd-dialog-visible .cd-dialog { transform: translateY(0) scale(1); }
.cd-dialog h2 { margin: 14px 0 8px; font-size: clamp(1.28rem, 3vw, 1.62rem); }
.cd-dialog-content { color: var(--cd-text-soft); line-height: 1.58; }
.cd-dialog-content p { margin: 0; }
.cd-dialog-content .cd-dialog-summary {
    display: grid;
    gap: 8px;
    margin-top: 16px;
    padding: 14px;
    border: 1px solid var(--cd-border);
    border-radius: 13px;
    background: var(--cd-surface-soft);
    text-align: left;
}
.cd-dialog-content .cd-dialog-summary div { display: grid; grid-template-columns: 128px 1fr; gap: 12px; }
.cd-dialog-content .cd-dialog-summary span { color: var(--cd-text-muted); font-size: .82rem; }
.cd-dialog-content .cd-dialog-summary strong { color: var(--cd-text); font-size: .9rem; }
.cd-dialog-actions { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.cd-dialog-x {
    position: absolute;
    top: 10px;
    right: 12px;
    width: 36px;
    height: 36px;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: var(--cd-text-muted);
    font-size: 1.55rem;
    line-height: 1;
    cursor: pointer;
}
.cd-dialog-x:hover { background: var(--cd-surface-soft); color: var(--cd-text); }
.cd-dialog-icon { display: inline-grid; place-items: center; width: 72px; height: 72px; }
.cd-dialog-icon svg { width: 72px; height: 72px; overflow: visible; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.cd-dialog-icon circle,
.cd-dialog-icon path { stroke-dasharray: 180; stroke-dashoffset: 180; animation: cd-dialog-draw .55s .06s ease forwards; }
.cd-dialog-icon--success { color: var(--cd-success); }
.cd-dialog-icon--error { color: var(--cd-danger); }
.cd-dialog-icon--warning { color: var(--cd-warning); }
.cd-dialog-icon--question { color: var(--cd-blue-600); }
.cd-dialog-icon--info { color: var(--cd-blue-600); }
@keyframes cd-dialog-draw { to { stroke-dashoffset: 0; } }
.danger-button { background: var(--cd-danger) !important; border-color: var(--cd-danger) !important; }
.cd-toast-stack {
    position: fixed;
    z-index: 10060;
    top: 18px;
    right: 18px;
    display: grid;
    gap: 10px;
    width: min(390px, calc(100vw - 36px));
    pointer-events: none;
}
.cd-toast {
    display: grid;
    grid-template-columns: 42px 1fr auto;
    align-items: center;
    gap: 10px;
    padding: 12px 12px 12px 14px;
    border: 1px solid var(--cd-border);
    border-radius: 14px;
    background: var(--cd-surface);
    box-shadow: 0 14px 42px rgba(20,34,50,.18);
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity .18s ease, transform .18s ease;
    pointer-events: auto;
}
.cd-toast-visible { opacity: 1; transform: translateY(0); }
.cd-toast-closing { opacity: 0; transform: translateY(-8px); }
.cd-toast .cd-dialog-icon,
.cd-toast .cd-dialog-icon svg { width: 38px; height: 38px; }
.cd-toast strong { display: block; color: var(--cd-text); }
.cd-toast p { margin: 2px 0 0; color: var(--cd-text-muted); font-size: .86rem; line-height: 1.35; }
.cd-toast > button { border: 0; background: transparent; color: var(--cd-text-muted); font-size: 1.25rem; cursor: pointer; }

/* CivilDocket public legal-policy pages and legal links. */
.footer-legal-nav { display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:center; }
.footer-legal-nav a { color:inherit; text-decoration:none; }
.footer-legal-nav a:hover, .footer-legal-nav a:focus-visible { text-decoration:underline; }
.legal-acceptance-line { align-items:flex-start; margin-top:18px; }
.legal-acceptance-line input { margin-top:.22rem; flex:0 0 auto; }
.legal-acceptance-line span { line-height:1.5; }
.legal-shell { max-width:1120px; margin:0 auto; }
.legal-hero { max-width:820px; margin:0 auto 28px; text-align:center; }
.legal-hero h1 { margin:.35rem 0 .65rem; }
.legal-hero .lead { max-width:760px; margin-left:auto; margin-right:auto; }
.legal-meta { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 18px; margin-top:14px; color:var(--cd-text-muted); font-size:.86rem; }
.legal-layout { display:grid; grid-template-columns:minmax(220px,280px) minmax(0,1fr); gap:22px; align-items:start; }
.legal-summary { position:sticky; top:92px; }
.legal-summary h2 { margin-top:0; }
.legal-summary p { font-size:.92rem; line-height:1.55; }
.legal-document { max-width:800px; }
.legal-document .legal-intro { margin-top:0; padding-bottom:18px; border-bottom:1px solid var(--cd-border); }
.legal-document section { scroll-margin-top:96px; }
.legal-document section + section { margin-top:30px; padding-top:4px; border-top:1px solid var(--cd-border); }
.legal-document h2 { margin:18px 0 10px; font-size:1.13rem; }
.legal-document p { margin:.55rem 0; line-height:1.72; }
.legal-settings-card .form-actions { justify-content:flex-start; }
@media (max-width: 820px) {
    .legal-layout { grid-template-columns:1fr; }
    .legal-summary { position:static; }
    .footer-legal-nav { justify-content:flex-start; }
}

/* Stripe Payment Element — on-site subscription payment surface. */
.billing-payment-page .site-main { padding-top: 34px; }
.billing-payment-shell { width: min(620px, 100%); margin: 0 auto; }
.billing-payment-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:18px; margin-bottom:18px; }
.billing-payment-heading h1 { margin:.25rem 0 .2rem; }
.billing-payment-heading p { margin:0; color:var(--cd-text-muted); }
.billing-payment-card { padding:24px; border:1px solid var(--cd-border); border-radius:var(--cd-radius-xl); background:var(--cd-surface); box-shadow:var(--cd-shadow-2); }
.billing-payment-element { min-height:96px; }
.billing-promo { margin:20px 0 0; border-top:1px solid var(--cd-border); padding-top:14px; }
.billing-promo summary { cursor:pointer; color:var(--cd-text-soft); font-weight:650; }
.billing-promo-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:10px; align-items:center; margin-top:12px; }
.billing-promo-row input { width:100%; }
.billing-payment-total { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:22px; padding-top:18px; border-top:1px solid var(--cd-border); color:var(--cd-text-soft); }
.billing-payment-total strong { color:var(--cd-text); font-size:1.15rem; }
.billing-payment-submit { width:100%; justify-content:center; margin-top:16px; min-height:48px; font-size:1rem; }
.billing-inline-message { min-height:1.25em; margin-top:9px; color:var(--cd-text-muted); font-size:.9rem; }
.billing-inline-message.danger { color:var(--cd-danger); }
.billing-security-note { margin:14px 0 0; color:var(--cd-text-muted); font-size:.8rem; line-height:1.5; text-align:center; }
@media (max-width: 620px) {
    .billing-payment-page .site-main { padding-top:20px; }
    .billing-payment-heading { align-items:center; }
    .billing-payment-card { padding:18px; border-radius:var(--cd-radius-lg); }
    .billing-promo-row { grid-template-columns:1fr; }
}

/* Billing catalogue and current-plan workspace — CivilDocket 3.0.8 */
.billing-page-head{margin-bottom:24px}.billing-page-head>div:first-child{max-width:820px}.billing-current-summary{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:18px;padding:20px;margin-bottom:28px;border:1px solid var(--cd-border);border-radius:var(--cd-radius-xl);background:color-mix(in srgb,var(--cd-surface) 94%,var(--cd-info-soft));box-shadow:var(--cd-shadow-2)}.billing-current-plan,.billing-usage-panel{padding:22px;border:1px solid var(--cd-border);border-radius:var(--cd-radius-lg);background:var(--cd-surface);box-shadow:var(--cd-shadow-1)}.billing-current-plan h2,.billing-usage-panel h2{margin:0}.billing-current-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.billing-current-price{margin:8px 0 0;color:var(--cd-text);font-size:30px;font-weight:800;letter-spacing:-.03em}.billing-current-price small{margin-left:5px;color:var(--cd-text-muted);font-size:13px;font-weight:650;letter-spacing:0}.billing-current-plan>p:not(.billing-current-price){color:var(--cd-text-soft)}.billing-current-meta{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:20px;overflow:hidden;border:1px solid var(--cd-border);border-radius:var(--cd-radius-md);background:var(--cd-border)}.billing-current-meta>div{padding:12px;background:var(--cd-surface-soft)}.billing-current-meta span,.billing-usage-numbers span,.billing-plan-token span{display:block;color:var(--cd-text-muted);font-size:10px;font-weight:750;letter-spacing:.045em;text-transform:uppercase}.billing-current-meta strong,.billing-usage-numbers strong{display:block;margin-top:5px;color:var(--cd-text);font-size:14px}.billing-manage-form{margin-top:18px}.billing-usage-numbers{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}.billing-usage-numbers>div{padding:13px 14px;border:1px solid var(--cd-border);border-radius:var(--cd-radius-md);background:var(--cd-surface-soft)}.billing-usage-numbers strong{font-size:21px}.billing-token-meter{height:9px;margin-top:18px;overflow:hidden;border-radius:999px;background:var(--cd-surface-strong,var(--cd-border))}.billing-token-meter span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cd-blue-600),var(--cd-teal-600));transition:width .25s ease}.billing-meter-caption{margin:7px 0 0;color:var(--cd-text-muted);font-size:11px}.billing-token-note{margin:18px 0 0;font-size:12px;line-height:1.55}.billing-plan-section{margin-top:10px}.billing-plan-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:15px}.billing-plan-section-head h2{margin:0}.billing-plan-section-head>p{max-width:520px;margin:0;color:var(--cd-text-muted);font-size:12px;text-align:right}.billing-plan-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px;align-items:stretch}.billing-plan-card{position:relative;min-width:0;display:flex;flex-direction:column;overflow:hidden;padding:22px;border:1px solid var(--cd-border);border-radius:var(--cd-radius-lg);background:var(--cd-surface);box-shadow:var(--cd-shadow-1);transition:transform var(--cd-transition-fast),border-color var(--cd-transition-fast),box-shadow var(--cd-transition-fast)}.billing-plan-card:not(.is-current):hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--cd-blue-600) 45%,var(--cd-border));box-shadow:var(--cd-shadow-2)}.billing-plan-accent{position:absolute;inset:0 0 auto;height:5px;background:linear-gradient(90deg,var(--cd-blue-600),var(--cd-teal-600))}.billing-plan-card:nth-child(3n+2) .billing-plan-accent{background:linear-gradient(90deg,var(--cd-teal-600),var(--cd-blue-600))}.billing-plan-card:nth-child(3n) .billing-plan-accent{background:linear-gradient(90deg,var(--cd-navy-700),var(--cd-blue-600))}.billing-plan-card.is-current{filter:saturate(.55);background:color-mix(in srgb,var(--cd-surface-soft) 84%,var(--cd-surface));border-color:var(--cd-border-strong);box-shadow:none}.billing-plan-card.is-current .billing-plan-accent{background:var(--cd-border-strong)}.billing-plan-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding-top:4px}.billing-plan-card h3{margin:4px 0 0;font-size:21px}.billing-plan-label{color:var(--cd-text-muted);font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.billing-current-chip{display:inline-flex;padding:4px 8px;color:var(--cd-text-muted);border:1px solid var(--cd-border-strong);border-radius:999px;background:var(--cd-surface-soft);font-size:10px;font-weight:800}.billing-plan-description{min-height:62px;margin:14px 0;color:var(--cd-text-soft);font-size:13px;line-height:1.55}.billing-plan-price{margin:3px 0 16px;color:var(--cd-text);font-size:31px;font-weight:800;letter-spacing:-.035em}.billing-plan-price small{margin-left:3px;color:var(--cd-text-muted);font-size:12px;font-weight:650;letter-spacing:0}.billing-plan-token{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;margin-bottom:16px;border:1px solid var(--cd-border);border-radius:var(--cd-radius-md);background:var(--cd-surface-soft)}.billing-plan-token strong{font-size:13px}.billing-feature-list{display:grid;gap:9px;padding:0;margin:0 0 22px;list-style:none}.billing-feature-list li{position:relative;padding-left:21px;color:var(--cd-text-soft);font-size:13px;line-height:1.45}.billing-feature-list li::before{content:"✓";position:absolute;left:0;top:0;color:var(--cd-success);font-weight:900}.billing-plan-action{margin-top:auto}.billing-plan-action form,.billing-plan-action .button{width:100%}.billing-action-note{display:block;padding:10px 11px;color:var(--cd-text-muted);border:1px dashed var(--cd-border-strong);border-radius:var(--cd-radius-md);font-size:11px;line-height:1.45;text-align:center}
@media(max-width:900px){.billing-current-summary{grid-template-columns:1fr}.billing-plan-section-head{align-items:flex-start;flex-direction:column}.billing-plan-section-head>p{text-align:left}.billing-current-meta{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.billing-current-summary{padding:12px}.billing-current-plan,.billing-usage-panel{padding:17px}.billing-current-heading{flex-direction:column}.billing-current-meta,.billing-usage-numbers{grid-template-columns:1fr}.billing-plan-grid{grid-template-columns:1fr}}

/* 3.0.10 user billing, invoices and subscription lifecycle */
.billing-account-page .site-main{padding-top:30px}.billing-account-head{margin-bottom:22px}.billing-account-head>div:first-child{max-width:760px}.billing-account-summary{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr);gap:18px;margin-bottom:28px}.billing-account-plan-card,.billing-account-help-card,.billing-history-card{border:1px solid var(--cd-border);border-radius:var(--cd-radius-xl);background:var(--cd-surface);box-shadow:var(--cd-shadow-1)}.billing-account-plan-card,.billing-account-help-card{padding:24px}.billing-account-plan-top{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}.billing-account-plan-top h2,.billing-account-help-card h2{margin:.2rem 0 0}.billing-account-plan-card>p,.billing-account-help-card>p{color:var(--cd-text-soft);line-height:1.55}.billing-account-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;margin-top:20px;overflow:hidden;border:1px solid var(--cd-border);border-radius:var(--cd-radius-md);background:var(--cd-border)}.billing-account-facts>div{padding:13px;background:var(--cd-surface-soft)}.billing-account-facts span{display:block;color:var(--cd-text-muted);font-size:10px;font-weight:800;letter-spacing:.05em;text-transform:uppercase}.billing-account-facts strong{display:block;margin-top:5px;font-size:13px;line-height:1.35}.billing-account-actions{display:flex;align-items:center;gap:14px;margin-top:18px}.billing-account-actions>p{margin:0;color:var(--cd-text-muted);font-size:12px;line-height:1.45}.billing-account-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.billing-account-mini-stats>div{padding:14px;border:1px solid var(--cd-border);border-radius:var(--cd-radius-md);background:var(--cd-surface-soft)}.billing-account-mini-stats strong{display:block;font-size:24px}.billing-account-mini-stats span{color:var(--cd-text-muted);font-size:11px}.billing-refresh-form{margin-top:10px}.billing-history-section{margin-top:26px}.billing-history-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;margin-bottom:11px}.billing-history-heading h2{margin:.15rem 0 0}.billing-history-heading>p{max-width:520px;margin:0;color:var(--cd-text-muted);font-size:12px;text-align:right}.billing-history-card{overflow:hidden}.billing-history-table-wrap{overflow:auto}.billing-history-table{width:100%;border-collapse:collapse;min-width:760px}.billing-history-table th,.billing-history-table td{padding:14px 16px;border-bottom:1px solid var(--cd-border);text-align:left;vertical-align:middle}.billing-history-table th{color:var(--cd-text-muted);background:var(--cd-surface-soft);font-size:10px;font-weight:800;letter-spacing:.055em;text-transform:uppercase}.billing-history-table tbody tr:last-child td{border-bottom:0}.billing-history-table td{color:var(--cd-text-soft);font-size:13px}.billing-history-table td strong{color:var(--cd-text)}.billing-history-table td small{display:block;margin-top:3px;color:var(--cd-text-muted);font-size:10px}.billing-history-empty{padding:28px!important;text-align:center!important;color:var(--cd-text-muted)!important}.billing-doc-links{display:flex;gap:10px}.billing-doc-links a{font-weight:700}.billing-status-chip{display:inline-flex;padding:4px 8px;border:1px solid var(--cd-border);border-radius:999px;background:var(--cd-surface-soft);color:var(--cd-text-soft);font-size:10px;font-weight:800;text-transform:capitalize}.billing-status-chip.status-paid,.billing-status-chip.status-succeeded,.billing-status-chip.status-active{border-color:color-mix(in srgb,var(--cd-success) 45%,var(--cd-border));color:var(--cd-success)}.billing-status-chip.status-failed,.billing-status-chip.status-uncollectible{border-color:color-mix(in srgb,var(--cd-danger) 45%,var(--cd-border));color:var(--cd-danger)}.billing-status-chip.status-refunded,.billing-status-chip.status-void{color:var(--cd-text-muted)}
@media(max-width:900px){.billing-account-summary{grid-template-columns:1fr}.billing-history-heading{align-items:flex-start;flex-direction:column}.billing-history-heading>p{text-align:left}.billing-account-facts{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.billing-account-page .site-main{padding-top:18px}.billing-account-plan-card,.billing-account-help-card{padding:18px}.billing-account-plan-top{flex-direction:column}.billing-account-facts{grid-template-columns:1fr}.billing-account-actions{align-items:flex-start;flex-direction:column}}

/* Legal-information reliance notices. */
.legal-reliance-banner{display:flex;align-items:flex-start;gap:10px 14px;margin:0 0 18px;padding:11px 14px;border:1px solid var(--cd-warning-border,var(--cd-border-strong));border-radius:12px;background:var(--cd-warning-soft,var(--cd-surface-soft));color:var(--cd-text);font-size:.82rem;line-height:1.5}
.legal-reliance-banner strong{flex:0 0 auto;color:var(--cd-text);font-size:.79rem}
.legal-reliance-banner span,.legal-reliance-banner p{margin:0;min-width:0;color:var(--cd-text-soft)}
.legal-reliance-banner a{margin-left:auto;white-space:nowrap;color:inherit;font-weight:750}
.legal-reliance-banner--registration{display:grid;margin:16px 0 20px;padding:15px 16px}
.legal-reliance-banner--registration strong{font-size:.9rem}
.footer-reliance-notice{max-width:850px;line-height:1.5}
@media(max-width:720px){.legal-reliance-banner{display:grid}.legal-reliance-banner a{margin-left:0}.footer-reliance-notice{max-width:none}}

/* 3.3.5 accessibility and compact account navigation */
.skip-link{position:fixed;left:12px;top:8px;z-index:1000;transform:translateY(-160%);padding:10px 14px;border-radius:10px;background:var(--cd-surface);color:var(--cd-text);box-shadow:var(--cd-shadow-md);font-weight:800;text-decoration:none}
.skip-link:focus{transform:translateY(0)}
.account-menu{position:relative}
.account-menu>summary{display:flex;align-items:center;gap:7px;cursor:pointer;list-style:none;font-weight:750;color:var(--cd-text);padding:8px 10px;border-radius:10px}
.account-menu>summary::-webkit-details-marker{display:none}
.account-menu>summary:hover,.account-menu[open]>summary{background:var(--cd-surface-raised)}
.account-menu-panel{position:absolute;right:0;top:calc(100% + 8px);z-index:90;min-width:230px;display:grid;gap:3px;padding:9px;border:1px solid var(--cd-border);border-radius:14px;background:var(--cd-surface);box-shadow:var(--cd-shadow-lg)}
.account-menu-panel a,.account-menu-panel .link-button,.account-menu-theme{display:flex;width:100%;align-items:center;text-align:left;padding:9px 10px;border:0;border-radius:9px;background:transparent;color:var(--cd-text);font:inherit;font-weight:700;text-decoration:none;cursor:pointer}
.account-menu-panel a:hover,.account-menu-panel .link-button:hover,.account-menu-theme:hover{background:var(--cd-surface-raised)}
.account-menu-identity{display:grid;gap:2px;padding:8px 10px 10px;border-bottom:1px solid var(--cd-border);margin-bottom:4px}
.account-menu-identity span{font-size:12px;color:var(--cd-text-muted);overflow-wrap:anywhere}
.account-menu-theme{gap:8px}
@media(max-width:760px){.account-menu{display:none}.mobile-nav{grid-template-columns:repeat(5,1fr)}}
@media print{.skip-link,.account-menu{display:none!important}}
