/* MedEase Plus: compact, mobile-first components; all semantic colors come from theme tokens. */
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 110px; }
body { margin: 0; font-family: var(--me-font); color: var(--me-text); background: var(--me-bg); line-height: 1.65; -webkit-font-smoothing: antialiased; }
.container { width: 100%; max-width: var(--me-content-width); padding-inline: 22px; }
a { color: var(--me-primary-text); text-decoration: none; }
[data-theme="dark"] a:not(.me-button) { color: var(--me-accent); }
a:hover { color: var(--me-primary-hover); }
button, input, select, textarea { font: inherit; }
button, a, select, summary { -webkit-tap-highlight-color: transparent; }
a, button { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--me-focus); outline-offset: 4px; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--me-text); font-weight: 650; line-height: 1.17; letter-spacing: -.035em; }
h1 { font-size: clamp(2.35rem, 5vw, 4.15rem); }
h2 { font-size: clamp(1.9rem, 3.2vw, 2.85rem); }
h3 { font-size: 1.15rem; letter-spacing: -.02em; }
h4 { font-size: .85rem; letter-spacing: -.015em; }
p { color: var(--me-text-muted); }
img, svg { max-width: 100%; }
.me-icon { width: 22px; height: 22px; flex: 0 0 22px; vertical-align: middle; }
.icon-box { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; flex: 0 0 46px; border-radius: var(--me-radius-md); background: var(--me-surface-tint); color: var(--me-primary-text); }
[data-theme="dark"] .icon-box { color: var(--me-accent); }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 1000; padding: 12px 20px; background: var(--me-surface); border: 2px solid var(--me-focus); border-radius: var(--me-radius-sm); }
.skip-link:focus { top: 12px; }
.me-button { display: inline-flex; align-items: center; justify-content: center; gap: 12px; min-height: 50px; padding: 13px 23px; border: 1px solid var(--me-primary); border-radius: var(--me-radius-sm); background: var(--me-primary); color: var(--me-on-primary); font-size: .93rem; font-weight: 600; line-height: 1.4; cursor: pointer; transition: background .18s, box-shadow .18s, transform .18s; }
.me-button:hover { color: var(--me-on-primary); background: var(--me-primary-hover); border-color: var(--me-primary-hover); box-shadow: var(--me-shadow-sm); transform: translateY(-1px); }
.me-button.secondary { color: var(--me-text); background: var(--me-surface); border-color: var(--me-border); }
.me-button.secondary:hover { background: var(--me-surface-muted); border-color: var(--me-text-subtle); }
.me-button.small { min-height: 44px; padding: 10px 17px; font-size: .84rem; }
.me-button .me-icon { width: 18px; height: 18px; flex-basis: 18px; }
.me-button:disabled { opacity: .65; cursor: wait; transform: none; }
.button-group { display: flex; flex-wrap: wrap; gap: 12px; }
.full-width { width: 100%; }
.text-link { display: inline-flex; align-items: center; gap: 9px; min-height: 44px; font-size: .92rem; font-weight: 600; }
.eyebrow { margin-bottom: 16px; color: var(--me-primary-text); font-size: .73rem; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
[data-theme="dark"] .eyebrow { color: var(--me-accent); }
.section { padding-block: var(--me-space-section); }
.section-heading { max-width: 640px; margin: 0 auto 42px; text-align: center; }
.section-heading h2 { margin-bottom: 18px; }
.section-heading > p:last-child { margin: 0; }
.muted-section { background: var(--me-surface-muted); border-block: 1px solid var(--me-border); }
.site-header { position: sticky; top: 0; z-index: 50; background: var(--me-bg); border-bottom: 1px solid var(--me-border); }
.header-inner { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 78px; flex-wrap: wrap; transition: min-height .2s; }
.brand { display: inline-flex; gap: 10px; align-items: center; color: var(--me-text) !important; font-size: 1.28rem; font-weight: 700; letter-spacing: -.05em; white-space: nowrap; }
.brand-plus { margin-left: 4px; color: var(--me-primary-text); font-weight: 450; }
[data-theme="dark"] .brand-plus { color: var(--me-accent); }
.menu-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; background: var(--me-surface); color: var(--me-text); border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); }
.main-navigation { width: 100%; padding-bottom: 18px; }
.nav-links, .nav-actions { display: flex; flex-direction: column; gap: 6px; }
.nav-links a, .login-link { display: flex; align-items: center; min-height: 44px; padding: 6px 12px; color: var(--me-text-muted) !important; font-size: .86rem; font-weight: 500; border-radius: var(--me-radius-sm); }
.nav-links a:hover, .nav-links a.active { color: var(--me-primary-text) !important; background: var(--me-surface-tint); }
[data-theme="dark"] .nav-links a.active { color: var(--me-accent) !important; }
.nav-actions { margin-top: 12px; }
.theme-control { display: flex; align-items: center; gap: 2px; padding: 0 8px; border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); min-height: 44px; color: var(--me-text-muted); }
.theme-control .me-icon { width: 16px; height: 16px; flex-basis: 16px; }
.theme-control select { min-height: 42px; padding: 4px 3px; max-width: 100%; border: 0; background: var(--me-bg); color: var(--me-text-muted); font-size: .8rem; cursor: pointer; }
.js .menu-toggle { display: flex; }
.js .main-navigation { display: none; }
.js .menu-open .main-navigation { display: block; max-height: calc(100vh - 80px); max-height: calc(100dvh - 80px); overflow-y: auto; }
.hero { background: linear-gradient(115deg, var(--me-bg) 15%, var(--me-hero-end)); padding: 56px 0 0; overflow: hidden; }
.hero-grid { display: grid; gap: 48px; align-items: center; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 24px; color: var(--me-text-muted); font-size: .72rem; padding: 6px 11px; border: 1px solid var(--me-border); border-radius: 99px; background: var(--me-surface); }
.connected-dot { display: inline-block; width: 7px; height: 7px; flex-shrink: 0; border-radius: 50%; background: var(--me-accent); }
.hero h1 { margin-bottom: 24px; letter-spacing: -.052em; font-weight: 650; line-height: 1.13; }
.hero h1 > span { color: var(--me-primary-text); }
[data-theme="dark"] .hero h1 > span { color: var(--me-accent); }
.hero-copy > p { font-size: 1.03rem; max-width: 490px; margin-bottom: 28px; }
.hero-note { display: flex; align-items: center; gap: 7px; font-size: .74rem; color: var(--me-text-subtle); margin-top: 19px; }
.hero-note .me-icon { width: 16px; height: 16px; flex-basis: 16px; }
.play-icon { width: 17px; height: 17px; border: 1px solid var(--me-text-muted); border-radius: 50%; position: relative; }
.play-icon::after { content: ""; position: absolute; top: 4px; left: 6px; border-left: 5px solid var(--me-text-muted); border-top: 3px solid transparent; border-bottom: 3px solid transparent; }
.hero-visual { min-width: 0; position: relative; }
.hero-visual-label { display: flex; align-items: center; justify-content: flex-end; gap: 6px; margin-bottom: 12px; font-size: .72rem; color: var(--me-text-muted); }
.hero-floating-note { display: flex; align-items: center; gap: 11px; max-width: 330px; padding: 12px 16px; margin-top: 16px; background: var(--me-surface); border: 1px solid var(--me-border); border-radius: var(--me-radius-md); box-shadow: var(--me-shadow-md); }
.hero-floating-note .icon-box { width: 35px; height: 35px; flex-basis: 35px; border-radius: 10px; }
.hero-floating-note strong, .hero-floating-note span:not(.icon-box) { display: block; font-size: .74rem; }
.hero-floating-note div > span { color: var(--me-text-muted); font-size: .68rem !important; }
.hero-bottom { display: flex; flex-direction: column; gap: 15px; padding-block: 28px; margin-top: 36px; border-top: 1px solid var(--me-border); }
.hero-bottom > span { font-size: .63rem; color: var(--me-text-subtle); letter-spacing: .12em; }
.hero-bottom > div { display: flex; flex-wrap: wrap; gap: 12px 25px; font-size: .8rem; color: var(--me-text-muted); font-weight: 600; }
.trust-section { padding-block: 30px; border-bottom: 1px solid var(--me-border); }
.trust-grid { display: grid; gap: 24px; }
.trust-badge { display: flex; gap: 10px; align-items: flex-start; }
.trust-badge > .me-icon { color: var(--me-primary-text); margin-top: 2px; }
[data-theme="dark"] .trust-badge > .me-icon { color: var(--me-accent); }
.trust-badge h3 { font-size: .82rem; margin-bottom: 5px; letter-spacing: -.015em; }
.trust-badge p { font-size: .72rem; line-height: 1.5; margin: 0; }
.split-heading { display: grid; gap: 12px; margin-bottom: 32px; }
.split-heading > p { max-width: 440px; align-self: end; }
.problem-grid, .role-grid, .module-grid, .pricing-grid { display: grid; gap: 18px; }
.content-card, .module-card { background: var(--me-surface); border: 1px solid var(--me-border); border-radius: var(--me-radius-md); padding: 27px; min-width: 0; scroll-margin-top: 110px; }
.content-card .icon-box, .module-card .icon-box { margin-bottom: 22px; }
.content-card h3, .module-card h3 { margin-bottom: 12px; }
.content-card p, .module-card p { font-size: .86rem; margin-bottom: 0; line-height: 1.65; }
.module-card { display: flex; flex-direction: column; color: var(--me-text); transition: transform .2s, border-color .2s, box-shadow .2s; }
.module-card:hover { transform: translateY(-3px); border-color: var(--me-primary-text); box-shadow: var(--me-shadow-md); }
.card-link { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 24px; font-size: .74rem; font-weight: 600; color: var(--me-primary-text); }
[data-theme="dark"] .card-link { color: var(--me-accent); }
.card-link .me-icon { width: 16px; height: 16px; flex-basis: 16px; }
.connection-banner { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; background: var(--me-surface-tint); border: 1px solid var(--me-border); padding: 24px; border-radius: var(--me-radius-md); margin-top: 24px; }
.connection-banner .icon-box { border: 1px solid var(--me-border); background: var(--me-surface); }
.connection-banner h3 { font-size: 1.07rem; margin-bottom: 7px; }
.connection-banner p { font-size: .83rem; margin: 0; }
.connection-banner .text-link { margin-left: auto; }
.feature-showcase { display: grid; align-items: center; gap: 32px; padding-block: 36px; scroll-margin-top: 80px; }
.feature-visual { border-radius: var(--me-radius-lg); border: 1px solid var(--me-border); background: var(--me-surface-muted); box-shadow: var(--me-shadow-sm); overflow: hidden; }
.visual-toolbar { display: flex; gap: 5px; align-items: center; padding: 13px 17px; border-bottom: 1px solid var(--me-border); font-size: .64rem; color: var(--me-text-subtle); }
.visual-toolbar > span:last-child { margin-left: auto; }
.window-dot { width: 5px; height: 5px; border-radius: 50%; background: var(--me-text-subtle); }
.feature-visual-inner { padding: 22px; }
.visual-heading { display: flex; align-items: center; gap: 13px; margin-bottom: 25px; }
.visual-heading h3 { margin: 3px 0 0; }
.micro-label { color: var(--me-text-subtle); font-size: .55rem; font-weight: 600; letter-spacing: .1em; }
.visual-workflow-row { display: flex; gap: 12px; align-items: center; padding: 14px 13px; background: var(--me-surface); border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); margin-bottom: 10px; font-size: .8rem; }
.visual-step { width: 24px; height: 24px; flex: 0 0 24px; display: flex; align-items: center; justify-content: center; background: var(--me-surface-tint); color: var(--me-text-muted); font-size: .63rem; border-radius: 50%; }
.status-chip { display: flex; margin-left: auto; color: var(--me-success); }
.status-chip .me-icon { width: 15px; height: 15px; flex-basis: 15px; }
.visual-connected { display: flex; gap: 9px; align-items: center; margin-top: 24px; font-size: .71rem; color: var(--me-text-muted); }
.visual-connected .connected-dot { margin-left: auto; }
.feature-copy h2 { font-size: clamp(1.9rem, 3vw, 2.6rem); }
.feature-copy > p { max-width: 480px; }
.check-list { list-style: none; margin: 23px 0; padding: 0; }
.check-list li { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; font-size: .86rem; color: var(--me-text-muted); }
.check-list .me-icon { width: 17px; height: 17px; flex-basis: 17px; margin-top: 3px; color: var(--me-success); }
.content-card .check-list { margin-bottom: 0; }
.workflow-section { background: var(--me-surface-muted); border-block: 1px solid var(--me-border); }
.workflow-grid { display: grid; gap: 14px; list-style: none; padding: 0; margin: 0; }
.workflow-grid li { position: relative; }
.workflow-grid details { border: 1px solid var(--me-border); background: var(--me-surface); border-radius: var(--me-radius-md); }
.workflow-grid summary { display: flex; align-items: center; gap: 13px; padding: 17px; min-height: 64px; cursor: pointer; font-size: .88rem; font-weight: 600; list-style: none; }
.workflow-grid summary::-webkit-details-marker, .faq-item summary::-webkit-details-marker { display: none; }
.workflow-grid summary > .me-icon { color: var(--me-primary-text); }
[data-theme="dark"] .workflow-grid summary > .me-icon { color: var(--me-accent); }
.step-number { font-size: .7rem; color: var(--me-text-subtle); font-weight: 500; }
.workflow-toggle { margin-left: auto; font-size: 1.2rem; color: var(--me-text-muted); }
.workflow-grid details[open] .workflow-toggle { transform: rotate(45deg); }
.workflow-grid details p { padding: 0 22px 18px; font-size: .8rem; margin: 0; }
.section-footnote { text-align: center; font-size: .76rem; margin: 26px auto 0; max-width: 680px; }
.dashboard-section { background: linear-gradient(180deg, var(--me-bg), var(--me-surface-tint)); }
.dashboard-preview { border: 1px solid var(--me-border); border-radius: var(--me-radius-md); background: var(--me-surface); box-shadow: var(--me-shadow-lg); overflow: hidden; text-align: left; min-width: 0; }
.dashboard-top { display: flex; gap: 10px; align-items: center; padding: 12px 15px; border-bottom: 1px solid var(--me-border); }
.dashboard-brand { display: flex; align-items: center; gap: 7px; }
.dashboard-brand strong { font-size: .76rem; letter-spacing: -.04em; white-space: nowrap; }
.dashboard-brand strong > span { color: var(--me-primary-text); font-weight: 400; }
[data-theme="dark"] .dashboard-brand strong > span { color: var(--me-accent); }
.demo-label { font-size: .57rem; padding: 3px 7px; margin-left: auto; border-radius: 5px; background: var(--me-surface-muted); color: var(--me-text-muted); border: 1px solid var(--me-border); white-space: nowrap; }
.dashboard-avatar { display: inline-flex; align-items: center; justify-content: center; width: 25px; height: 25px; border-radius: 50%; background: var(--me-surface-tint); color: var(--me-text-muted); font-size: .55rem; }
.dashboard-shell { display: flex; }
.dashboard-sidebar { display: none; width: 45px; flex: 0 0 45px; padding: 16px 8px; border-right: 1px solid var(--me-border); color: var(--me-text-subtle); }
.dashboard-sidebar > .me-icon, .sidebar-active { margin-bottom: 22px; }
.dashboard-sidebar .me-icon { width: 15px; height: 15px; }
.sidebar-active { display: flex; padding: 6px; border-radius: 6px; color: var(--me-primary-text); background: var(--me-surface-tint); }
.sidebar-bottom { margin-top: auto; }
.dashboard-content { padding: 16px 12px; width: 100%; min-width: 0; }
.dashboard-greeting { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 15px; }
.dashboard-greeting h3 { font-size: .94rem; margin: 5px 0 0; }
.dashboard-date { display: none; white-space: nowrap; color: var(--me-text-muted); font-size: .59rem; }
.dashboard-date .me-icon { width: 12px; height: 12px; }
.kpi-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 9px; margin-bottom: 14px; }
.kpi { min-width: 0; padding: 12px 9px; border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); background: var(--me-surface); }
.kpi > span { display: flex; align-items: center; gap: 5px; color: var(--me-text-muted); font-size: .57rem; white-space: nowrap; }
.kpi .me-icon { width: 12px; height: 12px; flex-basis: 12px; color: var(--me-primary-text); }
[data-theme="dark"] .kpi .me-icon { color: var(--me-accent); }
.kpi strong { display: block; margin-top: 8px; font-size: 1.21rem; letter-spacing: -.05em; line-height: 1.4; }
.kpi strong em { font-size: .85rem; font-style: normal; font-weight: 400; }
.kpi small { display: block; color: var(--me-text-subtle); font-size: .54rem; }
.dashboard-charts { display: grid; gap: 10px; }
.chart-card, .capacity-card { border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); padding: 15px 12px; min-width: 0; }
.chart-heading { display: flex; justify-content: space-between; align-items: center; gap: 7px; }
.chart-heading h4 { font-size: .71rem; margin: 0; }
.chart-heading > span { font-size: .52rem; color: var(--me-text-muted); display: flex; align-items: center; gap: 4px; }
.chart-heading i, .capacity-legend i { width: 5px; height: 5px; background: var(--me-primary); border-radius: 50%; display: inline-block; }
.appointment-chart { display: block; width: 100%; height: auto; margin-top: 17px; overflow: visible; }
.chart-grid { stroke: var(--me-chart-grid); stroke-width: 1; fill: none; stroke-dasharray: 3 4; }
.chart-area { fill: var(--me-chart-fill); }
.chart-line { fill: none; stroke: var(--me-accent); stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.chart-days { display: flex; justify-content: space-between; font-size: .52rem; color: var(--me-text-subtle); margin-top: 9px; }
.capacity-card { display: none; }
.capacity-card h4 { font-size: .68rem; margin-bottom: 13px; }
.occupancy-ring { width: 93px; height: 93px; border-radius: 50%; display: grid; place-items: center; margin: 0 auto; background: conic-gradient(var(--me-primary) 0 72%, var(--me-chart-ring) 72% 100%); }
.occupancy-ring > span { display: flex; flex-direction: column; width: 72px; height: 72px; justify-content: center; align-items: center; border-radius: 50%; background: var(--me-surface); }
.occupancy-ring strong { font-size: 1.2rem; line-height: 1.3; }
.occupancy-ring small { font-size: .5rem; color: var(--me-text-muted); }
.capacity-legend { display: flex; justify-content: center; gap: 10px; font-size: .51rem; color: var(--me-text-muted); margin-top: 14px; }
.capacity-legend span:last-child i { background: var(--me-chart-ring); border: 1px solid var(--me-border); }
.dashboard-bottom { display: grid; gap: 10px; margin-top: 12px; }
.recent-patients { padding: 15px 12px; border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); }
.recent-patients h4 { font-size: .7rem; margin-bottom: 13px; }
.patient-row { display: flex; align-items: center; gap: 8px; padding: 7px 0; }
.patient-initial { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: var(--me-surface-muted); font-size: .56rem; color: var(--me-text-muted); flex-shrink: 0; }
.patient-row strong, .patient-row small { display: block; line-height: 1.5; }
.patient-row strong { font-size: .63rem; font-weight: 550; }
.patient-row small { font-size: .52rem; color: var(--me-text-muted); }
.patient-status { margin-left: auto; font-size: .5rem; padding: 3px 5px; border-radius: 4px; background: var(--me-success-bg); color: var(--me-success); }
.patient-status.neutral { color: var(--me-secondary); background: var(--me-surface-muted); }
.dashboard-alert { display: none; background: var(--me-surface-tint); padding: 15px; border-radius: var(--me-radius-sm); }
.dashboard-alert .icon-box { width: 28px; height: 28px; margin-bottom: 8px; }
.dashboard-alert .icon-box .me-icon { width: 17px; height: 17px; }
.dashboard-alert h4 { margin-bottom: 6px; font-size: .68rem; }
.dashboard-alert p { margin: 0; font-size: .57rem; }
.dashboard-alert .text-link { font-size: .52rem; min-height: 26px; }
.dashboard-alert .text-link .me-icon { width: 12px; height: 12px; }
.dashboard-disclaimer { display: flex; align-items: center; gap: 6px; padding: 10px 13px; border-top: 1px solid var(--me-border); font-size: .54rem; color: var(--me-text-muted); background: var(--me-surface-muted); }
.dashboard-large { max-width: 1000px; margin: 0 auto; }
.security-section { background: var(--me-surface-muted); border-block: 1px solid var(--me-border); }
.security-layout { display: grid; gap: 42px; align-items: center; }
.security-visual { display: grid; place-items: center; padding: 28px 0; }
.security-orbit { display: grid; place-items: center; width: min(280px, 100%); aspect-ratio: 1; border-radius: 50%; border: 1px dashed var(--me-border); position: relative; background: radial-gradient(circle, var(--me-surface-tint) 0 45%, transparent 46%); }
.security-shield { display: grid; place-items: center; width: 116px; height: 116px; border-radius: var(--me-radius-xl); background: var(--me-surface); border: 1px solid var(--me-border); box-shadow: var(--me-shadow-md); color: var(--me-primary-text); }
[data-theme="dark"] .security-shield { color: var(--me-accent); }
.security-shield .me-icon { width: 62px; height: 62px; }
.security-orbit-label { position: absolute; display: flex; gap: 8px; align-items: center; background: var(--me-surface); border: 1px solid var(--me-border); border-radius: 8px; padding: 10px 13px; font-size: .7rem; color: var(--me-text-muted); box-shadow: var(--me-shadow-sm); }
.security-orbit-label .me-icon { width: 15px; height: 15px; flex-basis: 15px; color: var(--me-primary-text); }
.label-top { top: 12px; right: -4px; }
.label-bottom { bottom: 12px; left: -4px; }
.security-note { font-size: .72rem; margin-top: 14px; max-width: 480px; }
.billing-toggle { display: flex; width: fit-content; max-width: 100%; margin: 0 auto 32px; padding: 5px; gap: 5px; border: 1px solid var(--me-border); border-radius: 10px; background: var(--me-surface-muted); }
.billing-toggle button { min-width: 100px; min-height: 44px; border: 0; background: transparent; color: var(--me-text-muted); font-size: .86rem; border-radius: 7px; }
.billing-toggle button.selected { background: var(--me-surface); color: var(--me-text); box-shadow: var(--me-shadow-sm); }
.pricing-grid { padding-top: 12px; }
.pricing-card { position: relative; padding: 30px 25px; border: 1px solid var(--me-border); border-radius: var(--me-radius-lg); background: var(--me-surface); }
.pricing-card.featured { border: 2px solid var(--me-primary); box-shadow: var(--me-shadow-md); }
.plan-badge { position: absolute; top: -15px; left: 50%; transform: translateX(-50%); white-space: nowrap; padding: 5px 17px; color: var(--me-on-primary); background: var(--me-primary); border-radius: 99px; font-size: .68rem; font-weight: 600; }
.plan-name { display: block; font-size: 1.1rem; font-weight: 650; margin-bottom: 8px; }
.plan-description { min-height: 44px; font-size: .83rem; }
.price { font-size: 2rem; font-weight: 650; letter-spacing: -.05em; overflow-wrap: anywhere; }
.price-caption { font-size: .75rem; margin: 3px 0 24px; }
.pricing-card .me-button { width: 100%; }
.pricing-card .check-list { border-top: 1px solid var(--me-border); padding-top: 25px; margin-top: 25px; }
.pricing-card .check-list li { font-size: .8rem; }
.faq-layout { display: grid; gap: 30px; }
.faq-item { border-bottom: 1px solid var(--me-border); }
.faq-item:first-child { border-top: 1px solid var(--me-border); }
.faq-item summary { display: flex; align-items: center; gap: 16px; cursor: pointer; padding: 20px 0; min-height: 62px; font-size: .94rem; font-weight: 550; line-height: 1.5; list-style: none; }
.faq-plus { flex: 0 0 16px; width: 16px; height: 16px; margin-left: auto; position: relative; }
.faq-plus::before, .faq-plus::after { content: ""; position: absolute; background: var(--me-text-muted); width: 12px; height: 1.5px; left: 2px; top: 7px; }
.faq-plus::after { transform: rotate(90deg); transition: transform .2s; }
.faq-item[open] .faq-plus::after { transform: rotate(0deg); }
.faq-item > p { font-size: .85rem; padding: 0 25px 20px 0; margin: 0; }
.cta-section { padding-top: 0; }
.cta-panel { background: var(--me-surface-tint); border: 1px solid var(--me-border); border-radius: var(--me-radius-xl); padding: 42px 24px; text-align: center; position: relative; }
.cta-symbol { display: flex; align-items: center; justify-content: center; width: 46px; height: 46px; margin: 0 auto 22px; border-radius: 13px; color: var(--me-on-primary); background: var(--me-primary); }
.cta-panel h2 { font-size: clamp(2rem, 3.8vw, 3.15rem); margin-bottom: 20px; }
.cta-panel .button-group { justify-content: center; margin-top: 25px; }
.cta-note { display: block; font-size: .73rem; color: var(--me-text-muted); margin-top: 17px; }
.site-footer { padding: 56px 0 20px; border-top: 1px solid var(--me-border); }
.footer-top { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 30px 22px; }
.footer-brand { grid-column: 1 / -1; }
.footer-brand p { font-size: .87rem; margin: 20px 0; }
.footer-tag { display: flex; align-items: center; gap: 7px; font-size: .73rem; color: var(--me-text-subtle); }
.footer-tag .me-icon { width: 17px; height: 17px; flex-basis: 17px; }
.footer-column h2 { font-size: .82rem; font-weight: 650; letter-spacing: 0; margin-bottom: 14px; }
.footer-column ul { list-style: none; margin: 0; padding: 0; }
.footer-column a { display: flex; align-items: center; min-height: 44px; color: var(--me-text-muted) !important; font-size: .79rem; }
.footer-column a:hover { text-decoration: underline; }
.footer-bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 14px; padding-top: 23px; margin-top: 38px; border-top: 1px solid var(--me-border); font-size: .68rem; color: var(--me-text-subtle); }
.footer-meta { display: flex; flex-wrap: wrap; gap: 15px; }
.back-top { display: none; position: fixed; z-index: 20; right: 18px; bottom: 18px; width: 44px; height: 44px; align-items: center; justify-content: center; border: 1px solid var(--me-border); border-radius: 50%; color: var(--me-text); background: var(--me-surface); box-shadow: var(--me-shadow-sm); }
.show-back-top .back-top { display: flex; }
.page-hero { padding-block: 35px 60px; background: linear-gradient(110deg, var(--me-bg), var(--me-hero-end)); border-bottom: 1px solid var(--me-border); }
.page-hero h1 { max-width: 800px; margin-bottom: 22px; }
.page-introduction { font-size: 1.05rem; max-width: 670px; margin-bottom: 0; }
.breadcrumb-nav { display: flex; gap: 12px; font-size: .77rem; color: var(--me-text-muted); margin-bottom: 38px; align-items: center; }
.breadcrumb-nav a { min-height: 44px; display: inline-flex; align-items: center; }
.contact-layout, .account-layout { display: grid; gap: 40px; }
.contact-copy h1 { font-size: clamp(2.3rem, 4vw, 3.5rem); }
.contact-copy > p { max-width: 470px; }
.contact-benefits { list-style: none; padding: 0; margin: 32px 0; }
.contact-benefits li { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.contact-benefits strong { font-size: .91rem; font-weight: 600; }
.contact-benefits p { font-size: .81rem; margin: 3px 0 0; }
.contact-privacy { font-size: .79rem; padding-top: 18px; border-top: 1px solid var(--me-border); }
.form-panel { padding: 27px 22px; border: 1px solid var(--me-border); border-radius: var(--me-radius-lg); background: var(--me-surface); box-shadow: var(--me-shadow-md); min-width: 0; align-self: start; }
.form-panel h2 { font-size: 1.5rem; letter-spacing: -.025em; margin-bottom: 10px; }
.form-intro { font-size: .82rem; margin-bottom: 25px; }
.form-intro > span { display: block; font-size: .7rem; margin-top: 6px; }
.form-grid { display: grid; gap: 0 18px; }
.form-field { margin-bottom: 18px; }
.form-field label { display: block; font-size: .8rem; font-weight: 600; margin-bottom: 7px; }
.form-field label span { font-weight: 400; color: var(--me-text-muted); font-size: .7rem; }
.form-field input, .form-field select, .form-field textarea { width: 100%; min-height: 46px; border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); background: var(--me-bg); color: var(--me-text); padding: 10px 12px; font-size: .85rem; }
.form-field textarea { resize: vertical; }
.form-field input::placeholder, .form-field textarea::placeholder { color: var(--me-text-subtle); }
.input-validation-error { border-color: var(--me-danger) !important; }
.field-validation-error { display: block; color: var(--me-danger); font-size: .75rem; margin-top: 6px; }
.validation-summary-valid, .field-validation-valid { display: none; }
.validation-summary-errors { background: var(--me-surface-muted); border: 1px solid var(--me-danger); color: var(--me-danger); padding: 14px 18px; border-radius: var(--me-radius-sm); margin-bottom: 23px; font-size: .82rem; }
.validation-summary-errors ul { padding-left: 18px; margin: 0; }
.spam-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.fine-print { font-size: .73rem; line-height: 1.65; margin-block: 15px; }
.fine-print a { text-decoration: underline; }
.form-status { font-size: .75rem; margin: 10px 0 0; }
.form-success { text-align: center; padding: 36px 0; }
.form-success .icon-box { margin-bottom: 24px; }
.form-success > p { font-size: .9rem; }
.account-panel > .icon-box { margin-bottom: 24px; }
.account-panel > p { font-size: .86rem; }
.account-panel > .fine-print { font-size: .75rem; }
.account-divider { height: 1px; background: var(--me-border); margin: 28px 0 20px; }
.onboarding-steps { display: grid; gap: 12px; margin: 30px 0; padding: 0; list-style: none; counter-reset: steps; }
.onboarding-steps li { counter-increment: steps; display: flex; align-items: center; gap: 12px; color: var(--me-text-muted); padding: 12px 16px; border: 1px solid var(--me-border); border-radius: var(--me-radius-sm); background: var(--me-surface); font-size: .85rem; }
.onboarding-steps li::before { content: counter(steps, decimal-leading-zero); font-size: .72rem; color: var(--me-text-subtle); }
.onboarding-steps .current { background: var(--me-surface-tint); border-color: var(--me-primary-text); }
.legal-content { max-width: 850px; }
.legal-content .content-card { margin: 32px 0; }
.error-section { text-align: center; min-height: 60vh; }
.error-section h1 { max-width: 850px; margin-inline: auto; }
.error-section p { max-width: 620px; margin-inline: auto; }
.error-section .button-group { justify-content: center; margin-block: 25px; }
.error-code { font-size: 5rem; font-weight: 700; color: var(--me-primary-text); letter-spacing: -.06em; }
/* Existing Identity Razor pages inherit the public brand without replacing authentication. */
main:has(#account), main:has(#registerForm), main:has(#external-account) { max-width: 1100px; margin: 50px auto; padding-inline: 24px; min-height: 55vh; }
main > h1 { margin-top: 35px; }
.form-control, .form-select { background-color: var(--me-bg); color: var(--me-text); border-color: var(--me-border); min-height: 46px; }
.form-control:focus, .form-select:focus { color: var(--me-text); background-color: var(--me-bg); border-color: var(--me-focus); box-shadow: 0 0 0 2px var(--me-focus); }
.form-floating > label { color: var(--me-text-muted); }
.form-floating > .form-control:focus ~ label::after, .form-floating > .form-control:not(:placeholder-shown) ~ label::after { background: var(--me-bg); }
.btn-primary { background: var(--me-primary); border-color: var(--me-primary-text); color: var(--me-on-primary); min-height: 46px; }
.btn-primary:hover { background: var(--me-primary-hover); border-color: var(--me-primary-hover); }
.text-danger { color: var(--me-danger) !important; }
@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}

html:not(.js) .site-header { position: static; }
p a:not(.me-button):not(.text-link) { text-decoration: underline; text-underline-offset: 3px; }
