*,
*::before,
*::after {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
}

:root {
    --navy: #0A2A4A;
    --navy-soft: #0F3A66;
    --emerald: #3D8A3F;
    --emerald-d: #2E6E30;
    --emerald-l: #5BA850;
    --gold: #4A983B;
    --gold-d: #3D7E30;
    --gold-soft: #CDE7C4;
    --coral: #E8917A;
    --coral-d: #D5765D;
    --ivory: #F4F8FB;
    --paper: #FFFFFF;
    --line: #DCE6F0;
    --ink-m: #5C7286;
    --ink: #132B42;
    --red: #C0563F;
    --green: #3D8A3F;
    --blue: #015EB3;
    --blue-d: #014A8C;
    --blue-l: #2E86D6;
    --radius: 14px;
    --radius-lg: 20px;
    --shadow-sm: 0 2px 12px rgba(1, 42, 74, 0.07);
    --shadow: 0 8px 32px rgba(1, 42, 74, 0.12);
    --shadow-lg: 0 16px 48px rgba(1, 42, 74, 0.18);
    --serif: 'Fraunces', serif;
    --sans: 'Inter', sans-serif;
    --gray: var(--line);
    --gray-m: var(--ink-m);
    --teal: var(--emerald);
    --amber: var(--gold);
    --logo-icon: url('data:image/png;base64,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');
}

body {
    font-family: var(--sans);
    background: var(--ivory);
    color: var(--ink);
    min-height: 100vh;
    -webkit-font-smoothing: antialiased;
}

.portal {
    display: none;
}

.portal.active {
    display: block;
}

::selection {
    background: var(--gold-soft);
    color: var(--navy);
}


/* AUTH SCREENS */

.auth-screen {
    min-height: 100vh;
    background: radial-gradient(ellipse 80% 60% at 50% -10%, #12406e 0%, var(--navy) 55%, #041B33 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
    position: relative;
    overflow: hidden;
}

.auth-screen::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 20% 80%, rgba(201, 169, 97, 0.06) 0%, transparent 45%), radial-gradient(circle at 85% 15%, rgba(15, 92, 76, 0.18) 0%, transparent 50%);
    pointer-events: none;
}

.auth-wrap {
    width: 100%;
    max-width: 460px;
    position: relative;
    z-index: 1;
}

.auth-logo {
    font-family: var(--serif);
    font-weight: 600;
    font-optical-sizing: auto;
    font-size: 2.3rem;
    color: #fff;
    text-align: center;
    margin-bottom: 4px;
    letter-spacing: -.01em;
}

.auth-logo span {
    color: var(--gold);
    font-style: italic;
}

.auth-tagline {
    text-align: center;
    color: rgba(255, 255, 255, .5);
    font-size: .85rem;
    margin-bottom: 30px;
    letter-spacing: .02em;
}

.auth-card {
    background: var(--paper);
    border-radius: var(--radius-lg);
    padding: 36px;
    box-shadow: 0 30px 80px rgba(0, 0, 0, .35);
    border: 1px solid rgba(255, 255, 255, .06);
}

.auth-card h2 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.5rem;
    color: var(--navy);
    margin-bottom: 4px;
    letter-spacing: -.01em;
}

.auth-card .auth-sub {
    font-size: .83rem;
    color: var(--ink-m);
    margin-bottom: 22px;
}

.auth-tabs {
    display: flex;
    background: var(--ivory);
    border-radius: 50px;
    padding: 4px;
    margin-bottom: 24px;
    gap: 4px;
    border: 1px solid var(--line);
}

.ltab {
    flex: 1;
    padding: 9px;
    border: none;
    background: none;
    border-radius: 50px;
    font-family: var(--sans);
    font-weight: 600;
    font-size: .81rem;
    cursor: pointer;
    color: var(--ink-m);
    transition: all .25s;
}

.ltab.active {
    background: var(--navy);
    color: #fff;
    box-shadow: var(--shadow-sm);
}

.auth-divider {
    text-align: center;
    color: var(--ink-m);
    font-size: .78rem;
    margin: 16px 0;
    position: relative;
    font-family: var(--sans);
}

.auth-divider::before,
.auth-divider::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 40%;
    height: 1px;
    background: var(--line);
}

.auth-divider::before {
    left: 0;
}

.auth-divider::after {
    right: 0;
}

.f-group {
    margin-bottom: 14px;
}

.f-group label {
    display: block;
    font-size: .78rem;
    font-weight: 600;
    color: var(--navy);
    margin-bottom: 6px;
    letter-spacing: .01em;
}

.f-group input,
.f-group select,
.f-group textarea {
    width: 100%;
    padding: 11px 14px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-size: .89rem;
    font-family: var(--sans);
    outline: none;
    transition: all .2s;
    color: var(--ink);
    background: var(--paper);
}

.f-group input:focus,
.f-group select:focus,
.f-group textarea:focus {
    border-color: var(--emerald);
    box-shadow: 0 0 0 3px rgba(15, 92, 76, 0.1);
}

.f-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.f-grid-3 {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 10px;
}

.f-full {
    grid-column: 1 / -1;
}

.f-hint {
    font-size: .73rem;
    color: var(--ink-m);
    margin-top: 16px;
    text-align: center;
    line-height: 1.7;
}

.f-hint strong {
    color: var(--navy);
}

.f-error {
    font-size: .78rem;
    color: var(--red);
    font-weight: 600;
    margin-top: 7px;
    display: none;
}

.f-error.show {
    display: block;
}

.btn-ghost {
    background: none;
    border: none;
    color: var(--emerald);
    font-family: var(--sans);
    font-weight: 700;
    cursor: pointer;
    font-size: .86rem;
}


/* BUTTONS */

.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 13px 28px;
    border-radius: 50px;
    border: none;
    font-family: var(--sans);
    font-weight: 700;
    font-size: .92rem;
    cursor: pointer;
    transition: all .25s cubic-bezier(.2, .8, .2, 1);
    text-decoration: none;
    letter-spacing: .01em;
}

.btn-primary {
    background: var(--emerald);
    color: #fff;
    box-shadow: 0 1px 2px rgba(10, 22, 40, .1);
}

.btn-primary:hover {
    background: var(--emerald-d);
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(15, 92, 76, .3);
}

.btn-primary:disabled {
    opacity: .45;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

.btn-outline {
    background: none;
    border: 1.5px solid var(--line);
    color: var(--navy);
}

.btn-outline:hover {
    border-color: var(--navy);
    background: rgba(10, 22, 40, 0.02);
}

.btn-danger {
    background: var(--coral);
    color: #fff;
}

.btn-danger:hover {
    background: var(--coral-d);
}

.btn-sm {
    padding: 7px 16px;
    font-size: .78rem;
}

.btn-full {
    width: 100%;
    display: flex;
}

.btn-gold {
    background: var(--gold);
    color: var(--navy);
}

.btn-gold:hover {
    background: var(--gold-d);
    color: #fff;
}


/* DASHBOARD SHELL */

.dash-shell {
    display: flex;
    min-height: 100vh;
}

.sidebar {
    width: 248px;
    min-width: 248px;
    background: var(--navy);
    display: flex;
    flex-direction: column;
    position: sticky;
    top: 0;
    height: 100vh;
    overflow-y: auto;
    background-image: radial-gradient(circle at 100% 0%, rgba(201, 169, 97, 0.05) 0%, transparent 50%);
}

.sb-logo {
    padding: 26px 22px 22px;
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.4rem;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, .08);
    letter-spacing: -.01em;
}

.sb-logo span {
    color: var(--gold);
    font-style: italic;
}

.sb-role {
    font-size: .68rem;
    color: rgba(255, 255, 255, .4);
    font-weight: 600;
    letter-spacing: 1.2px;
    text-transform: uppercase;
    margin-top: 4px;
    font-family: var(--sans);
}

.sb-nav {
    flex: 1;
    padding: 18px 14px;
}

.sb-nav a {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 11px 13px;
    border-radius: 10px;
    color: rgba(255, 255, 255, .55);
    text-decoration: none;
    font-size: .86rem;
    font-weight: 600;
    margin-bottom: 3px;
    transition: all .2s;
    cursor: pointer;
    font-family: var(--sans);
}

.sb-nav a:hover {
    background: rgba(255, 255, 255, .06);
    color: #fff;
}

.sb-nav a.active {
    background: linear-gradient(135deg, var(--emerald), var(--emerald-l));
    color: #fff;
    box-shadow: 0 4px 14px rgba(15, 92, 76, .4);
}

.sb-icon {
    font-size: 1.02rem;
    width: 20px;
    text-align: center;
}

.sb-bottom {
    padding: 18px 14px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}

.sb-user {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border-radius: 10px;
    cursor: pointer;
    transition: background .2s;
}

.sb-user:hover {
    background: rgba(255, 255, 255, .06);
}

.sb-avatar {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .95rem;
    flex-shrink: 0;
    color: var(--navy);
    font-weight: 800;
    font-family: var(--serif);
}

.sb-uname {
    font-size: .83rem;
    font-weight: 700;
    color: #fff;
    font-family: var(--sans);
}

.sb-uemail {
    font-size: .7rem;
    color: rgba(255, 255, 255, .42);
}

.dash-main {
    flex: 1;
    padding: 36px;
    overflow-y: auto;
    background: var(--ivory);
}

.dash-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    margin-bottom: 28px;
    gap: 16px;
    flex-wrap: wrap;
}

.dash-title {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.7rem;
    color: var(--navy);
    letter-spacing: -.01em;
}

.dash-subtitle {
    font-size: .85rem;
    color: var(--ink-m);
    margin-top: 3px;
}

.dash-page {
    display: none;
}

.dash-page.active {
    display: block;
}


/* STAT CARDS */

.stat-cards {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(175px, 1fr));
    gap: 14px;
    margin-bottom: 28px;
}

.stat-card {
    background: var(--paper);
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--line);
    position: relative;
    overflow: hidden;
}

.stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 3px;
    height: 100%;
    background: linear-gradient(180deg, var(--gold), var(--emerald));
}

.sc-label {
    font-size: .72rem;
    font-weight: 700;
    color: var(--ink-m);
    text-transform: uppercase;
    letter-spacing: .8px;
    margin-bottom: 8px;
}

.sc-value {
    font-family: var(--serif);
    font-size: 2rem;
    font-weight: 600;
    color: var(--navy);
}

.sc-icon-wrap {
    float: right;
    font-size: 1.6rem;
    margin-top: -2px;
    opacity: .85;
}


/* TABLES */

.table-card {
    background: var(--paper);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    margin-bottom: 26px;
    border: 1px solid var(--line);
}

.table-head {
    padding: 20px 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--line);
    flex-wrap: wrap;
    gap: 12px;
}

.table-head h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.08rem;
    color: var(--navy);
}

table {
    width: 100%;
    border-collapse: collapse;
}

th {
    padding: 12px 16px;
    text-align: left;
    font-size: .7rem;
    font-weight: 700;
    color: var(--ink-m);
    text-transform: uppercase;
    letter-spacing: .6px;
    border-bottom: 1px solid var(--line);
    background: #FBF9F4;
}

td {
    padding: 13px 16px;
    font-size: .85rem;
    border-bottom: 1px solid var(--line);
    color: var(--ink);
    vertical-align: middle;
}

tr:last-child td {
    border-bottom: none;
}

tr:hover td {
    background: #FCFAF6;
}

.empty-row td {
    text-align: center;
    color: var(--ink-m);
    padding: 36px;
}

.filter-select {
    padding: 8px 14px;
    border: 1.5px solid var(--line);
    border-radius: 50px;
    font-size: .81rem;
    outline: none;
    cursor: pointer;
    font-family: var(--sans);
    background: var(--paper);
}


/* PILLS */

.pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 4px 11px;
    border-radius: 20px;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: .01em;
}

.pill-green {
    background: #E7F0EC;
    color: var(--emerald);
}

.pill-amber {
    background: #FBF1DC;
    color: #9C7A2E;
}

.pill-red {
    background: #FAE6E1;
    color: var(--red);
}

.pill-blue {
    background: #E8EEF7;
    color: #2B5C8C;
}

.pill-gray {
    background: #F0EDE4;
    color: var(--ink-m);
}

.pill-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: currentColor;
}

.action-btns {
    display: flex;
    gap: 6px;
    flex-wrap: wrap;
}


/* MODALS */

.modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 22, 40, .6);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
}

.modal-overlay.open {
    opacity: 1;
    pointer-events: all;
}

.modal {
    background: var(--paper);
    border-radius: var(--radius-lg);
    padding: 34px;
    max-width: 520px;
    width: 92%;
    transform: scale(.94);
    transition: transform .3s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .3);
    max-height: 90vh;
    overflow-y: auto;
}

.modal-overlay.open .modal {
    transform: scale(1);
}

.modal h2 {
    font-family: var(--serif);
    font-size: 1.4rem;
    font-weight: 600;
    color: var(--navy);
    margin-bottom: 16px;
    letter-spacing: -.01em;
}

.modal-section {
    margin-bottom: 14px;
}

.modal-section label {
    display: block;
    font-size: .79rem;
    font-weight: 600;
    color: var(--navy);
    margin-bottom: 6px;
}

.modal-section input,
.modal-section select,
.modal-section textarea {
    width: 100%;
    padding: 10px 13px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-size: .87rem;
    font-family: var(--sans);
    outline: none;
    transition: all .2s;
}

.modal-section input:focus,
.modal-section select:focus,
.modal-section textarea:focus {
    border-color: var(--emerald);
    box-shadow: 0 0 0 3px rgba(15, 92, 76, 0.1);
}

.modal-footer {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 20px;
}

.detail-row {
    display: flex;
    gap: 12px;
    margin-bottom: 10px;
    align-items: flex-start;
}

.detail-label {
    font-size: .78rem;
    color: var(--ink-m);
    font-weight: 600;
    min-width: 122px;
    padding-top: 1px;
}

.detail-val {
    font-size: .86rem;
    color: var(--navy);
    font-weight: 500;
    flex: 1;
}


/* TOAST */

#toast {
    position: fixed;
    bottom: 28px;
    right: 28px;
    background: var(--navy);
    color: #fff;
    padding: 14px 24px;
    border-radius: 12px;
    font-size: .86rem;
    font-weight: 600;
    z-index: 9999;
    transform: translateY(80px);
    opacity: 0;
    transition: all .4s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .25);
    border-left: 3px solid var(--gold);
}

#toast.show {
    transform: translateY(0);
    opacity: 1;
}

#toast.toast-green {
    border-left-color: var(--emerald);
}

#toast.toast-red {
    border-left-color: var(--coral);
}


/* PATIENT PORTAL NAV */

#patient-portal nav {
    background: var(--navy);
    padding: 0 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 68px;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.nav-logo {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.4rem;
    color: #fff;
    letter-spacing: -.01em;
}

.nav-logo span {
    color: var(--gold);
    font-style: italic;
}

#patient-portal nav ul {
    list-style: none;
    display: flex;
    gap: 20px;
    align-items: center;
}

#patient-portal nav ul a {
    color: rgba(255, 255, 255, .7);
    text-decoration: none;
    font-size: .85rem;
    font-weight: 500;
    transition: color .2s;
    cursor: pointer;
    font-family: var(--sans);
}

#patient-portal nav ul a:hover {
    color: #fff;
}

.nav-user-pill {
    display: flex;
    align-items: center;
    gap: 8px;
    background: rgba(255, 255, 255, .08);
    border-radius: 50px;
    padding: 6px 16px 6px 8px;
    cursor: pointer;
    border: 1px solid rgba(255, 255, 255, .08);
}

.nav-avatar {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: .76rem;
    font-weight: 800;
    color: var(--navy);
    font-family: var(--serif);
}

.nav-uname {
    font-size: .81rem;
    font-weight: 600;
    color: #fff;
    font-family: var(--sans);
}


/* HERO */

.hero-mini {
    background: radial-gradient(ellipse 90% 70% at 50% -20%, #12406e 0%, var(--navy) 60%, #041B33 100%);
    padding: 64px 5% 56px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.hero-mini::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 15% 90%, rgba(201, 169, 97, 0.08) 0%, transparent 45%), radial-gradient(circle at 90% 10%, rgba(15, 92, 76, 0.2) 0%, transparent 50%);
    pointer-events: none;
}

.hero-mini>* {
    position: relative;
    z-index: 1;
}

.hero-mini h1 {
    font-family: var(--serif);
    font-weight: 500;
    font-size: clamp(2rem, 4vw, 3rem);
    color: #fff;
    margin-bottom: 14px;
    letter-spacing: -.015em;
    line-height: 1.1;
}

.hero-mini h1 em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

.hero-mini p {
    color: rgba(255, 255, 255, .6);
    font-size: 1rem;
    max-width: 480px;
    margin: 0 auto;
    font-family: var(--sans);
}

.hero-loc-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(201, 169, 97, .25);
    color: var(--gold-soft);
    padding: 7px 18px;
    border-radius: 50px;
    font-size: .81rem;
    font-weight: 600;
    margin-top: 18px;
    font-family: var(--sans);
}

.p-section {
    padding: 56px 5%;
}

.section-label {
    font-size: .72rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1.6px;
    color: var(--emerald);
    margin-bottom: 12px;
    font-family: var(--sans);
}

.section-title {
    font-family: var(--serif);
    font-size: clamp(1.5rem, 3vw, 2.1rem);
    font-weight: 500;
    color: var(--navy);
    margin-bottom: 30px;
    letter-spacing: -.01em;
}


/* STEPS */

.steps-bar {
    display: flex;
    margin-bottom: 34px;
    border-radius: 50px;
    overflow: hidden;
    background: var(--paper);
    max-width: 580px;
    border: 1px solid var(--line);
    padding: 4px;
}

.step-btn {
    flex: 1;
    padding: 11px 6px;
    border: none;
    background: none;
    font-family: var(--sans);
    font-size: .81rem;
    font-weight: 700;
    color: var(--ink-m);
    cursor: pointer;
    transition: all .25s;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 5px;
    border-radius: 50px;
}

.step-btn.active {
    background: var(--navy);
    color: #fff;
}

.step-btn .sn {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: rgba(0, 0, 0, .08);
    font-size: .7rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.step-btn.active .sn {
    background: var(--gold);
    color: var(--navy);
}

.step-panel {
    display: none;
    animation: fadeUp .35s cubic-bezier(.2, .8, .2, 1);
}

.step-panel.active {
    display: block;
}

@keyframes fadeUp {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}


/* SERVICE CARDS */

.service-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(205px, 1fr));
    gap: 14px;
    margin-bottom: 28px;
}

.service-card {
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: var(--radius);
    padding: 22px 18px;
    cursor: pointer;
    transition: all .25s cubic-bezier(.2, .8, .2, 1);
    position: relative;
}

.service-card:hover {
    border-color: var(--emerald);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.service-card.selected {
    border-color: var(--emerald);
    background: #F4F8F6;
    box-shadow: 0 4px 16px rgba(15, 92, 76, .12);
}

.service-card.selected::after {
    content: '✓';
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--emerald);
    color: #fff;
    width: 21px;
    height: 21px;
    border-radius: 50%;
    font-size: .7rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.sc-icon {
    font-size: 1.7rem;
    margin-bottom: 10px;
}

.sc-title {
    font-family: var(--serif);
    font-weight: 600;
    font-size: .96rem;
    color: var(--navy);
    margin-bottom: 4px;
}

.sc-desc {
    font-size: .78rem;
    color: var(--ink-m);
    line-height: 1.45;
    font-family: var(--sans);
}

.urgency-row {
    display: flex;
    gap: 10px;
    margin-bottom: 28px;
    flex-wrap: wrap;
}

.urg-btn {
    padding: 9px 19px;
    border-radius: 50px;
    border: 1.5px solid var(--line);
    background: var(--paper);
    font-family: var(--sans);
    font-weight: 700;
    font-size: .83rem;
    cursor: pointer;
    transition: all .2s;
    color: var(--ink);
}

.urg-btn.selected {
    border-color: var(--coral);
    background: #FDF1EC;
    color: var(--coral-d);
}


/* CAREGIVER PICKER */

.loc-filter-bar {
    display: flex;
    gap: 12px;
    margin-bottom: 22px;
    flex-wrap: wrap;
    align-items: flex-end;
    background: var(--paper);
    border: 1px solid var(--line);
    border-radius: var(--radius);
    padding: 16px;
}

.loc-filter-bar .f-group {
    margin-bottom: 0;
    min-width: 160px;
    flex: 1;
}

.cg-pick-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(265px, 1fr));
    gap: 16px;
    margin-bottom: 26px;
}

.cg-pick-card {
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: var(--radius);
    padding: 19px;
    cursor: pointer;
    transition: all .25s cubic-bezier(.2, .8, .2, 1);
}

.cg-pick-card:hover {
    border-color: var(--emerald);
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.cg-pick-card.selected {
    border-color: var(--emerald);
    background: #F4F8F6;
    box-shadow: 0 6px 20px rgba(15, 92, 76, .15);
}

.cg-pick-head {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 11px;
}

.cg-pick-ava {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.3rem;
    flex-shrink: 0;
    border: 2px solid var(--gold-soft);
}

.cg-pick-name {
    font-family: var(--serif);
    font-weight: 600;
    color: var(--navy);
    font-size: .97rem;
}

.cg-pick-role {
    font-size: .77rem;
    color: var(--ink-m);
}

.cg-pick-meta {
    display: flex;
    gap: 12px;
    font-size: .78rem;
    color: var(--ink-m);
    margin-bottom: 10px;
}

.cg-pick-loc {
    font-size: .78rem;
    color: var(--emerald);
    font-weight: 700;
    margin-bottom: 9px;
    display: flex;
    align-items: center;
    gap: 4px;
}

.cg-pick-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.cg-pick-price {
    margin-top: 11px;
    padding-top: 11px;
    border-top: 1px dashed var(--line);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.cg-pick-price strong {
    color: var(--emerald);
    font-family: var(--serif);
    font-size: 1.15rem;
    font-weight: 600;
}

.no-results {
    text-align: center;
    padding: 54px 20px;
    color: var(--ink-m);
}

.no-results .nr-icon {
    font-size: 2.4rem;
    margin-bottom: 14px;
}


/* FORM GRID */

.form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 18px;
}

.form-group {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.form-group.full {
    grid-column: 1 / -1;
}

.form-group label {
    font-size: .79rem;
    font-weight: 600;
    color: var(--navy);
}

.form-group input,
.form-group select,
.form-group textarea {
    padding: 11px 14px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    font-size: .87rem;
    font-family: var(--sans);
    color: var(--ink);
    background: var(--paper);
    transition: all .2s;
    outline: none;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--emerald);
    box-shadow: 0 0 0 3px rgba(15, 92, 76, 0.1);
}

.form-group textarea {
    resize: vertical;
    min-height: 78px;
}

.gender-row {
    display: flex;
    gap: 8px;
}

.gender-btn {
    flex: 1;
    padding: 9px;
    border: 1.5px solid var(--line);
    border-radius: 10px;
    background: var(--paper);
    cursor: pointer;
    font-family: var(--sans);
    font-weight: 700;
    font-size: .83rem;
    color: var(--ink-m);
    transition: all .2s;
}

.gender-btn.selected {
    border-color: var(--emerald);
    color: var(--emerald);
    background: #F4F8F6;
}

.confirm-card {
    background: var(--paper);
    border-radius: var(--radius-lg);
    box-shadow: var(--shadow);
    padding: 28px;
    max-width: 560px;
    border: 1px solid var(--line);
}

.confirm-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 11px 0;
    border-bottom: 1px dashed var(--line);
}

.confirm-row:last-of-type {
    border-bottom: none;
}

.cr-label {
    font-size: .8rem;
    color: var(--ink-m);
    font-weight: 500;
}

.cr-val {
    font-weight: 600;
    color: var(--navy);
    font-size: .87rem;
    text-align: right;
    max-width: 65%;
}

.price-row-p {
    background: linear-gradient(135deg, #F4F8F6, #EFF6F2);
    border-radius: 10px;
    padding: 16px 20px;
    margin: 16px 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid rgba(15, 92, 76, .12);
}

.price-label {
    font-family: var(--sans);
    font-weight: 700;
    color: var(--navy);
    font-size: .85rem;
}

.price-val {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--emerald);
}

.btn-row {
    display: flex;
    gap: 12px;
    margin-top: 24px;
}


/* PROVIDERS */

.providers-section {
    background: var(--paper);
    padding: 56px 5%;
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.providers-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(225px, 1fr));
    gap: 18px;
}

.provider-card {
    background: var(--paper);
    border-radius: var(--radius);
    padding: 20px;
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--line);
    transition: all .25s;
}

.provider-card:hover {
    box-shadow: var(--shadow);
    transform: translateY(-2px);
}

.prov-head {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 13px;
}

.prov-ava {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    flex-shrink: 0;
    border: 2px solid var(--gold-soft);
}

.prov-name {
    font-family: var(--serif);
    font-weight: 600;
    color: var(--navy);
    font-size: .92rem;
}

.prov-role {
    font-size: .75rem;
    color: var(--ink-m);
    margin-top: 2px;
}

.prov-loc {
    font-size: .73rem;
    color: var(--emerald);
    font-weight: 700;
    margin-top: 2px;
}

.avail-dot {
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: var(--emerald-l);
    display: inline-block;
    margin-right: 5px;
    animation: blink 2.2s infinite;
}

@keyframes blink {
    0%,
    100% {
        opacity: 1;
        transform: scale(1);
    }
    50% {
        opacity: .4;
        transform: scale(1.4);
    }
}

#patient-portal footer {
    background: var(--navy);
    padding: 34px 5%;
    text-align: center;
}

#patient-portal footer p {
    color: rgba(255, 255, 255, .4);
    font-size: .81rem;
    font-family: var(--sans);
}

#patient-portal footer span {
    color: var(--gold);
    font-style: italic;
    font-family: var(--serif);
}


/* SUCCESS MODAL */

.success-overlay {
    position: fixed;
    inset: 0;
    background: rgba(10, 22, 40, .6);
    backdrop-filter: blur(2px);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 999;
    opacity: 0;
    pointer-events: none;
    transition: opacity .3s;
}

.success-overlay.open {
    opacity: 1;
    pointer-events: all;
}

.success-box {
    background: var(--paper);
    border-radius: var(--radius-lg);
    padding: 42px 34px;
    max-width: 400px;
    width: 90%;
    text-align: center;
    transform: scale(.92);
    transition: transform .35s cubic-bezier(.2, .8, .2, 1);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .3);
}

.success-overlay.open .success-box {
    transform: scale(1);
}

.success-icon {
    font-size: 2.8rem;
    margin-bottom: 16px;
}

.success-box h2 {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--navy);
    margin-bottom: 10px;
    letter-spacing: -.01em;
}

.success-box p {
    color: var(--ink-m);
    line-height: 1.65;
    margin-bottom: 20px;
    font-size: .87rem;
}

.track-id {
    background: #F4F8F6;
    border: 1px dashed var(--emerald);
    border-radius: 10px;
    padding: 11px 18px;
    font-family: var(--serif);
    font-weight: 600;
    color: var(--emerald);
    font-size: 1.05rem;
    letter-spacing: 1px;
    margin-bottom: 20px;
}


/* PATIENT INFO CARD */

.pt-info-card {
    background: linear-gradient(135deg, var(--navy), #12406e);
    border-radius: var(--radius-lg);
    padding: 28px;
    color: #fff;
    margin-bottom: 24px;
    display: flex;
    align-items: center;
    gap: 18px;
    flex-wrap: wrap;
    position: relative;
    overflow: hidden;
}

.pt-info-card::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 160px;
    height: 160px;
    background: radial-gradient(circle, rgba(201, 169, 97, 0.12), transparent);
    pointer-events: none;
}

.pt-big-ava {
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: var(--gold);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--navy);
    font-family: var(--serif);
    flex-shrink: 0;
    position: relative;
    z-index: 1;
}

.pt-info-card h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.25rem;
    margin-bottom: 3px;
    position: relative;
    z-index: 1;
}

.pt-info-card p {
    font-size: .81rem;
    color: rgba(255, 255, 255, .6);
    position: relative;
    z-index: 1;
}

.reg-steps {
    display: flex;
    gap: 0;
    margin-bottom: 24px;
}

.reg-step-dot {
    flex: 1;
    height: 3px;
    background: var(--line);
    border-radius: 4px;
    transition: background .35s;
    margin: 0 2px;
}

.reg-step-dot.done {
    background: var(--emerald);
}

.badge-row {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    justify-content: center;
    margin-top: 20px;
}

.badge-mini {
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .12);
    color: rgba(255, 255, 255, .85);
    padding: 6px 15px;
    border-radius: 50px;
    font-size: .77rem;
    font-weight: 600;
    font-family: var(--sans);
}

code {
    font-family: 'SF Mono', Monaco, monospace;
    font-size: .92em;
}

.logo-mark {
    width: 34px;
    aspect-ratio: 591/310;
    background-image: var(--logo-icon);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    display: inline-block;
    vertical-align: middle;
    margin-right: 9px;
    flex-shrink: 0;
}

.logo-mark.lg {
    width: 46px;
}

.logo-flex {
    display: flex;
    align-items: center;
}

.sb-logo.logo-flex {
    align-items: flex-start;
}

.sb-logo .logo-mark {
    margin-top: 2px;
}

@media(max-width:900px) {
    .sidebar {
        display: none;
    }
    .form-grid {
        grid-template-columns: 1fr;
    }
    #patient-portal nav ul {
        display: none;
    }
    .loc-filter-bar {
        flex-direction: column;
        align-items: stretch;
    }
}

@media(max-width:600px) {
    .auth-card {
        padding: 24px;
    }
    .f-grid-2,
    .f-grid-3 {
        grid-template-columns: 1fr;
    }
}


/* ══════════════════════════════════════════════════════
   PUBLIC HOMEPAGE
══════════════════════════════════════════════════════ */

#public-home {
    display: block;
}

.ph-nav {
    background: var(--navy);
    padding: 0 5%;
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: 72px;
    position: sticky;
    top: 0;
    z-index: 100;
    border-bottom: 1px solid rgba(255, 255, 255, .06);
}

.ph-nav-links {
    display: flex;
    gap: 30px;
    align-items: center;
}

.ph-nav-links a {
    color: rgba(255, 255, 255, .68);
    text-decoration: none;
    font-size: .86rem;
    font-weight: 500;
    cursor: pointer;
    transition: color .2s;
    font-family: var(--sans);
}

.ph-nav-links a:hover {
    color: #fff;
}

.ph-hero {
    background: radial-gradient(ellipse 90% 70% at 50% -20%, #12406e 0%, var(--navy) 60%, #041B33 100%);
    padding: 80px 5% 90px;
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: 50px;
    align-items: center;
    position: relative;
    overflow: hidden;
}

.ph-hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image: radial-gradient(circle at 10% 90%, rgba(201, 169, 97, 0.08) 0%, transparent 45%), radial-gradient(circle at 95% 10%, rgba(15, 92, 76, 0.22) 0%, transparent 50%);
    pointer-events: none;
}

.ph-hero-text,
.ph-hero-visual {
    position: relative;
    z-index: 1;
}

.ph-hero-text h1 {
    font-family: var(--serif);
    font-weight: 500;
    font-size: clamp(2.2rem, 4.5vw, 3.4rem);
    color: #fff;
    line-height: 1.08;
    letter-spacing: -.015em;
    margin-bottom: 18px;
}

.ph-hero-text h1 em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

.ph-hero-text p {
    color: rgba(255, 255, 255, .62);
    font-size: 1.02rem;
    line-height: 1.65;
    max-width: 460px;
    margin-bottom: 28px;
    font-family: var(--sans);
}

.ph-hero-ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 26px;
}

.ph-pulse-card {
    background: rgba(255, 255, 255, .06);
    border: 1px solid rgba(201, 169, 97, .2);
    border-radius: 24px;
    padding: 36px 32px;
    backdrop-filter: blur(8px);
    max-width: 380px;
    margin: 0 auto;
}

.ph-pulse-card svg {
    width: 100%;
    height: 90px;
    overflow: visible;
}

.ph-pulse-path {
    fill: none;
    stroke: rgba(255, 255, 255, .35);
    stroke-width: 2.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 600;
    stroke-dashoffset: 600;
    animation: ph-draw 2.2s ease forwards;
}

.ph-check-path {
    fill: none;
    stroke: var(--gold);
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-dasharray: 120;
    stroke-dashoffset: 120;
    animation: ph-draw-check 1s ease forwards 2.1s;
}

@keyframes ph-draw {
    to {
        stroke-dashoffset: 0;
    }
}

@keyframes ph-draw-check {
    to {
        stroke-dashoffset: 0;
    }
}

.ph-pulse-stats {
    display: flex;
    justify-content: space-around;
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px dashed rgba(255, 255, 255, .15);
}

.ph-pulse-stats div {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
}

.ph-pulse-stats strong {
    font-family: var(--serif);
    font-size: 1.4rem;
    font-weight: 600;
    color: #fff;
}

.ph-pulse-stats span {
    font-size: .7rem;
    color: rgba(255, 255, 255, .5);
    text-transform: uppercase;
    letter-spacing: .6px;
    font-family: var(--sans);
}

.ph-section {
    padding: 80px 5%;
}

.ph-section-alt {
    background: var(--paper);
    border-top: 1px solid var(--line);
    border-bottom: 1px solid var(--line);
}

.ph-section-dark {
    background: var(--navy);
    padding: 0;
}

.ph-section .section-title,
.ph-section .section-label {
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
}

.ph-steps-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 24px;
    max-width: 1100px;
    margin: 0 auto;
}

.ph-step {
    text-align: center;
    padding: 8px;
}

.ph-step-n {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--emerald), var(--emerald-l));
    color: #fff;
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 16px;
}

.ph-step h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.08rem;
    color: var(--navy);
    margin-bottom: 8px;
}

.ph-step p {
    font-size: .85rem;
    color: var(--ink-m);
    line-height: 1.6;
}

.ph-services-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 18px;
    max-width: 1100px;
    margin: 0 auto;
}

.ph-svc-card {
    background: var(--paper);
    border: 1.5px solid var(--line);
    border-radius: var(--radius);
    padding: 24px;
    transition: all .25s;
}

.ph-svc-card:hover {
    border-color: var(--emerald);
    box-shadow: var(--shadow-sm);
    transform: translateY(-2px);
}

.ph-svc-card h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.02rem;
    color: var(--navy);
    margin: 10px 0 6px;
}

.ph-svc-card p {
    font-size: .83rem;
    color: var(--ink-m);
    line-height: 1.55;
    margin-bottom: 14px;
}

.ph-svc-price {
    font-family: var(--sans);
    font-weight: 700;
    font-size: .8rem;
    color: var(--emerald);
    background: #F4F8F6;
    padding: 4px 12px;
    border-radius: 20px;
    display: inline-block;
}

.ph-why-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 22px;
    max-width: 1100px;
    margin: 0 auto;
}

.ph-why-card {
    padding: 8px;
}

.ph-why-icon {
    font-size: 1.9rem;
    margin-bottom: 14px;
}

.ph-why-card h3 {
    font-family: var(--serif);
    font-weight: 600;
    font-size: 1.05rem;
    color: var(--navy);
    margin-bottom: 8px;
}

.ph-why-card p {
    font-size: .85rem;
    color: var(--ink-m);
    line-height: 1.65;
}

.ph-cg-cta {
    max-width: 1100px;
    margin: 0 auto;
    padding: 80px 5%;
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 50px;
    align-items: center;
}

.ph-cg-cta h2 {
    font-family: var(--serif);
    font-weight: 500;
    font-size: clamp(1.7rem, 3.2vw, 2.3rem);
    color: #fff;
    line-height: 1.15;
    letter-spacing: -.01em;
    margin: 10px 0 16px;
}

.ph-cg-cta h2 em {
    color: var(--gold);
    font-style: italic;
    font-weight: 600;
}

.ph-cg-cta>div:first-child p {
    color: rgba(255, 255, 255, .62);
    font-size: .95rem;
    line-height: 1.65;
    margin-bottom: 26px;
    max-width: 440px;
    font-family: var(--sans);
}

.ph-cg-stats {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.ph-cg-stats div {
    background: rgba(255, 255, 255, .05);
    border: 1px solid rgba(201, 169, 97, .18);
    border-radius: 14px;
    padding: 18px 22px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.ph-cg-stats strong {
    font-family: var(--serif);
    font-size: 1.5rem;
    font-weight: 600;
    color: var(--gold);
}

.ph-cg-stats span {
    font-size: .78rem;
    color: rgba(255, 255, 255, .55);
    font-family: var(--sans);
}

#public-home footer {
    background: var(--navy);
    padding: 34px 5%;
    text-align: center;
    border-top: 1px solid rgba(255, 255, 255, .06);
}

#public-home footer p {
    color: rgba(255, 255, 255, .4);
    font-size: .81rem;
    font-family: var(--sans);
}

#public-home footer span {
    color: var(--gold);
    font-style: italic;
    font-family: var(--serif);
}

@media(max-width:900px) {
    .ph-nav-links {
        display: none;
    }
    .ph-hero {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .ph-hero-text p {
        margin-left: auto;
        margin-right: auto;
    }
    .ph-hero-ctas {
        justify-content: center;
    }
    .badge-row {
        justify-content: center !important;
    }
    .ph-cg-cta {
        grid-template-columns: 1fr;
        text-align: center;
    }
    .ph-cg-cta>div:first-child p {
        margin-left: auto;
        margin-right: auto;
    }
    .ph-cg-stats {
        flex-direction: row;
        flex-wrap: wrap;
        justify-content: center;
    }
    .ph-cg-stats div {
        flex: 1;
        min-width: 140px;
        flex-direction: column;
        gap: 4px;
        text-align: center;
    }
}