@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,650;9..144,750&display=swap');

:root {
    --brand: #0b7a75;
    --brand-dark: #075f5b;
    --brand-soft: #e6f3ef;
    --coral: #c55268;
    --gold: #d4a373;
    --cream: #fdf8f5;
    --paper: #ffffff;
    --ink: #17332f;
    --muted: #64736f;
    --line: #dce7e3;
    --shadow: 0 20px 60px rgba(23, 51, 47, .10);
}

* { box-sizing: border-box; }
html, body { max-width: 100%; overflow-x: hidden; }
body { margin: 0; background: #f7faf8; color: var(--ink); font-family: 'DM Sans', sans-serif; }
h1, h2, h3 { font-family: 'Fraunces', serif; letter-spacing: 0; }
a { color: var(--brand); }
.btn { border-radius: 8px; font-weight: 700; }
.btn-brand { background: var(--brand); border-color: var(--brand); color: #fff; }
.btn-brand:hover { background: var(--brand-dark); border-color: var(--brand-dark); color: #fff; transform: translateY(-1px); }
.btn-outline-brand { border: 1px solid #9bc9c3; color: var(--brand); background: #fff; }
.btn-outline-brand:hover { background: var(--brand-soft); color: var(--brand-dark); }
.btn-soft { background: #f1f5f3; color: var(--ink); }
.eyebrow { display: block; color: var(--coral); font-size: .78rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }

.brand-mark { display: inline-flex; align-items: center; gap: 12px; color: var(--ink); text-decoration: none; flex: 0 0 auto; }
.brand-symbol { position: relative; display: grid; place-items: center; width: 52px; height: 52px; border-radius: 50% 50% 44% 44%; background: var(--brand); color: #fff; box-shadow: 0 12px 26px rgba(11,122,117,.22); }
.brand-halo { position: absolute; top: -9px; width: 25px; height: 9px; border: 3px solid var(--gold); border-radius: 50%; }
.brand-heart { font-size: 25px; line-height: 1; }
.brand-words { display: grid; line-height: .9; }
.brand-words strong { font-family: 'Fraunces', serif; font-size: 1.65rem; }
.brand-words small { margin-top: 6px; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .18em; }

.public-header { position: sticky; top: 0; z-index: 100; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 24px; min-height: 92px; padding: 16px max(24px, calc((100vw - 1280px)/2)); background: rgba(253,248,245,.94); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.public-nav { display: flex; justify-content: center; gap: 34px; }
.public-nav a { color: #42524e; font-weight: 700; text-decoration: none; }
.header-actions { display: flex; align-items: center; gap: 10px; }
.home-hero { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(380px,.9fr); align-items: center; min-height: calc(100vh - 92px); padding: 54px max(24px, calc((100vw - 1280px)/2)); background: linear-gradient(110deg,#edf7f3 0%,#fffaf7 52%,#ffe8df 100%); }
.hero-copy { max-width: 750px; }
.hero-copy h1 { margin: 18px 0 22px; font-size: clamp(3.4rem,6vw,6.4rem); line-height: .94; }
.hero-copy > p { max-width: 680px; color: #566661; font-size: 1.18rem; line-height: 1.75; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin: 30px 0; }
.trust-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; max-width: 720px; }
.trust-grid span { padding: 14px; border: 1px solid rgba(11,122,117,.14); border-radius: 8px; background: rgba(255,255,255,.72); color: var(--muted); }
.trust-grid strong { display: block; color: var(--ink); }
.hero-person { position: relative; display: grid; place-items: center; align-self: stretch; min-height: 620px; overflow: hidden; }
.hero-person::before { content: ''; position: absolute; width: min(86%,540px); aspect-ratio: 1; border-radius: 50%; background: #fff; border: 1px solid rgba(11,122,117,.13); box-shadow: var(--shadow); }
.hero-person img { position: relative; z-index: 1; width: min(88%,520px); max-height: 680px; object-fit: contain; object-position: bottom; }
.hero-note { position: absolute; z-index: 2; right: 6%; bottom: 12%; display: grid; padding: 15px 18px; border-radius: 8px; background: #fff; box-shadow: var(--shadow); }
.hero-note span { color: var(--muted); font-size: .9rem; }
.home-band, .services-section, .lead-capture { padding: 90px max(24px, calc((100vw - 1280px)/2)); }
.section-heading { max-width: 700px; margin-bottom: 38px; }
.section-heading h2, .lead-capture h2 { margin: 10px 0; font-size: clamp(2.3rem,4vw,4rem); }
.journey-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; }
.journey-grid article, .service-list article { padding: 26px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 12px 36px rgba(23,51,47,.06); }
.journey-grid b { display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 8px; background: var(--brand-soft); color: var(--brand); }
.journey-grid h3, .service-list h3 { margin: 22px 0 8px; font-size: 1.35rem; }
.journey-grid p, .service-list p { color: var(--muted); line-height: 1.65; }
.services-section { background: var(--cream); }
.service-list { display: grid; gap: 12px; }
.service-list article { display: grid; grid-template-columns: 90px 1fr; align-items: center; }
.service-list article > span { display: grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; background: var(--brand); color: #fff; font-family: 'Fraunces'; font-size: 1.25rem; }
.service-list h3 { margin-top: 0; }
.lead-capture { display: grid; grid-template-columns: .85fr 1.15fr; gap: 64px; align-items: start; background: #eef6f3; }
.lead-capture form { padding: 30px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.form-control, .form-select { border-color: #cfddd8; border-radius: 8px; }
.form-control:focus, .form-select:focus { border-color: var(--brand); box-shadow: 0 0 0 .2rem rgba(11,122,117,.12); }
.site-footer { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 30px; padding: 34px max(24px, calc((100vw - 1280px)/2)); background: #142c28; color: #dce7e3; }
.site-footer .brand-mark { color: #fff; }
.site-footer p { margin: 0; }
.site-footer div { display: flex; gap: 18px; }
.site-footer a { color: #fff; }

.portal-shell { min-height: 100vh; background: #f4f7f5; }
.portal-header { position: sticky; top: 0; z-index: 110; display: flex; align-items: center; justify-content: space-between; min-height: 82px; padding: 12px 28px; background: rgba(255,255,255,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(18px); }
.portal-account { display: flex; align-items: center; gap: 12px; }
.portal-role { padding: 7px 12px; border-radius: 999px; background: var(--brand-soft); color: var(--brand); font-size: .78rem; font-weight: 800; }
.portal-menu-toggle { display: none; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 8px; background: #fff; }
.portal-menu-toggle span { display: block; width: 20px; height: 2px; margin: 4px auto; background: var(--ink); }
.portal-body { display: grid; grid-template-columns: 250px minmax(0,1fr); min-height: calc(100vh - 82px); }
.portal-sidebar { position: sticky; top: 82px; display: flex; flex-direction: column; justify-content: space-between; height: calc(100vh - 82px); padding: 24px 14px; background: #fff; border-right: 1px solid var(--line); overflow-y: auto; }
.portal-sidebar nav { display: grid; gap: 6px; }
.portal-sidebar nav a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 10px 14px; border-radius: 8px; color: #40504c; font-weight: 700; text-decoration: none; }
.portal-sidebar nav a.active, .portal-sidebar nav a:hover { background: var(--brand); color: #fff; }
.portal-sidebar nav span { width: 22px; text-align: center; font-size: 1.2rem; }
.portal-help { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 8px; text-decoration: none; font-weight: 700; }
.portal-content { min-width: 0; padding: 38px clamp(18px,3vw,48px) 70px; }
.portal-page-heading { display: flex; align-items: end; justify-content: space-between; gap: 24px; margin-bottom: 28px; }
.portal-page-heading h1 { margin: 8px 0; font-size: clamp(2.4rem,4vw,4.2rem); line-height: 1; }
.portal-page-heading p { max-width: 760px; margin: 0; color: var(--muted); font-size: 1.04rem; }
.metric-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin-bottom: 20px; }
.master-metrics { grid-template-columns: repeat(4,minmax(0,1fr)); }
.metric-card, .surface-card { border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: 0 12px 35px rgba(23,51,47,.055); }
.metric-card { display: grid; gap: 8px; min-height: 150px; padding: 24px; }
.metric-card span { color: var(--muted); font-weight: 700; }
.metric-card strong { color: var(--brand); font-family: 'Fraunces'; font-size: 2rem; }
.metric-card small { color: var(--muted); }
.workspace-grid { display: grid; grid-template-columns: minmax(0,1.5fr) minmax(300px,.5fr); gap: 18px; }
.surface-card { min-width: 0; padding: 26px; }
.span-2 { min-width: 0; }
.card-heading { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 22px; }
.card-heading h2 { margin: 5px 0 0; font-size: 1.65rem; }
.status-chip, .priority { display: inline-flex; padding: 6px 10px; border-radius: 999px; font-size: .76rem; font-weight: 800; white-space: nowrap; }
.status-chip.warning, .priority.high { background: #fff0c8; color: #785800; }
.status-chip.success { background: #dff2e6; color: #11633b; }
.timeline { display: grid; grid-template-columns: repeat(5,1fr); gap: 10px; }
.timeline > div { display: grid; gap: 10px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); }
.timeline b { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: #edf2f0; }
.timeline span { display: grid; gap: 5px; }
.timeline .done, .timeline .active { border-color: #a5d3cc; color: var(--ink); }
.timeline .done b { background: var(--brand); color: #fff; }
.timeline .active { background: #f1faf7; }
.empty-state { display: grid; place-items: center; min-height: 280px; padding: 30px; border: 1px dashed #bbd0ca; border-radius: 8px; text-align: center; color: var(--muted); }
.empty-state.compact { min-height: 220px; }
.empty-state > span { color: var(--brand); font-size: 2.8rem; }
.empty-state strong { color: var(--ink); font-size: 1.2rem; }
.table-tools { display: flex; gap: 8px; }
.table-tools .form-control { min-width: 280px; }
.data-table-wrap { max-width: 100%; overflow: auto; border: 1px solid var(--line); border-radius: 8px; }
.data-table { width: 100%; min-width: 800px; border-collapse: collapse; }
.data-table th { position: sticky; top: 0; padding: 13px 15px; background: #f3f8f6; color: #66736f; font-size: .74rem; letter-spacing: .05em; text-align: left; text-transform: uppercase; }
.data-table td { padding: 15px; border-top: 1px solid var(--line); }
.health-list { display: grid; gap: 4px; margin: 20px 0 0; padding: 0; list-style: none; }
.health-list li { display: grid; grid-template-columns: 12px 1fr auto; align-items: center; gap: 10px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.health-list span { width: 10px; height: 10px; border-radius: 50%; background: #f0b429; }
.health-list span.ok { background: #1a9a5b; }
.entry-choice { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; min-height: 70vh; padding: 80px max(24px,calc((100vw - 1000px)/2)); }
.entry-card { display: grid; align-content: center; gap: 12px; min-height: 260px; padding: 30px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); text-decoration: none; }
.entry-card span { color: var(--coral); font-weight: 800; }
.entry-card strong { color: var(--ink); font-family: 'Fraunces'; font-size: 1.8rem; }

.account-shell { display: grid; grid-template-columns: minmax(280px,.72fr) minmax(0,1.28fr); min-height: 100vh; background: linear-gradient(120deg,#eaf6f2 0%,#fffaf7 48%,#ffece4 100%); }
.account-back { position: fixed; z-index: 4; top: 22px; left: 24px; display: inline-flex; padding: 10px 14px; border: 1px solid rgba(11,122,117,.24); border-radius: 8px; background: rgba(255,255,255,.88); font-weight: 700; text-decoration: none; backdrop-filter: blur(12px); }
.account-brand { display: grid; align-content: center; justify-items: start; gap: 22px; padding: 90px clamp(28px,6vw,100px); border-right: 1px solid rgba(11,122,117,.12); }
.account-brand p { max-width: 390px; color: var(--muted); font-size: 1.2rem; line-height: 1.7; }
.account-panel { display: grid; align-content: center; width: min(860px,100%); margin: auto; padding: 80px clamp(20px,5vw,72px); }
.account-heading { margin-bottom: 28px; }
.account-heading h1 { margin: 10px 0; font-size: clamp(2.5rem,5vw,4.4rem); line-height: 1; }
.account-heading p { max-width: 680px; color: var(--muted); font-size: 1.04rem; }
.account-form { padding: 30px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.94); box-shadow: var(--shadow); }
.account-panel>h1{font-size:clamp(2.5rem,5vw,4.5rem);margin:.35rem 0 1rem}.account-panel>p{max-width:42rem;color:var(--muted);font-size:1.05rem}.account-form{display:grid;gap:1.1rem;max-width:38rem;margin-top:1.5rem}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:1rem}.field-label-row a,.account-footer-action a{color:var(--brand);font-weight:700}.account-check{display:flex;align-items:center;gap:.65rem}.account-footer-action{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:1.25rem}
.form-section { min-width: 0; margin: 0 0 28px; padding: 0 0 28px; border: 0; border-bottom: 1px solid var(--line); }
.form-section:last-of-type { border-bottom: 0; }
.form-section legend { display: flex; align-items: center; gap: 11px; width: 100%; margin: 0 0 18px; color: var(--ink); font-family: 'Fraunces'; font-size: 1.35rem; font-weight: 800; }
.form-section legend span { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background: var(--brand); color: #fff; font-family: system-ui,sans-serif; font-size: .9rem; }
.form-hint { margin: -8px 0 18px; color: var(--muted); font-size: .9rem; }
.form-control[aria-busy="true"] { background-image: linear-gradient(90deg,transparent,#e3f3ef,transparent); background-size: 220% 100%; animation: field-loading 1s linear infinite; }
@keyframes field-loading { to { background-position: -220% 0; } }
.form-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.form-field { display: grid; gap: 7px; min-width: 0; }
.form-field.span-2 { grid-column: span 2; }
.form-field label { font-weight: 750; }
.contract-consent { display: grid; grid-template-columns: 22px 1fr; gap: 14px; margin: 24px 0 8px; padding: 18px; border: 1px solid #ecd1b5; border-radius: 8px; background: #fff8ed; line-height: 1.55; cursor: pointer; }
.contract-consent input { width: 20px; height: 20px; margin-top: 3px; accent-color: var(--brand); }
.contract-consent strong { display: block; color: var(--ink); }
.account-switch { margin: 20px 0 0; text-align: center; color: var(--muted); }
.registration-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 16px; }
.registration-choice a { display: grid; align-content: start; gap: 14px; min-height: 280px; padding: 30px; border: 1px solid var(--line); border-radius: 10px; background: #fff; box-shadow: var(--shadow); text-decoration: none; transition: transform .18s ease,border-color .18s ease; }
.registration-choice a:hover { transform: translateY(-4px); border-color: #8fc7bf; }
.registration-choice span { color: var(--coral); font-weight: 800; }
.registration-choice strong { color: var(--ink); font-family: 'Fraunces'; font-size: 1.8rem; }
.registration-choice p { color: var(--muted); line-height: 1.6; }
.wizard-shell { display: grid; grid-template-columns: minmax(0,900px); justify-content: center; }
.step-indicator { display: grid; grid-template-columns: 38px 1fr 38px 1fr 38px; align-items: center; margin-bottom: 28px; }
.step-indicator span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; border: 1px solid var(--line); background: #fff; font-weight: 800; }
.step-indicator span.active { background: var(--brand); color: #fff; }
.step-indicator i { height: 3px; background: #b5d9d3; }
.price-breakdown { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; margin-top: 26px; }
.price-breakdown > div { display: grid; gap: 8px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #f7faf8; }
.price-breakdown span { color: var(--muted); font-size: .84rem; font-weight: 700; }
.price-breakdown strong { color: var(--brand); font-family: 'Fraunces'; font-size: 1.45rem; }
.price-breakdown .total { background: var(--brand); color: #fff; }
.price-breakdown .total span, .price-breakdown .total strong { color: #fff; }
.day-details { margin-top: 14px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.day-details summary { padding: 16px 18px; background: #f5f8f7; font-weight: 800; cursor: pointer; }
.day-details > div { display: grid; grid-template-columns: 1fr auto; gap: 4px 14px; padding: 13px 18px; border-top: 1px solid var(--line); }
.day-details small { grid-column: 1 / -1; color: var(--muted); }
.profile-summary { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.profile-summary div { display: grid; gap: 5px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; background: #f8faf9; }
.profile-summary span { color: var(--muted); font-size: .82rem; }
.document-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.document-card { display: grid; grid-template-columns: 46px minmax(0,1fr) auto; align-items: center; gap: 13px; padding: 18px; border: 1px solid var(--line); border-radius: 8px; background: #fbfdfc; }
.document-card-icon { display: grid; place-items: center; width: 46px; height: 46px; border-radius: 8px; background: #e6f3ef; color: var(--brand); font-size: 1.35rem; }
.document-card-copy { display: grid; gap: 5px; min-width: 0; }
.document-card-copy small { overflow: hidden; color: var(--muted); text-overflow: ellipsis; white-space: nowrap; }
.document-card-copy .status-chip { justify-self: start; }
.document-note { grid-column: 1/-1; margin: 3px 0 0; color: #8a3d42; font-size: .82rem; }
.document-upload { position: relative; overflow: hidden; }
.document-upload input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.completion-ring { display: grid; place-items: center; width: 58px; height: 58px; border: 6px solid #d9ebe6; border-top-color: var(--brand); border-radius: 50%; color: var(--brand); font-weight: 800; }
.document-review-list { display: grid; gap: 12px; }
.document-review-row { display: grid; grid-template-columns: minmax(240px,1.3fr) auto auto minmax(220px,1fr) auto; align-items: center; gap: 12px; padding: 16px; border: 1px solid var(--line); border-radius: 8px; }
.document-review-person { display: grid; gap: 4px; min-width: 0; }
.document-review-person span, .document-review-person small { color: var(--muted); }
.document-review-person small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.review-actions { display: flex; gap: 8px; }
.settings-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.settings-grid article { display: grid; align-content: start; gap: 12px; min-height: 280px; }
.audit-scroll { max-height: 600px; }
.legal-document { max-width: 980px; margin: 0 auto 70px; line-height: 1.75; }
.legal-document h2 { margin-top: 28px; }
.legal-notice { margin-top: 30px; padding: 18px; border-left: 4px solid var(--gold); background: #fff8ed; }
.finance-list { display: grid; gap: 16px; }
.finance-shift-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.finance-shift-heading h2 { margin: 4px 0; }
.finance-status { display: grid; justify-items: end; gap: 10px; }
.finance-status strong { font-family: 'Fraunces'; font-size: 1.8rem; }
.compact-breakdown { grid-template-columns: repeat(3,minmax(0,1fr)); }
.payment-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.action-loading { display: inline-flex; align-items: center; gap: 8px; color: var(--muted); }
.payment-overlay { position: fixed; z-index: 1200; inset: 0; display: grid; place-items: center; padding: 18px; background: rgba(15,40,36,.58); backdrop-filter: blur(6px); }
.payment-dialog { position: relative; display: grid; gap: 16px; width: min(520px,100%); max-height: calc(100vh - 36px); overflow: auto; padding: 30px; border-radius: 10px; background: #fff; box-shadow: 0 28px 90px rgba(5,32,29,.32); animation: dialog-in .22s ease both; }
.dialog-close { position: absolute; top: 12px; right: 14px; width: 36px; height: 36px; border: 0; border-radius: 50%; background: #eef5f3; font-size: 1.45rem; }
.payment-total { color: var(--brand); font-family: 'Fraunces'; font-size: 2.4rem; }
.pix-qrcode { width: min(280px,100%); aspect-ratio: 1; margin: auto; object-fit: contain; }
.countdown-box { padding: 13px; border: 1px solid #f0d5aa; border-radius: 8px; background: #fff8e9; text-align: center; }
.barcode { overflow-wrap: anywhere; padding: 14px; background: #f4f7f6; }
@keyframes dialog-in { from { opacity: 0; transform: translateY(14px) scale(.98); } }

#blazor-error-ui { display: none; position: fixed; right: 16px; bottom: 16px; z-index: 9999; padding: 16px; border-radius: 8px; background: #fff; box-shadow: var(--shadow); }

@media (max-width: 1100px) {
    .public-nav { display: none; }
    .home-hero { grid-template-columns: 1fr .7fr; }
    .journey-grid { grid-template-columns: repeat(2,1fr); }
    .master-metrics { grid-template-columns: repeat(2,1fr); }
    .timeline { grid-template-columns: 1fr; }
}

@media (max-width: 820px) {
    .public-header { grid-template-columns: 1fr auto; min-height: 76px; padding: 12px 16px; }
    .public-header .header-actions .btn-brand { display: none; }
    .brand-symbol { width: 44px; height: 44px; }
    .brand-words strong { font-size: 1.3rem; }
    .home-hero { grid-template-columns: 1fr; min-height: auto; padding: 26px 18px 54px; }
    .hero-person { grid-row: 1; min-height: 340px; }
    .hero-person img { max-height: 350px; }
    .hero-person::before { width: 310px; }
    .hero-note { display: none; }
    .hero-copy h1 { font-size: clamp(2.7rem,13vw,4.4rem); }
    .hero-actions, .hero-actions .btn { width: 100%; }
    .trust-grid, .journey-grid, .lead-capture, .site-footer { grid-template-columns: 1fr; }
    .home-band, .services-section, .lead-capture { padding: 60px 18px; }
    .lead-capture { gap: 28px; }
    .site-footer { align-items: start; padding: 28px 18px; }
    .portal-header { padding: 10px 14px; }
    .portal-header .brand-words, .portal-account strong, .portal-role { display: none; }
    .portal-menu-toggle { display: block; margin-left: auto; margin-right: 10px; }
    .portal-body { grid-template-columns: 1fr; }
    .portal-sidebar { position: fixed; z-index: 105; top: 69px; left: 0; width: min(86vw,310px); height: calc(100vh - 69px); transform: translateX(-105%); transition: transform .22s ease; box-shadow: var(--shadow); }
    .portal-sidebar.open { transform: translateX(0); }
    .portal-content { padding: 26px 16px 50px; }
    .portal-page-heading { align-items: stretch; flex-direction: column; }
    .portal-page-heading .btn, .portal-page-heading > div:last-child { width: 100%; }
    .metric-grid, .master-metrics, .workspace-grid { grid-template-columns: 1fr; }
    .metric-card { min-height: 130px; }
    .card-heading { align-items: stretch; flex-direction: column; }
    .table-tools { flex-direction: column; }
    .table-tools .form-control { min-width: 0; width: 100%; }
    .entry-choice { grid-template-columns: 1fr; padding: 30px 16px; }
    .account-shell { grid-template-columns: 1fr; }
    .account-brand { display: none; }
    .account-panel { padding: 90px 16px 40px; }
    .account-back { top: 14px; left: 16px; }
    .account-form { padding: 20px 16px; }
    .form-grid, .registration-choice { grid-template-columns: 1fr; }
    .form-field.span-2 { grid-column: auto; }
    .price-breakdown, .profile-summary, .settings-grid { grid-template-columns: 1fr; }
    .compact-breakdown { grid-template-columns: 1fr; }
    .finance-shift-heading { flex-direction: column; }
    .finance-status { justify-items: start; }
    .payment-actions, .payment-actions .btn { width: 100%; }
    .document-grid { grid-template-columns: 1fr; }
    .document-card { grid-template-columns: 42px minmax(0,1fr); }
    .document-card .document-upload, .document-card > .btn-link { grid-column: 1/-1; width: 100%; }
    .document-review-row { grid-template-columns: 1fr; }
    .review-actions, .review-actions .btn { width: 100%; }
    .day-details > div { grid-template-columns: 1fr; }
}
.blocking-notice{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem;margin-bottom:1.5rem;border:1px solid #efb4b4;border-left:5px solid #a93246;background:#fff2f3;border-radius:.75rem;color:#641c29}.blocking-notice h2{font-size:1.35rem;margin:.25rem 0}.blocking-notice p{margin:0}.blocking-notice>strong{font-size:1.8rem;white-space:nowrap}.danger-metric{border-left:4px solid #b23a48}.penalty-list{display:grid;gap:1rem}.penalty-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1.5rem;padding:1.25rem;border:1px solid #ead6d8;border-radius:.75rem;background:#fffafa}.penalty-card h3{margin:.25rem 0 .75rem}.penalty-details dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin:0}.penalty-details dl div{min-width:0}.penalty-details dt{font-size:.78rem;text-transform:uppercase;color:#6c757d}.penalty-details dd{margin:0;overflow-wrap:anywhere}.penalty-payment{text-align:right;min-width:18rem}.penalty-payment>strong{display:block;font-size:1.65rem;margin-bottom:.75rem}.compact-actions{justify-content:flex-end}.compact-actions .btn{min-height:2.75rem}
@media(max-width:767.98px){.blocking-notice{align-items:flex-start;flex-direction:column}.penalty-card{grid-template-columns:1fr}.penalty-details dl{grid-template-columns:1fr}.penalty-payment{min-width:0;text-align:left}.compact-actions{display:grid;grid-template-columns:1fr 1fr;justify-content:stretch}.compact-actions .btn{width:100%}.data-table[data-responsive],.data-table-wrap .data-table{min-width:0}.data-table-wrap{overflow-x:auto}}
.shift-card-grid{display:grid;gap:1rem}.operational-card{padding:1.25rem;border:1px solid #dce7e4;border-radius:.75rem;background:#fff}.operational-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.operational-card h3{font-size:1.25rem;margin:.2rem 0}.net-value{display:block;color:var(--brand,#087f79);font-size:1.45rem;margin:.75rem 0}.operation-guidance{padding:1rem;margin:1rem 0;border-radius:.5rem;background:#f3f8f7;color:#38504d}.card-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.75rem;margin-top:1rem}.journey-steps{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.35rem;margin:1rem 0}.journey-steps div{position:relative;text-align:center;color:#7a8583}.journey-steps span{display:grid;place-items:center;width:2rem;height:2rem;margin:0 auto .35rem;border:1px solid #cbd6d4;border-radius:50%;background:#fff;font-weight:700}.journey-steps .done span{background:#087f79;color:#fff;border-color:#087f79}.journey-steps .active span{border:2px solid #d4a373;color:#784a1f;background:#fff8ef}.journey-steps small{font-size:.7rem}.replacement-list{display:grid;gap:.75rem;max-height:55vh;overflow:auto}.replacement-option{display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:.75rem;padding:1rem;border:1px solid #dce5e3;border-radius:.65rem;cursor:pointer}.replacement-option:has(input:checked){border-color:#087f79;background:#eef8f6}.replacement-option small{display:block;color:#65716f}.avatar-placeholder{display:grid;place-items:center;width:3rem;height:3rem;border-radius:50%;background:#dcefeb;color:#087f79;font-weight:800}.evolution-dialog,.replacement-dialog{width:min(760px,calc(100vw - 2rem))}
.table-actions{display:flex;flex-wrap:wrap;gap:.4rem;min-width:14rem}
@media(max-width:767.98px){.portal-page-heading{align-items:flex-start;flex-direction:column}.portal-page-heading h1{font-size:clamp(2rem,11vw,3.25rem)}.operational-card-heading{flex-direction:column}.journey-steps{display:flex;overflow-x:auto;padding-bottom:.5rem;scroll-snap-type:x mandatory}.journey-steps div{min-width:5rem;scroll-snap-align:start}.card-actions{display:grid;grid-template-columns:1fr}.card-actions .btn,.card-actions a{width:100%}.replacement-option{grid-template-columns:auto 1fr}.replacement-option input{grid-row:1;grid-column:1}.replacement-option .avatar-placeholder{display:none}}
