@import url('https://fonts.googleapis.com/css2?family=Google+Sans:wght@400;500;700&family=Lexend:wght@300;400;500;600&family=Inter:wght@300;400;500;600;700&family=Roboto:wght@300;400;500;700&family=Outfit:wght@300;400;500;600;700&family=Poppins:wght@300;400;500;600;700&display=swap');

/* Consolidated Theme Engine */
:root {
    /* Typography Seeds */
    --font-main: 'Google Sans', sans-serif;
    --font-weight-base: 400;

    /* Color Seeds */
    --primary-seed: #0061a4;
    --primary-seed-rgb: 0, 97, 164;
    --primary-rgb: var(--primary-seed-rgb);

    /* Theme Tokens (Light Default) */
    --primary: var(--primary-seed);
    --on-primary: #ffffff;
    --primary-container: color-mix(in srgb, var(--primary-seed) 20%, #ffffff);
    --on-primary-container: color-mix(in srgb, var(--primary-seed) 80%, #000000);
    --surface: #ffffff;
    --on-surface: #1a1c1e;
    --surface-variant: color-mix(in srgb, var(--primary-seed) 10%, #dfe2eb);
    --on-surface-variant: #43474e;
    --outline: #73777f;
    --outline-variant: color-mix(in srgb, var(--primary-seed) 15%, #dfe2eb);
    --surface-container-low: #ffffff;
    --surface-container: color-mix(in srgb, var(--primary-seed) 8%, #f3f5f9);
    --surface-container-high: color-mix(in srgb, var(--primary-seed) 11%, #eceef4);
    --surface-container-highest: color-mix(in srgb, var(--primary-seed) 12%, #e2e8f0);
    --secondary-container: color-mix(in srgb, var(--primary-seed) 15%, #f4f4f4);
    --on-secondary-container: #1a1c1e;
    --tertiary-container: #f7ebff;
    --on-tertiary-container: #250059;
    --error: #ba1a1a;
    --on-error: #ffffff;
    --error-container: #ffdad6;
    --on-error-container: #410002;

    /* Spacing System (8px base) */
    --space-0: 0px;
    --space-2: 2px;
    --space-4: 4px;
    --space-8: 8px;
    --space-12: 12px;
    --space-16: 16px;
    --space-20: 20px;
    --space-24: 24px;
    --space-32: 32px;
    --space-40: 40px;
    --space-48: 48px;
    --space-64: 64px;

    /* Shape & Radius System */
    --radius-xs: 4px;
    --radius-s: 8px;
    --radius-m: 12px;
    --radius-l: 16px;
    --radius-xl: 24px;
    --radius-2xl: 28px;
    --radius-pill: 100px;
    --radius-full: 9999px;

    /* Typography System */
    --font-2xs: 10px;
    --font-xs: 11px;
    --font-sm: 12px;
    --font-base: 13px;
    --font-m: 14px;
    --font-l: 15px;
    --font-xl: 16px;
    --font-2xl: 24px;
    --font-3xl: 32px;

    /* Transitions */
    --trans-std: 0.2s ease;
    --trans-emphasized: 0.4s cubic-bezier(0.2, 0, 0, 1);
    --transition-standard: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    --transition-emphasized: all 0.7s cubic-bezier(0.2, 0, 0, 1);

    /* Shadows */
    --shadow-s: 0 4px 12px rgba(0, 0, 0, 0.04);
    --shadow-m: 0 8px 32px rgba(0, 0, 0, 0.08);
    --shadow-l: 0 16px 64px rgba(0, 0, 0, 0.12);

    /* Trendy Glass */
    --glass-bg: rgba(255, 255, 255, 0.7);
    --glass-border: rgba(255, 255, 255, 0.3);
    --glass-blur: 20px;

    /* Mobile Nav Tokens */
    --m-bot-h: 72px;
    --m-indicator-h: 32px;
    --m-indicator-w: 64px;
}

[data-theme="dark"] {
    --primary-seed-rgb: 158, 202, 255;
    --primary-rgb: var(--primary-seed-rgb);
    --primary: color-mix(in srgb, var(--primary-seed) 70%, #ffffff);
    --on-primary: color-mix(in srgb, var(--primary-seed) 20%, #000000);
    --primary-container: color-mix(in srgb, var(--primary-seed) 30%, #000000);
    --on-primary-container: color-mix(in srgb, var(--primary-seed) 80%, #ffffff);
    --secondary-container: color-mix(in srgb, var(--primary-seed) 15%, #212226);
    --on-secondary-container: #e2e2e6;
    --surface: color-mix(in srgb, var(--primary-seed) 4%, #0c0c0e);
    --on-surface: #e2e2e6;
    --surface-variant: color-mix(in srgb, var(--primary-seed) 10%, #2b2c31);
    --on-surface-variant: #c3c7cf;
    --outline: #8d9199;
    --outline-variant: color-mix(in srgb, var(--primary-seed) 12%, #2b2c31);
    --surface-container-low: color-mix(in srgb, var(--primary-seed) 6%, #121214);
    --surface-container: color-mix(in srgb, var(--primary-seed) 8%, #161619);
    --surface-container-high: color-mix(in srgb, var(--primary-seed) 11%, #1f1f23);
    --surface-container-highest: color-mix(in srgb, var(--primary-seed) 14%, #28282d);
    --glass-bg: rgba(30, 32, 35, 0.7);
    --glass-border: rgba(255, 255, 255, 0.1);

    --passport-bg: #0f172a;
    --passport-card: #1e293b;
    --passport-border: #334155;
    --passport-text-main: #f1f5f9;
    --passport-text-muted: #94a3b8;
}

/*
 * Doctor Panel Standardized Styles
 * Centralized styles to maintain UI consistency and remove inline CSS.
 */



/* --- Minimal Reference Bento (32px Radius) --- */
.bento-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-auto-rows: minmax(140px, auto);
    gap: 16px;
    margin-bottom: 24px;
}

.bento-item {
    background: var(--surface);
    border-radius: 32px;
    padding: 20px;
    border: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015);
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

[data-theme="dark"] .bento-item {
    background: var(--surface-container-low);
    border: none;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.bento-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.08);
}

/* Welcome Card (Large) */
.bento-welcome {
    grid-column: span 3;
    grid-row: span 2;
    background: var(--surface);
    padding: 40px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
}

.welcome-info-group {
    position: relative;
    z-index: 2;
}

.welcome-greeting {
    font-size: 14px;
    font-weight: 500;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 1px;
    margin-bottom: 8px;
    display: block;
}

.welcome-title {
    font-size: 38px;
    font-weight: 800;
    color: var(--on-surface);
    line-height: 1.1;
    margin: 0;
}

.doctor-highlight {
    color: var(--primary);
    background: linear-gradient(90deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 60%, white) 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 800 !important;
}

.welcome-visual-icon {
    position: absolute;
    right: -20px;
    bottom: -20px;
    font-size: 180px;
    opacity: 0.04;
    transform: rotate(-10deg);
}

.welcome-badge {
    background: #f0f4f8;
    padding: 8px 16px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 600;
    color: var(--primary);
}

/* Small Widget Styles */
.mini-widget {
    grid-column: span 1;
}

.widget-icon-circle {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 12px;
}

.widget-label {
    font-size: 13px;
    font-weight: 500;
    color: var(--on-surface-variant);
}

.widget-value {
    font-size: 28px;
    font-weight: 700;
    color: var(--on-surface);
    margin-top: 4px;
}

/* Clock (Square) */
.bento-clock {
    grid-column: span 1;
    align-items: center;
    justify-content: center;
    background: var(--primary-container);
}

.clock-time-mini {
    font-size: 32px;
    font-weight: 800;
    color: var(--primary);
}

.clock-date-mini {
    font-size: 12px;
    font-weight: 600;
    color: var(--primary);
    opacity: 0.7;
}

/* Action Buttons (Pills) */
.pill-btn {
    padding: 10px 24px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    transition: all 0.2s;
    text-decoration: none;
    border: none;
    cursor: pointer;
}

.pill-primary {
    background: var(--primary);
    color: #ffffff;
}

.pill-secondary {
    background: var(--surface-container-high);
    color: var(--on-surface);
}

.pill-btn:hover {
    transform: scale(1.05);
    filter: brightness(1.1);
}

@media (max-width: 1200px) {
    .bento-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    .bento-welcome {
        grid-column: span 2;
    }
}

@media (max-width: 768px) {
    .bento-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .bento-welcome {
        grid-column: span 2;
    }
}

/* --- Global Utilities (dp- prefix) --- */
.container {
    width: 100%;
    padding-right: var(--space-24);
    padding-left: var(--space-24);
    margin-right: auto;
    margin-left: auto;
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-right: calc(var(--space-12) * -1);
    margin-left: calc(var(--space-12) * -1);
}

.col {
    flex: 1 0 0%;
    padding-right: var(--space-12);
    padding-left: var(--space-12);
}

.grid {
    display: grid !important;
}

.flex {
    display: flex !important;
}

.flex-column {
    flex-direction: column !important;
}

.items-center {
    align-items: center !important;
}

.items-start {
    align-items: flex-start !important;
}

.justify-between {
    justify-content: space-between !important;
}

.justify-center {
    justify-content: center !important;
}

.justify-end {
    justify-content: flex-end !important;
}

.justify-start {
    justify-content: flex-start !important;
}

.flex-center-between {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
}

.flex-center {
    display: flex !important;
    align-items: center !important;
}

.flex-wrap {
    flex-wrap: wrap !important;
}

.gap-4 {
    gap: 4px !important;
}

.gap-8 {
    gap: 8px !important;
}

.gap-12 {
    gap: 12px !important;
}

.gap-16 {
    gap: 16px !important;
}

.gap-20 {
    gap: 20px !important;
}

.gap-24 {
    gap: 24px !important;
}

.p-0 {
    padding: 0 !important;
}

.p-12 {
    padding: 12px !important;
}

.p-16 {
    padding: var(--space-16) !important;
}

.p-24 {
    padding: var(--space-24) !important;
}

.px-24 {
    padding-left: 24px !important;
    padding-right: 24px !important;
}

.pt-20 {
    padding-top: 20px !important;
}

.p-12-24 {
    padding: 12px 24px !important;
}

.p-12-24-0 {
    padding: 12px 24px 0 !important;
}

.p-0-24-16 {
    padding: 0 24px 16px !important;
}

.m-0 {
    margin: 0 !important;
}

.mb-12 {
    margin-bottom: var(--space-12) !important;
}

.mb-16 {
    margin-bottom: var(--space-16) !important;
}

.mb-24 {
    margin-bottom: var(--space-24) !important;
}

.mb-32 {
    margin-bottom: var(--space-32) !important;
}

.mt-12 {
    margin-top: var(--space-12) !important;
}

.mt-16 {
    margin-top: var(--space-16) !important;
}

.mt-20 {
    margin-top: var(--space-20) !important;
}

.mt-24 {
    margin-top: var(--space-24) !important;
}

.mt-32 {
    margin-top: var(--space-32) !important;
}

.mr-4 {
    margin-right: var(--space-4) !important;
}

.mr-8 {
    margin-right: var(--space-8) !important;
}

.border-top {
    border-top: 1px solid var(--surface-variant) !important;
}

.relative {
    position: relative !important;
}

.absolute {
    position: absolute !important;
}

.z-1 {
    z-index: 1 !important;
}

.w-full {
    width: 100% !important;
}

.h-full {
    height: 100% !important;
}

.object-cover {
    object-fit: cover !important;
}

.w-12 {
    width: 12px !important;
}

.w-14 {
    width: 14px !important;
}

.w-16 {
    width: 16px !important;
}

.w-18 {
    width: 18px !important;
}

.w-20 {
    width: 20px !important;
}

.h-32 {
    height: 32px !important;
}

.h-38 {
    height: 38px !important;
}

.h-48 {
    height: 48px !important;
}

.display-none {
    display: none !important;
}

.cursor-pointer {
    cursor: pointer !important;
}

.border-radius-50 {
    border-radius: 50% !important;
}

/* 6. Base UI Components */
.card {
    background: #ffffff !important;
    border-radius: var(--radius-2xl) !important;
    border: none !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015) !important;
    overflow: hidden !important;
    transition: var(--trans-std) !important;
}

.card-header {
    padding: var(--space-16) var(--space-24) !important;
    border-bottom: 1px solid var(--surface-variant) !important;
}

.card-body {
    padding: var(--space-24) !important;
}

/* Color Utilities */
.bg-primary-container {
    background: var(--primary-container) !important;
}

.on-primary-text {
    color: var(--on-primary-container) !important;
}

.bg-secondary-container {
    background: var(--secondary-container) !important;
}

.on-secondary-text {
    color: var(--on-secondary-container) !important;
}

.bg-tertiary-container {
    background: var(--tertiary-container) !important;
}

.on-tertiary-text {
    color: var(--on-tertiary-container) !important;
}

/* Prescription Components */
.prescription-item {
    background: var(--surface-container-low);
    border-radius: var(--radius-m);
    padding: 16px;
    margin-bottom: 12px;
    border: 1px solid var(--surface-variant);
    position: relative;
}

.remove-row-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    color: var(--error);
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s;
    z-index: 10;
}

.remove-row-btn:hover {
    opacity: 1;
}

.search-results-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--surface-container-highest);
    overflow: visible;
    border-radius: var(--radius-m);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    max-height: 250px;
    overflow-y: auto;
    display: none;
    border: 1px solid var(--surface-variant);
    margin-top: 4px;
}

.search-result-item {
    padding: 8px 16px;
    cursor: pointer;
    transition: background 0.2s;
}

.search-result-item:hover {
    background: var(--surface-variant);
}

/* Button System */
/* Button System (Premium Indroid Sync) */
.btn {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 0.5rem !important;
    padding: 0 1.5rem !important;
    height: 2.75rem !important;
    border-radius: var(--radius-full) !important;
    font-weight: 600 !important;
    cursor: pointer !important;
    transition: var(--transition-standard) !important;
    border: none !important;
    text-decoration: none !important;
    font-size: 0.875rem !important;
    outline: none !important;
    position: relative;
    overflow: hidden;
}

.btn:active {
    transform: scale(0.96);
}

.btn-primary {
    background: linear-gradient(135deg,
            color-mix(in srgb, var(--primary), white 30%) 0%,
            var(--primary) 50%,
            color-mix(in srgb, var(--primary), black 20%) 100%) !important;
    color: var(--on-primary) !important;
    box-shadow: 0 4px 15px color-mix(in srgb, var(--primary) 40%, transparent),
        inset 0 1px 1px rgba(255, 255, 255, 0.4) !important;
    position: relative;
    overflow: hidden;
}

.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(120deg,
            transparent,
            rgba(255, 255, 255, 0.4),
            transparent);
    transition: 0.6s;
    z-index: 1;
}

.btn-primary:hover::before {
    left: 100%;
}

.btn-primary:hover {
    box-shadow: 0 8px 25px color-mix(in srgb, var(--primary) 60%, transparent),
        inset 0 1px 2px rgba(255, 255, 255, 0.5) !important;
    transform: translateY(-3px) scale(1.02);
    filter: brightness(1.15) !important;
}

.btn-outline {
    background: var(--surface-container-low) !important;
    border: 1px solid var(--outline-variant) !important;
    color: var(--primary) !important;
    position: relative;
    overflow: hidden;
}

.btn-outline::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(120deg,
            transparent,
            color-mix(in srgb, var(--primary) 10%, transparent),
            transparent);
    transition: 0.6s;
    z-index: 1;
}

.btn-outline:hover::before {
    left: 100%;
}

.btn-outline:hover {
    background: color-mix(in srgb, var(--primary) 8%, transparent) !important;
    border-color: var(--primary) !important;
    transform: translateY(-2px) scale(1.01);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.btn-lg {
    height: 3.5rem !important;
    padding: 0 2.5rem !important;
    font-size: 1rem !important;
}

.btn-sm {
    height: 2.25rem !important;
    padding: 0 1rem !important;
    font-size: 0.75rem !important;
}

.shadow-l {
    box-shadow: var(--shadow-l) !important;
}

.shadow-m {
    box-shadow: var(--shadow-m) !important;
}

.shadow-s {
    box-shadow: var(--shadow-s) !important;
}

/* Text Utilities */
.primary-text {
    color: var(--primary) !important;
}

.on-surface-text {
    color: var(--on-surface) !important;
}

.variant-text {
    color: var(--on-surface-variant) !important;
}

.error-text {
    color: var(--error) !important;
}

.font-12 {
    font-size: 12px !important;
}

.font-13 {
    font-size: 13px !important;
}

.font-32-bold {
    font-size: 32px !important;
    font-weight: 700 !important;
}

.font-14-bold {
    font-size: 14px !important;
    font-weight: 700 !important;
}

.font-600 {
    font-weight: 600 !important;
}

.no-decoration {
    text-decoration: none !important;
}

.white-space-nowrap {
    white-space: nowrap !important;
}

/* Responsive Utilities */
@media (max-width: 600px) {
    .col-sm-12 {
        flex: 0 0 auto;
        width: 100% !important;
    }

    .hide-sm {
        display: none !important;
    }
}

/* Custom UI Components (Utility Classes) */
.search-box {
    position: relative;
    width: fit-content;
}

.search-box i {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    color: var(--on-surface-variant);
}

.search-input {
    padding: 8px 12px 8px 36px !important;
    border-radius: 100px !important;
    border: 1px solid var(--outline-variant) !important;
    background: var(--surface-container) !important;
    color: var(--on-surface) !important;
    outline: none !important;
    width: 240px !important;
}

.avatar-32 {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.initials-32 {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: var(--surface-variant) !important;
    color: var(--on-surface-variant) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-weight: 600 !important;
    font-size: 12px !important;
}

/* Home Page Premium Layouts */
.grid-welcome {
    display: grid;
    grid-template-columns: 2.2fr 1fr;
    gap: 20px;
    margin-bottom: 24px;
}

@media (max-width: 992px) {
    .grid-welcome {
        grid-template-columns: 1fr;
    }
}

.welcome-card {
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
    padding: 36px 48px !important;
    border-radius: 28px !important;
    border: 1px solid var(--outline-variant) !important;
    position: relative;
    display: flex;
    align-items: center;
    box-shadow: var(--shadow-m);
}

.hospital-badge,
.specialization-badge {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    padding: 6px 14px;
    border-radius: 100px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12px;
    font-weight: 500;
    color: var(--on-primary-container);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.welcome-text-h2 {
    font-size: 42px !important;
    font-weight: 500 !important;
    margin: 12px 0 4px 0 !important;
    color: var(--on-surface) !important;
    letter-spacing: -0.5px;
}

.welcome-text-h2 .doctor-name {
    color: var(--primary);
    font-weight: 600;
}

.qualification-text {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    color: var(--on-surface-variant);
    opacity: 0.8;
    margin-bottom: 16px;
}

.welcome-desc {
    font-size: 14px;
    line-height: 1.5;
    color: var(--on-surface-variant);
    opacity: 0.7;
    margin-bottom: 32px;
    max-width: 500px;
}

/* --- Modernized Welcome Card System --- */
.welcome-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    overflow: hidden;
    position: relative;
    background: var(--surface-container-high) !important;
    border: 1px solid var(--outline-variant) !important;
    box-shadow: var(--shadow-l) !important;
    padding: 32px 40px !important;
    border-radius: 28px !important;
    transition: var(--transition-emphasized);
}

.welcome-content-inner {
    position: relative;
    z-index: 2;
    width: 100%;
}

.welcome-badges-row {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}

.hospital-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 14px;
    background: var(--primary-container);
    color: var(--on-primary-container);
    border-radius: 100px;
    font-size: 13px;
    font-weight: 600;
}

.role-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    background: var(--surface-container-highest);
    overflow: visible;
    color: var(--on-surface-variant);
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
}

.welcome-actions {
    display: flex;
    gap: 16px;
    margin-top: 32px;
}

.welcome-actions .btn {
    flex: 1;
}

.welcome-bg-icon {
    position: absolute;
    right: -40px;
    top: -40px;
    z-index: 1;
    opacity: 0.08;
    transform: rotate(-15deg);
    pointer-events: none;
}

.welcome-bg-icon i {
    width: 280px;
    height: 280px;
    color: var(--primary);
}

.android-clock {
    background: var(--surface-container-low) !important;
    border-radius: 28px !important;
    border: none !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015) !important;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 24px !important;
}

.clock-time {
    font-size: 92px;
    font-weight: 500;
    color: var(--primary);
    line-height: 1;
    letter-spacing: -2px;
}

.clock-date {
    font-size: 16px;
    font-weight: 500;
    color: var(--on-surface-variant);
    opacity: 0.7;
    margin-top: 8px;
}

/* Stats Layout Optimized */
.stats-grid {
    display: grid;
    grid-template-columns: 1fr 1.2fr 1.2fr 1.2fr;
    gap: 16px;
}

.stats-container {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.stat-card {
    background: var(--surface-container-low) !important;
    border-radius: 24px !important;
    padding: 24px !important;
    border: none !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015) !important;
}

.stat-label {
    font-size: 10px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    color: var(--on-surface-variant);
    margin-bottom: 12px;
}

.stat-value {
    font-size: 32px;
    font-weight: 600;
    color: var(--on-surface);
    line-height: 1.1;
}

.stat-icon-wrapper {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s;
}

.stat-card-content {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}

.consult-card .stat-icon-wrapper {
    background: #f7ebff;
    color: #250059;
}

.followup-card .stat-icon-wrapper {
    background: #fff1f1;
    color: #ba1a1a;
}

.diagnostic-card .stat-icon-wrapper {
    background: #e0f2ff;
    color: #0061a4;
}

/* --- Merged from style.css --- */


/* Global Native Splash Screen Hide (Desktop) */
.native-splash-screen {
    display: none;
}

/* Brand Logo Utility - Mask technique to allow theme-tinting of PNG */
.brand-logo-tint,
.brand-logo-img {
    display: inline-block;
    width: 150px;
    height: 40px;
    background-color: var(--primary);
    -webkit-mask-image: url('../logo/logo.svg');
    mask-image: url('../logo/logo.svg');
    -webkit-mask-size: contain;
    mask-size: contain;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
    -webkit-mask-position: center left;
    mask-position: center left;
    transition: var(--transition-standard);
}

/* Theme Engine Ready */
/* Theme Toggle Icon Logic */
.theme-icon-sun,
.theme-icon-moon,
#themeIcon,
#mobileThemeIcon,
#sidebarThemeIcon {
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275), opacity 0.3s ease, color 0.3s ease;
}

/* Light Mode: Showing Moon icon */
[data-theme="light"] #themeIcon,
[data-theme="light"] #mobileThemeIcon,
[data-theme="light"] #sidebarThemeIcon {
    color: var(--on-surface-variant);
}

/* Dark Mode: Showing Sun icon */
[data-theme="dark"] #themeIcon,
[data-theme="dark"] #mobileThemeIcon,
[data-theme="dark"] #sidebarThemeIcon {
    color: #ffdb58 !important;
    /* Sun yellow */
    transform: rotate(45deg) scale(1.1);
}

/* Sidebar Theme Toggle mobile styling */
.theme-toggle-nav {
    cursor: pointer !important;
}

.theme-toggle-nav .nav-icon {
    background: var(--surface-container-high) !important;
    color: var(--primary) !important;
}

/* Sidebar Logout mobile styling */
.mobile-logout-nav {
    margin-top: 10px !important;
}

[data-theme="dark"] .nav-item.active {
    background: var(--primary-container);
    color: var(--primary);
    border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent);
}

[data-theme="dark"] .card-header {
    background: var(--surface-container-high);
    border-bottom: 1px solid var(--surface-variant);
    color: var(--on-surface);
}

@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes modalEnter {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(20px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

@keyframes fadeScaleOut {
    from {
        opacity: 1;
        transform: scale(1);
    }

    to {
        opacity: 0;
        transform: scale(1.1);
    }
}

@keyframes pageEntrance {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.loader-wrapper {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.7) !important;
    backdrop-filter: blur(20px) !important;
    -webkit-backdrop-filter: blur(20px) !important;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 20000;
    transition: var(--transition-emphasized);
}

[data-theme="dark"] .loader-wrapper {
    background: rgba(12, 12, 14, 0.7) !important;
}

[data-theme="light"] .loader-logo {
    background-color: var(--primary);
}

.loader-wrapper.fade-out {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

.loader-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 32px;
    width: 200px;
}

.loader-logo {
    width: 200px;
    height: 84px;
    background-color: #ffffff;
    -webkit-mask: url('../logo/logo.svg') no-repeat center;
    mask: url('../logo/logo.svg') no-repeat center;
    -webkit-mask-size: contain;
    mask-size: contain;
    animation: pulse 2s infinite ease-in-out;
}

[data-theme="dark"] .loader-logo,
body.compact-mode .loader-logo {
    background-color: #ffffff;
}

.loader-progress-container {
    width: 100%;
    height: 6px;
    background: var(--surface-variant);
    border-radius: var(--radius-full);
    overflow: hidden;
}

.loader-progress-bar {
    width: 0%;
    height: 100%;
    background: var(--primary);
    border-radius: var(--radius-full);
    animation: progress-load 2s infinite ease-in-out;
}

[data-theme="dark"] .loader-progress-container {
    background: rgba(255, 255, 255, 0.1);
}

[data-theme="dark"] .loader-progress-bar {
    background: #ffffff;
}

@keyframes progress-load {
    0% {
        width: 0%;
        transform: translateX(-100%);
    }

    50% {
        width: 100%;
        transform: translateX(0);
    }

    100% {
        width: 0%;
        transform: translateX(100%);
    }
}

@keyframes pulse {

    0%,
    100% {
        transform: scale(1);
        opacity: 1;
    }

    50% {
        transform: scale(1.05);
        opacity: 0.8;
    }
}

.animate-page-entrance {
    animation: pageEntrance 0.6s cubic-bezier(0.2, 0, 0, 1) forwards;
}

.animate-in {
    animation: slideUpFade 0.3s cubic-bezier(0.2, 0, 0, 1) forwards;
}

.mobile-only {
    display: none !important;
}

* {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    -webkit-tap-highlight-color: transparent;
}

body {
    font-family: var(--font-main);
    background-color: var(--surface-container);
    color: var(--on-surface);
    line-height: 1.5;
    overflow: hidden;
    /* Aside and Main will scroll independently */
    height: 100vh;
    display: flex;
    font-weight: var(--font-weight-base);
}

/* Global Themed Scrollbar */
::-webkit-scrollbar {
    width: 6px;
    height: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 10px;
    opacity: 0.5;
}

::-webkit-scrollbar-thumb:hover {
    background: var(--primary-seed);
}

/* Main Scrollable Area */
.main-content-scroll {
    overflow-y: visible !important;
    overflow-x: visible !important;
    flex: none !important;
    height: auto !important;
}

.main-content-scrollable {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    display: flex;
    flex-direction: column;
    -webkit-overflow-scrolling: touch;
}

/* Neutralize nested scroll containers to prevent double scrollbars */
.main-content-scrollable .main-content-scrollable {
    overflow-y: visible !important;
    display: block !important;
    flex: none !important;
    height: auto !important;
}

/* Breadcrumbs & Page Headers */
.page-header-container {
    margin-bottom: 0;
}

.breadcrumb {
    display: flex;
    align-items: center;
    gap: 8px;
    list-style: none;
    padding: 0;
    margin: 0 0 12px 0;
    font-size: 13px;
    font-weight: 500;
}

.breadcrumb li {
    display: flex;
    align-items: center;
    gap: 8px;
}

.content-wrapper {
    padding: 0 1.5rem 1.5rem 1.5rem;
    display: flex;
    flex-direction: column;
    gap: 16px;
    flex: 1;
    background: transparent !important;
    position: relative;
    z-index: 1;
}

.breadcrumb li a {
    color: var(--primary);
    text-decoration: none;
    transition: color 0.2s;
}

.breadcrumb li a:hover {
    text-decoration: underline;
    opacity: 0.8;
}

.breadcrumb li span {
    color: var(--on-surface-variant);
}

.page-title-group {
    display: flex;
    align-items: center;
    gap: 12px;
}

.page-header-icon {
    width: 40px;
    height: 40px;
    background: var(--primary);
    color: var(--on-primary);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 20%, transparent);
    flex-shrink: 0;
    border: 1px solid color-mix(in srgb, var(--primary) 30%, white);
    transition: var(--transition-standard);
}

[data-theme="dark"] .page-header-icon {
    border-color: color-mix(in srgb, var(--primary) 30%, black);
}

.page-header-icon i {
    width: 20px;
    height: 20px;
}

.page-title-group .headline-medium {
    margin: 0;
    font-size: 20px;
    font-weight: 600;
    color: var(--on-surface);
}

.breadcrumb li:not(:last-child)::after {
    content: '/';
    display: inline-block;
    color: var(--on-surface-variant);
    opacity: 0.4;
    font-weight: 400;
    margin-left: 4px;
}

.breadcrumb a {
    color: var(--primary);
    text-decoration: none;
    transition: var(--transition-standard);
}

.breadcrumb a:hover {
    text-decoration: underline;
}

.breadcrumb li:last-child {
    color: var(--on-surface);
    font-weight: 500;
}

.title-large {
    font-family: 'Google Sans', sans-serif;
    font-size: 28px;
    font-weight: 500;
    color: var(--on-surface);
}

/* Scrollbar Styling */
::-webkit-scrollbar {
    width: 6px;
}

::-webkit-scrollbar-track {
    background: transparent;
}

::-webkit-scrollbar-thumb {
    background: var(--outline);
    border-radius: var(--radius-full);
}

::-webkit-scrollbar-thumb:hover {
    background: var(--on-surface-variant);
}

.app-container {
    display: flex;
    width: 100%;
    height: 100%;
}

main {
    flex: none !important;
    overflow-y: visible !important;
    overflow-x: visible !important;
    height: auto !important;
    display: flex;
    flex-direction: column;
    gap: 32px;
    transition: var(--transition-emphasized);
}

/* Redundant styles removed */
.btn-primary:active {
    transform: scale(0.96) translateY(0);
}

.card {
    background: var(--surface);
    border-radius: var(--radius-l);
    padding: 24px;
    border: none;
    transition: var(--transition-emphasized);
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015);
}

.card:hover {
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.06);
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 24px;
    background: var(--surface-container-high);
    border-bottom: 1px solid var(--surface-variant);
    gap: 16px;
    flex-wrap: wrap;
    color: var(--on-surface);
    margin-bottom: 24px;
}

[data-theme="dark"] .card-header {
    background: var(--surface-container-high);
    color: var(--on-surface);
}

.card>.card-header {
    margin: -24px -24px 24px -24px;
    border-radius: var(--radius-l) var(--radius-l) 0 0;
}

.card-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: inherit;
}

.data-table-search {
    width: 240px;
    height: 40px;
    background: var(--surface-container-highest);
    overflow: visible;
}

@media (max-width: 768px) {
    .card-header {
        flex-direction: column;
        align-items: stretch;
        padding: 16px;
        gap: 12px;
    }

    .card-header>div[style*="flex"] {
        flex-direction: column !important;
        width: 100%;
        gap: 8px !important;
    }

    .data-table-search {
        width: 100% !important;
    }

    .card-title {
        font-size: 1.1rem;
        margin-bottom: 4px;
    }
}

/* Responsive Overrides */
@media (max-width: 768px) {
    .mobile-only {
        display: flex !important;
    }

    body {
        overflow-y: auto;
        height: auto;
    }

    .app-container {
        flex-direction: column;
    }

    main {
        padding: 0;
    }

    .content-wrapper {
        padding: 16px;
        gap: 16px;
    }

    .card {
        padding: 16px;
    }

    .page-header-container {
        margin-bottom: 4px;
    }

    .breadcrumb {
        margin-bottom: 8px;
        font-size: 11px;
    }

    .page-title-group .headline-medium {
        font-size: 1.5rem;
    }
}

/* Theme Palette 6-Slots */
.theme-palette.palette-6-slots {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin: 12px 0;
}

.color-slot-wrapper {
    position: relative;
    width: 44px;
    height: 44px;
}

.color-dot {
    width: 44px;
    height: 44px;
    border-radius: var(--radius-full);
    border: 3px solid var(--surface);
    cursor: pointer;
    transition: transform 0.2s, border-color 0.2s, box-shadow 0.2s;
    padding: 0;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

.color-dot:hover {
    transform: scale(1.1);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.color-dot.active {
    border-color: var(--on-surface);
    box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--primary);
    transform: scale(0.9);
}

.setting-hint {
    font-size: 12px;
    color: var(--on-surface-variant);
    margin-top: 8px;
    opacity: 0.8;
}

/* Compact Mode - Deep Black & Gray Aesthetic (No Theme Influence) */
body.compact-mode {
    --primary: #444444;
    --on-primary: #ffffff;
    --primary-container: #222222;
    --on-primary-container: #888888;
    --surface: #000000;
    --on-surface: #888888;
    --surface-variant: #111111;
    --on-surface-variant: #666666;
    --outline: #222222;
    --surface-container-low: #080808;
    --surface-container: #0a0a0a;
    --surface-container-high: #111111;
    --surface-container-highest: #1a1a1a;
    --secondary-container: #111111;
    --on-secondary-container: #888888;
    background: #000000 !important;
}

body.compact-mode .card,
body.compact-mode aside,
body.compact-mode header,
body.compact-mode .card-header,
body.compact-mode .select-dropdown,
body.compact-mode .topbar-actions,
body.compact-mode .search-bar,
body.compact-mode .profile-dropdown,
body.compact-mode .profile-dropdown-menu,
body.compact-mode .palette-selector {
    background: #000000 !important;
    border: 1px solid #222 !important;
    box-shadow: none !important;
    color: #888888 !important;
}

body.compact-mode .nav-item.active {
    background: #1a1a1a !important;
    color: #ffffff !important;
    border: 1px solid #333 !important;
}

body.compact-mode .nav-item:not(.active) {
    color: #666666 !important;
}

body.compact-mode h1,
body.compact-mode h2,
body.compact-mode h3,
body.compact-mode h4,
body.compact-mode p,
body.compact-mode span:not(.badge),
body.compact-mode label,
body.compact-mode .clock-time,
body.compact-mode .clock-date,
body.compact-mode i,
body.compact-mode svg {
    color: #888888 !important;
}

body.compact-mode .btn-primary {
    background: #222222 !important;
    color: #ffffff !important;
    border: 1px solid #333 !important;
}

body.compact-mode input,
body.compact-mode select,
body.compact-mode textarea {
    background: #000000 !important;
    color: #888888 !important;
    border-color: #222 !important;
}

/* Base Compact Mode Padding Reduction */
body.compact-mode main {
    padding: 12px 16px !important;
}

body.compact-mode .card {
    padding: 16px !important;
    gap: 12px !important;
}

body.compact-mode .nav-item {
    padding: 8px 12px !important;
    margin: 2px 8px !important;
}

/* Utility Classes for Doctor + UI (Restored) */
.btn-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    color: var(--on-surface-variant);
    transition: var(--transition-standard);
    text-decoration: none;
    cursor: pointer;
    background: transparent;
    border: none;
}

.btn-icon:hover {
    background-color: var(--surface-variant);
    color: var(--on-surface);
}

.badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 100px;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.2;
}

/* Typography Utilities */
.display-small {
    font-family: 'Google Sans', sans-serif;
    font-size: 36px;
    line-height: 44px;
    font-weight: 400;
}

.title-large {
    font-family: 'Google Sans', sans-serif;
    font-size: 22px;
    line-height: 28px;
    font-weight: 400;
}

.label-large {
    font-family: 'Lexend', sans-serif;
    font-size: 14px;
    line-height: 20px;
    font-weight: 500;
}

.body-large {
    font-family: 'Lexend', sans-serif;
    font-size: 16px;
    line-height: 24px;
    font-weight: 400;
}

.body-medium {
    font-family: 'Lexend', sans-serif;
    font-size: 14px;
    line-height: 20px;
    font-weight: 400;
}

.body-small {
    font-family: 'Lexend', sans-serif;
    font-size: 12px;
    line-height: 16px;
    font-weight: 400;
}

/* Responsive Page Header */
.page-header-flex {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
}

@media (max-width: 768px) {
    .page-header-flex {
        flex-direction: column;
        align-items: flex-start;
        /* Title on top-left */
    }

    .page-header-flex .btn {
        width: 100%;
        /* Full width button on mobile */
        margin-top: 8px;
    }
}

/* Table Enhancements */
.table-responsive {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.hover-lift-row:hover {
    background-color: var(--surface-container-highest) !important;
}

.table th {
    font-family: 'Lexend', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color: var(--on-surface-variant);
    background: transparent !important;
    text-transform: none !important;
    letter-spacing: normal !important;
    cursor: default !important;
}

.btn-outline {
    background: transparent;
    border: 1px solid var(--outline);
    color: var(--primary);
}

.btn-outline:hover {
    background: var(--surface-container-highest);
    overflow: visible;
    border-color: var(--primary);
}

.btn-outline-error {
    background: transparent;
    border: 1px solid var(--error);
    color: var(--error);
}

.btn-outline-error:hover {
    background: var(--error-container) !important;
    color: var(--on-error-container) !important;
    border-color: var(--error) !important;
}

/* Responsive Main Body Spacing */
.main-body {
    padding: 24px;
}

@media (max-width: 768px) {
    .main-body {
        padding: 16px;
        /* Reduced padding on mobile */
    }
}

/* --- Merged from login.css --- */
/* Login Page Specific Styles - Split Design with Theme Immersion */
.login-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background-color: var(--surface-container-low);
    padding: 24px;
    transition: var(--transition-standard);
}

.login-container {
    width: 100%;
    max-width: 960px;
}

.login-wrapper {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    background: var(--surface);
    border-radius: var(--radius-xl);
    box-shadow: 0 12px 64px rgba(0, 0, 0, 0.08);
    border: 1px solid var(--surface-variant);
    overflow: hidden;
    min-height: 580px;
}

/* Left Side: Info - THEMED IMMERSION */
.login-info-side {
    padding: 64px;
    background: var(--primary-container);
    color: var(--on-primary-container);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    position: relative;
    overflow: hidden;
}

/* Subtle accent glow matching primary */
.login-info-side::after {
    content: '';
    position: absolute;
    top: -20%;
    right: -20%;
    width: 80%;
    height: 80%;
    background: radial-gradient(circle, var(--primary) 0%, transparent 70%);
    opacity: 0.12;
    pointer-events: none;
    filter: blur(40px);
}

.login-logo-container {
    display: flex;
    justify-content: center;
    width: fit-content;
    padding: 12px 32px;
    margin-bottom: 40px;
}

.login-info-side .logo-icon {
    width: 220px;
    height: 70px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.login-info-side .brand-logo-tint {
    width: 220px !important;
    height: 70px !important;
}

.info-content h1 {
    font-size: 40px;
    font-weight: 700;
    color: var(--on-primary-container);
    line-height: 1.15;
    margin-bottom: 24px;
    letter-spacing: -0.5px;
}

.info-content p {
    font-size: 18px;
    color: var(--on-primary-container);
    opacity: 0.8;
    max-width: 440px;
    line-height: 1.6;
}

.info-footer {
    display: flex;
    gap: 32px;
    margin-top: 40px;
}

.info-item {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--on-primary-container);
    font-size: 14px;
}

.info-item i {
    width: 20px;
    height: 20px;
    color: var(--primary);
}

/* Right Side: Form */
.login-form-side {
    padding: 64px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.login-header {
    margin-bottom: 40px;
}

.login-header h2 {
    font-size: 28px;
    font-weight: 700;
    color: var(--on-surface);
    margin-bottom: 8px;
}

.login-header p {
    color: var(--on-surface-variant);
    font-size: 14px;
}

.mobile-logo {
    display: none;
    justify-content: center;
    margin-bottom: 24px;
}

.mobile-logo .brand-logo-tint {
    width: 180px !important;
    height: 60px !important;
}

.login-form {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.eye-btn {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--on-surface-variant);
    cursor: pointer;
    padding: 4px;
    display: flex;
    align-items: center;
}

.login-options {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 8px 0 16px 0;
    font-size: 14px;
}

.remember-me {
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    color: var(--on-surface-variant);
}

.remember-me-switch-group {
    display: flex;
    align-items: center;
    gap: 10px;
}

.remember-switch {
    position: relative;
    display: inline-block;
    width: 38px;
    height: 22px;
}

.remember-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.remember-slider {
    position: absolute;
    cursor: pointer;
    inset: 0;
    background-color: var(--surface-container-highest);
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 22px;
    border: 1px solid var(--outline-variant);
}

.remember-slider:before {
    position: absolute;
    content: "";
    height: 14px;
    width: 14px;
    left: 3px;
    bottom: 3px;
    background-color: #ffffff;
    transition: 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.15);
}

.remember-switch input:checked + .remember-slider {
    background-color: var(--primary);
    border-color: var(--primary);
}

.remember-switch input:checked + .remember-slider:before {
    transform: translateX(16px);
    background-color: var(--on-primary, #ffffff);
}

.switch-label {
    cursor: pointer;
    color: var(--on-surface-variant);
    font-weight: 500;
    user-select: none;
}

.forgot-password {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
}

.btn-login {
    height: 54px;
    font-size: 16px;
    border-radius: var(--radius-m);
    gap: 12px;
}

/* Theme & Color Actions */
.login-actions {
    position: fixed;
    top: 32px;
    right: 32px;
    display: flex;
    gap: 16px;
    z-index: 1000;
}

.action-btn {
    background: var(--surface);
    border: 1px solid var(--surface-variant);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    color: var(--on-surface);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
    transition: var(--transition-standard);
    position: relative;
    padding: 0;
}

.action-btn:hover {
    transform: scale(1.05);
    background: var(--surface-container-high);
    border-color: var(--primary);
}

.action-btn i {
    width: 22px;
    height: 22px;
}

/* Palette Dropdown */
.palette-dropdown-wrapper {
    position: relative;
}

.palette-dropdown {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    background: var(--surface);
    border: 1px solid var(--surface-variant);
    border-radius: var(--radius-l);
    padding: 16px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.12);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-10px) scale(0.95);
    transition: var(--transition-standard);
    min-width: 160px;
    pointer-events: none;
    backdrop-filter: blur(10px);
}

.palette-dropdown.open {
    opacity: 1;
    visibility: visible;
    transform: translateY(0) scale(1);
    pointer-events: auto;
}

.palette-dropdown .color-dot {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: 3px solid var(--surface);
    cursor: pointer;
    transition: var(--transition-standard);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    padding: 0;
}

.palette-dropdown .color-dot:hover {
    transform: scale(1.15);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.palette-dropdown .color-dot.active {
    border-color: var(--on-surface);
    box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--primary);
    transform: scale(0.85);
}

/* Mobile Responsiveness */
@media (max-width: 900px) {
    .login-page {
        padding: 16px;
    }

    .login-container {
        max-width: 480px;
    }

    .login-wrapper {
        grid-template-columns: 1fr;
        min-height: auto;
    }

    .login-info-side {
        display: none;
    }

    .login-form-side {
        padding: 32px 24px;
    }

    .mobile-logo {
        display: flex;
    }
}

@media (max-width: 480px) {
    .login-page {
        padding: 16px;
    }

    .login-form-side {
        padding: 40px 24px;
    }
}

/* Mobile Adjustments */
@media (max-width: 500px) {
    .login-page {
        padding: 16px;
    }

    .login-card {
        padding: 40px 24px;
    }

    .info-content h1 {
        font-size: 32px;
    }
}

/* --- Merged from sidebar.css --- */
aside {
    width: 220px;
    background: #ffffff;
    height: 100vh;
    display: flex;
    flex-direction: column;
    padding: 5px;
    transition: var(--transition-emphasized);
    border-right: 1px solid var(--surface-variant);
    position: relative;
    z-index: 11000;
}

[data-theme="dark"] aside {
    background: var(--surface-container-low);
    border-color: var(--surface-variant);
}

aside.shrunk {
    width: 80px;
    overflow: hidden;
    /* Clip internal "pre-expansion" layout jumps */
}

aside.shrunk:hover {
    width: 220px;
    z-index: 1200;
    box-shadow: 12px 0 32px rgba(0, 0, 0, 0.15);
}

.sidebar-header {
    height: 64px;
    display: flex;
    align-items: center;
    padding: 0 12px;
    margin-bottom: 15px;
    overflow: hidden;
}

.logo-container {
    display: flex;
    align-items: center;
    justify-content: center;
    /* Centered */
    gap: 0;
    min-width: 0;
    width: 100%;
}

.logo-icon {
    width: 120px;
    /* Reduced from 240px */
    height: 64px;
    /* Reduced from 96px */
    display: flex;
    align-items: center;
    justify-content: center;
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.logo-text {
    display: none;
}

aside.shrunk .logo-icon {
    width: 48px;
    height: 48px;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

aside.shrunk:hover .logo-icon {
    width: 120px;
}

aside.shrunk .logo-text {
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.3s ease;
    white-space: nowrap;
}

aside.shrunk:hover .logo-text {
    opacity: 1;
    pointer-events: auto;
    display: block;
}

nav {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 2px;
    overflow-y: auto;
    overflow-x: hidden;
    padding-right: 4px;
}

/* Custom Themed Scrollbar for Sidebar Nav */
nav::-webkit-scrollbar {
    width: 5px;
}

nav::-webkit-scrollbar-track {
    background: transparent;
}

nav::-webkit-scrollbar-thumb {
    background: var(--primary);
    border-radius: 10px;
    opacity: 0.5;
}

nav::-webkit-scrollbar-thumb:hover {
    background: var(--primary-seed);
}

aside.shrunk nav {
    overflow-x: hidden;
    padding-right: 0;
    display: flex;
    flex-direction: column;
    align-items: center;
}

aside.shrunk:hover nav {
    overflow-y: auto;
    align-items: stretch;
}

.nav-item {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    height: 46px;
    text-decoration: none;
    color: var(--on-surface-variant);
    border-radius: var(--radius-full);
    position: relative;
    transition: var(--transition-emphasized);
    cursor: pointer;
    overflow: visible;
    flex-shrink: 0;
}

/* Standalone items match group spacing */
nav>.nav-item {
    margin-bottom: 4px;
}

aside.shrunk .nav-item {
    justify-content: center !important;
    padding: 0;
    width: 46px;
    /* Matching icon button standard width */
    margin: 4px 0;
    transition: width 0.3s ease, margin 0.3s ease, justify-content 0.3s ease;
}

aside.shrunk:hover .nav-item {
    justify-content: flex-start;
    width: calc(100% - 8px);
    margin: 4px;
    padding: 0;
}

.nav-item:hover {
    background: var(--surface-container-high);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.nav-item.active {
    background: linear-gradient(135deg,
            color-mix(in srgb, var(--primary), white 30%) 0%,
            var(--primary) 50%,
            color-mix(in srgb, var(--primary), black 20%) 100%) !important;
    color: #FFFFFF !important;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent),
                inset 0 1px 1px rgba(255, 255, 255, 0.4) !important;
}

[data-theme="dark"] .nav-item.active {
    background: linear-gradient(135deg,
            color-mix(in srgb, var(--primary), white 30%) 0%,
            var(--primary) 50%,
            color-mix(in srgb, var(--primary), black 20%) 100%) !important;
    color: var(--on-primary) !important;
    border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent) !important;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 20%, transparent),
                inset 0 1px 1px rgba(255, 255, 255, 0.2) !important;
}

.nav-item.active .nav-icon {
    background: rgba(255, 255, 255, 0.2) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

.nav-item.active .nav-icon i,
.nav-item.active .nav-icon svg {
    color: #ffffff !important;
}

.nav-item.active .nav-icon svg path,
.nav-item.active .nav-icon svg circle {
    stroke: #ffffff !important;
}

.nav-item.active .group-arrow {
    color: #ffffff !important;
}

.nav-icon {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-left: 10px;
    transition: var(--transition-standard);
    background: var(--surface-container-high);
    color: var(--on-surface-variant);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
}

aside.shrunk .nav-icon {
    margin-left: 0;
    transition: margin 0.3s ease;
}

aside.shrunk:hover .nav-icon {
    margin-left: 10px;
}

.nav-item.active .nav-icon,
.sub-item.active .nav-icon {
    background: var(--primary);
    color: var(--on-primary);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.nav-item:hover .nav-icon,
.sub-item:hover .nav-icon {
    background: var(--primary-container);
    color: var(--primary);
    transform: scale(1.05);
}

.nav-icon svg {
    width: 20px;
    height: 20px;
    stroke-width: 2;
    transition: var(--transition-standard);
}

.nav-item:hover .nav-icon svg * {
    animation: drawIcon 0.8s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes drawIcon {
    0% {
        stroke-dasharray: 100;
        stroke-dashoffset: 100;
    }

    100% {
        stroke-dasharray: 100;
        stroke-dashoffset: 0;
    }
}

.nav-label {
    font-weight: 500;
    font-size: 13px;
    white-space: nowrap;
    opacity: 1;
    transition: var(--transition-standard);
    margin-left: 8px;
    /* Reduced from 12px to be closer to icon */
}

aside.shrunk .nav-label {
    opacity: 0;
    display: none;
}

aside.shrunk .nav-group {
    align-items: center;
}

aside.shrunk:hover .nav-label {
    opacity: 1;
    pointer-events: auto;
    display: block;
}

aside.shrunk .nav-group {
    overflow: hidden;
}

aside.shrunk:hover .nav-group {
    overflow: visible;
    align-items: stretch;
}

aside.shrunk .sub-item {
    height: 40px;
    margin: 2px 8px;
    padding: 0 16px 0 24px;
}

.sidebar-footer {
    display: flex;
    flex-direction: row !important; /* Side-by-side in expanded sidebar */
    gap: 8px;
    padding: 10px 12px !important;
    margin-top: auto;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.footer-btn {
    flex: 1; /* Equal widths */
    height: 36px; /* Small and compact */
    border: none;
    border-radius: 9999px !important; /* Perfect Pill Shape */
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    cursor: pointer;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    padding: 0 10px;
    white-space: nowrap;
    overflow: hidden;
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.04);
}

.footer-btn .nav-label {
    font-size: 11px !important; /* Smaller text for compact side-by-side layout */
    font-weight: 600 !important;
    margin-left: 0 !important; /* Remove nav-label default margin to prevent double-gap */
}

/* Sidebar Toggle Button Styling */
.footer-btn.sidebar-toggle {
    background: linear-gradient(135deg,
            color-mix(in srgb, var(--primary), white 30%) 0%,
            var(--primary) 50%,
            color-mix(in srgb, var(--primary), black 20%) 100%) !important;
    color: #ffffff !important;
    border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent) !important;
    box-shadow: 0 4px 10px color-mix(in srgb, var(--primary) 20%, transparent),
                inset 0 1px 1px rgba(255, 255, 255, 0.3) !important;
}

[data-theme="dark"] .footer-btn.sidebar-toggle {
    background: linear-gradient(135deg,
            color-mix(in srgb, var(--primary), white 30%) 0%,
            var(--primary) 50%,
            color-mix(in srgb, var(--primary), black 20%) 100%) !important;
    color: var(--on-primary) !important;
    border: 1px solid color-mix(in srgb, var(--primary) 30%, transparent) !important;
    box-shadow: 0 4px 10px color-mix(in srgb, var(--primary) 20%, transparent),
                inset 0 1px 1px rgba(255, 255, 255, 0.2) !important;
}

.footer-btn.sidebar-toggle:hover {
    background: linear-gradient(135deg,
            color-mix(in srgb, var(--primary), white 40%) 0%,
            color-mix(in srgb, var(--primary), white 10%) 50%,
            color-mix(in srgb, var(--primary), black 10%) 100%) !important;
    color: #ffffff !important;
    transform: translateY(-2px);
    box-shadow: 0 6px 15px color-mix(in srgb, var(--primary) 35%, transparent) !important;
}

/* Logout Button Styling - Premium & High-Contrast Rose Theme */
.footer-btn.logout-btn {
    background: linear-gradient(135deg, #fff1f2 0%, #ffe4e6 100%) !important;
    color: #e11d48 !important;
    border: 1px solid #fecdd3 !important;
    box-shadow: 0 2px 8px rgba(225, 29, 72, 0.06), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
}

.footer-btn.logout-btn i,
.footer-btn.logout-btn .nav-label {
    color: inherit !important;
}

[data-theme="dark"] .footer-btn.logout-btn {
    background: rgba(225, 29, 72, 0.1) !important;
    color: #fda4af !important;
    border: 1px solid rgba(225, 29, 72, 0.3) !important;
    box-shadow: 0 4px 12px rgba(225, 29, 72, 0.1), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.footer-btn.logout-btn:hover {
    background: linear-gradient(135deg, #ffe4e6 0%, #fecdd3 100%) !important;
    color: #be123c !important;
    border-color: #fda4af !important;
    box-shadow: 0 4px 12px rgba(225, 29, 72, 0.15) !important;
    transform: translateY(-1px);
}

[data-theme="dark"] .footer-btn.logout-btn:hover {
    background: rgba(225, 29, 72, 0.2) !important;
    color: #ffe4e6 !important;
    border-color: rgba(225, 29, 72, 0.5) !important;
    box-shadow: 0 6px 16px rgba(225, 29, 72, 0.25), 0 0 8px rgba(225, 29, 72, 0.1) !important;
    transform: translateY(-1px);
}

/* Bouncy micro-interactions for icons */
.footer-btn i {
    width: 16px;
    height: 16px;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.footer-btn:hover i {
    transform: scale(1.15);
}

.footer-btn.logout-btn:hover i {
    transform: scale(1.15) rotate(-10deg);
}

.footer-btn .toggle-icon {
    transition: transform 0.5s cubic-bezier(0.34, 1.56, 0.64, 1);
}

/* Shrunk Sidebar Geometry Tuning */
aside.shrunk .sidebar-footer {
    flex-direction: column !important; /* Stack vertically when collapsed */
    padding: 10px 4px !important;
    gap: 8px;
}

aside.shrunk .footer-btn {
    width: 36px !important;
    height: 36px !important;
    padding: 0 !important;
    flex: none;
    border-radius: 50% !important; /* Perfect circles when shrunk */
}

aside.shrunk .footer-btn .nav-label {
    display: none;
}

aside.shrunk .toggle-icon {
    transform: rotate(180deg);
}

aside.shrunk:hover .toggle-icon {
    transform: rotate(0deg);
}

[data-theme="dark"] aside {
    background: var(--surface-container-low);
    /* Even darker for professional depth */
    border-color: var(--surface-variant);
}

/* Mobile Sidebar Styling */
@media (max-width: 768px) {
    aside {
        position: fixed;
        left: -280px;
        top: 0;
        bottom: 0;
        width: 280px;
        height: 100vh;
        z-index: 2001;
        background: var(--surface);
        transition: transform 0.6s cubic-bezier(0.2, 0, 0, 1);
        border-right: none;
        padding-bottom: 24px;
    }

    [data-theme="dark"] aside {
        background: var(--surface-container-low);
    }

    aside.mobile-open {
        transform: translateX(280px);
        box-shadow: 12px 0 32px rgba(0, 0, 0, 0.2);
    }

    aside .sidebar-footer {
        display: none;
        /* Hide desktop toggle on mobile */
    }
}

/* Professional Navigation Groups (Doctor + / Material You) */
.nav-group {
    display: flex;
    flex-direction: column;
    margin-bottom: 4px;
}

.group-header {
    justify-content: flex-start !important;
    /* Changed from space-between to keep label near icon */
    padding-right: 12px;
    font-weight: 500;
}

.group-header .group-arrow {
    width: 18px;
    height: 18px;
    color: var(--on-surface-variant);
    transition: transform 0.6s cubic-bezier(0.4, 0, 0.2, 1);
    margin-left: auto;
    /* Push arrow to the end */
}

.nav-group.open .group-header .group-arrow {
    transform: rotate(180deg);
}

.nav-group.open .nav-sub {
    grid-template-rows: 1fr;
    max-height: 1000px;
    margin-bottom: 8px;
    margin-top: 4px;
    opacity: 1;
    visibility: visible;
}

.nav-sub {
    display: grid;
    grid-template-rows: 0fr;
    max-height: 0;
    overflow: hidden;
    transition: all 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    background: color-mix(in srgb, var(--surface-variant) 20%, transparent);
    margin: 0 12px;
    border-radius: var(--radius-m);
    opacity: 0;
    visibility: hidden;
}

.nav-sub-inner {
    overflow: hidden;
}

.sub-item {
    display: flex;
    align-items: center;
    flex-wrap: nowrap !important;
    /* Strictly prevent icon/text from stacking */
    height: 40px;
    padding: 0 5px 0 0px;
    /* Reduced from 32px */
    text-decoration: none;
    color: var(--on-surface-variant);
    font-size: 13px;
    font-weight: 400;
    border-radius: var(--radius-full);
    transition: var(--transition-standard);
    margin: 2px 8px;
    white-space: nowrap;
    /* Prevent text wrapping */
    width: calc(100% - 16px);
    /* Responsive width to fit container margins */
    box-sizing: border-box;
    /* Ensure padding doesn't exceed width */
    overflow: hidden;
    text-align: left;
    justify-content: flex-start;
}

.sub-item .nav-icon {
    width: 26px;
    height: 26px;
    border-radius: 50%;
    margin-left: 5px;
}

.sub-item .nav-icon svg {
    width: 14px;
    height: 14px;
}

.sub-item i {
    opacity: 0.7;
    transition: var(--transition-standard);
}

.sub-item:hover {
    background: var(--surface-container-highest);
    overflow: visible;
    color: var(--on-surface);
}

.sub-item:hover i {
    opacity: 1;
}

.sub-item.active {
    background: var(--primary-container);
    color: var(--on-primary-container);
    font-weight: 500;
}

[data-theme="dark"] .sub-item.active {
    background: var(--primary-container);
    color: var(--on-primary-container);
}

.sub-item.active .nav-icon i {
    opacity: 1;
}

/* Submenus in shrunk mode */
aside.shrunk .nav-sub,
aside.shrunk .group-arrow {
    display: none !important;
}

aside.shrunk:hover .nav-sub {
    display: grid !important;
    transition: opacity 0.3s ease;
}

aside.shrunk:hover .group-arrow {
    display: block !important;
}

/* User Meta in Topbar */
.user-meta-topbar {
    display: flex;
    flex-direction: column;
    margin: 0;
    /* Removed margin-right to fix alignment */
    line-height: 1.2;
}

.user-meta-topbar .user-name {
    font-weight: 600;
    font-size: 14px;
    color: var(--on-surface);
}

.user-meta-topbar .user-role {
    font-size: 12px;
    color: var(--on-surface-variant);
    font-weight: 400;
}

/* Sidebar Overlay Scrim */
.sidebar-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    backdrop-filter: blur(8px);
    z-index: 2000;
    opacity: 0;
    visibility: hidden;
    transition: var(--transition-emphasized);
}

/* Fix for centered logo */
.brand-logo-img {
    -webkit-mask-position: center !important;
    mask-position: center !important;
}

/* --- Merged from topbar.css --- */
/* Redundant legacy header removed */
.content-wrapper {
    background: transparent !important;
}

.search-bar {
    display: none;
}

.search-bar:focus-within {
    background: var(--surface);
    border-color: var(--primary);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.05);
}

.search-bar input {
    background: transparent;
    border: none;
    outline: none;
    flex: 1;
    color: var(--on-surface);
    font-family: inherit;
    font-size: 14px;
}

.topbar-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.icon-btn {
    width: 40px;
    height: 40px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    background: transparent;
    color: var(--on-primary-container);
    cursor: pointer;
    transition: var(--transition-standard);
}

.icon-btn:hover {
    background: var(--surface-container-high);
}

.profile-dropdown {
    position: relative;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 4px 16px 4px 8px;
    background: var(--surface-container-high);
    border-radius: var(--radius-full);
    cursor: pointer;
    border: 1px solid var(--surface-variant);
    transition: var(--transition-standard);
}

.profile-dropdown:hover {
    background: var(--surface-container-highest);
    overflow: visible;
}

.profile-avatar {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--primary);
    color: var(--on-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 13px;
    overflow: hidden;
}

.profile-dropdown-menu {
    position: absolute;
    top: calc(100% + 12px);
    right: 0;
    background: var(--surface-container-highest);
    overflow: visible;
    min-width: 160px;
    border-radius: var(--radius-l);
    padding: 8px;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.1);
    display: none;
    flex-direction: column;
    gap: 2px;
    border: 1px solid var(--surface-variant);
    transform-origin: top right;
    backdrop-filter: blur(20px);
    z-index: 1100;
}

/* Dark Mode Toggle Active State */
.profile-dropdown.open .profile-dropdown-menu {
    display: flex;
    animation: slideUpFade 0.3s cubic-bezier(0.2, 0, 0, 1) forwards;
}

/* Palette Selector */
.palette-selector {
    position: absolute;
    top: calc(100% + 8px);
    right: 0;
    background: var(--primary-container);
    padding: 16px;
    border-radius: var(--radius-m);
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.25);
    display: none !important;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    min-width: 150px;
    border: none;
    z-index: 110;
}

.palette-selector.open {
    display: grid !important;
    animation: slideUpFade 0.3s cubic-bezier(0.2, 0, 0, 1) forwards;
}

.color-option {
    width: 32px;
    height: 32px;
    border-radius: var(--radius-full);
    cursor: pointer;
    border: 2px solid transparent;
    transition: var(--transition-standard);
}

.color-option:hover {
    transform: scale(1.1);
}

.color-option.active {
    border-color: var(--on-surface);
}

.dropdown-item {
    padding: 5px 5px;
    border-radius: var(--radius-s);
    color: var(--on-surface-variant);
    font-size: 13px;
    display: flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s cubic-bezier(0.2, 0, 0, 1);
    position: relative;
    overflow: hidden;
    text-decoration: none !important;
}

.dropdown-item i {
    transition: transform 0.3s var(--transition-emphasized);
}

.dropdown-item:hover {
    background: var(--primary-container);
    color: var(--on-primary-container);
    transform: translateX(4px);
}

.dropdown-item:hover i {
    transform: scale(1.1) rotate(-5deg);
}

.close-search {
    display: none;
}

.header-left {
    display: flex;
    align-items: center;
    gap: 12px;
}

@media (max-width: 768px) {
    header {
        padding: 0 12px;
        height: 56px;
        margin: 0 !important;
        top: 0 !important;
        border-radius: 0 !important;
    }

    header .search-bar {
        display: none;
    }

    header .search-bar:focus-within {
        position: absolute;
        left: 0;
        top: 0;
        width: 100%;
        height: 100%;
        z-index: 100;
        background: var(--surface);
        padding: 0 16px;
        border-radius: 0;
        box-shadow: none;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    header .search-bar input {
        background: transparent;
        border: none;
        outline: none;
        flex: 1;
        color: var(--on-surface);
        font-family: inherit;
        font-size: 14px;
    }

    header .search-bar:focus-within input {
        flex: 1;
        opacity: 1;
        display: block;
        padding: 0 12px;
        background: transparent;
        border: none;
    }

    .close-search {
        display: none;
        background: transparent;
        border: none;
        color: var(--on-surface-variant);
        cursor: pointer;
        padding: 8px;
        z-index: 110;
        position: relative;
        pointer-events: auto;
    }

    header .search-bar:focus-within .close-search {
        display: flex;
    }

    .topbar-actions {
        gap: 4px;
    }

    .profile-dropdown {
        padding-left: 4px;
    }

    .profile-avatar {
        width: 40px;
        height: 40px;
    }

    .profile-dropdown i {
        display: none;
    }
}

/* Final Mobile Overrides */
@media (max-width: 768px) {
    .profile-dropdown {
        padding: 4px !important;
        gap: 0 !important;
        background: transparent !important;
        border: none !important;
    }

    .profile-avatar {
        width: 36px !important;
        height: 36px !important;
    }

    .profile-dropdown i,
    .user-meta-topbar,
    #paletteToggle {
        display: none !important;
    }
}

/* Role Panel Label Styles */
.panel-label-top {
    display: flex;
    align-items: center;
    margin-left: 12px;
}

.panel-badge {
    color: var(--primary);
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.8px;
}

@media (max-width: 768px) {
    .hide-mobile {
        display: none !important;
    }
}

/* Notifications Styles */
.noti-badge {
    position: absolute;
    top: 4px;
    right: 4px;
    background: var(--error);
    color: var(--on-error);
    font-size: 10px;
    font-weight: 700;
    min-width: 16px;
    height: 16px;
    padding: 0 4px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--surface-container-low);
}

.noti-item {
    padding: 12px;
    border-radius: var(--radius-m);
    background: var(--surface);
    cursor: pointer;
    transition: var(--transition-standard);
    border: 1px solid transparent;
}

.noti-item:hover {
    background: var(--surface-container-high);
    border-color: var(--primary);
}

.noti-item.unread {
    background: var(--primary-container);
    color: var(--on-primary-container);
}

.noti-item .noti-time {
    font-size: 10px;
    opacity: 0.6;
    margin-top: 4px;
    display: block;
}

.notifications-dropdown {
    width: 320px;
    max-height: 480px;
    overflow-y: auto;
}

@media (max-width: 768px) {
    .notifications-dropdown {
        width: 280px;
        right: -80px;
    }
}

/* --- Merged from forms.css --- */
/* assets/css/forms.css */
/* Floating Input Style */
.field-floating input,
.field-floating select,
.field-floating textarea {
    width: 100%;
    height: 40px !important;
    padding: 10px 16px 2px;
    border: none;
    border-radius: 24px;
    background: var(--surface-container-low);
    color: var(--on-surface);
    font-family: inherit;
    font-size: 13px;
    outline: none;
    transition: var(--transition-standard);
    accent-color: var(--primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.03), 0 1px 2px rgba(0, 0, 0, 0.02);
}

.field-floating textarea {
    height: auto;
    padding: 16px;
    padding-top: 20px;
    resize: vertical;
}

.field-floating label {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--on-surface-variant);
    font-size: 15px;
    pointer-events: none;
    transition: var(--transition-standard);
    background: transparent;
    padding: 0 4px;
    z-index: 10;
}

.field-floating input:focus,
.field-floating select:focus,
.field-floating textarea:focus {
    border: none;
    background: var(--surface);
    box-shadow: 0 0 0 3px var(--primary-container), 0 4px 16px rgba(0, 0, 0, 0.06);
}

.field-floating input:hover,
.field-floating select:hover,
.field-floating textarea:hover {
    border: none;
    background: var(--surface-container);
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.05), 0 2px 4px rgba(0, 0, 0, 0.03);
}

.field-floating input:focus+label,
.field-floating input:not(:placeholder-shown)+label,
.field-floating select:focus+label,
.field-floating select:not([value=""])+label,
.field-floating textarea:focus+label,
.field-floating textarea:not(:placeholder-shown)+label,
.field-floating input[type="date"]+label,
.field-floating input[type="time"]+label {
    top: 0;
    left: 12px;
    font-size: 10px;
    font-weight: 700;
    color: var(--primary);
    background: var(--surface-container-low);
    transform: translateY(-50%);
    padding: 0 6px;
}

.field-floating input:focus+label,
.field-floating select:focus+label,
.field-floating textarea:focus+label {
    background: var(--surface);
}

/* Specific fix for date/time which always has a value/placeholder in some browsers */
.field-floating input[type="date"],
.field-floating input[type="time"] {
    color-scheme: light;
}

.field-floating input[type="date"]:focus,
.field-floating input[type="time"]:focus {
    color: var(--primary);
    font-weight: 500;
}

[data-theme="dark"] .field-floating input[type="date"],
[data-theme="dark"] .field-floating input[type="time"] {
    color-scheme: dark;
}

.field-floating input::-webkit-calendar-picker-indicator {
    cursor: pointer;
    filter: grayscale(1) invert(0.5) sepia(1) saturate(5);
    /* Base for theming */
    opacity: 0.5;
    padding: 6px;
    margin-right: -4px;
    border-radius: 50%;
    transition: var(--transition-standard);
}

.field-floating input:focus::-webkit-calendar-picker-indicator {
    background-color: var(--primary-container);
    opacity: 1;
}

[data-theme="dark"] .field-floating input::-webkit-calendar-picker-indicator {
    filter: invert(1);
}

/* Custom Date/Time Picker (Flatpickr) Theming */
.flatpickr-calendar {
    background: var(--surface) !important;
    border: none !important;
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15) !important;
    border-radius: var(--radius-m) !important;
    padding: 8px !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.focus,
.flatpickr-day.selected:hover,
.flatpickr-day.selected:focus,
.flatpickr-day.startRange.focus,
.flatpickr-day.startRange:hover,
.flatpickr-day.startRange:focus,
.flatpickr-day.endRange.focus,
.flatpickr-day.endRange:hover,
.flatpickr-day.endRange:focus {
    background: var(--primary) !important;
    border-color: var(--primary) !important;
    border-radius: var(--radius-m) !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months:hover {
    background: var(--surface-variant) !important;
}

.flatpickr-day.today {
    border-color: var(--primary) !important;
    border-radius: var(--radius-m) !important;
}

.flatpickr-day.today:hover {
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
}

.flatpickr-months .flatpickr-prev-month:hover svg,
.flatpickr-months .flatpickr-next-month:hover svg {
    fill: var(--primary) !important;
}

.flatpickr-time input:focus {
    background: var(--primary-container) !important;
}

/* Flatpickr Dark Mode Overrides */
[data-theme="dark"] .flatpickr-calendar {
    background: var(--surface-container-high) !important;
    box-shadow: 0 12px 48px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .flatpickr-day {
    color: var(--on-surface) !important;
}

[data-theme="dark"] .flatpickr-day.prevMonthDay,
[data-theme="dark"] .flatpickr-day.nextMonthDay {
    color: var(--outline) !important;
}

[data-theme="dark"] .flatpickr-months .flatpickr-month,
[data-theme="dark"] .flatpickr-current-month .flatpickr-monthDropdown-months,
[data-theme="dark"] span.flatpickr-weekday,
[data-theme="dark"] .flatpickr-months .flatpickr-prev-month,
[data-theme="dark"] .flatpickr-months .flatpickr-next-month {
    color: var(--on-surface) !important;
    fill: var(--on-surface) !important;
}

[data-theme="dark"] .flatpickr-calendar.arrowTop:before,
[data-theme="dark"] .flatpickr-calendar.arrowTop:after {
    border-bottom-color: var(--surface-container-high) !important;
}

[data-theme="dark"] .flatpickr-calendar.arrowBottom:before,
[data-theme="dark"] .flatpickr-calendar.arrowBottom:after {
    border-top-color: var(--surface-container-high) !important;
}

[data-theme="dark"] .numInputWrapper span.arrowUp:after {
    border-bottom-color: var(--on-surface) !important;
}

[data-theme="dark"] .numInputWrapper span.arrowDown:after {
    border-top-color: var(--on-surface) !important;
}

[data-theme="dark"] .flatpickr-time input,
[data-theme="dark"] .flatpickr-time .flatpickr-time-separator,
[data-theme="dark"] .flatpickr-time .flatpickr-am-pm {
    color: var(--on-surface) !important;
}

[data-theme="dark"] .flatpickr-day.flatpickr-disabled,
[data-theme="dark"] .flatpickr-day.flatpickr-disabled:hover {
    color: var(--surface-variant) !important;
}

/* Typing Polish Animation */
.field-floating input,
.field-floating textarea {
    letter-spacing: 0.2px;
}

.field-floating input::placeholder {
    transition: opacity 0.3s var(--transition-standard);
}

.field-floating input:focus::placeholder {
    opacity: 0.5;
}

/* Switch Styling */
.switch {
    position: relative;
    display: inline-block;
    width: 52px;
    height: 32px;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--surface-container-highest);
    transition: .4s;
    border-radius: 34px;
    box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.1);
    /* Inner box shadow */
}

.slider:before {
    position: absolute;
    content: "";
    height: 24px;
    width: 24px;
    left: 4px;
    bottom: 4px;
    background-color: var(--on-surface-variant);
    transition: .4s;
    border-radius: 50%;
}

input:checked+.slider {
    background-color: var(--primary);
}

input:checked+.slider:before {
    transform: translateX(20px);
    background-color: var(--on-primary);
}

/* Button Styling */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    padding: 10px 24px;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-standard);
    border: none;
    min-width: 100px;
    text-decoration: none;
}

.btn-primary {
    background-color: var(--primary);
    color: var(--on-primary);
}

.btn-primary:hover {
    background-color: var(--primary-dark, var(--primary));
    box-shadow: var(--shadow-s);
}

.btn-outline {
    background-color: transparent;
    border: 1px solid var(--outline);
    color: var(--primary);
}

.btn-outline:hover {
    background-color: var(--primary-container);
}

.btn-secondary {
    background-color: var(--secondary-container);
    color: var(--on-secondary-container);
}

.btn-tertiary {
    background-color: transparent;
    color: var(--primary);
}

.btn-tertiary:hover {
    background-color: var(--primary-container);
}

.btn-error {
    background-color: var(--error);
    color: var(--on-error);
}

/* Searchable Select / Multi-Select (Custom) */
.custom-select {
    position: relative;
    width: 100%;
    z-index: 1;
    transition: z-index 0s;
}

.field-floating:focus-within,
.custom-select.active {
    z-index: 10000 !important;
    /* Extremely high to beat any other relative elements */
}

/* Ensure parents don't clip dropdowns and handle stacking */
.form-grid>* {
    position: relative;
    z-index: 1;
    /* Establishes a baseline */
}

.form-grid>*:focus-within {
    z-index: 10000;
}

.field-floating {
    --field-label-bg: var(--surface-container-low);
    position: relative;
    /* Default */
}

.select-box {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    padding: 0 16px;
    border: 2px solid var(--surface-variant);
    border-radius: 24px;
    background: var(--surface-container-low);
    cursor: pointer;
    height: 40px !important;
    align-items: center;
    transition: var(--transition-standard);
    position: relative;
}

.select-box:hover {
    border-color: var(--outline);
}

.custom-select.active .select-box {
    border-color: var(--primary);
    background: var(--surface);
}

.select-box-label {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    pointer-events: none;
    transition: var(--transition-standard);
    color: var(--on-surface-variant);
    font-size: 15px;
    z-index: 10;
}

.select-box-display {
    padding-top: 10px;
    font-size: 13px;
    color: var(--on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    width: 100%;
    /* pointer-events: none; removed to allow clicks on tags */
    line-height: 18px;
}

.custom-select.active .select-box-label,
.custom-select.has-value .select-box-label {
    top: 0;
    left: 12px;
    font-size: 10px;
    font-weight: 700;
    color: var(--primary);
    background: var(--surface-container-low);
    padding: 0 6px;
    transform: translateY(-50%);
    z-index: 20;
}

.custom-select.active .select-box-label {
    background: var(--surface);
}

[data-theme="dark"] .custom-select.active .select-box-label,
[data-theme="dark"] .custom-select.has-value .select-box-label {
    background: var(--surface-container-low);
}

[data-theme="dark"] .custom-select.active .select-box-label {
    background: var(--surface);
}

.select-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--surface);
    border: 1px solid var(--outline-variant);
    border-radius: var(--radius-l);
    box-shadow: var(--shadow-l);
    display: none;
    z-index: 1000;
    margin-top: 8px;
    overflow: hidden;
    animation: modalEnter 0.3s cubic-bezier(0.2, 0, 0, 1);
}

[data-theme="dark"] .select-dropdown {
    background: var(--surface-container-high);
    border-color: var(--outline-variant);
}

.custom-select.active .select-dropdown {
    display: block;
}

.select-search {
    padding: 12px;
    background: var(--surface-container-low);
    border-bottom: 1px solid var(--outline-variant);
}

.select-search input {
    width: 100%;
    padding: 12px 16px;
    border-radius: var(--radius-pill);
    border: 1px solid var(--outline-variant);
    background: var(--surface);
    color: var(--on-surface);
    font-size: 13px;
    outline: none;
    transition: var(--trans-std);
}

.select-search input:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 15%, transparent);
}

.select-options {
    max-height: 280px;
    overflow-y: auto;
    padding: 8px 0;
}

/* Custom Select Group Label Enhancement */
.group-label {
    padding: 16px 20px 8px;
    font-size: 10px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 1.5px;
    opacity: 0.8;
    pointer-events: none;
    display: flex;
    align-items: center;
}

.group-label:not(:first-child) {
    border-top: 1px solid var(--outline-variant);
    margin-top: 8px;
}

.select-option {
    padding: 10px 20px;
    cursor: pointer;
    font-size: 13px;
    transition: var(--trans-std);
    color: var(--on-surface);
    margin: 2px 8px;
    border-radius: var(--radius-s);
    display: flex;
    align-items: center;
    gap: 12px;
}

/* Indent options that are inside groups */
.group-label+.select-option,
.select-option.test-option,
.select-option.scan-option {
    padding-left: 36px;
}

.select-option:hover {
    background: var(--primary-container);
    color: var(--on-primary-container);
}

.select-option.selected {
    background: var(--primary);
    color: var(--on-primary);
}

/* Tag style */
.badge-tag {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    background: var(--primary-container);
    color: var(--on-primary-container);
    border-radius: var(--radius-m);
    font-size: 11px;
    font-weight: 500;
}

.badge-tag i,
.tag-remove {
    cursor: pointer;
    width: 18px;
    height: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: background 0.2s;
    margin-right: -4px;
}

.tag-remove:hover {
    background: rgba(0, 0, 0, 0.1);
}

[data-theme="dark"] .tag-remove:hover {
    background: rgba(255, 255, 255, 0.1);
}

/* --- Form Layout Utilities --- */
.form-card-body {
    padding: 24px;
}

@media (max-width: 768px) {
    .form-card-body {
        padding: 16px;
    }
}

/* 12-column Grid System */
.grid-12 {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 16px;
}

.col-span-1 {
    grid-column: span 1;
}

.col-span-2 {
    grid-column: span 2;
}

.col-span-3 {
    grid-column: span 3;
}

.col-span-4 {
    grid-column: span 4;
}

.col-span-5 {
    grid-column: span 5;
}

.col-span-6 {
    grid-column: span 6;
}

.col-span-7 {
    grid-column: span 7;
}

.col-span-8 {
    grid-column: span 8;
}

.col-span-9 {
    grid-column: span 9;
}

.col-span-10 {
    grid-column: span 10;
}

.col-span-11 {
    grid-column: span 11;
}

.col-span-12 {
    grid-column: span 12;
}

@media (max-width: 1024px) {

    .col-span-3,
    .col-span-4,
    .col-span-6 {
        grid-column: span 6;
    }
}

@media (max-width: 768px) {

    .col-span-1,
    .col-span-2,
    .col-span-3,
    .col-span-4,
    .col-span-5,
    .col-span-6,
    .col-span-7,
    .col-span-8,
    .col-span-9,
    .col-span-10,
    .col-span-11,
    .col-span-12 {
        grid-column: span 12 !important;
    }
}

/* Legacy form-grid support */
.form-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 32px;
}

@media (max-width: 1024px) {
    .form-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 768px) {
    .form-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
}

.form-row-4 {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 32px;
    grid-column: span 3;
}

@media (max-width: 1024px) {
    .form-row-4 {
        grid-template-columns: repeat(2, 1fr);
        gap: 24px;
    }
}

@media (max-width: 768px) {
    .form-row-4 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .form-row-4>* {
        grid-column: span 1 !important;
    }
}

/* File Upload Responsiveness */
.file-upload-container {
    display: flex;
    align-items: center;
    gap: 24px;
}

@media (max-width: 600px) {
    .file-upload-container {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .file-upload-wrapper {
        width: 100%;
    }

    .file-upload-wrapper .btn {
        width: 100%;
        justify-content: center;
    }
}

.form-group-margin {
    margin-bottom: 32px;
}

.form-actions {
    margin-top: 32px;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 16px;
}

@media (max-width: 600px) {
    .form-actions {
        flex-direction: column;
        gap: 12px;
        width: 100%;
    }

    .form-actions .btn {
        width: 100%;
        height: 48px;
        /* Taller on mobile */
    }
}

/* --- Special Input States --- */
.input-readonly {
    background: var(--surface-container-high) !important;
    cursor: default;
}

/* --- File Upload Styling --- */
.file-upload-section {
    margin-top: 24px;
}

.file-upload-label {
    display: block;
    margin-bottom: 12px;
    color: var(--on-surface-variant);
    font-size: 14px;
    font-weight: 500;
}

.file-upload-wrapper {
    position: relative;
    display: inline-block;
}

.file-upload-input {
    display: none !important;
}

.file-upload-btn {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 24px;
    background-color: var(--secondary-container);
    color: var(--on-secondary-container);
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: var(--transition-standard);
    border: none;
}

.file-upload-btn:hover {
    background-color: var(--surface-variant);
    box-shadow: var(--shadow-s);
}

.file-upload-btn i {
    width: 18px !important;
    height: 18px !important;
}

/* --- Helper for specific field height --- */
.textarea-fixed {
    height: 100px !important;
}

/* --- Profile Photo Enhancements (Cropping & Preview) --- */
.file-upload-container {
    display: flex;
    align-items: center;
    gap: 24px;
    background: var(--surface-container-low);
    padding: 16px;
    border-radius: var(--radius-m);
    border: 2px dashed var(--surface-variant);
}

.image-preview-wrapper {
    position: relative;
    width: 80px;
    height: 80px;
}

.image-preview {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: var(--surface-variant);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--on-surface-variant);
    overflow: hidden;
    border: 3px solid var(--surface);
    box-shadow: var(--shadow-s);
}

/* Multi-step Form */
.form-step {
    display: none;
}

.form-step.active {
    display: block;
    animation: fadeIn 0.4s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes stepSlide {
    from {
        opacity: 0;
        transform: translateX(20px);
    }

    to {
        opacity: 1;
        transform: translateX(0);
    }
}

.card-footer {
    padding: 12px 24px;
    background: var(--surface-container-low);
    border-top: 1px solid var(--surface-variant);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-radius: 0 0 20px 20px;
}

.remove-image-btn:hover {
    transform: scale(1.1);
    background: var(--error-container);
    color: var(--on-error-container);
}

.remove-image-btn i {
    width: 14px !important;
    height: 14px !important;
}

/* Cropper Modal */
/* Photo Cropper v2 - Absolute Solidity Fix */
.pcv2-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    background: #000000f2 !important;
    /* 95% opacity black */
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 9999999 !important;
    backdrop-filter: blur(15px) !important;
}

.pcv2-overlay.active {
    display: flex !important;
}

.pcv2-box {
    background-color: #ffffff !important;
    background: #ffffff !important;
    width: 95%;
    max-width: 550px;
    border-radius: 20px !important;
    overflow: hidden !important;
    box-shadow: 0 40px 120px rgba(0, 0, 0, 0.9) !important;
    display: flex !important;
    flex-direction: column !important;
    position: relative !important;
    z-index: 10000000 !important;
    opacity: 1 !important;
    border: none !important;
    animation: pcv2-enter 0.3s ease-out !important;
}


[data-theme="dark"] .pcv2-box {
    background-color: #1a1c1e !important;
    background: #1a1c1e !important;
}

.pcv2-header {
    background: #f1f3f5 !important;
    padding: 16px 24px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important;
    color: #000 !important;
}

[data-theme="dark"] .pcv2-header {
    background: #2d2d2d !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
}

.pcv2-header h3 {
    margin: 0 !important;
    font-size: 16px !important;
    font-weight: 600 !important;
}

.pcv2-close {
    background: none !important;
    border: none !important;
    font-size: 28px !important;
    line-height: 1 !important;
    cursor: pointer !important;
    color: inherit !important;
    opacity: 0.7 !important;
}

.pcv2-body {
    background: #000 !important;
    max-height: 400px !important;
    overflow: hidden !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

.pcv2-footer {
    background: #f1f3f5 !important;
    padding: 16px 24px !important;
    display: flex !important;
    justify-content: flex-end !important;
    gap: 12px !important;
    border-top: 1px solid rgba(0, 0, 0, 0.1) !important;
}

[data-theme="dark"] .pcv2-footer {
    background: #2d2d2d !important;
    border-top: 1px solid rgba(255, 255, 255, 0.1) !important;
}

@keyframes pcv2-enter {
    from {
        opacity: 0;
        transform: translateY(10px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

/* --- Merged from stepper.css --- */
/* assets/css/stepper.css */
.stepper-integrated-header {
    background: var(--surface-container-low);
    border-bottom: 1px solid var(--surface-variant);
    padding: 8px 32px;
    border-radius: 20px 20px 0 0;
}

.stepper-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    max-width: 480px;
    margin: 0 auto;
}

.stepper-line {
    position: absolute;
    top: 14px;
    left: 10%;
    right: 10%;
    height: 10px;
    background: var(--surface-variant);
    z-index: 1;
    border-radius: 2px;
    overflow: hidden;
}

.stepper-line-progress {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    width: 0%;
    background: linear-gradient(90deg, var(--primary), var(--tertiary));
    transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}

.step-item {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    transition: all 0.4s ease;
    cursor: pointer;
}

.step-badge {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--surface-container-highest);
    overflow: visible;
    color: var(--on-surface-variant);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 12px;
    transition: all 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
    border: 2px solid transparent;
}

.step-item.active .step-badge {
    background: var(--primary);
    color: var(--on-primary);
    box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.3);
    transform: scale(1.1);
}

.step-item.completed .step-badge {
    background: var(--primary-container);
    color: var(--on-primary-container);
}

.step-item.completed.tertiary .step-badge {
    background: var(--tertiary);
    color: var(--on-tertiary);
}

.step-label {
    font-size: 8px;
    font-weight: 700;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.step-item.active .step-label {
    color: var(--primary);
}

.step-item.completed.tertiary .step-label {
    color: var(--tertiary);
}

/* Animations */
.animate-fadeIn {
    animation: fadeIn 0.4s ease-out;
}

@keyframes fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes stepPulse {
    0% {
        transform: scale(1);
        opacity: 0.5;
    }

    100% {
        transform: scale(1.3);
        opacity: 0;
    }
}

/* Support for larger mobile stepper if class 'stepper-expanded' is used */
@media (max-width: 768px) {
    .stepper-integrated-header {
        padding: 12px 16px;
    }
}

.stepper-expanded .stepper-container {
    max-width: 800px;
}

.stepper-expanded .step-badge {
    width: 40px;
    height: 40px;
    border-radius: 14px;
    font-size: 15px;
}

.stepper-expanded .step-label {
    font-size: 11px;
    letter-spacing: 1px;
}

.stepper-expanded .stepper-line {
    top: 18px;
    height: 10px;
}

.stepper-expanded .step-item.active .step-badge::after {
    content: '';
    position: absolute;
    inset: -6px;
    border-radius: 18px;
    border: 2px solid var(--primary);
    opacity: 0.3;
    animation: stepPulse 2s infinite;
}

/* --- Merged from components.css --- */
/* NewAdmin Component Library */
/* Standardized UI elements for consistent premium look */

/* Premium Button Component */
.btn-premium {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 12px 24px;
    border-radius: var(--radius-m);
    font-weight: 600;
    font-family: 'Google Sans', sans-serif;
    transition: var(--transition-standard);
    cursor: pointer;
    border: none;
    gap: 10px;
    font-size: 14px;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
}

.btn-premium:active {
    transform: scale(0.95);
}

.btn-premium-primary {
    background: var(--primary);
    color: #ffffff;
}

.btn-premium-primary:hover {
    background: color-mix(in srgb, var(--primary) 80%, black);
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
}

/* Glasscard Component */
.glass-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    border-radius: 24px;
    padding: 24px;
    box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.1);
}

[data-theme="dark"] .glass-card {
    background: rgba(15, 20, 25, 0.7);
    border: 1px solid rgba(255, 255, 255, 0.1);
}

/* Floating Input Style */
.form-floating-custom {
    position: relative;
    margin-bottom: 20px;
}

.form-floating-custom input,
.form-floating-custom select,
.form-floating-custom textarea {
    width: 100%;
    padding: 16px;
    border: 1.5px solid var(--surface-variant);
    background: transparent;
    border-radius: 12px;
    font-size: 15px;
    color: var(--on-surface);
    transition: var(--transition-standard);
}

.form-floating-custom label {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--surface);
    padding: 0 8px;
    color: var(--on-surface-variant);
    pointer-events: none;
    transition: var(--transition-standard);
}

.form-floating-custom input:focus~label,
.form-floating-custom input:not(:placeholder-shown)~label {
    top: 0;
    font-size: 12px;
    color: var(--primary);
}

.form-floating-custom input:focus {
    border-color: var(--primary);
    outline: none;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 10%, transparent);
}

/* Stepper Standardized */
.stepper-integrated-header {
    padding: 12px 24px 0;
}

.stepper-container-premium {
    max-width: 500px;
    margin: 0 auto;
}

.step-badge-premium {
    width: 28px;
    height: 28px;
    font-size: 12px;
}

.step-label-premium {
    font-size: 12px;
}

/* Card Utility */
.card-premium-body {
    padding: 12px 24px;
    min-height: unset;
    display: flex;
    flex-direction: column;
}

.section-header-premium {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 12px;
    color: var(--primary);
}

.section-title-premium {
    margin: 0;
    font-size: 13px;
    font-weight: 600;
}

/* --- Merged from widgets.css --- */
/* Android Clock Widget */
.android-clock {
    text-align: center;
    background: linear-gradient(135deg, var(--primary-container), var(--tertiary-container));
    padding: 32px;
    border-radius: var(--radius-xl);
    width: 100%;
    max-width: 400px;
    color: var(--on-primary-container);
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.clock-time {
    font-size: 4rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: -2px;
}

.clock-date {
    font-size: 1.1rem;
    font-weight: 500;
    margin-top: 8px;
    opacity: 0.8;
}

/* Data Table Styling */
.dt-container {
    display: flex;
    flex-direction: column;
    width: 100%;
    background: transparent;
    gap: 12px;
}

.dt-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 4px;
    gap: 20px;
    flex-wrap: wrap;
    background: transparent;
}

.dt-body {
    background: var(--surface-container-low);
    border-radius: var(--radius-l);
    border: 1px solid var(--surface-variant);
    overflow: hidden;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}

.dt-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--on-surface);
    margin: 0;
    letter-spacing: -0.3px;
}

.dt-actions {
    display: flex;
    align-items: center;
    gap: 12px;
}

.dt-search-box {
    display: flex;
    align-items: center;
    background: var(--surface-container-high);
    border-radius: 9999px !important; /* Perfect Pill Shape */
    transition: var(--transition-standard);
    min-width: 280px;
    border: 1px solid transparent;
    padding: 0 18px;
    height: 44px;
}

.dt-search-box:focus-within {
    background: var(--surface);
    border-color: var(--primary);
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.08);
}

.dt-search-box i {
    width: 18px;
    height: 18px;
    color: var(--on-surface-variant);
    opacity: 0.8;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-right: 12px;
    transition: all 0.3s cubic-bezier(0.2, 0, 0, 1) !important;
}

.dt-search-box:focus-within i {
    opacity: 0 !important;
    width: 0 !important;
    margin-right: 0 !important;
    transform: scale(0) !important;
    pointer-events: none !important;
}

.dt-search-box input {
    padding: 0;
    border: none;
    background: transparent;
    color: var(--on-surface);
    font-size: 15px;
    outline: none;
    width: 100%;
    height: 100%;
}

.data-table-wrapper {
    overflow-x: auto;
    width: 100%;
}

.th-content {
    display: flex;
    align-items: center;
    gap: 6px;
}

table {
    width: 100%;
    border-collapse: collapse;
    text-align: left;
}

th {
    padding: 14px 20px;
    background: var(--primary);
    font-weight: 700;
    color: var(--on-primary);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    cursor: pointer;
    user-select: none;
    transition: var(--transition-standard);
    border: none;
}

th .sort-icon i {
    color: var(--on-primary) !important;
}

th:hover {
    background: color-mix(in srgb, var(--primary), black 10%);
}

.sort-icon {
    display: inline-flex;
    margin-left: 4px;
    vertical-align: middle;
    opacity: 0.3;
}

th.active .sort-icon {
    opacity: 1;
}

/* Pagination Controls */
.table-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 12px 20px;
    border-top: 1px solid var(--surface-variant);
}

.pagination {
    display: flex;
    gap: 8px;
}

.page-btn {
    width: 28px;
    height: 28px;
    border-radius: var(--radius-m);
    border: 1px solid var(--surface-variant);
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    transition: var(--transition-standard);
}

.page-btn.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
}

td {
    padding: 14px 20px;
    border-bottom: 1px solid var(--surface-variant);
    font-size: 14px;
    color: var(--on-surface);
}

tr:last-child td {
    border-bottom: none;
}

tr:hover td {
    background: var(--surface-container-low);
}

.badge {
    padding: 4px 12px;
    border-radius: var(--radius-full);
    font-size: 12px;
    font-weight: 600;
}

.badge-success {
    background: #cff4e4;
    color: #0b5e34;
}

/* Custom Components Styles */
/* Toast System - Apple Style Top-Center */
.toast-container {
    position: fixed;
    top: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 25000;
    display: flex;
    flex-direction: column;
    gap: 12px;
    pointer-events: none;
    width: max-content;
    max-width: 90vw;
}

.toast {
    min-width: 320px;
    background: var(--surface-container-highest);
    overflow: visible;
    color: var(--on-surface);
    padding: 12px 24px;
    border-radius: var(--radius-full);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.15);
    display: flex;
    align-items: center;
    gap: 12px;
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border: 1px solid var(--surface-variant);
    animation: toastSlideDown 0.5s cubic-bezier(0.2, 1, 0.2, 1) forwards;
    pointer-events: auto;
    font-weight: 500;
    transition: var(--transition-standard);
}

@keyframes toastSlideDown {
    from {
        transform: translateY(-40px) scale(0.95);
        opacity: 0;
    }

    to {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}

.toast-success {
    border-bottom: 2px solid #2e7d32;
}

.toast-error {
    border-bottom: 2px solid var(--error);
}

.toast-warning {
    border-bottom: 2px solid #f59e0b;
}

.toast-info {
    border-bottom: 2px solid var(--primary);
}

.toast i {
    width: 20px;
    height: 20px;
}

.toast-success i {
    color: #2e7d32;
}

.toast-error i {
    color: var(--error);
}

.toast-warning i {
    color: #f59e0b;
}

.toast-info i {
    color: var(--primary);
}

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.4) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 20000;
    transition: all 0.3s ease;
}

[data-theme="dark"] .modal-overlay {
    background: rgba(12, 12, 14, 0.55) !important;
}

.modal-content {
    background: var(--surface);
    width: 90%;
    max-width: 400px;
    padding: 32px;
    border-radius: var(--radius-xl);
    text-align: center;
    transform: scale(0.9);
    transition: var(--transition-emphasized);
}

.modal-overlay.open {
    display: flex;
}

.modal-overlay.open .modal-content {
    animation: modalEnter 0.4s cubic-bezier(0.2, 0, 0, 1) forwards;
}

.modal-icon {
    width: 64px;
    height: 64px;
    border-radius: var(--radius-full);
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 24px;
}

@media (max-width: 768px) {
    .clock-time {
        font-size: 3rem;
    }

    .android-clock {
        padding: 24px;
    }

    .table-footer {
        flex-direction: column;
        gap: 16px;
        align-items: flex-start;
    }

    .card h2 {
        font-size: 1.2rem !important;
    }

    .card {
        gap: 16px !important;
    }
}

/* Premium Stat Cards */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 20px;
}

.stat-card {
    padding: 24px;
    position: relative;
    overflow: hidden;
    border: 1px solid var(--surface-variant);
    background: var(--surface);
    border-radius: var(--radius-l);
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.02), 0 2px 4px -1px rgba(0, 0, 0, 0.01);
    transition: var(--transition-standard);
}

.stat-card-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    z-index: 2;
}

.stat-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.stat-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 1px;
    opacity: 0.8;
}

.stat-value {
    font-size: 28px;
    font-weight: 700;
    color: var(--on-surface);
    font-family: 'Google Sans', sans-serif;
    line-height: 1.2;
}

.stat-icon-wrapper {
    width: 52px;
    height: 52px;
    border-radius: var(--radius-m);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: var(--transition-standard);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}

.stat-icon-wrapper i {
    width: 26px;
    height: 26px;
}

.patient-card .stat-icon-wrapper {
    background: var(--secondary-container);
    color: var(--on-secondary-container);
}

.consult-card .stat-icon-wrapper {
    background: var(--tertiary-container);
    color: var(--on-tertiary-container);
}

.followup-card .stat-icon-wrapper {
    background: var(--error-container);
    color: var(--on-error-container);
}

.lab-card .stat-icon-wrapper {
    background: var(--primary-container);
    color: var(--primary);
}

.stat-card::after {
    content: '';
    position: absolute;
    top: -15%;
    right: -15%;
    width: 120px;
    height: 120px;
    background: var(--glow-color, transparent);
    filter: blur(45px);
    opacity: 0.12;
    transition: var(--transition-emphasized);
    z-index: 1;
    border-radius: 50%;
    pointer-events: none;
}

.patient-card {
    --glow-color: var(--primary);
}

.consult-card {
    --glow-color: #9c41ff;
}

.followup-card {
    --glow-color: var(--error);
}

.lab-card {
    --glow-color: var(--primary-seed);
}

.stat-card:hover {
    border-color: var(--primary);
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
}

.stat-card:hover .stat-icon-wrapper {
    transform: scale(1.1) rotate(-5deg);
}

.stat-card:hover::after {
    opacity: 0.3;
    transform: scale(1.5);
}

.hover-lift {
    transition: transform 0.3s cubic-bezier(0.2, 0, 0, 1), box-shadow 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-4px) scale(1.01);
}

@media (max-width: 600px) {
    .stats-grid {
        gap: 12px !important;
    }

    .stat-card {
        padding: 16px !important;
    }

    .stat-value {
        font-size: 24px !important;
    }
}

/* --- Merged from profile.css --- */
/* assets/css/profile.css */
.profile-header-card {
    position: sticky;
    top: 0;
    z-index: 100;
    margin-top: 0;
    margin-bottom: 32px;
    background: var(--surface-container-high);
    border: 1px solid var(--surface-variant);
    border-radius: var(--radius-l);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

.profile-avatar-large {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-full);
    object-fit: cover;
    border: 3px solid var(--primary-container);
    background: var(--surface-variant);
}

.initials-avatar-large {
    width: 80px;
    height: 80px;
    border-radius: var(--radius-full);
    background: var(--primary-container);
    color: var(--on-primary-container);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px;
    font-weight: 700;
    border: 3px solid var(--primary-container);
}

.profile-main-info h2 {
    font-family: 'Google Sans', sans-serif;
    font-size: 24px;
    margin-bottom: 4px;
    color: var(--on-surface);
}

.profile-meta-row {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 8px;
    color: var(--on-surface-variant);
    font-size: 14px;
}

.profile-meta-item {
    display: flex;
    align-items: center;
    gap: 6px;
}

.medical-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 12px;
}

.medical-tag {
    padding: 4px 12px;
    border-radius: var(--radius-s);
    font-size: 12px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 6px;
}

.tag-allergy {
    background: #fdf2f2;
    color: #991b1b;
    border: 1px solid #fee2e2;
}

.tag-condition {
    background: #fffbeb;
    color: #92400e;
    border: 1px solid #fef3c7;
}

.profile-stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
    text-align: right;
}

.stat-item-small {
    display: flex;
    flex-direction: column;
}

.stat-label-small {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--on-surface-variant);
    opacity: 0.7;
}

.stat-value-small {
    font-size: 16px;
    font-weight: 600;
    color: var(--primary);
}

/* Timeline Styles */
.profile-timeline {
    position: relative;
    padding: 0 24px 24px 56px;
    margin-top: 16px;
}

.profile-timeline::before {
    content: '';
    position: absolute;
    left: 31px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--surface-variant);
}

.timeline-item {
    position: relative;
    margin-bottom: 40px;
}

.timeline-marker {
    position: absolute;
    left: -33px;
    top: 22px;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    background: var(--primary);
    border: 3px solid var(--surface);
    box-shadow: 0 0 0 2px var(--primary-container);
    z-index: 1;
}

.timeline-card {
    background: var(--surface);
    border: 1px solid var(--surface-variant);
    border-radius: var(--radius-l);
    overflow: hidden;
    transition: var(--transition-standard);
}

.timeline-card:hover {
    border-color: var(--primary);
    box-shadow: var(--shadow-m);
}

.timeline-header {
    padding: 20px 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    cursor: pointer;
    background: var(--surface-container-low);
}

.timeline-header:hover {
    background: var(--surface-container);
}

.timeline-date {
    font-weight: 700;
    font-size: 16px;
    color: var(--on-surface);
}

.timeline-issue-badge {
    background: var(--primary-container);
    color: var(--on-primary-container);
    padding: 6px 14px;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 600;
    margin-right: 16px;
}

.timeline-doctor {
    font-size: 12px;
    color: var(--on-surface-variant);
    margin-top: 4px;
    display: flex;
    align-items: center;
    gap: 6px;
    opacity: 0.8;
}

.timeline-body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    background: var(--surface);
}

.timeline-item.open .timeline-body {
    grid-template-rows: 1fr;
    border-top: 1px solid var(--surface-variant);
}

/* Inner container for grid animation trick */
.timeline-body-inner {
    overflow: hidden;
    padding: 0 24px;
    opacity: 0;
    transform: translateY(-10px);
    transition: opacity 0.3s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), padding 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.timeline-item.open .timeline-body-inner {
    padding: 24px;
    opacity: 1;
    transform: translateY(0);
}

.timeline-header .chevron {
    transition: transform 0.3s ease;
}

.timeline-item.open .chevron {
    transform: rotate(180deg);
}

.v3-split-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.v3-column-title {
    font-size: 13px;
    font-weight: 700;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.v3-column-title i {
    width: 16px;
}

.v3-prescription-list,
.v3-diag-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.v3-item-card {
    background: var(--surface-container-lowest);
    border: 1px solid var(--surface-variant);
    padding: 12px 16px;
    border-radius: 12px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.v3-item-name {
    font-weight: 600;
    font-size: 14px;
    color: var(--on-surface);
}

.v3-item-meta {
    font-size: 12px;
    color: var(--on-surface-variant);
}

.lab-badge {
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 10px;
    font-weight: 700;
}

.lab-normal {
    background: #dcfce7;
    color: #166534;
}

.lab-abnormal {
    background: #fee2e2;
    color: #991b1b;
}

@media (max-width: 900px) {
    .profile-header-card .row {
        flex-direction: column;
        align-items: flex-start !important;
        gap: 16px;
    }

    .profile-stats-grid {
        text-align: left;
        grid-template-columns: repeat(3, auto);
        width: 100%;
        justify-content: flex-start;
        gap: 24px;
    }

    .profile-header-card {
        position: relative;
        top: 0;
    }

    .v3-split-layout {
        grid-template-columns: 1fr;
        gap: 24px;
    }
}

/* --- Merged from prescription.css --- */
/*
 * assets/css/prescription.css
 * Dedicated styling for the Prescription Master page (Dual Column Layout)
 */
.manage-grid {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 24px;
}

@media (max-width: 992px) {
    .manage-grid {
        display: flex;
        flex-direction: column;
        /* Robust fallback instead of grid-template-columns: 1fr */
        gap: 16px;
        min-width: 0;
    }
}

.responsive-grid {
    display: grid;
    grid-template-columns: 1.2fr 1fr;
    gap: 32px;
    align-items: start;
}

@media (max-width: 992px) {
    .responsive-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 24px;
        min-width: 0;
    }

    .responsive-grid>* {
        width: 100%;
        min-width: 0;
    }

    .manage-grid>* {
        width: 100%;
        min-width: 0;
    }
}

.page-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 32px;
    margin-bottom: 32px;
}

.header-actions {
    display: flex;
    gap: 12px;
}

@media (max-width: 768px) {
    .header-actions {
        flex-direction: column;
        width: 100%;
        margin-top: 16px;
    }

    .header-actions .btn {
        width: 100%;
        justify-content: center;
    }
}

/* --- Layout Components --- */
.content-section {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.category-summary-section {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.category-list-wrapper {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.p-0 {
    padding: 0 !important;
}

.p-16 {
    padding: 16px !important;
}

/* --- Inventory Table Style --- */
.inventory-table {
    width: 100%;
    border-collapse: collapse;
}

.inventory-table thead tr {
    background: var(--surface-container-low);
}

.inventory-table th {
    text-align: left;
    padding: 12px 16px;
    font-size: 13px;
    color: var(--on-surface-variant);
    border-bottom: 2px solid var(--surface-variant);
    font-weight: 500;
}

.inventory-table td {
    padding: 12px 16px;
    vertical-align: middle;
}

.inventory-table tr {
    border-bottom: 1px solid var(--surface-container-high);
}

.inventory-table .name-col {
    font-weight: 500;
    font-size: 14px;
    color: var(--on-surface);
}

.inventory-table .type-badge {
    background: var(--surface-variant);
    color: var(--on-surface-variant);
    padding: 2px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    display: inline-block;
}

/* Category Card Styling */
.category-card {
    padding: 16px;
    border-radius: 20px;
    background: var(--surface);
    border: 1px solid var(--outline-variant);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: relative;
    overflow: hidden;
    gap: 16px;
    max-width: 100%;
    /* Ensure it doesn't overflow */
}

@media (max-width: 400px) {
    .category-card {
        flex-direction: column;
        align-items: flex-start;
    }

    .category-actions {
        width: 100%;
        justify-content: flex-end;
        margin-top: 8px;
    }
}

.category-content {
    display: flex;
    align-items: center;
    gap: 16px;
    position: relative;
    z-index: 1;
    min-width: 0;
    /* Enable text truncation if needed */
}

.category-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--primary-container);
    color: var(--on-primary-container);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.category-actions {
    display: flex;
    gap: 4px;
    position: relative;
    z-index: 1;
    flex-shrink: 0;
}

.category-actions .btn-icon {
    width: 30px;
    height: 30px;
    border-radius: 8px;
    border: none;
    background: transparent;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
}

.category-bg-icon {
    position: absolute;
    right: -10px;
    bottom: -10px;
    width: 60px;
    height: 60px;
    color: var(--on-surface-variant);
    opacity: 0.03;
    transform: rotate(-15deg);
}

.inventory-table .action-col {
    text-align: right;
    width: 110px;
}

.category-card {
    padding: 16px;
    background: var(--surface-container-low);
    border-radius: var(--radius-m);
    border: 1px solid var(--surface-variant);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.category-card:hover {
    background: var(--surface-container-high) !important;
    transform: translateY(-2px);
    border-color: var(--primary) !important;
    box-shadow: var(--shadow-2);
}

.category-info {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    position: relative;
    z-index: 1;
}

.category-icon-box {
    width: 28px;
    height: 28px;
    border-radius: 8px;
    background: var(--primary-container);
    color: var(--on-primary-container);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.category-icon-box i,
.category-icon-box svg {
    width: 12px !important;
    height: 12px !important;
    stroke-width: 2.5px;
}

.category-details h4 {
    font-weight: 600;
    font-size: 14px;
    color: var(--on-surface);
    line-height: 1.2;
    margin-bottom: 2px;
}

.category-count {
    font-size: 11px;
    color: var(--on-surface-variant);
    font-weight: 500;
}

.category-actions {
    display: flex;
    gap: 8px;
    position: relative;
    z-index: 1;
    border-top: 1px solid var(--surface-variant);
    padding-top: 10px;
    margin-top: auto;
}

.category-bg-icon {
    position: absolute;
    right: -5px;
    bottom: -5px;
    opacity: 0.03;
    transform: rotate(-15deg);
}

.category-bg-icon i,
.category-bg-icon svg {
    width: 32px !important;
    height: 32px !important;
}

/* --- Action Buttons (Standardized & Minimalist) --- */
.btn-group {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
}

.btn-icon {
    width: 24px !important;
    height: 24px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border-radius: 20% !important;
    /* Squircular as per user preference */
    background: transparent !important;
    color: var(--on-surface-variant);
    transition: all 0.2s;
    border: none !important;
    padding: 0 !important;
    cursor: pointer;
}

.btn-icon:hover {
    background: var(--surface-container-highest) !important;
    color: var(--on-surface);
}

.btn-icon i,
.btn-icon svg {
    width: 16px !important;
    /* Ultra-minimalist icon size */
    height: 16px !important;
    stroke-width: 1.5px;
    /* Even thicker for 8px clarity */
    display: block;
}

/* Header action icons */
.page-header .btn i,
.page-header .btn svg {
    width: 14px !important;
    height: 14px !important;
    stroke-width: 2.5px;
}

/* --- Search Box Styling --- */
.search-input-wrapper {
    position: relative;
    width: 250px;
}

.search-input-wrapper i,
.search-input-wrapper svg {
    position: absolute;
    left: 12px;
    top: 50%;
    transform: translateY(-50%);
    width: 12px !important;
    height: 12px !important;
    color: var(--on-surface-variant);
    stroke-width: 2.5px;
}

.search-input-wrapper input {
    width: 100%;
    padding: 8px 12px 8px 36px;
    border-radius: 100px;
    border: 1px solid var(--outline-variant);
    background: var(--surface-container-low);
    font-size: 14px;
    outline: none;
    transition: border-color 0.2s;
}

.search-input-wrapper input:focus {
    border-color: var(--primary);
}

/* --- Modal Surface --- */
.med-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    z-index: 2000;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(4px);
}

.med-modal-content {
    background: var(--surface-container-highest);
    overflow: visible;
    width: 100%;
    max-width: 450px;
    border-radius: var(--radius-l);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    animation: medFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes medFadeIn {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.95);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.modal-header {
    padding: 24px;
    border-bottom: 1px solid var(--surface-variant);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.modal-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
    --field-label-bg: var(--surface-container-highest);
}

.modal-footer {
    padding: 16px 24px;
    background: var(--surface-container-high);
    display: flex;
    justify-content: flex-end;
    gap: 12px;
}

/* --- Merged from diagnostic.css --- */
/* diagnostic.css - Shared styles for diagnostic modules */
.diagnostic-tab-header {
    display: flex;
    gap: 8px;
    margin-bottom: 24px;
    background: var(--surface-container-low);
    padding: 4px;
    border-radius: 100px;
    width: fit-content;
}

.diagnostic-tab {
    padding: 8px 24px;
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
    color: var(--on-surface-variant);
}

.diagnostic-tab.active {
    background: var(--secondary-container);
    color: var(--on-secondary-container);
}

.tab-content {
    display: none;
}

.tab-content.active {
    display: block;
}

/* Modal styles used in lab-pending */
.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.4) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    display: none;
    z-index: 1000;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease;
}

[data-theme="dark"] .modal-overlay {
    background: rgba(12, 12, 14, 0.55) !important;
}

.modal-surface {
    background: var(--surface-container-highest);
    overflow: visible;
    width: 100%;
    max-width: 500px;
    border-radius: var(--radius-l);
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.3);
    overflow: hidden;
    animation: modalFadeIn 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

@keyframes modalFadeIn {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(20px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.modal-head {
    padding: 24px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--surface-variant);
}

.modal-body {
    padding: 24px;
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.modal-foot {
    padding: 16px 24px;
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    background: var(--surface-container-high);
}

/* Lab Review Modal styles */
.report-modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.4) !important;
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    display: none;
    z-index: 2000;
    justify-content: center;
    align-items: center;
    transition: all 0.3s ease;
}

[data-theme="dark"] .report-modal-overlay {
    background: rgba(12, 12, 14, 0.55) !important;
}

.report-modal-surface {
    background: var(--surface-container-highest);
    overflow: visible;
    border-radius: var(--radius-l);
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.4);
    overflow: hidden;
    animation: modalScaleUp 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

@keyframes modalScaleUp {
    from {
        transform: scale(0.9) translateY(40px);
        opacity: 0;
    }

    to {
        transform: scale(1) translateY(0);
        opacity: 1;
    }
}

/* --- Merged from consultation-form.css --- */
/* assets/css/consultation-form.css */
.search-results-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--surface-container-highest);
    overflow: visible;
    border-radius: var(--radius-m);
    box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
    z-index: 1000;
    max-height: 250px;
    overflow-y: auto;
    display: none;
    border: 1px solid var(--surface-variant);
    margin-top: 4px;
}

.loader-xs {
    position: absolute;
    right: 20px !important;
    top: 13px !important;
    width: 14px;
    height: 14px;
    border: 2px solid var(--surface-variant);
    border-top: 2px solid var(--primary);
    border-radius: 50%;
    animation: spin-loader 0.8s linear infinite;
    z-index: 20;
    transform: none !important;
}

@keyframes spin-loader {
    to {
        transform: rotate(360deg);
    }
}

@keyframes spin {
    0% {
        transform: translateY(-50%) rotate(0deg);
    }

    100% {
        transform: translateY(-50%) rotate(360deg);
    }
}

.search-result-item {
    padding: 8px 12px;
    cursor: pointer;
    display: flex;
    font-size: 13px;
    align-items: center;
    gap: 12px;
    transition: background 0.2s;
}

.search-result-item:hover {
    background: var(--surface-variant);
}

.prescription-item {
    background: var(--surface-container-low);
    border-radius: var(--radius-m);
    padding: 16px;
    margin-bottom: 12px;
    border: 1px solid var(--surface-variant);
    position: relative;
    z-index: 5;
    transition: z-index 0.1s;
}

.prescription-item:focus-within,
.prescription-item:has(.active) {
    z-index: 5000 !important;
}

.remove-row-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    color: var(--error);
    cursor: pointer;
    opacity: 0.6;
    transition: opacity 0.2s;
}

.remove-row-btn:hover {
    opacity: 1;
}

/* Switch Mini */
.switch-mini {
    position: relative;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
}

.switch-mini input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider-mini {
    position: relative;
    display: inline-block;
    width: 28px;
    height: 16px;
    background-color: var(--surface-container-highest);
    transition: .3s;
    border-radius: 20px;
}

.slider-mini:before {
    position: absolute;
    content: "";
    height: 10px;
    width: 10px;
    left: 3px;
    bottom: 3px;
    background-color: white;
    transition: .3s;
    border-radius: 50%;
}

input:checked+.slider-mini {
    background-color: var(--primary);
}

input:checked+.slider-mini:before {
    transform: translateX(12px);
}

/* Consultation Specific Layouts */
/* Responsive vitals grid handled by grid-12 and col-spans */
.vitals-grid-mobile {
    grid-template-columns: repeat(12, 1fr);
}

@media (max-width: 768px) {
    .vitals-grid-mobile {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

.priority-toggle {
    display: flex;
    background: var(--surface-container-high);
    padding: 4px;
    border-radius: 12px;
    gap: 4px;
    width: fit-content;
}

.priority-btn {
    border: none;
    background: transparent;
    padding: 8px 20px;
    border-radius: 8px;
    font-size: 13px;
    font-weight: 600;
    color: var(--on-surface-variant);
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.priority-btn:hover {
    background: var(--surface-variant-hover);
}

.priority-btn.active {
    background: var(--primary);
    color: var(--on-primary);
    box-shadow: var(--shadow-s);
}

.priority-btn.active[data-value="Normal"] {
    background: var(--surface);
    color: var(--on-surface);
}

.priority-btn.active[data-value="High"] {
    background: #fff3e0;
    color: #ef6c00;
}

.priority-btn.active[data-value="Urgent"] {
    background: #ffebee;
    color: #c62828;
}

/* Vitals Redesign - Metric Cards */
.vitals-sidebar-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 8px;
}

.vital-metric-card {
    background: var(--surface);
    border: 1px solid var(--surface-variant);
    border-radius: 10px;
    padding: 8px 10px;
    transition: all 0.2s ease;
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.vital-metric-card:focus-within {
    border-color: var(--primary);
    box-shadow: 0 0 0 3px var(--primary-container);
    background: var(--surface-container-low);
}

.vital-card-header {
    display: flex;
    align-items: center;
    gap: 6px;
}

.vital-card-icon {
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    background: var(--surface-container-high);
    color: var(--on-surface-variant);
}

.vital-metric-card:focus-within .vital-card-icon {
    background: var(--primary-container);
    color: var(--primary);
}

.vital-card-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.vital-card-input-wrap {
    position: relative;
}

.vital-card-input-wrap input {
    width: 100%;
    border: none;
    background: transparent;
    padding: 0;
    font-size: 14px;
    font-weight: 700;
    color: var(--on-surface);
    outline: none;
}

.vital-card-unit {
    position: absolute;
    right: 0;
    bottom: 2px;
    font-size: 9px;
    font-weight: 600;
    color: var(--outline);
}

/* Notifications Redesign - Feature Cards */
.notifications-feature-grid {
    display: grid;
    grid-template-columns: repeat(1, 1fr);
    gap: 8px;
}

.notification-card-modern {
    background: var(--surface);
    border: 1px solid var(--surface-variant);
    border-radius: 12px;
    padding: 10px 12px;
    display: flex;
    align-items: center;
    gap: 12px;
    transition: all 0.2s ease;
}

.notification-card-modern:hover {
    background: var(--surface-container-low);
    border-color: var(--outline-variant);
}

.notification-card-modern.active {
    background: var(--primary-container);
    border-color: var(--primary);
}

.notif-card-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    background: var(--surface-container-high);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--primary);
}

.notif-card-content {
    flex: 1;
}

.notif-card-title {
    display: block;
    font-size: 12px;
    font-weight: 700;
    color: var(--on-surface);
}

.notif-card-desc {
    display: block;
    font-size: 10px;
    color: var(--on-surface-variant);
}

.notification-card-modern .switch {
    transform: scale(0.8);
    margin-right: -4px;
}

.notification-item-compact {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 12px;
    background: var(--surface-container-high);
    border-radius: 12px;
}

.toggle-label {
    font-size: 12px;
    font-weight: 600;
    color: var(--on-surface);
}

.lang-selector-group-v2 {
    display: flex;
    align-items: center;
    gap: 12px;
}

.lang-tag {
    font-size: 11px;
    font-weight: 700;
    color: var(--on-surface-variant);
}

.lang-options {
    display: flex;
    background: var(--surface-container-high);
    padding: 3px;
    border-radius: 8px;
    gap: 3px;
}

.lang-option {
    cursor: pointer;
    padding: 4px 10px;
    border-radius: 6px;
    display: flex;
    align-items: center;
}

.lang-option input {
    display: none;
}

.lang-option span {
    font-size: 11px;
    font-weight: 700;
}

.lang-option:has(input:checked) {
    background: var(--surface);
    color: var(--primary);
    box-shadow: var(--shadow-s);
}

/* Patient Snapshot UI */
.snapshot-card {
    background: var(--surface-container-low);
    border: 1px solid var(--surface-variant);
    border-radius: 8px;
    padding: 6px 12px;
    animation: slideDown 0.3s ease-out;
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    font-size: 13px;
    margin-bottom: 20px;
}

@keyframes slideDown {
    from {
        opacity: 0;
        transform: translateY(-5px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.snapshot-info-group {
    display: flex;
    align-items: center;
    gap: 8px;
    border-right: 1px solid var(--surface-variant);
    padding-right: 12px;
}

.snapshot-vitals-inline {
    display: flex;
    gap: 8px;
    align-items: center;
    margin-left: auto;
}

.vital-tag {
    display: flex;
    align-items: baseline;
    gap: 4px;
    background: var(--surface);
    padding: 2px 6px;
    border-radius: 4px;
    border: 1px solid var(--surface-variant);
}

.vital-label-xs {
    font-size: 9px;
    font-weight: 700;
    color: var(--on-surface-variant);
    text-transform: uppercase;
}

.vital-value-xs {
    font-weight: 700;
    color: var(--primary);
    font-size: 12px;
}

.badge-allergy-xs {
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
    padding: 1px 6px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
}

.badge-condition-xs {
    background: #fff3e0;
    color: #ef6c00;
    border: 1px solid #ffe0b2;
    padding: 1px 6px;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
}

/* Section Stacking */
.prescription-section {
    position: relative;
    z-index: 100;
}

.vitals-section {
    position: relative;
    z-index: 50;
}

.test-section {
    position: relative;
    z-index: 40;
}

.lang-label:has(input:checked) {
    background: var(--primary);
    color: white;
}

@media (max-width: 768px) {
    .prescription-item {
        background: transparent !important;
        border: none !important;
        padding: 0 !important;
        margin-bottom: 40px !important;
        border-bottom: 1px dashed var(--surface-variant) !important;
        padding-bottom: 24px !important;
    }

    .prescription-item:last-child {
        border-bottom: none !important;
    }

    .remove-row-btn {
        top: -24px !important;
        right: 0 !important;
    }
}

/* Sticky Footer Navigation */
.sticky-footer-bar {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    background: rgba(255, 255, 255, 0.85);
    /* Fallback */
    background: rgba(var(--surface-container-low-rgb, 255, 255, 255), 0.85);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border-top: 1px solid var(--surface-variant);
    padding: 12px 24px;
    z-index: 1000;
    display: flex;
    justify-content: space-between;
    align-items: center;
    box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.05);
}

.bottom-nav-spacer {
    height: 80px;
}

@media (min-width: 1024px) {
    .sticky-footer-bar {
        left: unset;
        right: 24px;
        bottom: 24px;
        width: calc(100% - 320px);
        max-width: 1100px;
        border-radius: 16px;
        border: 1px solid var(--surface-variant);
    }
}

/* --- Merged from passport.css --- */
/* Patient Health Passport - Premium UI Styles */

.passport-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 40px 24px;
    font-family: 'Google Sans', 'Inter', sans-serif;
    color: var(--passport-text-main);
}

/* Header Section */
.passport-header {
    background: var(--passport-primary);
    color: white;
    padding: 48px;
    border-radius: 32px;
    margin-bottom: 40px;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
    position: relative;
    overflow: hidden;
}

.passport-header::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(255, 255, 255, 0.05) 0%, transparent 70%);
    border-radius: 50%;
}

.passport-profile {
    display: flex;
    align-items: center;
    gap: 32px;
    position: relative;
    z-index: 2;
}

.passport-avatar {
    width: 120px;
    height: 120px;
    border-radius: 40px;
    object-fit: cover;
    border: 4px solid rgba(255, 255, 255, 0.2);
    background: var(--passport-accent);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 48px;
    font-weight: 700;
}

.passport-info h1 {
    font-size: 32px;
    font-weight: 700;
    margin-bottom: 8px;
    letter-spacing: -0.02em;
}

.passport-badges {
    display: flex;
    gap: 12px;
    margin-top: 16px;
}

.passport-badge {
    padding: 6px 16px;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 100px;
    font-size: 14px;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 8px;
}

/* Vitals Grid */
.vitals-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 24px;
    margin-bottom: 40px;
}

.vital-card {
    background: var(--passport-card);
    padding: 24px;
    border-radius: 24px;
    border: 1px solid var(--passport-border);
    transition: transform 0.2s, box-shadow 0.2s;
}

.vital-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 20px -5px rgba(0, 0, 0, 0.05);
}

.vital-icon {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
}

.vital-value {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 4px;
}

.vital-label {
    font-size: 14px;
    color: var(--passport-text-muted);
}

/* Master Timeline */
.passport-timeline {
    position: relative;
    padding-left: 40px;
}

.passport-timeline::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 0;
    bottom: 0;
    width: 2px;
    background: var(--passport-border);
}

.timeline-event {
    position: relative;
    margin-bottom: 48px;
}

.timeline-event::before {
    content: '';
    position: absolute;
    left: -40px;
    top: 12px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: white;
    border: 4px solid var(--passport-border);
    z-index: 2;
}

.timeline-content {
    background: var(--passport-card);
    border-radius: 24px;
    border: 1px solid var(--passport-border);
    padding: 32px;
}

.event-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 24px;
}

.event-date {
    font-size: 14px;
    font-weight: 600;
    color: var(--passport-accent);
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 4px;
}

.event-title {
    font-size: 20px;
    font-weight: 700;
}

.event-details {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

.detail-section h4 {
    font-size: 13px;
    font-weight: 700;
    color: var(--passport-text-muted);
    text-transform: uppercase;
    margin-bottom: 16px;
    letter-spacing: 0.05em;
    display: flex;
    align-items: center;
    gap: 8px;
}

.med-item {
    padding: 12px 16px;
    background: var(--passport-bg);
    border-radius: 12px;
    margin-bottom: 8px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.med-name {
    font-weight: 600;
}

.med-dosage {
    font-size: 13px;
    color: var(--passport-text-muted);
}

/* Print Styles */
@media print {
    body {
        background: white;
    }

    .passport-container {
        max-width: 100%;
        padding: 0;
    }

    .passport-header {
        border-radius: 0;
        box-shadow: none;
        background: #000 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .timeline-content {
        break-inside: avoid;
        border: 1px solid #eee;
    }

    .passport-timeline::before {
        display: none;
    }

    .timeline-event::before {
        display: none;
    }

    .passport-timeline {
        padding-left: 0;
    }

    .no-print {
        display: none !important;
    }
}

@media (max-width: 768px) {
    .passport-header {
        padding: 32px;
    }

    .passport-profile {
        flex-direction: column;
        text-align: center;
    }

    .event-details {
        grid-template-columns: 1fr;
    }
}

/* --- Merged from settings.css --- */
/* Settings Page Specific Styles */
.settings-container {
    display: grid;
    grid-template-columns: 1fr 350px;
    gap: 24px;
    align-items: start;
}

.settings-card {
    display: flex;
    flex-direction: column;
    gap: 24px;
    padding: 32px;
}

.settings-section-header {
    display: flex;
    gap: 16px;
    align-items: flex-start;
}

.settings-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}

.settings-text h3 {
    font-size: 18px;
    font-weight: 600;
}

.settings-text p {
    font-size: 14px;
    color: var(--on-surface-variant);
    margin-top: 2px;
}

.settings-content {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

/* Setting Items */
.setting-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 24px;
}

.setting-info label {
    display: block;
    font-weight: 500;
    color: var(--on-surface);
}

.setting-info p {
    font-size: 13px;
    color: var(--on-surface-variant);
    margin-top: 2px;
}

/* Theme Palette */
.theme-palette {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: flex-end;
    max-width: 200px;
}

.color-dot {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    border: 2px solid transparent;
    cursor: pointer;
    transition: var(--transition-standard);
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
}

.remove-image-btn {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--error);
    color: var(--on-error);
    border: 2px solid var(--surface);
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 5;
    transition: var(--transition-standard);
}

.color-dot:hover {
    transform: scale(1.1);
}

.color-dot.active {
    border-color: var(--outline);
    box-shadow: 0 0 0 2px var(--surface), 0 0 0 4px var(--primary);
}

.color-dot.custom-picker {
    background: var(--surface-container-highest);
    overflow: visible;
    color: var(--on-surface-variant);
    border: 1px solid var(--surface-variant);
}

/* Switch Styling */
.switch {
    position: relative;
    display: inline-block;
    width: 52px;
    height: 32px;
    flex-shrink: 0;
}

.switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--surface-container-highest);
    transition: .4s;
    border-radius: 999px;
}

.slider:before {
    position: absolute;
    content: "";
    height: 24px;
    width: 24px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    transition: .4s;
    border-radius: 50%;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

input:checked+.slider {
    background-color: var(--primary);
}

input:checked+.slider:before {
    transform: translateX(20px);
}

/* Profile Specific */
.profile-photo-section {
    display: flex;
    align-items: center;
    gap: 24px;
    margin-bottom: 32px;
}

.image-preview-wrapper {
    position: relative;
    width: 100px;
    height: 100px;
}

.image-preview {
    width: 100px;
    height: 100px;
    border-radius: 50%;
    overflow: hidden;
    border: 3px solid var(--surface-variant);
    box-shadow: var(--shadow-m);
}

.profile-meta h4 {
    font-size: 20px;
    font-weight: 600;
    color: var(--on-surface);
    margin: 0;
}

.profile-meta p {
    color: var(--on-surface-variant);
    margin: 4px 0 12px;
    font-size: 14px;
}

.days-selector {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}

.settings-form {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Tablet & Mobile Responsiveness */
@media (max-width: 900px) {
    .settings-container {
        grid-template-columns: 1fr;
    }

    .theme-palette {
        max-width: none;
        justify-content: flex-start;
        margin-top: 8px;
    }

    .setting-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }
}

@media (max-width: 600px) {
    .settings-card {
        padding: 20px;
    }

    .profile-photo-section {
        flex-direction: column;
        align-items: center;
        text-align: center;
    }

    .profile-meta {
        display: flex;
        flex-direction: column;
        align-items: center;
    }

    .profile-meta label.btn {
        width: 100%;
        justify-content: center;
    }

    .image-preview-wrapper {
        width: 120px;
        height: 120px;
    }

    .image-preview {
        width: 120px !important;
        height: 120px !important;
    }
}

/* Moved from settings.php and improved */
.profile-avatar-clickable:hover .avatar-hover-overlay {
    opacity: 1;
}

.day-chip input:checked+.chip-label {
    background: var(--primary);
    color: white;
}

.chip-label {
    padding: 6px 16px;
    border-radius: 20px;
    background: var(--surface-variant);
    font-size: 13px;
    transition: 0.2s;
    display: inline-block;
}

.font-segmented-container {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.font-btn {
    padding: 8px 16px;
    border-radius: var(--radius-m);
    background: var(--surface-container-highest);
    overflow: visible;
    border: 2px solid transparent;
    cursor: pointer;
    transition: var(--transition-standard);
    font-size: 13px;
    color: var(--on-surface-variant);
}

.font-btn.active {
    border-color: var(--primary);
    background: var(--primary-container);
    color: var(--primary);
    font-weight: 600;
}

.weight-slider-container {
    width: 100%;
    margin-top: 12px;
}

.weight-slider {
    width: 100%;
    height: 6px;
    border-radius: 3px;
    background: var(--surface-variant);
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    outline: none;
    cursor: pointer;
}

.weight-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--primary);
    border: 2px solid var(--surface);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

/* For Firefox */
.weight-slider::-moz-range-thumb {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    background: var(--primary);
    border: 2px solid var(--surface);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    cursor: pointer;
}

.color-dot {
    position: relative;
    border: none;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    cursor: pointer;
    transition: transform 0.2s, box-shadow 0.2s;
    display: flex;
    align-items: center;
    justify-content: center;
}

.color-dot.active {
    transform: scale(1.1);
    box-shadow: 0 0 0 3px var(--surface), 0 0 0 6px var(--primary);
    z-index: 2;
}

.color-dot .edit-icon {
    opacity: 0;
    transition: 0.2s;
}

.color-dot.active:hover .edit-icon {
    opacity: 1;
}

.color-dot.custom-picker-btn {
    background: linear-gradient(135deg, #ff0055, #00ff55, #0055ff);
    display: flex;
    align-items: center;
    justify-content: center;
}

.color-dot.custom-picker-btn i {
    width: 20px;
    height: 20px;
    color: #ffffff;
    filter: drop-shadow(0px 1px 2px rgba(0, 0, 0, 0.5));
}

/* --- Merged from followups.css --- */
/* followups.php styles */
/* Icon Colors */
.bg-primary-soft {
    background: var(--primary-container);
    color: var(--on-primary-container);
}

.bg-success-soft {
    background: #e6f4ea;
    color: #137333;
}

[data-theme="dark"] .bg-success-soft {
    background: #0f5132;
    color: #d1e7dd;
}

.bg-tertiary-soft {
    background: var(--tertiary-container);
    color: var(--on-tertiary-container);
}

/* Original table styles below */
.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.3px;
}

.status-sent {
    background: #e6f4ea;
    color: #1e7e34;
}

.status-pending {
    background: #fff8e1;
    color: #b08d00;
}

.patient-link {
    color: var(--primary);
    text-decoration: none;
    font-weight: 500;
    transition: opacity 0.2s;
}

.patient-link:hover {
    opacity: 0.7;
}

/* --- Merged from reminders.css --- */
/* reminders.php styles */
/* reminders.php styles */
/* Background Types */
.bg-primary-soft {
    background: linear-gradient(135deg, var(--primary) 0%, var(--primary-container) 100%);
    color: var(--on-primary);
}

.bg-success-soft {
    background: linear-gradient(135deg, #00c853 0%, #b9f6ca 100%);
    color: #fff;
}

.bg-tertiary-soft {
    background: linear-gradient(135deg, var(--tertiary) 0%, var(--tertiary-container) 100%);
    color: var(--on-tertiary);
}

.patient-info {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.patient-info .name {
    font-weight: 600;
    color: var(--on-surface);
    text-decoration: none;
}

.patient-info .name:hover {
    color: var(--primary);
}

.patient-info .sub-text {
    font-size: 11px;
    color: var(--on-surface-variant);
    opacity: 0.8;
}

.stat-pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 12px;
    background: var(--surface-container-high);
    border-radius: 100px;
    font-size: 12px;
    font-weight: 500;
    color: var(--on-surface);
}

.stat-pill.paused {
    background: var(--error-container);
    color: var(--on-error-container);
}

.progress-bar-mini {
    width: 60px;
    height: 10px;
    background: var(--surface-variant);
    border-radius: 2px;
    overflow: hidden;
    margin-top: 4px;
}

.progress-fill {
    height: 100%;
    background: var(--primary);
    border-radius: 2px;
}

.progress-fill.paused {
    background: var(--outline);
}

/* Modern Toggle Switch */
.toggle-switch {
    position: relative;
    display: inline-block;
    width: 44px;
    height: 24px;
}

.toggle-switch input {
    opacity: 0;
    width: 0;
    height: 0;
}

.toggle-slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: var(--surface-container-high);
    transition: .4s;
    border-radius: 24px;
    border: 1px solid var(--surface-variant);
}

.toggle-slider:before {
    position: absolute;
    content: "";
    height: 18px;
    width: 18px;
    left: 2px;
    bottom: 2px;
    background-color: var(--on-surface-variant);
    transition: .4s;
    border-radius: 50%;
}

.toggle-switch input:checked+.toggle-slider {
    background-color: var(--primary);
    border-color: var(--primary);
}

.toggle-switch input:checked+.toggle-slider:before {
    transform: translateX(20px);
    background-color: var(--on-primary);
}

.toggle-switch input:focus+.toggle-slider {
    box-shadow: 0 0 1px var(--primary);
}

/* --- Merged from reminder-view.css --- */
/* reminder-view.php styles */
.status-sent {
    background: #e6f4ea;
    color: #1e7e34;
}

.status-pending {
    background: #fff8e1;
    color: #b08d00;
}

.message-bubble {
    background: var(--surface-container-low);
    padding: 12px 14px;
    border-radius: 12px;
    border: 1px solid var(--surface-variant);
    font-size: 13px;
    color: var(--on-surface);
    max-width: 400px;
    line-height: 1.5;
}

/* AJAX Button Styles */
.btn-dispatch {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 16px;
    background: var(--primary);
    color: var(--on-primary);
    border: none;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.btn-dispatch:hover {
    background: var(--primary-hover);
    box-shadow: var(--shadow-2);
    transform: translateY(-1px);
}

.btn-dispatch:active {
    transform: translateY(0);
}

.btn-dispatch.loading {
    background: var(--surface-variant);
    color: var(--on-surface-variant);
    cursor: not-allowed;
    pointer-events: none;
}

@keyframes pulse-ring {
    0% {
        transform: scale(0.95);
        opacity: 1;
    }

    50% {
        transform: scale(1.05);
        opacity: 0.8;
    }

    100% {
        transform: scale(0.95);
        opacity: 1;
    }
}

.btn-dispatch.loading i {
    animation: spin 1s linear infinite;
}

/* --- Merged from whatsapp-preview.css --- */
/* WhatsApp Preview Styles */
.wa-preview-container {
    background: #e5ddd5;
    background-image: url('https://user-images.githubusercontent.com/15075759/28719144-86dc0f70-73b1-11e7-911d-60d70fcded21.png');
    padding: 24px;
    border-radius: 12px;
    margin-top: 16px;
    font-family: 'Segoe UI', 'Roboto', 'Helvetica Neue', Helvetica, Arial, sans-serif;
    position: relative;
    overflow: hidden;
}

.wa-bubble {
    background: #dcf8c6;
    padding: 8px 12px;
    border-radius: 8px;
    max-width: 85%;
    position: relative;
    box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
    font-size: 14.2px;
    line-height: 1.5;
    color: #111;
    word-wrap: break-word;
    white-space: pre-wrap;
}

.wa-bubble::before {
    content: '';
    position: absolute;
    top: 0;
    right: -8px;
    width: 0;
    height: 0;
    border: 10px solid transparent;
    border-top-color: #dcf8c6;
    border-left-color: #dcf8c6;
}

.wa-time {
    display: block;
    text-align: right;
    font-size: 11px;
    color: rgba(0, 0, 0, 0.45);
    margin-top: 4px;
    font-weight: normal;
}

.wa-preview-label {
    font-size: 12px;
    text-transform: uppercase;
    font-weight: 600;
    color: #667781;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    gap: 6px;
}

/* Formatting Toolbar */
.wa-toolbar {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
    flex-wrap: wrap;
    background: var(--surface-container-low);
    padding: 6px;
    border-radius: 8px;
    border: 1px solid var(--outline-variant);
}

.wa-tool-btn {
    padding: 6px 12px;
    font-size: 13px;
    border-radius: 6px;
    background: var(--surface);
    border: 1px solid var(--outline-variant);
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 5px;
    transition: all 0.2s;
    color: var(--on-surface);
}

.wa-tool-btn:hover {
    background: var(--surface-container-high);
}

.wa-var-badge {
    background: var(--primary-container);
    color: var(--on-primary-container);
    font-weight: 500;
    padding: 0 4px;
    border-radius: 4px;
}

/* Preview Formatting */
.wa-bold {
    font-weight: bold;
}

.wa-italic {
    font-style: italic;
}

.wa-strike {
    text-decoration: line-through;
}

/* Final Dark Mode Overrides (High Priority) */
[data-theme="dark"] {
    --primary: color-mix(in srgb, var(--primary-seed) 60%, #ffffff);
    --on-primary: color-mix(in srgb, var(--primary-seed) 80%, #000000);
    --primary-container: color-mix(in srgb, var(--primary-seed) 25%, #000000);
    --on-primary-container: color-mix(in srgb, var(--primary-seed) 30%, #ffffff);
    --surface: color-mix(in srgb, var(--primary-seed) 10%, #080808);
    --on-surface: #e2e2e6;
    --surface-variant: color-mix(in srgb, var(--primary-seed) 15%, #232529);
    --on-surface-variant: #c3c7cf;
    --outline: #8d9199;
    --outline-variant: color-mix(in srgb, var(--primary-seed) 20%, #232529);
    --surface-container-low: color-mix(in srgb, var(--primary-seed) 8%, #0f1115);
    --surface-container: color-mix(in srgb, var(--primary-seed) 10%, #14161a);
    --surface-container-high: color-mix(in srgb, var(--primary-seed) 12%, #1a1c21);
    --surface-container-highest: color-mix(in srgb, var(--primary-seed) 15%, #23252a);
    --secondary-container: color-mix(in srgb, var(--primary-seed) 10%, #1e2024);
    --on-secondary-container: #ffffff;
    --tertiary-container: color-mix(in srgb, #9c41ff 20%, #000000);
    --on-tertiary-container: #eaddff;
    --error: #ffb4ab;
    --on-error: #000000;
    --error-container: color-mix(in srgb, #ffb4ab 20%, #000000);
    --on-error-container: #ffdad6;
}

/* --- Living Mesh Background System --- */
.mesh-background {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    overflow: hidden;
    background: var(--surface);
    transition: background 0.5s ease;
}

.mesh-blob {
    position: absolute;
    width: 600px;
    height: 600px;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.15;
    z-index: -1;
    animation: meshRotate 20s infinite alternate ease-in-out;
}

[data-theme="dark"] .mesh-blob {
    opacity: 0.1;
}

.mesh-blob-1 {
    background: var(--primary);
    top: -10%;
    left: -10%;
    animation-delay: 0s;
}

.mesh-blob-2 {
    background: color-mix(in srgb, var(--primary) 60%, #ff00ff);
    bottom: -10%;
    right: -10%;
    animation-delay: -5s;
}

.mesh-blob-3 {
    background: color-mix(in srgb, var(--primary) 40%, #00ffff);
    top: 40%;
    left: 30%;
    width: 400px;
    height: 400px;
    animation-delay: -10s;
}

@keyframes meshRotate {
    0% {
        transform: translate(0, 0) rotate(0deg) scale(1);
    }

    33% {
        transform: translate(10%, 10%) rotate(120deg) scale(1.1);
    }

    66% {
        transform: translate(-5%, 15%) rotate(240deg) scale(0.9);
    }

    100% {
        transform: translate(0, 0) rotate(360deg) scale(1);
    }
}

/* Professional Theme Spotlight */
.cursor-spotlight {
    position: fixed;
    top: 0;
    left: 0;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, color-mix(in srgb, var(--primary) 15%, transparent) 0%, transparent 70%);
    border-radius: 50%;
    pointer-events: none;
    z-index: 9998;
    transform: translate(-50%, -50%);
    mix-blend-mode: plus-lighter;
}

/* End of Stylesheet */

.panel-badge {
    color: var(--primary);
    font-size: 1rem;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

/* --- Topbar (Header) Refinement --- */
/* --- Full-Size Pill Topbar --- */
header {
    height: auto !important;
    min-height: 3.5rem !important;
    width: calc(100% - 3rem) !important;
    /* Full space but floating */
    background: color-mix(in srgb, var(--primary) 8%, rgba(255, 255, 255, 0.7)) !important;
    backdrop-filter: blur(25px) saturate(200%);
    -webkit-backdrop-filter: blur(25px) saturate(200%);
    margin: 1rem 1.5rem 0 auto !important;
    border-radius: var(--radius-pill) !important;
    border: 1px solid rgba(255, 255, 255, 0.5) !important;
    position: sticky !important;
    top: 1rem;
    z-index: 1000;
    display: flex;
    align-self: flex-end !important;
    align-items: center;
    justify-content: space-between !important;
    padding: 0.5rem 2rem !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.08);
    transition: var(--transition-standard);
}

.page-identity-topbar {
    display: flex;
    align-items: center;
    gap: 0.85rem;
}

.topbar-icon {
    width: 32px;
    height: 32px;
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.topbar-icon i {
    width: 18px !important;
    height: 18px !important;
}

.topbar-title-group {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.topbar-title {
    font-size: 1.1rem !important;
    font-weight: 850 !important;
    letter-spacing: -0.02em;
    color: var(--primary);
    margin: 0 !important;
    line-height: 1;
}

.topbar-subtitle {
    font-size: 0.7rem !important;
    font-weight: 600;
    opacity: 0.6;
    margin: 2px 0 0 0 !important;
    color: var(--on-surface-variant);
}

/* Page Header Hidden */
.page-header-container {
    display: none !important;
}

/* Adjust Content Wrapper for floating header */
.content-wrapper {
    margin-top: 1rem !important;
    position: relative;
    padding: 0 1.5rem 1.5rem 1.5rem;
}

/* Adjust Content Wrapper to account for the space saved */
.content-wrapper {
    margin-top: 1rem !important;
}

[data-theme="dark"] header {
    background: color-mix(in srgb, var(--primary) 15%, rgba(15, 18, 20, 0.7)) !important;
    border: 1px solid rgba(255, 255, 255, 0.1) !important;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.4);
}

/* --- Water Drop Notifications (Samsung/Indroid Style) --- */
.nm-drop-container {
    position: fixed;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: fit-content;
    z-index: 9999;
    display: flex;
    flex-direction: column;
    align-items: center;
    pointer-events: none;
    padding-top: 24px;
}

.nm-drop-toast {
    position: relative;
    width: 56px;
    height: 56px;
    background: rgba(255, 255, 255, 0.65) !important;
    backdrop-filter: blur(20px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(180%) !important;
    border: 1px solid rgba(255, 255, 255, 0.45) !important;
    border-radius: 28px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.06), 0 4px 12px rgba(0, 97, 164, 0.04) !important;
    display: flex;
    align-items: center;
    padding: 0 9px;
    overflow: hidden;
    pointer-events: auto;
    transition: width 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
                border-radius 0.4s cubic-bezier(0.34, 1.56, 0.64, 1),
                padding 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
    animation: dropDownBounce 0.6s cubic-bezier(0.175, 0.885, 0.32, 1.275) forwards;
    margin-bottom: 12px;
}

.nm-drop-toast.expanding {
    width: clamp(320px, 45vw, 500px);
    border-radius: 28px;
    padding: 0 12px;
}

.drop-icon-wrapper {
    width: 38px;
    height: 38px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
    border-radius: 50%;
    box-shadow: var(--shadow-soft);
    transition: all 0.3s ease;
}

.drop-content {
    opacity: 0;
    visibility: hidden;
    margin-left: 12px;
    overflow: hidden;
    white-space: nowrap;
    transition: opacity 0.2s ease, visibility 0s 0.2s;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.nm-drop-toast.expanding .drop-content {
    opacity: 1;
    visibility: visible;
    transition: opacity 0.25s ease 0.15s, visibility 0s 0s;
}

.drop-title {
    display: block;
    font-size: 13px;
    font-weight: 700;
    color: var(--on-surface);
    line-height: 1.2;
}

.drop-message {
    display: block;
    font-size: 11.5px;
    color: var(--on-surface-variant);
    font-weight: 500;
    line-height: 1.2;
    margin-top: 2px;
}

@keyframes dropDownBounce {
    0% {
        transform: translateY(-100px) scale(0.4);
        opacity: 0;
    }
    70% {
        transform: translateY(12px) scale(1.1);
        opacity: 1;
    }
    100% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
}

@keyframes dropUpExit {
    0% {
        transform: translateY(0) scale(1);
        opacity: 1;
    }
    30% {
        transform: translateY(6px) scale(1.05);
        opacity: 1;
    }
    100% {
        transform: translateY(-100px) scale(0.4);
        opacity: 0;
    }
}

.nm-drop-toast.closing {
    animation: dropUpExit 0.6s cubic-bezier(0.4, 0, 0.2, 1) forwards !important;
}

/* Premium Colors and Backgrounds for Light Mode */
.nm-drop-toast.success .drop-icon-wrapper {
    background: rgba(46, 125, 50, 0.12) !important;
    color: #2e7d32 !important;
}

.nm-drop-toast.error .drop-icon-wrapper {
    background: rgba(186, 26, 26, 0.12) !important;
    color: var(--error) !important;
}

.nm-drop-toast.warning .drop-icon-wrapper {
    background: rgba(245, 158, 11, 0.12) !important;
    color: #b45309 !important;
}

.nm-drop-toast.info .drop-icon-wrapper {
    background: var(--primary-container) !important;
    color: var(--primary) !important;
}

/* Material 3 Tonal Button */
.btn-tonal {
    background: linear-gradient(180deg, var(--primary-container) 0%, color-mix(in srgb, var(--primary-container) 95%, black) 100%);
    color: var(--on-primary-container);
    border: 1px solid color-mix(in srgb, var(--primary) 10%, transparent);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.btn-tonal:hover {
    background: color-mix(in srgb, var(--primary-container) 90%, black);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

/* Glass Variant */
.btn-glass {
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: var(--on-surface);
}

.btn-glass:hover {
    background: rgba(255, 255, 255, 0.2);
    border-color: rgba(255, 255, 255, 0.3);
}

/* Loading State */
.btn-loading {
    position: relative;
    color: transparent !important;
    pointer-events: none;
}

.btn-loading::after {
    content: "";
    position: absolute;
    width: 20px;
    height: 20px;
    top: 50%;
    left: 50%;
    margin-top: -10px;
    margin-left: -10px;
    border: 2px solid rgba(255, 255, 255, 0.3);
    border-radius: 50%;
    border-top-color: #fff;
    animation: btnSpin 0.8s linear infinite;
    z-index: 2;
}

@keyframes btnSpin {
    to {
        transform: rotate(360deg);
    }
}

@keyframes modalEnter {
    from {
        opacity: 0;
        transform: scale(0.9) translateY(20px);
    }

    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.modal-content {
    animation: modalEnter 0.4s cubic-bezier(0.2, 0, 0, 1) forwards;
}

[data-theme="dark"] .nm-drop-toast {
    background: rgba(30, 41, 59, 0.65) !important; /* Premium dark glass */
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35), 0 4px 12px rgba(0, 0, 0, 0.2) !important;
}

[data-theme="dark"] .nm-drop-toast.success .drop-icon-wrapper {
    background: rgba(74, 222, 128, 0.15) !important;
    color: #4ade80 !important;
}

[data-theme="dark"] .nm-drop-toast.error .drop-icon-wrapper {
    background: rgba(255, 180, 171, 0.15) !important;
    color: #ffb4ab !important;
}

[data-theme="dark"] .nm-drop-toast.warning .drop-icon-wrapper {
    background: rgba(251, 191, 36, 0.15) !important;
    color: #fbbf24 !important;
}

[data-theme="dark"] .nm-drop-toast.info .drop-icon-wrapper {
    background: rgba(158, 202, 255, 0.15) !important;
    color: #9ecaff !important;
}

/* Animations */
@keyframes pageEntrance {
    from {
        opacity: 0;
        transform: translateY(20px) scale(0.98);
    }

    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

.animate-page-entrance {
    animation: pageEntrance 0.7s cubic-bezier(0.2, 0, 0, 1) forwards;
}

[data-theme="dark"] .content-wrapper {
    background:
        radial-gradient(at 0% 0%, color-mix(in srgb, var(--primary) 10%, transparent) 0px, transparent 50%),
        radial-gradient(at 100% 100%, color-mix(in srgb, var(--primary) 5%, transparent) 0px, transparent 50%),
        #0a0b0d;
}

/* --- Patient Registration Wizard Refinements --- */
.card {
    background: var(--surface) !important;
}

.stepper-integrated-header {
    background: var(--surface);
    border-bottom: 1px solid var(--surface-variant);
    margin-bottom: 24px;
}

.stepper-container {
    display: flex;
    justify-content: space-between;
    position: relative;
    padding-bottom: 12px;
}

.stepper-line {
    position: absolute;
    top: 14px;
    left: 10%;
    right: 10%;
    height: 10px;
    background: var(--surface-variant);
    z-index: 1;
}

.stepper-line-progress {
    height: 100%;
    background: var(--primary);
    width: 0%;
    transition: width 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.step-item {
    position: relative;
    z-index: 2;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: 80px;
}

.step-badge {
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--surface-container-highest);
    overflow: visible;
    color: var(--on-surface-variant);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 12px;
    border: 2px solid transparent;
    transition: all 0.3s ease;
}

.step-item.active .step-badge {
    background: var(--primary);
    color: var(--on-primary);
    transform: scale(1.1);
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent);
}

.step-item.completed .step-badge {
    background: var(--primary-container);
    color: var(--primary);
}

.step-label {
    font-size: 11px;
    font-weight: 600;
    color: var(--on-surface-variant);
    white-space: nowrap;
    transition: color 0.3s ease;
}

.step-item.active .step-label {
    color: var(--primary);
}

.form-step {
    display: none;
    animation: fadeInStep 0.4s ease-out;
}

.form-step.active {
    display: block;
}

@keyframes fadeInStep {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.field-floating input:focus+label,
.field-floating input:not(:placeholder-shown)+label {
    color: var(--primary);
}

.field-floating input,
.custom-select .select-box {
    height: 2.5rem !important;
    /* 40px */
    border-radius: 1.5rem !important;
    /* ~24px */
    background: var(--surface) !important;
    border: 1px solid var(--outline-variant) !important;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
    box-sizing: border-box !important;
    width: 100% !important;
}

.field-floating input {
    padding: 0.6rem 1rem 0.1rem !important;
    font-size: 0.875rem !important;
    font-weight: 500 !important;
}

.field-floating input:focus {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--primary) 12%, transparent) !important;
    outline: none !important;
}

.image-preview {
    width: 2.75rem;
    height: 2.75rem;
    border-radius: 0.75rem;
    background: var(--surface-container-high);
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--on-surface-variant);
    overflow: hidden;
    border: 1px solid var(--surface-variant);
}

.image-preview img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.form-mandatory-hint {
    background: var(--secondary-container);
    color: var(--on-secondary-container);
    padding: 0.5rem 0.75rem;
    border-radius: 0.5rem;
    font-size: 0.7rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    width: 100%;
}

.custom-select .select-box {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 0 1rem;
    position: relative;
    cursor: pointer;
}

.custom-select.active .select-box {
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 0.25rem color-mix(in srgb, var(--primary) 12%, transparent) !important;
    background: var(--surface) !important;
}

.select-box-label {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--on-surface-variant);
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    background: transparent;
    padding: 0 0.25rem;
    z-index: 10;
}

.custom-select.has-value .select-box-label,
.custom-select.active .select-box-label {
    top: 0;
    font-size: 0.65rem;
    font-weight: 700;
    color: var(--primary);
    background: var(--surface);
    transform: translateY(-50%);
    opacity: 1;
}

.select-box-display {
    margin-top: 0.125rem;
    font-size: 0.875rem;
    font-weight: 500;
    color: var(--on-surface);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    min-height: 1.25rem;
}

.age-badge {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: var(--primary-container);
    color: var(--primary);
    padding: 2px 8px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 700;
    pointer-events: none;
    display: none;
}

.pcv2-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    display: none;
    align-items: center;
    justify-content: center;
    z-index: 3000;
}

.pcv2-overlay.active {
    display: flex;
}

.pcv2-box {
    background: var(--surface);
    border-radius: 1.5rem;
    width: 90%;
    max-width: 25rem;
    overflow: hidden;
    box-shadow: 0 1.5rem 3rem rgba(0, 0, 0, 0.2);
    animation: modalEnter 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}

.pcv2-header {
    padding: 1.25rem 1.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--surface-variant);
}

.pcv2-header h3 {
    font-size: 1.125rem;
    font-weight: 600;
    margin: 0;
}

.pcv2-body {
    padding: 1.5rem;
}

.pcv2-footer {
    padding: 1rem 1.5rem;
    background: var(--surface-container-low);
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
}

/* --- High Fidelity Dropdown & z-index Fixes --- */
.custom-select.active {
    z-index: 10001 !important;
}

.select-dropdown {
    z-index: 10005 !important;
    background: var(--surface) !important;
    border: 1px solid var(--outline-variant) !important;
    box-shadow: var(--shadow-l) !important;
    border-radius: 1.25rem !important;
}

.select-search {
    padding: 0.75rem !important;
    background: var(--surface) !important;
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid var(--outline-variant) !important;
}

.select-search input {
    background: var(--surface-container-low) !important;
    border: 1px solid var(--outline-variant) !important;
    border-radius: 1rem !important;
    padding: 0.6rem 1rem !important;
    color: var(--on-surface) !important;
    height: 2.25rem !important;
}

/* Multi-select Tags refinement */
.select-box-display {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    padding-top: 0.65rem !important;
}

.badge-tag {
    background: var(--primary-container) !important;
    color: var(--primary) !important;
    border-radius: 0.75rem !important;
    padding: 0.125rem 0.5rem !important;
    font-size: 0.7rem !important;
    font-weight: 600 !important;
    border: 1px solid color-mix(in srgb, var(--primary) 20%, transparent) !important;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.tag-remove {
    color: var(--primary) !important;
    opacity: 0.7;
    font-size: 1rem;
    line-height: 1;
    cursor: pointer;
    display: flex;
    align-items: center;
}

.tag-remove:hover {
    opacity: 1;
    background: color-mix(in srgb, var(--primary) 10%, transparent) !important;
}

/* Utility Heights */
.h-min-40 {
    min-height: 2.5rem !important;
}

.h-min-32 {
    min-height: 2rem !important;
}

.h-40 {
    height: 2.5rem !important;
}

.h-36 {
    height: 2.25rem !important;
}

/* Ensure card footer stays below dropdowns */
.card-footer {
    position: relative;
    z-index: 5;
}

/* Fix for Patient search results z-index */
.search-results-list {
    z-index: 10010 !important;
    box-shadow: var(--shadow-l) !important;
    border-radius: 1rem !important;
    background: var(--surface) !important;
    border: 1px solid var(--outline-variant) !important;
}


.wizard-v3 {
    background: var(--surface);
    border-radius: 2.5rem !important;
    box-shadow: var(--shadow-l) !important;
    display: flex;
    flex-direction: column;
    border: 1px solid var(--outline-variant) !important;
    margin-bottom: 2rem;
    position: relative;
    overflow: visible !important;
    /* Critical for protruding glowing dots & dropdowns */
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.wizard-v3-header {
    padding: 1rem 2rem 1.5rem;
    /* User requested specific padding */
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 1px solid var(--outline-variant);
    background: var(--surface);
    border-radius: 2.5rem 2.5rem 0 0;
    /* Explicit theme radius */
}

.wizard-v3-title-group {
    flex: 1;
}

.wizard-v3-title {
    font-size: 1.4rem;
    font-weight: 800;
    color: var(--on-surface);
    letter-spacing: -0.5px;
    margin: 0;
}

.wizard-v3-subtitle {
    font-size: 0.8rem;
    color: var(--on-surface-variant);
    font-weight: 500;
    margin: 0;
}

/* Minimalist Process Dots */
.wizard-v3-progress-dots {
    display: flex;
    gap: 0.75rem;
    align-items: center;
    padding-left: 1.5rem;
}

.v3-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--surface-container-highest);
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
}

.v3-dot.active {
    background: var(--primary);
    transform: scale(1.4);
    box-shadow: 0 0 10px color-mix(in srgb, var(--primary) 30%, transparent);
}

.v3-dot.completed {
    background: var(--primary);
}

/* High-Fidelity Animated Progress Bar */
.wizard-v3-progress-container {
    position: absolute;
    bottom: -1px;
    left: 0;
    right: 0;
    height: 10px;
    background: var(--surface-container-highest);
    overflow: visible;
    z-index: 100;
}

.wizard-v3-progress-bar {
    height: 100%;
    background-image: linear-gradient(45deg,
            rgba(255, 255, 255, 0.3) 25%,
            transparent 25%,
            transparent 50%,
            rgba(255, 255, 255, 0.3) 50%,
            rgba(255, 255, 255, 0.3) 75%,
            transparent 75%,
            transparent);
    background-size: 30px 30px;
    background-color: var(--primary);
    /* Theme synced */
    width: 33.33%;
    transition: width 0.8s cubic-bezier(0.34, 1.56, 0.64, 1);
    box-shadow: 0 0 15px var(--primary);
    position: relative;
    z-index: 1;
}

[data-theme="dark"] .wizard-v3 {
    background: var(--surface-container);
    border-color: rgba(255, 255, 255, 0.05) !important;
    box-shadow: 0 20px 80px rgba(0, 0, 0, 0.6) !important;
}

[data-theme="dark"] .wizard-v3-header,
[data-theme="dark"] .wizard-v3-body,
[data-theme="dark"] .wizard-v3-footer {
    background: var(--surface-container) !important;
    border-color: rgba(255, 255, 255, 0.05) !important;
}

[data-theme="dark"] .wizard-v3-header {
    background: var(--surface-container-high) !important;
    /* Slightly lighter for separation */
}

[data-theme="dark"] .wizard-v3-body {
    background: radial-gradient(circle at 50% 0%, rgba(var(--primary-seed-rgb), 0.03) 0%, transparent 70%);
}

[data-theme="dark"] .field-floating input,
[data-theme="dark"] .custom-select .select-box {
    background: var(--surface-container-high) !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
    color: #e2e2e6 !important;
}

[data-theme="dark"] .field-floating input:focus,
[data-theme="dark"] .custom-select.active .select-box {
    background: var(--surface-container-highest) !important;
    border-color: var(--primary) !important;
    box-shadow: 0 0 0 4px rgba(var(--primary-seed-rgb), 0.15), 0 0 20px rgba(var(--primary-seed-rgb), 0.1) !important;
}

[data-theme="dark"] .select-dropdown {
    background: #1e2026 !important;
    border-color: rgba(255, 255, 255, 0.12) !important;
    box-shadow: 0 24px 48px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .select-search {
    background: #1e2026 !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
}

[data-theme="dark"] .select-search input {
    background: #121418 !important;
    border-color: rgba(255, 255, 255, 0.1) !important;
}

[data-theme="dark"] .view-identity-banner {
    background: #121418 !important;
    border-color: rgba(255, 255, 255, 0.08) !important;
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.5) !important;
}

[data-theme="dark"] .view-identity-banner.slim {
    background: #15171c !important;
    /* Slightly lighter for depth */
}

[data-theme="dark"] .view-avatar-placeholder {
    border-color: var(--surface-container-highest);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}

[data-theme="dark"] .wizard-v3-progress-bar {
    animation: v3-progress-move 1s linear infinite;
    position: relative;
    overflow: hidden;
    box-shadow: 0 0 15px color-mix(in srgb, var(--primary) 30%, transparent);
}

/* Laser Sweep Flash */
.wizard-v3-progress-bar::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent);
    animation: v3-laser-sweep 1.2s infinite;
    z-index: 2;
}

.v3-progress-dot {
    position: absolute;
    top: 50%;
    left: 0%;
    transform: translate(-50%, -50%);
    width: 20px;
    height: 20px;
    background: var(--primary);
    /* Theme synced */
    border: 3px solid var(--surface);
    border-radius: 50%;
    box-shadow: 0 0 20px var(--primary);
    transition: left 0.8s cubic-bezier(0.2, 0, 0, 1);
    z-index: 9999;
    pointer-events: none;
    animation: v3-dot-pulse 2s infinite ease-in-out;
}

@keyframes v3-progress-move {
    from {
        background-position: 0 0;
    }

    to {
        background-position: 30px 0;
    }
}

@keyframes v3-laser-sweep {
    0% {
        transform: translateX(-100%);
    }

    100% {
        transform: translateX(100%);
    }
}

@keyframes v3-dot-pulse {
    0% {
        box-shadow: 0 0 10px var(--primary);
    }

    50% {
        box-shadow: 0 0 25px var(--primary);
    }

    100% {
        box-shadow: 0 0 10px var(--primary);
    }
}

.wizard-v3-body {
    padding: 1.5rem 2rem;
    /* Matches header horizontal padding */
    background: var(--surface);
}

.wizard-v3-footer {
    padding: 1.5rem 2rem 2.5rem;
    /* Matches header padding */
    background: var(--surface);
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    border-radius: 0 0 2.5rem 2.5rem;
    margin-top: auto;
    border-top: 1px solid var(--outline-variant);
    width: 100%;
    box-sizing: border-box;
}

.footer-left {
    display: flex !important;
    align-items: center !important;
    flex: 1;
}

.footer-right {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 1rem;
    flex: 1;
}

/* Fix for Multi-step Dropdowns */
/* Fix for Multi-step Dropdowns */
.wizard-v3 .custom-select.active .select-dropdown {
    z-index: 20000 !important;
}

/* ==========================================================================
   Clinical View System (Liquid Glass)
   ========================================================================== */
.clinical-view-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: 2rem;
    animation: slideUpFade 0.6s ease-out;
}

.view-identity-banner {
    background: linear-gradient(135deg, var(--primary-container) 0%, var(--surface-container) 100%);
    border-radius: 2.5rem;
    padding: 2.5rem;
    display: flex;
    align-items: center;
    gap: 2.5rem;
    border: 1px solid var(--outline-variant);
    margin-bottom: 2rem;
    position: relative;
    overflow: hidden;
}

.view-identity-banner::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -10%;
    width: 300px;
    height: 300px;
    background: radial-gradient(circle, var(--primary) 0%, transparent 70%);
    opacity: 0.05;
    pointer-events: none;
}

.view-avatar-large {
    width: 120px;
    height: 120px;
    border-radius: 2rem;
    object-fit: cover;
    box-shadow: 0 12px 24px rgba(var(--primary-rgb), 0.2);
    border: 4px solid var(--surface);
}

.view-avatar-placeholder {
    width: 120px;
    height: 120px;
    border-radius: 2rem;
    background: var(--primary);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    font-weight: 800;
    box-shadow: 0 12px 24px rgba(var(--primary-rgb), 0.2);
    border: 4px solid var(--surface);
}

.view-identity-info h1 {
    font-size: 2.2rem;
    font-weight: 800;
    color: var(--on-surface);
    margin: 0 0 0.5rem 0;
    letter-spacing: -0.5px;
}

.view-identity-meta {
    display: flex;
    gap: 1.5rem;
    color: var(--on-surface-variant);
    font-size: 0.9rem;
    align-items: center;
}

/* Slim Mode for Screen Fitting */
.view-identity-banner.slim {
    padding: 1rem 2rem;
    gap: 1.5rem;
    margin-bottom: 1.5rem;
    border-radius: 1.5rem;
}

.view-identity-banner.slim .view-avatar-large,
.view-identity-banner.slim .view-avatar-placeholder {
    width: 64px;
    height: 64px;
    font-size: 1.5rem;
    border-radius: 1.2rem;
    border-width: 2px;
}

.view-identity-banner.slim .view-identity-info h1 {
    font-size: 1.4rem;
    margin-bottom: 0.2rem;
}

.view-identity-banner.slim .view-identity-meta {
    gap: 1rem;
    font-size: 0.85rem;
}

.view-section-card.compact {
    padding: 1.2rem !important;
    gap: 1rem !important;
}

.view-section-card.compact .view-section-header {
    margin-bottom: 0.8rem;
}

.view-section-card.compact .view-section-header h2 {
    font-size: 1.1rem;
}

.scrollable-y-300 {
    max-height: 300px;
    overflow-y: auto;
}

.scrollable-y-400 {
    max-height: 400px;
    overflow-y: auto;
}

.scrollable-y-500 {
    max-height: 500px;
    overflow-y: auto;
}

.view-identity-meta span {
    font-size: 0.95rem;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.view-section-card {
    background: var(--surface);
    border-radius: 2rem;
    border: 1px solid var(--outline-variant);
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: var(--shadow-sm);
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.view-section-card:hover {
    box-shadow: var(--shadow-md);
}

.view-section-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 2rem;
    padding-bottom: 1rem;
    border-bottom: 1px dashed var(--outline-variant);
}

.view-section-header i {
    width: 24px;
    height: 24px;
    color: var(--primary);
}

.view-section-header h2 {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--on-surface);
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 1px;
}

/* Vital Cards */
.vitals-v3-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
    gap: 1.5rem;
}

.vital-status-card {
    padding: 1.5rem;
    background: var(--surface-container-low);
    border-radius: 1.5rem;
    border: 1px solid var(--outline-variant);
    display: flex;
    flex-direction: column;
    gap: 1rem;
    position: relative;
    overflow: hidden;
}

.vital-status-card::before {
    content: '';
    position: absolute;
    bottom: -10px;
    right: -10px;
    width: 60px;
    height: 60px;
    opacity: 0.05;
    background: currentColor;
    border-radius: 50%;
}

.vital-icon-box {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.vital-icon-box.heart {
    background: #ffebee;
    color: #d32f2f;
}

.vital-icon-box.temp {
    background: #fff3e0;
    color: #ef6c00;
}

.vital-icon-box.pulse {
    background: #e8f5e9;
    color: #2e7d32;
}

.vital-icon-box.spo2 {
    background: #e3f2fd;
    color: #1976d2;
}

.vital-icon-box.weight {
    background: #f3e5f5;
    color: #7b1fa2;
}

.vital-icon-box.height {
    background: #e0f2f1;
    color: #00796b;
}

.vital-label {
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--on-surface-variant);
}

.vital-value {
    font-size: 1.5rem;
    font-weight: 800;
    color: var(--on-surface);
    display: flex;
    align-items: baseline;
    gap: 0.25rem;
}

.vital-unit {
    font-size: 0.9rem;
    font-weight: 500;
    color: var(--on-surface-variant);
}

/* Data Mapping */
.clinical-data-mapping {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
}

.data-point {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.data-point-label {
    font-size: 0.85rem;
    font-weight: 700;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.data-point-value {
    font-size: 1.1rem;
    color: var(--on-surface);
    font-weight: 500;
}

.badge-v3-issue {
    background: var(--secondary-container);
    color: var(--on-secondary-container);
    padding: 0.5rem 1rem;
    border-radius: 12px;
    font-size: 0.9rem;
    font-weight: 600;
    border: 1px solid var(--outline-variant);
}

/* Clinical Notes Area */
.view-notes-content {
    background: var(--surface-container);
    border-radius: 1.5rem;
    padding: 1.5rem;
    font-size: 1.1rem;
    line-height: 1.6;
    color: var(--on-surface);
    border-left: 4px solid var(--primary);
    white-space: pre-wrap;
}

/* Prescription Table Enhancements */
.prescription-row-v3 {
    border-bottom: 1px solid var(--outline-variant);
    transition: background 0.2s;
}

.prescription-row-v3:hover {
    background: var(--surface-container-low);
}

.med-info {
    display: flex;
    flex-direction: column;
}

.med-name {
    font-weight: 700;
    color: var(--on-surface);
    font-size: 1.1rem;
}

.med-type {
    font-size: 0.8rem;
    color: var(--primary);
    font-weight: 600;
    text-transform: uppercase;
}

/* Status Badges */
.badge-status-v3 {
    padding: 0.25rem 0.75rem;
    border-radius: 8px;
    font-size: 0.75rem;
    font-weight: 800;
    letter-spacing: 0.5px;
}

.badge-status-v3.normal {
    background: #e8f5e9;
    color: #2e7d32;
}

.badge-status-v3.abnormal {
    background: #ffebee;
    color: #c62828;
    animation: pulse-red 2s infinite;
}

.badge-status-v3.pending {
    background: #fff3e0;
    color: #ef6c00;
}

.badge-status-v3.completed {
    background: #e3f2fd;
    color: #1565c0;
}

@keyframes pulse-red {
    0% {
        box-shadow: 0 0 0 0 rgba(198, 40, 40, 0.4);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(198, 40, 40, 0);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(198, 40, 40, 0);
    }
}

/* Invisible Pagination Wrapper (No UI Change) */
.dt-container {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.dt-footer {
    display: flex;
    justify-content: flex-end;
    padding: 0 0 1rem 0;
    margin-top: 0;
}

.dt-info {
    display: none;
    /* Hide "Showing X of Y" info as requested by "right bottom la pagination" only */
}

.pagination {
    display: flex;
    gap: 8px;
}

.page-btn {
    min-width: 36px;
    height: 36px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    border: 1px solid var(--outline-variant);
    background: var(--surface-container-low);
    color: var(--on-surface);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
}

.page-btn i {
    width: 18px;
    height: 18px;
}

.page-btn:hover:not([disabled]) {
    background: var(--primary-container);
    color: var(--on-primary-container);
    border-color: var(--primary);
}

.page-btn.active {
    background: var(--primary);
    color: var(--on-primary);
    border-color: var(--primary);
    box-shadow: var(--shadow-s);
}

.page-btn[disabled] {
    opacity: 0.3;
    cursor: not-allowed;
    background: var(--surface-variant) !important;
}

[data-theme="dark"] .page-btn {
    background: #25262b;
    border-color: rgba(255, 255, 255, 0.1);
}





/* Modern Typography & Transitions */
:root {
    --card-radius: 20px;
    --transition-smooth: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* Redesigned Pharmacy POS Styles */
.pos-items-container {
    display: flex;
    flex-direction: column;
    gap: 16px;
    margin-top: 20px;
}

.pos-item-card {
    background: var(--surface);
    border: 1px solid var(--outline-variant);
    border-radius: var(--card-radius);
    padding: 16px;
    display: grid;
    grid-template-columns: 1fr 100px 120px 120px 40px;
    align-items: center;
    gap: 20px;
    transition: var(--transition-smooth);
    position: relative;
    box-shadow: var(--shadow-s);
}

.pos-item-card:hover {
    box-shadow: var(--shadow-m);
    border-color: var(--primary);
    transform: translateY(-2px);
}

.pos-item-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.med-search-wrapper {
    position: relative;
    width: 100%;
}

.med-search-input {
    width: 100%;
    height: 48px;
    border-radius: 14px;
    border: 1px solid var(--outline-variant);
    padding: 0 16px;
    background: var(--surface-container-low);
    color: var(--on-surface);
    font-weight: 500;
    transition: var(--transition-smooth);
}

.med-search-input:focus {
    border-color: var(--primary);
    background: var(--surface);
    box-shadow: 0 0 0 4px var(--primary-container);
}

.med-results {
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 8px);
    background: var(--surface-container-high);
    z-index: 9999;
    display: none;
    border-radius: 18px;
    box-shadow: 0 16px 48px rgba(0, 0, 0, 0.2);
    max-height: 350px;
    overflow-y: auto;
    border: 1px solid var(--outline-variant);
    backdrop-filter: blur(15px);
}

.med-results .search-item {
    padding: 14px 20px;
    cursor: pointer;
    border-bottom: 1px solid var(--outline-variant);
    transition: var(--transition-smooth);
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.med-results .search-item:last-child {
    border-bottom: none;
}

.med-results .search-item:hover {
    background: var(--primary-container);
}

/* Item Meta Tags */
.price-box {
    text-align: right;
    min-width: 100px;
}

.price-tag {
    color: var(--primary);
    font-weight: 700;
    font-size: 14px;
}

.stock-tag {
    font-size: 11px;
    color: var(--on-surface-variant);
    background: var(--secondary-container);
    padding: 2px 8px;
    border-radius: 20px;
}

.stock-low {
    background: var(--error-container);
    color: var(--error);
    font-weight: 700;
}

/* Quantity Controls */
.qty-control-wrapper {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100%;
}

.med-qty-input {
    width: 100%;
    height: 44px;
    border-radius: 12px;
    border: 1px solid var(--outline-variant);
    text-align: center;
    background: var(--surface-container);
    color: var(--on-surface);
    font-size: 16px;
    font-weight: 700;
}

.med-qty-label {
    font-size: 10px;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Row Totals */
.row-total-container {
    text-align: right;
    min-width: 100px;
}

.row-rate {
    display: block;
    font-size: 11px;
    opacity: 0.6;
    margin-bottom: 2px;
}

.row-total {
    font-size: 18px;
    font-weight: 800;
    color: var(--primary);
}

/* Remove Button */
.remove-item-btn {
    width: 36px;
    height: 36px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--error);
    transition: var(--transition-smooth);
    cursor: pointer;
    background: transparent;
    border: none;
}

.remove-item-btn:hover {
    background: var(--error-container);
}

/* Headers for List (Modern minimalist style) */
.pos-list-header {
    display: grid;
    grid-template-columns: 1fr 100px 120px 120px 40px;
    gap: 20px;
    padding: 0 16px;
    margin-bottom: 12px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--on-surface-variant);
    opacity: 0.7;
    letter-spacing: 1px;
}

/* Animations */
.spin {
    animation: rotate 2s linear infinite;
}

@keyframes rotate {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.animate-in {
    animation: slideUp 0.3s cubic-bezier(0, 0, 0.2, 1);
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(10px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Mobile Optimization for Cart Items */
@media (max-width: 768px) {
    .pos-item-card {
        grid-template-columns: 1fr auto;
        gap: 12px;
    }

    .pos-list-header {
        display: none;
    }

    .qty-control-wrapper {
        order: 2;
        width: 100px;
    }

    .price-box {
        order: 3;
    }

    .remove-item-btn {
        position: absolute;
        top: 12px;
        right: 12px;
    }
}

/* portal.css */
body,
html {
    margin: 0;
    padding: 0;
    height: 100vh;
    width: 100vw;
    background: var(--surface-container-low);
    font-family: 'Lexend', 'Google Sans', sans-serif;
    overflow: hidden;
    /* Prevent scrolling on the body */
}

/* Premium Animated Background */
.portal-bg,
.login-page-bg {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: -1;
    overflow: hidden;
    background: var(--surface-container-low);
    pointer-events: none;
}

.bg-circle {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.15;
    animation: float 20s infinite alternate cubic-bezier(0.45, 0, 0.55, 1);
}

.bg-circle-1 {
    width: 600px;
    height: 600px;
    background: var(--primary);
    top: -10%;
    right: -10%;
}

.bg-circle-2 {
    width: 500px;
    height: 500px;
    background: var(--primary);
    bottom: -5%;
    left: -5%;
    animation-delay: -5s;
}

.bg-circle-3 {
    width: 700px;
    height: 450px;
    background: var(--primary);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    filter: blur(130px);
    opacity: 0.08;
    animation: floatCenter 24s infinite alternate ease-in-out;
}

[data-theme="dark"] .bg-circle-3 {
    opacity: 0.14;
}

@keyframes floatCenter {
    0% {
        transform: translate(-50%, -50%) scale(1) rotate(0deg);
    }
    100% {
        transform: translate(-45%, -55%) scale(1.15) rotate(15deg);
    }
}

@keyframes float {
    0% {
        transform: translate(0, 0) scale(1);
    }

    100% {
        transform: translate(-50px, 50px) scale(1.1);
    }
}

.portal-main {
    width: 100%;
    height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    /* Center content vertically */
    padding: clamp(24px, 5vh, 60px);
    /* Restored from old code */
    box-sizing: border-box;
}

.portal-header {
    text-align: center;
    margin-bottom: clamp(12px, 4vh, 20px);
    /* Reduced from old code */
    animation: slideUpFade 0.8s cubic-bezier(0.2, 0, 0, 1);
}

.portal-logo-container {
    display: flex;
    justify-content: center;
    margin-bottom: 16px;
}

.portal-header .brand-logo-tint {
    width: 240px !important;
    /* Reduced from 280px */
    height: 80px !important;
    /* Reduced from 90px */
    filter: drop-shadow(0 4px 12px rgba(0, 0, 0, 0.08));
}

.portal-header p {
    font-size: 1.125rem;
    /* Reduced from 1.25rem */
    color: var(--on-surface-variant);
    margin-top: 16px;
    font-weight: 500;
    opacity: 0.8;
    letter-spacing: -0.2px;
}

.portal-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    /* Reduced from 24px */
    max-width: 1100px;
    /* Reduced from 1200px */
    width: 100%;
    animation: slideUpFade 0.8s cubic-bezier(0.2, 0, 0, 1) 0.2s both;
}

/* =============================================
   PORTAL ROLE CARDS — GRADIENT THEME SYSTEM
   Each card has a unique per-role gradient accent
   ============================================= */

/* Role-specific gradient palettes */
:root {
    --card-gradient: linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 70%, #000000) 100%);
    --card-glow: rgba(0, 0, 0, 0.15);
    --role-color: var(--primary);
}

.role-card {
    --card-bg: color-mix(in srgb, var(--primary) 5%, color-mix(in srgb, var(--surface-container) 62%, transparent));
    background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box,
                radial-gradient(circle 140px at var(--mouse-x, 50%) var(--mouse-y, 50%), color-mix(in srgb, var(--primary) 25%, transparent), transparent 80%) border-box,
                linear-gradient(135deg, color-mix(in srgb, var(--primary) 35%, transparent), color-mix(in srgb, var(--primary) 8%, transparent)) border-box;
    border: 1px solid transparent;
    border-radius: 28px;
    padding: clamp(24px, 4vh, 36px) clamp(20px, 3vh, 28px);
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    text-align: left;
    text-decoration: none;
    color: var(--on-surface);
    backdrop-filter: blur(24px);
    -webkit-backdrop-filter: blur(24px);
    transition: transform 0.5s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.5s cubic-bezier(0.16, 1, 0.3, 1), 
                background-color 0.5s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    overflow: hidden;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.02);
    cursor: pointer;
    will-change: transform, box-shadow;
    transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translate3d(0, 0, 0);
    transform-style: preserve-3d;
}

[data-theme="dark"] .role-card {
    --card-bg: color-mix(in srgb, var(--primary) 22%, var(--primary-container));
    background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box,
                radial-gradient(circle 140px at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255, 255, 255, 0.3), transparent 80%) border-box,
                linear-gradient(135deg, rgba(255, 255, 255, 0.4), rgba(255, 255, 255, 0.15)) border-box;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.24);
    color: #ffffff;
}

[data-theme="dark"] .role-card .role-name {
    color: #ffffff;
}

[data-theme="dark"] .role-card .role-desc {
    color: rgba(255, 255, 255, 0.85);
}

[data-theme="dark"] .role-card::before {
    background: rgba(255, 255, 255, 0.15);
    color: #ffffff;
    opacity: 0.9;
}

[data-theme="dark"] .role-card::after {
    background: radial-gradient(
        circle,
        rgba(255, 255, 255, 0.15) 0%,
        rgba(255, 255, 255, 0.02) 50%,
        transparent 70%
    );
    opacity: 0.9;
}

[data-theme="dark"] .role-icon {
    background: var(--card-gradient) !important;
    border-color: transparent !important;
    color: #ffffff !important;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25) !important;
}

/* Dynamic Floating Chevron Arrow */
.role-card::before {
    content: '→';
    font-family: 'Lexend', sans-serif;
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--primary);
    position: absolute;
    top: 28px;
    right: 28px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    opacity: 0.85;
    z-index: 2;
    transform: translate3d(0, 0, 10px);
}

/* Premium Dynamic Radial Hover Bloom */
.role-card::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 600px;
    height: 600px;
    margin-left: -300px;
    margin-top: -300px;
    background: radial-gradient(
        circle,
        color-mix(in srgb, var(--primary) 18%, transparent) 0%,
        color-mix(in srgb, var(--primary) 3%, transparent) 50%,
        transparent 70%
    );
    border-radius: 50%;
    transform: translate3d(var(--mouse-x, 150px), var(--mouse-y, 100px), 0) scale(0.9);
    transform-origin: center;
    transition: transform 0.6s cubic-bezier(0.16, 1, 0.3, 1), opacity 0.6s ease;
    opacity: 0.75;
    z-index: 1;
    pointer-events: none;
}

.role-card:hover {
    transform: perspective(1000px) rotateX(var(--tilt-x, 0deg)) rotateY(var(--tilt-y, 0deg)) translate3d(0, -8px, 15px);
    --card-bg: color-mix(in srgb, var(--primary) 8%, color-mix(in srgb, var(--surface-container-high) 70%, transparent));
    background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box,
                radial-gradient(circle 170px at var(--mouse-x, 50%) var(--mouse-y, 50%), color-mix(in srgb, var(--primary) 60%, transparent), transparent 80%) border-box,
                linear-gradient(135deg, color-mix(in srgb, var(--primary) 60%, transparent), color-mix(in srgb, var(--primary) 20%, transparent)) border-box;
    box-shadow: 0 20px 40px var(--card-glow);
}

[data-theme="dark"] .role-card:hover {
    --card-bg: color-mix(in srgb, var(--primary) 32%, var(--primary-container));
    background: linear-gradient(var(--card-bg), var(--card-bg)) padding-box,
                radial-gradient(circle 170px at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255, 255, 255, 0.5), transparent 80%) border-box,
                linear-gradient(135deg, rgba(255, 255, 255, 0.5), rgba(255, 255, 255, 0.2)) border-box;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35);
}

[data-theme="dark"] .role-card:hover .role-name {
    color: #ffffff;
}

[data-theme="dark"] .role-card:hover .role-desc {
    color: #ffffff;
    opacity: 0.98;
}

[data-theme="dark"] .role-card:hover::before {
    background: #ffffff;
    color: var(--primary);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
}

.role-card:hover::before {
    opacity: 1;
    color: #ffffff;
    background: var(--primary);
    transform: translate3d(4px, -4px, 20px) scale(1.05);
    box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.3);
}

.role-card:hover::after {
    transform: translate3d(var(--mouse-x, 150px), var(--mouse-y, 100px), 0) scale(1.15);
    opacity: 1;
}

/* Floating Ring Icon */
.role-icon {
    width: 58px;
    height: 58px;
    border-radius: 18px;
    background: var(--card-gradient);
    color: #ffffff;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 24px;
    transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                background-color 0.4s cubic-bezier(0.16, 1, 0.3, 1), 
                box-shadow 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                border-color 0.4s cubic-bezier(0.16, 1, 0.3, 1),
                color 0.4s cubic-bezier(0.16, 1, 0.3, 1);
    position: relative;
    z-index: 2;
    box-shadow: 0 6px 16px rgba(var(--primary-rgb), 0.22);
    border: 1px solid transparent;
    will-change: transform;
    transform: translate3d(0, 0, 15px);
}

.role-icon i {
    width: 26px;
    height: 26px;
}

.role-card:hover .role-icon {
    transform: scale(1.1) rotate(8deg) translate3d(0, -4px, 25px);
    background: var(--card-gradient);
    color: #ffffff;
    box-shadow: 0 10px 20px rgba(var(--primary-rgb), 0.3);
    border-color: transparent;
}

.role-info {
    position: relative;
    z-index: 2;
    width: 100%;
    transform: translate3d(0, 0, 10px);
}

.role-name {
    font-size: 1.22rem;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--on-surface);
    transition: color 0.3s ease;
    letter-spacing: -0.3px;
}

.role-desc {
    font-size: 0.88rem;
    color: var(--on-surface-variant);
    line-height: 1.6;
    opacity: 0.78;
    max-width: 100%;
    transition: color 0.3s ease, opacity 0.3s ease;
}

.role-card:hover .role-name {
    color: var(--primary);
}

[data-theme="dark"] .role-card:hover .role-name {
    color: color-mix(in srgb, var(--primary) 15%, #ffffff);
}

.role-card:hover .role-desc {
    color: var(--on-surface-variant);
    opacity: 0.95;
}


.portal-credits {
    margin-top: clamp(24px, 4vh, 60px);
    text-align: center;
    color: var(--on-surface-variant);
    font-size: 14px;
    opacity: 0.6;
    animation: fadeIn 1s ease 0.5s both;
}

/* Dark mode refinement override removed for vibrant default theme integration */

@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(30px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 0.6;
    }
}

/* Minimal PWA Install Card Styles */
.pwa-install-container {
    margin: 16px 0;
    display: none;
    /* Hidden by default */
}

.pwa-install-card {
    background: linear-gradient(135deg, var(--primary-container), var(--secondary-container));
    border-radius: 16px;
    padding: 16px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    border: 1px solid var(--outline-variant);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.pwa-install-info h3 {
    margin: 0;
    font-size: 15px;
    color: var(--on-primary-container);
    font-weight: 600;
}

.pwa-install-info p {
    margin: 4px 0 0 0;
    font-size: 12px;
    color: var(--on-secondary-container);
    opacity: 0.8;
}

.btn-pwa-install {
    background: var(--primary);
    color: var(--on-primary);
    border: none;
    padding: 8px 16px;
    border-radius: 20px;
    font-size: 13px;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 8px;
    cursor: pointer;
    transition: transform 0.2s;
}

.btn-pwa-install:active {
    transform: scale(0.95);
}

/*
 * High-Fidelity Healthcare App UI (Isolated)
 * Matched to provided medical design inspiration.
 */

@media only screen and (max-width: 768px) {
    /* --- CRITICAL LAYOUT OVERRIDES (Wins over main.css) --- */

    .mobile-only {
        display: block !important;
    }

    .desktop-only {
        display: none !important;
    }

    header,
    .topbar,
    .header-left,
    .topbar-actions,
    .mesh-background {
        display: none !important;
    }

    /* Force Mobile App Shell behavior */
    html,
    body {
        height: 100% !important;
        height: 100dvh !important;
        overflow: hidden !important;
        position: fixed !important;
        width: 100% !important;
        background: var(--bg) !important;
    }

    /* Portal Page Overrides */
    .portal-main {
        height: 100dvh !important;
        padding: 20px !important;
        justify-content: flex-start !important;
        overflow-y: auto !important;
    }

    .portal-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        padding: 10px !important;
    }

    .role-card {
        padding: 20px !important;
        border-radius: 24px !important;
        min-height: 120px !important;
    }

    .role-desc {
        display: none !important;
    }

    .portal-header .brand-logo-tint {
        width: 180px !important;
        height: 60px !important;
    }

    /* Login Page Overrides */
    .login-wrapper {
        grid-template-columns: 1fr !important;
        min-height: auto !important;
        border-radius: 28px !important;
        box-shadow: 0 16px 48px rgba(0, 0, 0, 0.08) !important;
        border: 1px solid var(--surface-variant) !important;
        margin: 0 auto !important;
        width: 100% !important;
        max-width: 440px !important;
    }

    .login-info-side {
        display: none !important;
    }

    .login-form-side {
        padding: 44px 32px !important;
    }

    .mobile-logo {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        margin: 0 auto 28px auto !important;
        width: 100% !important;
    }

    .mobile-logo .brand-logo-tint {
        display: inline-block !important;
        width: 160px !important;
        height: 48px !important;
        background-color: var(--primary) !important;
        -webkit-mask-image: url('../logo/logo.svg') !important;
        mask-image: url('../logo/logo.svg') !important;
        -webkit-mask-size: contain !important;
        mask-size: contain !important;
        -webkit-mask-repeat: no-repeat !important;
        mask-repeat: no-repeat !important;
        -webkit-mask-position: center !important;
        mask-position: center !important;
        position: static !important;
        inset: auto !important;
    }

    .login-header {
        text-align: center !important;
        margin-bottom: 32px !important;
    }

    .login-header h2 {
        font-size: 26px !important;
        font-weight: 700 !important;
        letter-spacing: -0.5px !important;
        color: var(--on-surface) !important;
        margin-bottom: 8px !important;
    }

    .login-header p {
        font-size: 14px !important;
        color: var(--on-surface-variant) !important;
        opacity: 0.8 !important;
    }

    .login-form {
        gap: 16px !important;
    }

    .login-form .field-floating {
        margin-bottom: 0 !important;
    }

    .login-form .field-floating input {
        border-radius: 28px !important;
        padding-left: 24px !important;
        padding-right: 24px !important;
    }

    .login-form .field-floating label {
        left: 28px !important;
    }

    .login-form .field-floating input:focus+label,
    .login-form .field-floating input:not(:placeholder-shown)+label {
        top: 0 !important;
        left: 32px !important;
        transform: translateY(-50%) !important;
        background: var(--surface) !important;
        padding: 0 6px !important;
        opacity: 1 !important;
    }

    .login-container {
        max-width: 100% !important;
        padding: 0 !important;
    }

    /* --- END CRITICAL OVERRIDES --- */

    :root {
        --app-bg: #f8fafc;
        --app-surface: #ffffff;
        --app-primary: #0f766e;
        /* Teal medical color */
        --app-primary-soft: #f0fdfa;
        --app-text: #1e293b;
        --app-text-soft: #64748b;
        --app-radius: 32px;
        --app-bar-height: 72px;
        --app-nav-height: 80px;
        --app-shadow-soft: 0 8px 30px rgba(0, 0, 0, 0.04);
        --app-transition: cubic-bezier(0.2, 0, 0, 1);
    }

    /* Fixed App Shell */
    body {
        overflow: hidden !important;
        position: fixed;
        width: 100% !important;
        height: 100% !important;
        height: 100dvh !important;
        background: var(--app-bg) !important;
        font-family: 'Google Sans', sans-serif !important;
    }

    .app-container {
        height: 100dvh !important;
        display: flex !important;
        flex-direction: column !important;
        background: var(--app-bg) !important;
    }

    .main-content-scroll {
        flex: 1 !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        padding: 20px !important;
        padding-top: calc(var(--app-bar-height) + 12px) !important;
        padding-bottom: calc(var(--app-nav-height) + 24px) !important;
        background: var(--app-bg) !important;
        -webkit-overflow-scrolling: touch;
    }

    /* High-Fidelity Header (Matched to Image) */
    .top-app-bar {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        right: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        height: var(--app-bar-height) !important;
        background: var(--app-bg) !important;
        border: none !important;
        box-shadow: none !important;
        z-index: 2000 !important;
        padding: 0 20px !important;
        display: flex !important;
        align-items: center !important;
    }

    .healthcare-header-mobile {
        width: 100%;
        display: flex !important;
        justify-content: space-between;
        align-items: center;
    }

    .header-user-info {
        display: flex;
        align-items: center;
        gap: 12px;
    }

    .user-avatar-mobile {
        width: 44px;
        height: 44px;
        border-radius: 14px;
        background: var(--app-primary-soft);
        display: flex;
        align-items: center;
        justify-content: center;
        overflow: hidden;
        border: 1px solid rgba(0, 0, 0, 0.05);
    }

    .user-avatar-mobile img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .user-greeting-mobile {
        display: flex;
        flex-direction: column;
    }

    .greeting-sub {
        font-size: 11px;
        color: var(--app-text-soft);
        font-weight: 500;
        text-transform: uppercase;
        letter-spacing: 0.5px;
    }

    .greeting-name {
        font-size: 16px;
        font-weight: 700;
        color: var(--app-text);
    }

    .header-actions-mobile {
        display: flex;
        gap: 12px;
    }

    .icon-btn-m {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        background: var(--app-surface);
        border: 1px solid rgba(0, 0, 0, 0.03);
        display: flex;
        align-items: center;
        justify-content: center;
        color: var(--app-text);
        box-shadow: var(--app-shadow-soft);
    }

    .icon-btn-m i {
        width: 22px;
        height: 22px;
    }

    /* High-Fidelity Cards */
    .card {
        background: var(--app-surface) !important;
        border-radius: var(--app-radius) !important;
        border: none !important;
        box-shadow: var(--app-shadow-soft) !important;
        padding: 24px !important;
        margin-bottom: 20px !important;
    }

    /* Hero/Banner Card (Matched to Image) */
    .dashboard-hero {
        background: var(--app-primary) !important;
        color: #ffffff !important;
        position: relative;
        overflow: hidden;
        min-height: 160px;
        display: none;
        /* Desktop hide */
        padding: 24px !important;
        background-image: linear-gradient(135deg, var(--app-primary) 0%, #0d9488 100%) !important;
    }

    .dashboard-hero h2 {
        font-size: 20px;
        font-weight: 700;
        line-height: 1.3;
        margin-bottom: 16px;
        color: white !important;
    }

    .hero-search-pill {
        background: rgba(255, 255, 255, 0.2);
        padding: 6px 16px;
        border-radius: 100px;
        font-size: 12px;
        backdrop-filter: blur(10px);
        width: fit-content;
    }

    /* Category Grid (Matched to Image) */
    .category-grid {
        display: grid !important;
        grid-template-columns: repeat(4, 1fr) !important;
        gap: 12px !important;
        margin: 12px 0 24px 0 !important;
    }

    .category-item {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 8px;
    }

    .category-icon {
        width: 52px;
        height: 52px;
        border-radius: 18px;
        display: flex;
        align-items: center;
        justify-content: center;
        box-shadow: var(--app-shadow-soft);
    }

    .category-label {
        font-size: 11px;
        font-weight: 600;
        color: var(--app-text-soft);
    }

    .card-v3 {
        border-radius: var(--app-radius) !important;
    }

    /* Bottom Navigation (Image Matched) */
    .bottom-nav {
        height: var(--app-nav-height) !important;
        background: var(--app-surface) !important;
        border-top: 1px solid rgba(0, 0, 0, 0.02) !important;
        padding-bottom: env(safe-area-inset-bottom, 12px) !important;
        box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.03) !important;
    }

    .nav-pill {
        width: 44px !important;
        height: 44px !important;
        border-radius: 50% !important;
        background: transparent;
        display: flex;
        align-items: center;
        justify-content: center;
        transition: all 0.2s var(--app-transition);
    }

    .bottom-nav-item.active {
        color: var(--app-primary) !important;
    }

    .bottom-nav-item span {
        font-size: 10px !important;
        font-weight: 600 !important;
        margin-top: 4px;
        color: var(--app-text-soft);
    }

    .bottom-nav-item.active span {
        color: var(--app-primary) !important;
    }

    /* Floating Action Button (Calendar in Image) */
    .mobile-fab-container {
        bottom: 36px !important;
    }

    .mobile-fab {
        z-index: 9999;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        transition: opacity 0.4s ease;
    }

    .native-splash-screen.fade-out {
        opacity: 0;
        pointer-events: none;
    }

    .splash-logo {
        width: 80px;
        height: 80px;
        background: var(--primary);
        border-radius: 20px;
        margin-bottom: 24px;
        animation: scaleIn 0.8s var(--m3-transition);
    }

    @keyframes scaleIn {
        from {
            transform: scale(0.8);
            opacity: 0;
        }

        to {
            transform: scale(1);
            opacity: 1;
        }
    }

    .splash-spinner {
        width: 32px;
        height: 32px;
        border: 3px solid var(--m3-surface-container-high);
        border-top-color: var(--primary);
        border-radius: 50%;
        animation: rotate 1s linear infinite;
    }

    @keyframes rotate {
        to {
            transform: rotate(360deg);
        }
    }

    /* Mobile Dark Theme Overrides - Deep Clinical Edition */
    [data-theme="dark"] {
        --surface: color-mix(in srgb, var(--primary-seed) 4%, #0c0c0e) !important;
        --bg: color-mix(in srgb, var(--primary-seed) 4%, #0c0c0e) !important;
        --surface-container: color-mix(in srgb, var(--primary-seed) 8%, #161619) !important;
        --surface-container-high: color-mix(in srgb, var(--primary-seed) 11%, #1f1f23) !important;
        --text-main: #f1f1f3 !important;
        --text: #f1f1f3 !important;
        --text-soft: #a1a1a1 !important;
        --glass-bg: rgba(10, 10, 15, 0.92) !important;
        --glass-border: rgba(255, 255, 255, 0.12) !important;
    }

    [data-theme="dark"] body,
    [data-theme="dark"] .app-container,
    [data-theme="dark"] .main-shell,
    [data-theme="dark"] .main-content-scrollable {
        background-color: var(--surface) !important;
        background: var(--surface) !important;
        color: #f1f1f3 !important;
    }

    [data-theme="dark"] .card,
    [data-theme="dark"] .settings-card,
    [data-theme="dark"] .profile-card,
    [data-theme="dark"] .bento-item,
    [data-theme="dark"] .bento-welcome,
    [data-theme="dark"] .stat-card,
    [data-theme="dark"] .med-card,
    [data-theme="dark"] .m-stat-card,
    [data-theme="dark"] .registry-card,
    [data-theme="dark"] .action-card {
        background: var(--surface-container-low) !important;
        border: none !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25), 
                    0 1px 4px rgba(0, 0, 0, 0.15), 
                    inset 0 1px 0 rgba(255, 255, 255, 0.08), 
                    inset 0 0 0 1px rgba(255, 255, 255, 0.04), 
                    inset 0 2px 4px rgba(0, 0, 0, 0.2) !important;
        color: #f1f1f3 !important;
    }

    [data-theme="dark"] .welcome-greeting,
    [data-theme="dark"] .widget-label {
        color: rgba(255, 255, 255, 0.6) !important;
    }

    [data-theme="dark"] .welcome-title,
    [data-theme="dark"] .widget-value {
        color: #FFFFFF !important;
    }

    [data-theme="dark"] .doctor-highlight {
        background: linear-gradient(90deg, var(--primary) 0%, #FFFFFF 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    [data-theme="dark"] .mobile-topbar {
        background: rgba(12, 12, 14, 0.95) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
    }

    [data-theme="dark"] .nav-pill-main {
        background: rgba(10, 10, 15, 0.95) !important;
        border-color: rgba(255, 255, 255, 0.15) !important;
    }

    /* System Utils */
    .mobile-only {
        display: flex !important;
    }

    /* Pastel Category Colors (Matched to Image Icons) */
    .icon-nephro {
        background: #fee2e2;
        color: #ef4444;
    }

    .icon-anesth {
        background: #e0f2fe;
        color: #0ea5e9;
    }

    .icon-ortho {
        background: #fef3c7;
        color: #f59e0b;
    }

    .icon-ophthal {
        background: #ecfdf5;
        color: #10b981;
    }

    .icon-pedia {
        background: #fae8ff;
        color: #d946ef;
    }

    .icon-onco {
        background: #fef2f2;
        color: #f87171;
    }

    .icon-derm {
        background: #fff7ed;
        color: #f97316;
    }

    /* Fix stats cards to be side-by-side on mobile where appropriate */
    .stats-container {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 12px !important;
        padding: 0 4px !important;
    }

    .stat-card {
        border-radius: var(--app-radius) !important;
        border: none !important;
        background: var(--app-surface) !important;
        box-shadow: var(--app-shadow-soft) !important;
        padding: 16px !important;
    }

    /* System Utils */
    .mobile-only {
        display: flex !important;
    }

    .hide-mobile {
        display: none !important;
    }

    /* End of mobile_app section */
}

/*
 * MOBILE PRO - High-Fidelity Dedicated Shell
 * ZERO Desktop Shared Code.
 */

@media only screen and (max-width: 768px) {
    :root {
        --primary-seed: #0f766e;
        --primary: var(--primary-seed);
        --primary-rgb: 15, 118, 110;
        --primary-soft: color-mix(in srgb, var(--primary) 10%, white);
        --primary-gradient: linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 80%, black) 100%);

        --bg: #f8fafc;
        --surface: #ffffff;
        --text: #1e293b;
        --text-soft: #64748b;

        --secondary: #6366f1;
        --secondary-soft: #eef2ff;
        --accent: #f43f5e;
        --accent-soft: #fff1f2;

        /* Material 3 Surface Containers (Desktop Parity) */
        --surface-container-low: color-mix(in srgb, var(--primary) 2%, #f8fafc);
        --surface-container: color-mix(in srgb, var(--primary) 4%, #f1f5f9);
        --surface-container-high: color-mix(in srgb, var(--primary) 7%, #e2e8f0);
        --surface-container-highest: color-mix(in srgb, var(--primary) 10%, #cbd5e1);

        --radius-lg: 32px;
        --radius-md: 24px;
        --radius-sm: 16px;

        /* Refined Shadows */
        --shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.03);
        --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.05);
        --shadow-lg: 0 25px 60px rgba(0, 0, 0, 0.12);

        --top-h: 72px;
        --bot-h: 80px;
        --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    }

    [data-theme="dark"] {
        --bg: color-mix(in srgb, var(--primary-seed) 10%, #080808);
        --surface: color-mix(in srgb, var(--primary-seed) 12%, #0f172a);
        --text: #f8fafc;
        --text-soft: #94a3b8;

        --primary: color-mix(in srgb, var(--primary-seed) 85%, white);
        --primary-soft: color-mix(in srgb, var(--primary) 20%, black);

        --surface-container-low: color-mix(in srgb, var(--primary) 8%, #0f1115);
        --surface-container: color-mix(in srgb, var(--primary) 10%, #14161a);
        --surface-container-high: color-mix(in srgb, var(--primary) 12%, #1a1c21);
        --surface-container-highest: color-mix(in srgb, var(--primary) 15%, #23252a);

        --secondary-soft: color-mix(in srgb, var(--secondary) 20%, black);
        --accent-soft: color-mix(in srgb, var(--accent) 20%, black);

        --shadow-sm: 0 4px 12px rgba(0, 0, 0, 0.2);
        --shadow-md: 0 10px 30px rgba(0, 0, 0, 0.3);
    }

    * {
        box-sizing: border-box;
        margin: 0;
        padding: 0;
        -webkit-font-smoothing: antialiased;
    }

    .main-content-scrollable {
        padding-bottom: 120px !important;
    }

    html,
    body {
        width: 100%;
        max-width: 100vw;
        overflow-x: hidden;
        position: relative;
        font-family: 'Inter', 'Google Sans', sans-serif;
        background: var(--bg);
        color: var(--text);
        -webkit-tap-highlight-color: transparent;
        line-height: 1.5;
    }


    /* App Shell Layout */
    .mobile-app-shell {
        padding-top: var(--top-h);
        padding-bottom: calc(var(--bot-h) + 100px);
        /* Increased for sticky actions */
        min-height: 100vh;
    }

    /* Topbar Improvements */
    .mobile-topbar {
        position: sticky !important;
        /* Better than fixed inside scrollable containers with transforms */
        top: 0 !important;
        left: 0;
        right: 0;
        height: var(--top-h);
        background: var(--glass-bg);
        backdrop-filter: blur(var(--glass-blur));
        -webkit-backdrop-filter: blur(var(--glass-blur));
        display: flex !important;
        align-items: center;
        justify-content: flex-start !important;
        padding: 0 12px;
        gap: 8px;
        z-index: 1000;
        border-bottom: 1px solid var(--glass-border);
    }

    .topbar-actions {
        display: flex !important;
        align-items: center !important;
        gap: 6px !important;
        margin-left: auto !important;
    }

    .topbar-brand {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    .user-profile {
        display: flex;
        align-items: center;
        gap: 12px;
        text-decoration: none !important;
        margin-left: auto !important;
        margin-right: 8px !important;
    }

    .avatar {
        width: 46px;
        height: 46px;
        background: var(--primary-soft);
        border-radius: 16px;
        display: flex;
        align-items: center;
        justify-content: center;
        font-weight: 700;
        color: var(--primary);
        overflow: hidden;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    }

    .greeting .name {
        font-size: 15px;
        font-weight: 700;
        color: var(--text);
    }

    .action-btn {
        width: 44px !important;
        height: 44px !important;
        border-radius: 14px;
        border: none;
        background: var(--surface-container-high) !important;
        box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        color: var(--on-surface-variant) !important;
        cursor: pointer;
        transition: all 0.2s ease;
    }

    .action-btn i,
    .action-btn svg {
        width: 22px !important;
        height: 22px !important;
        stroke: var(--on-surface-variant) !important;
        stroke-width: 2;
    }

    .action-btn:active {
        transform: scale(0.92);
    }

    @keyframes slideUpFade {
        from {
            opacity: 0;
            transform: translateY(10px) scale(0.95);
        }

        to {
            opacity: 1;
            transform: translateY(0) scale(1);
        }
    }

    .menu-toggle {
        background: var(--primary);
        border: 2px solid var(--primary);
        color: white !important;
        box-shadow: 0 4px 15px color-mix(in srgb, var(--primary) 40%, transparent);
        width: 46px;
        height: 46px;
        border-radius: 16px;
    }

    .menu-toggle i {
        width: 24px;
        height: 24px;
        stroke: white !important;
    }

    [data-theme="dark"] .menu-toggle {
        background: var(--primary);
        border-color: var(--primary);
        box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
    }

    /* --- Premium Mobile Navigation (Material 3 + Glass) --- */
    .mobile-bottom-nav {
        position: fixed !important;
        bottom: 24px !important;
        left: 20px !important;
        right: 20px !important;
        height: 72px !important;
        background: transparent !important;
        display: flex !important;
        flex-direction: row !important;
        justify-content: center !important;
        align-items: center !important;
        z-index: 1100 !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .nav-pill-main {
        flex: 1;
        max-width: 600px;
        height: 100%;
        background: rgba(15, 15, 20, 0.95) !important;
        backdrop-filter: blur(40px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(40px) saturate(180%) !important;
        border-radius: 36px !important;
        border: 1px solid rgba(255, 255, 255, 0.12) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: space-around !important;
        padding: 0 8px !important;
        box-shadow: 0 25px 60px rgba(0, 0, 0, 0.45) !important;
        position: relative;
    }

    /* Glass highlight line */
    .nav-pill-main::after {
        content: '';
        position: absolute;
        top: 0;
        left: 20%;
        right: 20%;
        height: 1px;
        background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    }

    .nav-active-indicator {
        display: none !important;
    }

    [data-theme="light"] .nav-pill-main {
        background: rgba(255, 255, 255, 0.95) !important;
        border-color: rgba(0, 0, 0, 0.1) !important;
        box-shadow: 0 15px 35px rgba(0, 0, 0, 0.12) !important;
    }

    .nav-pill-main .nav-item {
        text-decoration: none !important;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        color: var(--on-surface-variant) !important;
        position: relative;
        flex: 1;
        height: 100%;
        transition: all 0.3s ease;
        z-index: 5;
        gap: 2px;
        outline: none !important;
        -webkit-tap-highlight-color: transparent;
    }

    .nav-pill-main .nav-item i,
    .nav-pill-main .nav-item svg {
        width: 24px;
        height: 24px;
        stroke-width: 2;
        transition: all 0.3s ease;
        stroke: currentColor !important;
        color: inherit;
    }

    .nav-pill-main .nav-item span {
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.2px;
        transition: all 0.3s ease;
        color: inherit;
    }

    /* PURE CSS ACTIVE CAPSULE HIGHLIGHT - BULLETPROOF & INSTANT */
    .nav-pill-main .nav-item.active {
        background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary), #fff 10%)) !important;
        color: #FFFFFF !important;
        opacity: 1 !important;
        border-radius: 35px !important;
        height: 90% !important;
        margin: auto 4px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        justify-content: center !important;
        box-shadow: 0 6px 16px color-mix(in srgb, var(--primary) 30%, transparent) !important;
        transform: scale(1.02) !important;
    }

    [data-theme="light"] .nav-pill-main .nav-item.active {
        background: linear-gradient(135deg, var(--primary), color-mix(in srgb, var(--primary), #fff 15%)) !important;
        color: #FFFFFF !important;
        box-shadow: 0 6px 16px color-mix(in srgb, var(--primary) 20%, transparent) !important;
    }

    /* Mobile Data Table & Card Header Fixes - STACK EVERYTHING */
    @media (max-width: 600px) {
        .dt-header,
        .card-header,
        .table-toolbar,
        .filter-row,
        .section-header {
            flex-direction: column !important;
            align-items: stretch !important;
            gap: 16px !important;
            padding: 16px !important;
            height: auto !important;
        }

        /* Search Box Full Width */
        .dt-search-box,
        .search-box,
        .card-header > div:first-child {
            min-width: 0 !important;
            width: 100% !important;
            max-width: 100% !important;
        }

        /* Actions/Buttons Full Width */
        .dt-actions,
        .card-header .btn,
        .section-header .btn,
        .dt-actions .btn {
            width: 100% !important;
            justify-content: center !important;
            flex: 1 !important;
        }

        /* Handle horizontal groups of icons inside search row */
        .dt-header > div,
        .card-header > div {
            flex-direction: column !important;
            width: 100% !important;
            gap: 12px !important;
        }

        .dt-actions {
            justify-content: flex-start !important;
            gap: 8px !important;
        }

        .dt-actions .btn {
            padding: 10px 12px !important;
            font-size: 13px !important;
        }
    }

    .nav-pill-main .nav-item.active i,
    .nav-pill-main .nav-item.active svg,
    .nav-pill-main .nav-item.active span {
        color: #FFFFFF !important;
        stroke: #FFFFFF !important;
        opacity: 1 !important;
        font-weight: 700 !important;
    }

    /* High-Fidelity FAB */
    .nav-fab-holder {
        width: 64px;
        position: relative;
        display: flex;
        justify-content: center;
    }

    .nav-fab {
        width: 48px;
        height: 48px;
        background: var(--primary-gradient);
        border-radius: 15px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: white !important;
        box-shadow: 0 5px 15px color-mix(in srgb, var(--primary) 30%, transparent);
        text-decoration: none;
        transition: all 0.3s cubic-bezier(0.2, 0, 0, 1.5);
        z-index: 2;
        border: none;
    }

    .nav-fab:active {
        transform: scale(0.85);
    }

    .nav-fab i {
        width: 26px;
        height: 26px;
        stroke-width: 2.5;
    }

    /* Mobile Sidebar (Drawer) Improvements */
    #sidebar.active {
        transform: translateX(0) !important;
        box-shadow: 20px 0 60px rgba(0, 0, 0, 0.2);
    }

    /* Removed redundant nested media query to fix brace balance */
        #sidebar {
            position: fixed;
            top: 0;
            left: 0;
            bottom: 0;
            width: 280px !important; /* Standardized width for readability */
            z-index: 12000;
            background: var(--surface) !important;
            box-shadow: 15px 0 40px rgba(0,0,0,0.15);
            transform: translateX(-100%);
            transition: transform 0.4s cubic-bezier(0.2, 0, 0, 1);
            display: flex !important;
            flex-direction: column !important;
            overflow: hidden;
            border-right: 1px solid var(--surface-container-high) !important;
        }

        #sidebar nav {
            flex: 1;
            overflow-y: auto !important;
            padding: 15px 0 100px !important; /* Remove horizontal padding from nav container */
            display: flex !important;
            flex-direction: column !important;
            gap: 2px !important;
        }
    }

    .sidebar-overlay {
        position: fixed;
        inset: 0;
        background: rgba(0, 0, 0, 0.4);
        backdrop-filter: blur(4px);
        z-index: 1150;
        opacity: 0;
        visibility: hidden;
        transition: all 0.4s ease;
    }

    .sidebar-overlay.active {
        opacity: 1;
        visibility: visible;
    }

    /* Reusable Components */
    .card {
        background: var(--surface);
        border-radius: var(--radius-md);
        margin: 0 16px 16px 16px;
        padding: 24px;
        border: 1px solid rgba(0, 0, 0, 0.04);
        box-shadow: 0 12px 24px rgba(0, 0, 0, 0.03);
        transition: var(--transition);
    }

    /* Preloader - Desktop Style */
    .loader-wrapper {
        position: fixed;
        inset: 0;
        background: rgba(255, 255, 255, 0.7) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        display: flex;
        align-items: center;
        justify-content: center;
        z-index: 9999;
        transition: all 0.6s cubic-bezier(0.2, 0, 0, 1);
    }

    [data-theme="dark"] .loader-wrapper {
        background: rgba(12, 12, 14, 0.7) !important;
    }

    .loader-wrapper.fade-out {
        opacity: 0;
        visibility: hidden;
        pointer-events: none;
    }

    .loader-content {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 32px;
        width: 180px;
    }

    .loader-logo {
        width: 200px;
        height: 84px;
        background-color: #ffffff;
        -webkit-mask: url('../logo/logo.svg') no-repeat center;
        mask: url('../logo/logo.svg') no-repeat center;
        -webkit-mask-size: contain;
        mask-size: contain;
        animation: pulse 2s infinite ease-in-out;
    }

    [data-theme="light"] .loader-logo {
        background-color: var(--primary);
    }

    [data-theme="dark"] .loader-logo {
        background-color: #ffffff;
    }

    .loader-progress-container {
        width: 100%;
        height: 6px;
        background: var(--surface-container-highest);
        border-radius: var(--radius-full);
        overflow: hidden;
    }

    [data-theme="dark"] .loader-progress-container {
        background: rgba(255, 255, 255, 0.1);
    }

    .loader-progress-bar {
        width: 0%;
        height: 100%;
        background: var(--primary);
        border-radius: var(--radius-full);
        animation: progress-load 2s infinite ease-in-out;
    }

    [data-theme="dark"] .loader-progress-bar {
        background: #ffffff;
    }

    @keyframes progress-load {
        0% {
            width: 0%;
            transform: translateX(-100%);
        }

        50% {
            width: 100%;
            transform: translateX(0);
        }

        100% {
            width: 0%;
            transform: translateX(100%);
        }
    }

    @keyframes pulse {

        0%,
        100% {
            transform: scale(1);
            opacity: 1;
        }

        50% {
            transform: scale(1.05);
            opacity: 0.8;
        }
    }

    /* Doctor Navigation - Premium Primary CTA for Consult */
    .nav-item.nav-item-primary-cta {
        background: var(--primary-gradient, linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 80%, #000000) 100%)) !important;
        color: #ffffff !important;
        box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent) !important;
        border-radius: var(--radius-m, 12px) !important;
        margin: 8px 12px !important;
        padding: 0 16px !important;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1) !important;
    }
    
    .nav-item.nav-item-primary-cta .nav-icon {
        background: rgba(255, 255, 255, 0.2) !important;
        box-shadow: none !important;
        transition: all 0.3s ease !important;
    }
    
    .nav-item.nav-item-primary-cta .nav-icon i,
    .nav-item.nav-item-primary-cta .nav-icon svg {
        color: #ffffff !important;
    }
    
    .nav-item.nav-item-primary-cta .nav-icon svg path,
    .nav-item.nav-item-primary-cta .nav-icon svg circle {
        stroke: #ffffff !important;
    }
    
    .nav-item.nav-item-primary-cta .nav-label {
        color: #ffffff !important;
        font-weight: 700 !important;
        font-size: 14px !important;
        transition: opacity 0.3s ease !important;
    }
    
    .nav-item.nav-item-primary-cta:hover {
        transform: translateY(-2px) scale(1.02) !important;
        box-shadow: 0 6px 16px color-mix(in srgb, var(--primary) 45%, transparent) !important;
        filter: brightness(1.15) !important;
    }
    
    .nav-item.nav-item-primary-cta:active {
        transform: translateY(0) scale(0.98) !important;
    }
    
    .nav-item.nav-item-primary-cta.active {
        background: linear-gradient(135deg, color-mix(in srgb, var(--primary) 90%, #ffffff) 0%, var(--primary) 100%) !important;
        box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 35%, transparent), 0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent) !important;
    }
    
    /* Collapsed Sidebar Adjustment for CTA */
    aside.shrunk:not(:hover) .nav-item.nav-item-primary-cta {
        padding: 0 !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        margin: 8px auto !important;
        border-radius: 50% !important;
        box-shadow: 0 4px 10px color-mix(in srgb, var(--primary) 25%, transparent) !important;
    }
    
    aside.shrunk:not(:hover) .nav-item.nav-item-primary-cta .nav-icon {
        margin: 0 !important;
        background: transparent !important;
        box-shadow: none !important;
    }

    /* Sidebar Mobile Drawer Overrides */
    #sidebar {
        transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    }

    @media (max-width: 768px) {
        #sidebar {
            position: fixed;
            left: 0;
            top: 0;
            bottom: 0;
            width: 100%;
            max-width: 100%;
            z-index: 2000;
            transform: translateX(-100%);
            background: color-mix(in srgb, var(--surface) 98%, transparent);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            box-shadow: none;
            display: flex !important;
            flex-direction: column;
            border-radius: 0;
            transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
        }

        #sidebar.active {
            transform: translateX(0);
        }

        #sidebar .sidebar-header {
            padding: 24px;
            border-bottom: 1px solid rgba(0, 0, 0, 0.05);
            display: flex;
            justify-content: space-between;
            align-items: center;
        }

        .mobile-close-btn {
            width: 44px;
            height: 44px;
            border-radius: 12px;
            border: 1px solid rgba(0, 0, 0, 0.05);
            background: var(--surface);
            color: var(--text-soft);
            display: flex;
            align-items: center;
            justify-content: center;
            transition: var(--transition);
            cursor: pointer;
        }

        .mobile-close-btn:active {
            transform: scale(0.9);
            background: var(--primary-soft);
            color: var(--primary);
        }

        #sidebar .logo-icon {
            width: 48px;
            height: 48px;
            background: var(--primary) !important;
            border-radius: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
            position: relative;
            overflow: hidden;
        }

        #sidebar .logo-icon .brand-logo-tint {
            position: absolute;
            inset: 0;
            background: linear-gradient(135deg, rgba(255, 255, 255, 0.4) 0%, rgba(255, 255, 255, 0) 100%);
        }

        /* Redesigned mobile sidebar items for Desktop Parity */
        #sidebar .nav-item, 
        #sidebar .sub-item {
            display: flex !important;
            flex-direction: row !important;
            align-items: center !important;
            padding: 14px 20px !important;
            gap: 14px !important;
            border-radius: 0 !important; /* Full width look */
            text-align: left !important;
            color: var(--on-surface-variant) !important;
            opacity: 0.75 !important;
            transition: all 0.2s ease;
            position: relative;
            margin: 0 !important;
        }

        #sidebar .nav-icon {
            width: 24px !important;
            height: 24px !important;
            background: transparent !important;
            border: none !important;
            box-shadow: none !important;
            margin: 0 !important;
            display: flex !important;
            align-items: center !important;
            justify-content: center !important;
            color: var(--on-surface-variant) !important;
            transition: all 0.2s ease;
        }

        #sidebar .nav-label {
            font-size: 15px !important;
            color: inherit !important;
            height: auto !important;
            -webkit-line-clamp: unset !important;
            display: block !important;
            margin: 0 !important;
            opacity: 1 !important;
            font-weight: 500 !important;
            text-transform: none !important;
        }

        #sidebar .nav-item.active,
        #sidebar .sub-item.active {
            background: color-mix(in srgb, var(--primary) 12%, transparent) !important;
            color: var(--primary) !important;
            opacity: 1 !important;
            font-weight: 700 !important;
        }

        #sidebar .nav-item.active .nav-icon,
        #sidebar .sub-item.active .nav-icon {
            color: var(--primary) !important;
            opacity: 1 !important;
            transform: scale(1.05);
        }

        #sidebar .nav-item.active::before,
        #sidebar .sub-item.active::before {
            content: "" !important;
            position: absolute !important;
            left: 0 !important;
            top: 0 !important;
            bottom: 0 !important;
            width: 5px !important;
            background: var(--primary) !important;
            border-radius: 0 4px 4px 0 !important;
        }

        /* Submenu Styling - Optimized for Mobile */
        #sidebar .nav-sub {
            margin: 0 !important;
            background: rgba(0, 0, 0, 0.02) !important;
            padding: 4px 0 !important;
        }

        #sidebar .sub-item {
            padding-left: 54px !important; /* Precise indentation */
            font-size: 14px !important;
        }

        #sidebar .sub-item .nav-icon {
            width: 12px !important; /* Smaller icon for sub-items */
            height: 12px !important;
            opacity: 0.5;
        }

        #sidebar .group-header {
            margin-top: 4px !important;
            padding: 14px 20px !important;
            color: var(--text) !important;
            opacity: 1 !important;
            font-weight: 600 !important;
        }

        #sidebar .group-header .group-arrow {
            display: block !important;
            margin-left: auto !important;
            transition: transform 0.3s ease;
            opacity: 0.5;
        }

        #sidebar .nav-group.open .group-header .group-arrow {
            transform: rotate(180deg);
        }

        #sidebar .nav-group.open .group-header {
            background: var(--surface-container-low) !important;
        }
    

        /* Color Utilities (Theme Aware) */
        .icon-patients {
            border-color: color-mix(in srgb, #16a34a 20%, transparent) !important;
            background: color-mix(in srgb, #16a34a 10%, var(--surface)) !important;
            color: #16a34a !important;
        }

        .icon-appts {
            border-color: color-mix(in srgb, #2563eb 20%, transparent) !important;
            background: color-mix(in srgb, #2563eb 10%, var(--surface)) !important;
            color: #2563eb !important;
        }

        .icon-consult {
            border-color: color-mix(in srgb, #e11d48 20%, transparent) !important;
            background: color-mix(in srgb, #e11d48 10%, var(--surface)) !important;
            color: #e11d48 !important;
        }

        .icon-diag {
            border-color: color-mix(in srgb, #9333ea 20%, transparent) !important;
            background: color-mix(in srgb, #9333ea 10%, var(--surface)) !important;
            color: #9333ea !important;
        }

        .icon-followup {
            border-color: color-mix(in srgb, #ca8a04 20%, transparent) !important;
            background: color-mix(in srgb, #ca8a04 10%, var(--surface)) !important;
            color: #ca8a04 !important;
        }

        .icon-profile {
            border-color: color-mix(in srgb, #475569 20%, transparent) !important;
            background: color-mix(in srgb, #475569 10%, var(--surface)) !important;
            color: #475569 !important;
        }

        .icon-logout {
            border-color: color-mix(in srgb, #e11d48 20%, transparent) !important;
            background: color-mix(in srgb, #e11d48 10%, var(--surface)) !important;
            color: #e11d48 !important;
        }

        .sidebar-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            z-index: 1999;
            opacity: 0;
            visibility: hidden;

            transition: all 0.4s ease;
        }

        /* Autofill & Placeholder Accessibility */
        input:-webkit-autofill,
        input:-webkit-autofill:hover,
        input:-webkit-autofill:focus,
        input:-webkit-autofill:active {
            -webkit-box-shadow: 0 0 0 40px var(--surface) inset !important;
            -webkit-text-fill-color: var(--text) !important;
            transition: background-color 5000s ease-in-out 0s;
        }

        ::placeholder {
            color: var(--text-soft) !important;
            opacity: 0.5;
        }

        [data-theme="dark"] ::placeholder {
            color: var(--text-soft) !important;
            opacity: 0.7;
        }

        .sidebar-overlay.active {
            opacity: 1;
            visibility: visible;
        }

        /* --- Desktop Parity Components (Adapted for Mobile) --- */

        /* Floating Input Style */
        .field-floating {
            position: relative;
            margin-bottom: 20px;
        }

        .field-floating input,
        .field-floating select,
        .field-floating textarea {
            width: 100%;
            height: 54px;
            padding: 18px 20px 2px;
            border: 1.5px solid var(--surface-container-high);
            border-radius: 28px;
            background: var(--surface-container-low);
            color: var(--text);
            font-family: inherit;
            font-size: 15px;
            font-weight: 600;
            outline: none;
            transition: 0.2s;
        }

        .field-floating textarea {
            height: auto;
            min-height: 120px;
            padding: 20px 16px;
        }

        .field-floating label {
            position: absolute;
            top: 50%;
            left: 20px;
            transform: translateY(-50%);
            color: var(--text-soft);
            font-size: 15px;
            font-weight: 500;
            pointer-events: none;
            transition: 0.2s;
        }

        .field-floating input:focus,
        .field-floating select:focus,
        .field-floating textarea:focus {
            border-color: var(--primary);
            background: var(--surface);
            box-shadow: 0 8px 16px color-mix(in srgb, var(--primary) 10%, transparent), 0 0 0 4px color-mix(in srgb, var(--primary) 5%, transparent);
        }

        .field-floating input:focus+label,
        .field-floating input:not(:placeholder-shown)+label,
        .field-floating select:focus+label,
        .field-floating select:not([value=""])+label,
        .field-floating textarea:focus+label,
        .field-floating textarea:not(:placeholder-shown)+label,
        .field-floating input[type="date"]+label,
        .field-floating input[type="time"]+label {
            top: 0 !important;
            left: 28px !important;
            font-size: 11px !important;
            transform: translateY(-50%) !important;
            padding: 0 6px !important;
            background: var(--surface-container-low) !important;
            opacity: 1 !important;
            font-weight: 700;
            color: var(--primary);
        }

        .field-floating input:focus+label,
        .field-floating select:focus+label,
        .field-floating textarea:focus+label {
            background: var(--surface) !important;
        }

        /* Custom Searchable Select (Desktop Parity) */
        .custom-select {
            position: relative;
            width: 100%;
            z-index: 1;
            margin-bottom: 20px;
        }

        .custom-select.active {
            z-index: 10000 !important;
            /* Higher than floating-nav-island (2000) */
        }

        .select-box {
            display: flex;
            flex-wrap: wrap;
            gap: 6px;
            padding: 18px 40px 2px 20px;
            /* Increased top padding to clear label */
            border: 1.5px solid var(--surface-container-high);
            border-radius: 28px;
            background: var(--surface-container-low);
            cursor: pointer;
            min-height: 54px;
            align-items: center;
            transition: 0.2s;
            position: relative;
            /* overflow: hidden; Removed to prevent label clipping */
        }

        .select-box::after {
            content: '';
            position: absolute;
            right: 18px;
            top: 50%;
            transform: translateY(-50%);
            width: 6px;
            height: 6px;
            border-right: 2px solid var(--text-soft);
            border-bottom: 2px solid var(--text-soft);
            transform: translateY(-70%) rotate(45deg);
            transition: 0.3s;
            pointer-events: none;
        }

        .custom-select.active .select-box::after {
            transform: translateY(-20%) rotate(-135deg);
            border-color: var(--primary);
        }

        .select-box-display {
            flex: 1;
            min-width: 100px;
            min-height: 24px;
            font-size: 14px;
            font-weight: 600;
            color: var(--text);
            display: flex;
            flex-wrap: wrap;
            gap: 4px;
            align-items: center;
            padding-top: 2px;
            /* Slight nudge down */
        }

        .custom-select.active .select-box {
            border-color: var(--primary);
            background: var(--surface);
            box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 10%, transparent);
        }

        /* Standard Search Box (Dashboard Style) */
        .search-section {
            padding: 20px;
        }

        .form-title {
            font-size: 24px;
            font-weight: 800;
            color: var(--text);
            margin-bottom: 4px;
        }

        .form-subtitle {
            font-size: 14px;
            color: var(--text-soft);
            margin-bottom: 16px;
        }

        .search-box {
            position: relative;
            width: 100%;
        }

        .search-box i,
        .search-box svg {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            color: var(--text-soft);
            z-index: 10;
            pointer-events: none;
        }

        .search-box input {
            width: 100%;
            height: 56px;
            background: var(--surface);
            border: 1.5px solid var(--surface-container-high);
            border-radius: 18px;
            padding: 0 16px 0 48px;
            color: var(--text);
            font-size: 15px;
            font-weight: 600;
            outline: none;
            transition: var(--transition);
            box-shadow: var(--shadow-sm);
        }

        .search-box input:focus {
            border-color: var(--primary);
            background: var(--surface);
            box-shadow: 0 8px 20px color-mix(in srgb, var(--primary) 10%, transparent);
        }

        .search-box input::placeholder {
            color: var(--text-soft);
            opacity: 0.6;
        }

        /* Modern Glass Search Bar (Hero Style) */
        .m-search-bar-modern {
            position: relative;
            width: 100%;
        }

        .m-search-bar-modern i,
        .m-search-bar-modern svg {
            position: absolute;
            left: 16px;
            top: 50%;
            transform: translateY(-50%);
            width: 20px;
            height: 20px;
            color: rgba(255, 255, 255, 0.7);
            z-index: 10;
        }

        .m-search-bar-modern input {
            width: 100%;
            height: 56px;
            background: rgba(255, 255, 255, 0.15);
            border: 1px solid rgba(255, 255, 255, 0.2);
            border-radius: 20px;
            padding: 0 16px 0 52px;
            color: white;
            font-size: 16px;
            font-weight: 600;
            backdrop-filter: blur(15px);
            -webkit-backdrop-filter: blur(15px);
            outline: none;
            transition: var(--transition);
        }

        .m-search-bar-modern input:focus {
            background: rgba(255, 255, 255, 0.25);
            border-color: rgba(255, 255, 255, 0.4);
            box-shadow: 0 10px 25px rgba(0, 0, 0, 0.1);
        }

        .m-search-bar-modern input::placeholder {
            color: rgba(255, 255, 255, 0.6);
        }

        .select-box-label {
            position: absolute;
            left: 14px;
            top: 50%;
            transform: translateY(-50%);
            pointer-events: none;
            transition: 0.2s;
            color: var(--text-soft);
            font-size: 14px;
            font-weight: 600;
        }

        .custom-select.active .select-box-label,
        .custom-select.has-value .select-box-label {
            top: 0;
            font-size: 11px;
            font-weight: 800;
            background: var(--surface);
            /* Correct card background */
            padding: 0 6px;
            color: var(--primary);
            transform: translateY(-50%);
            z-index: 10;
            display: block !important;
            visibility: visible !important;
        }

        .select-dropdown {
            position: absolute;
            top: calc(100% + 12px);
            left: 0;
            right: 0;
            background: var(--surface);
            border-radius: 24px;
            box-shadow: var(--shadow-lg);
            display: none;
            z-index: 9999;
            /* Higher to avoid overlap */
            overflow: hidden;
            border: 1px solid var(--surface-container-high);
        }

        .custom-select.active .select-dropdown {
            display: block;
            animation: scaleIn 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
        }

        @keyframes scaleIn {
            from {
                opacity: 0;
                transform: scale(0.95) translateY(10px);
            }

            to {
                opacity: 1;
                transform: scale(1) translateY(0);
            }
        }

        .select-search {
            padding: 12px;
            border-bottom: 1px solid var(--surface-container-high);
            background: var(--surface-container-low);
            position: sticky;
            top: 0;
            z-index: 2;
        }

        .select-search input {
            width: 100%;
            height: 44px !important;
            border-radius: 16px !important;
            border: 1.5px solid var(--surface-container-high) !important;
            background: var(--surface) !important;
            padding: 0 14px 0 40px !important;
            font-size: 14px !important;
            font-weight: 600 !important;
            outline: none !important;
            background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'%3E%3C/circle%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'%3E%3C/line%3E%3C/svg%3E") !important;
            background-repeat: no-repeat !important;
            background-position: 14px center !important;
            transition: 0.3s !important;
        }

        .select-search input:focus {
            border-color: var(--primary) !important;
            box-shadow: 0 0 0 4px var(--primary-soft) !important;
        }

        .select-options {
            max-height: 250px;
            overflow-y: auto !important;
            -webkit-overflow-scrolling: touch;
            scroll-behavior: smooth;
            padding-bottom: 8px;
            /* Extra breathing room */
        }

        .select-option {
            padding: 14px 18px;
            cursor: pointer;
            font-size: 14px;
            font-weight: 600;
            color: var(--text);
            border-bottom: 1px solid var(--surface-container-low);
            transition: 0.1s;
            display: flex;
            align-items: center;
            justify-content: space-between;
        }

        .select-option:active {
            background: var(--primary-soft);
        }

        .select-option.selected {
            background: var(--primary-soft);
            color: var(--primary);
        }

        .select-option.selected::after {
            content: '';
            width: 6px;
            height: 10px;
            border-right: 2.5px solid var(--primary);
            border-bottom: 2.5px solid var(--primary);
            transform: rotate(45deg);
        }

        .option-group-label {
            padding: 10px 18px;
            background: var(--surface-container-high);
            font-size: 11px;
            font-weight: 800;
            color: var(--primary);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        /* Tag style (Desktop Parity) */
        .badge-tag {
            display: inline-flex;
            align-items: center;
            gap: 6px;
            padding: 4px 10px;
            background: var(--primary);
            color: white;
            border-radius: 10px;
            font-size: 12px;
            font-weight: 700;
        }

        .badge-tag i,
        .tag-remove {
            cursor: pointer;
            display: flex;
            align-items: center;
            opacity: 0.8;
        }

        /* Flatpickr Mobile Tuning (Desktop Themed) */
        .flatpickr-calendar {
            background: var(--surface) !important;
            border: 1px solid var(--surface-container-high) !important;
            box-shadow: var(--shadow-lg) !important;
            border-radius: 24px !important;
            padding: 12px !important;
            margin-top: 8px;
        }

        @media (max-width: 768px) {
            .flatpickr-calendar {
                left: 50% !important;
                transform: translateX(-50%) !important;
                margin-left: 0 !important;
            }
        }

        .flatpickr-day.selected {
            background: var(--primary) !important;
            border-color: var(--primary) !important;
            border-radius: 12px !important;
        }

        .flatpickr-day.today {
            border-color: var(--primary) !important;
            border-radius: 12px !important;
        }

        .flatpickr-months .flatpickr-month {
            height: 45px !important;
            color: var(--primary) !important;
            fill: var(--primary) !important;
        }

        .flatpickr-current-month .flatpickr-monthDropdown-months {
            font-weight: 800 !important;
        }

        /* Modal Polish (Glassmorphism) */
        .m-modal {
            display: none;
            position: fixed;
            inset: 0;
            align-items: center;
            justify-content: center;
            background: rgba(15, 23, 42, 0.8) !important;
            backdrop-filter: blur(8px);
            -webkit-backdrop-filter: blur(8px);
            z-index: 2000;
        }

        .m-modal-content {
            border-radius: 28px !important;
            box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.5) !important;
            border: 1px solid rgba(255, 255, 255, 0.1);
        }

        .m-modal-header h3 {
            font-weight: 800;
            letter-spacing: -0.5px;
        }

        /* --- Premium Mobile App Form Components --- */

        .mobile-form-container {
            padding: 16px;
            animation: fadeInForm 0.4s ease-out;
        }

        .form-header {
            margin-bottom: 24px;
            padding: 0;
            text-align: left;
        }

        .form-title {
            font-size: 24px;
            font-weight: 800;
            color: var(--text);
            letter-spacing: -0.5px;
            margin-bottom: 4px;
        }

        .form-subtitle {
            font-size: 14px;
            color: var(--text-soft);
            font-weight: 500;
        }

        .form-section {
            background: var(--surface);
            border-radius: 28px;
            padding: 24px;
            margin-bottom: 20px;
            box-shadow: var(--shadow-md);
            border: 1px solid var(--surface-container-high);
            transition: var(--transition);
        }

        .section-label {
            display: inline-flex;
            align-items: center;
            gap: 8px;
            font-size: 11px;
            font-weight: 800;
            color: var(--primary);
            text-transform: uppercase;
            letter-spacing: 0.8px;
            margin-bottom: 24px;
            padding: 6px 14px;
            background: var(--primary-soft);
            border-radius: 20px;
            border: 1.5px solid rgba(15, 118, 110, 0.05);
        }

        .section-label i {
            width: 16px;
            height: 16px;
        }

        /* Avatar Upload UI */
        .avatar-upload-mobile {
            display: flex;
            flex-direction: column;
            align-items: center;
            margin-bottom: 36px;
            gap: 16px;
        }

        .avatar-wrapper {
            position: relative;
            padding: 8px;
            background: var(--surface);
            border-radius: 50%;
            box-shadow: var(--shadow-md);
        }

        .btn-remove-avatar {
            position: absolute;
            top: 0;
            right: 0;
            width: 28px;
            height: 28px;
            background: var(--accent);
            color: white;
            border: none;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: 0 10px 20px rgba(244, 63, 94, 0.3);
            cursor: pointer;
            z-index: 10;
        }

        .avatar-preview {
            width: 110px;
            height: 110px;
            border-radius: 50%;
            background: var(--primary-soft);
            display: flex;
            align-items: center;
            justify-content: center;
            color: var(--primary);
            border: 2px solid var(--primary-soft);
            position: relative;
            overflow: hidden;
            transition: var(--transition);
        }

        .avatar-preview img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .avatar-preview i {
            width: 40px;
            height: 40px;
            opacity: 0.5;
        }

        .btn-m-avatar {
            display: flex;
            align-items: center;
            gap: 8px;
            padding: 10px 18px;
            background: var(--primary-soft);
            color: var(--primary);
            border-radius: 12px;
            font-size: 13px;
            font-weight: 700;
            cursor: pointer;
            transition: var(--transition);
        }

        .btn-m-avatar:active {
            background: var(--primary);
            color: white;
            transform: scale(0.95);
        }

        /* Input Grid / Rows */
        .input-row {
            display: flex;
            gap: 12px;
        }

        .flex-1 {
            flex: 1;
        }

        .flex-2 {
            flex: 2;
        }

        /* Sticky Form Actions (Premium Floating Pill) */
        .form-actions-sticky {
            position: fixed;
            bottom: calc(var(--bot-h) + 16px);
            left: 16px;
            right: 16px;
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(20px);
            -webkit-backdrop-filter: blur(20px);
            padding: 12px;
            display: grid;
            grid-template-columns: 1fr 2fr;
            gap: 12px;
            border-radius: 24px;
            border: 1px solid var(--surface-container-high);
            z-index: 1000;
            box-shadow: var(--shadow-lg);
            animation: slideInBottom 0.5s cubic-bezier(0.16, 1, 0.3, 1);
        }

        @keyframes slideInBottom {
            from {
                transform: translateY(100%);
                opacity: 0;
            }

            to {
                transform: translateY(0);
                opacity: 1;
            }
        }

        .btn-m-primary,
        .btn-m-outline {
            height: 54px;
            padding: 0 20px !important;
            border-radius: 18px;
            font-size: 15px;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            transition: var(--transition);
        }

        .btn-m-primary {
            background: var(--primary-gradient);
            color: white !important;
            border: none;
            box-shadow: 0 10px 25px rgba(15, 118, 110, 0.3);
        }

        .btn-m-outline {
            background: var(--surface);
            color: var(--text-soft) !important;
            border: 1.5px solid var(--surface-container-high);
        }

        .btn-m-primary:active,
        .btn-m-outline:active {
            transform: scale(0.96);
        }

        @keyframes fadeInForm {
            from {
                opacity: 0;
                transform: translateY(10px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* Consultation Specific UI */
        .form-navigation-sticky-pill {
            position: fixed;
            bottom: calc(var(--bot-h) + 16px);
            left: 16px;
            right: 16px;
            background: rgba(255, 255, 255, 0.85);
            backdrop-filter: blur(24px);
            -webkit-backdrop-filter: blur(24px);
            padding: 10px;
            display: flex;
            gap: 12px;
            border-radius: 28px;
            border: 1px solid var(--surface-container-high);
            z-index: 1000;
            box-shadow: var(--shadow-lg);
            animation: slideInBottom 0.6s cubic-bezier(0.16, 1, 0.3, 1);
        }

        .btn-m-prev-pill,
        .btn-m-next-pill,
        .btn-m-submit-pill {
            height: 52px;
            border-radius: 20px;
            font-weight: 700;
            display: flex;
            align-items: center;
            justify-content: center;
            gap: 10px;
            transition: var(--transition);
        }

        .btn-m-prev-pill {
            width: 60px;
            background: var(--surface);
            color: var(--text-soft);
            border: 1.5px solid var(--surface-container-high);
        }

        .btn-m-next-pill,
        .btn-m-submit-pill {
            flex: 1;
            background: var(--primary-gradient);
            color: white !important;
            border: none;
            box-shadow: 0 10px 20px rgba(15, 118, 110, 0.2);
        }

        .btn-m-next-pill-outline {
            flex: 1;
            background: white;
            color: var(--primary) !important;
            border: 1.5px solid var(--primary);
            box-shadow: none;
        }

        .btn-m-submit-pill {
            background: linear-gradient(135deg, #10b981 0%, #059669 100%);
            box-shadow: 0 10px 20px rgba(16, 185, 129, 0.2);
        }

        .btn-m-prev-pill:active,
        .btn-m-next-pill:active,
        .btn-m-submit-pill:active {
            transform: scale(0.95);
        }

        .section-label-minimal {
            font-size: 13px;
            font-weight: 700;
            color: var(--text-soft);
            margin-bottom: 12px;
            display: block;
        }

        /* Med Cards */
        .med-card {
            background: var(--surface-container-low);
            border-radius: 24px;
            padding: 20px;
            margin-bottom: 16px;
            border: none;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015);
            position: relative;
            transition: 0.3s;
        }

        .med-card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
        }

        .med-number {
            font-size: 11px;
            font-weight: 800;
            color: var(--primary);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .btn-remove-med {
            width: 32px;
            height: 32px;
            border-radius: 10px;
            background: color-mix(in srgb, var(--accent) 15%, var(--surface));
            color: var(--accent);
            border: none;
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
        }

        .vitals-grid {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
        }

        /* Avatar Upload (Mobile) */
        .avatar-upload-mobile {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 16px;
            margin-bottom: 30px;
        }

        .avatar-wrapper {
            position: relative;
            width: 120px;
            height: 120px;
        }

        .avatar-preview {
            width: 100%;
            height: 100%;
            border-radius: 50%;
            background: var(--surface-container);
            display: flex;
            align-items: center;
            justify-content: center;
            overflow: hidden;
            border: 3px solid var(--surface);
            box-shadow: var(--shadow-md);
        }

        .avatar-preview img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .avatar-preview i {
            width: 48px;
            height: 48px;
            color: var(--text-soft);
        }

        .btn-remove-avatar {
            position: absolute;
            top: 0;
            right: 0;
            width: 32px;
            height: 32px;
            border-radius: 50%;
            background: var(--accent);
            color: white;
            border: 2px solid var(--surface);
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: var(--shadow-sm);
            cursor: pointer;
        }

        .btn-m-avatar {
            background: var(--primary-soft);
            color: var(--primary);
            padding: 10px 20px;
            border-radius: 12px;
            font-size: 14px;
            font-weight: 700;
            display: flex;
            align-items: center;
            gap: 8px;
            cursor: pointer;
        }

        /* Patient Sticky Header (Fix) */
        .patient-sticky-header {
            position: sticky;
            top: var(--top-h);
            background: color-mix(in srgb, var(--surface) 90%, transparent);
            backdrop-filter: blur(16px);
            -webkit-backdrop-filter: blur(16px);
            z-index: 1001;
            padding: 12px 16px;
            border-bottom: 1px solid var(--surface-container-high);
            margin-top: -16px;
            /* Offset shell padding */
            margin-bottom: 16px;
            transition: var(--transition);
        }

        .p-mini-card {
            display: flex;
            align-items: center;
            gap: 12px;
            background: var(--surface);
            padding: 10px 14px;
            border-radius: 18px;
            border: 1px solid var(--surface-container-high);
            box-shadow: var(--shadow-sm);
        }

        .p-avatar-xs {
            width: 44px;
            height: 44px;
            border-radius: 14px;
            background: var(--primary-soft);
            color: var(--primary);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 16px;
            overflow: hidden;
        }

        .p-avatar-xs img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .p-mini-info {
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        .p-name-xs {
            font-size: 14px;
            font-weight: 800;
            color: var(--text);
        }

        .p-meta-xs {
            font-size: 11px;
            font-weight: 600;
            color: var(--text-soft);
        }

        /* Step Indicator Polish */
        .step-indicator {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-top: 14px;
            padding: 0 4px;
        }

        .step {
            width: 28px;
            height: 28px;
            border-radius: 50%;
            background: var(--surface-container-low);
            color: var(--text-soft);
            display: flex;
            align-items: center;
            justify-content: center;
            font-size: 11px;
            font-weight: 800;
            transition: var(--transition);
            border: 2px solid transparent;
        }

        .step.active {
            background: var(--primary);
            color: white;
            transform: scale(1.15);
            box-shadow: 0 4px 12px rgba(15, 118, 110, 0.3);
        }

        .step.done {
            background: color-mix(in srgb, var(--primary) 20%, transparent);
            color: var(--primary);
        }

        .step-line {
            flex: 1;
            height: 2px;
            background: var(--surface-container-low);
            margin: 0 8px;
        }

        .step-line.done {
            background: #16a34a;
        }

        /* WhatsApp Toggles Container */
        .wa-toggles-container {
            display: flex;
            flex-direction: column;
            gap: 12px;
            background: var(--surface);
            padding: 16px;
            border-radius: 20px;
            border: 1.5px solid var(--surface-container-high);
            margin-top: 10px;
        }

        .wa-item {
            display: flex;
            justify-content: space-between;
            align-items: center;
            gap: 16px;
            padding: 12px;
            border-radius: 16px;
            transition: 0.2s;
        }

        .wa-item:active {
            background: var(--surface-container-low);
        }

        .wa-info {
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        .wa-info strong {
            font-size: 14px;
            font-weight: 700;
            color: var(--text);
        }

        .wa-info span {
            font-size: 11px;
            color: var(--text-soft);
            font-weight: 600;
        }

        /* Swtich Toggle UI */
        .switch {
            position: relative;
            display: inline-block;
            width: 44px;
            height: 24px;
        }

        .switch input {
            opacity: 0;
            width: 0;
            height: 0;
        }

        .slider {
            position: absolute;
            cursor: pointer;
            inset: 0;
            background-color: var(--surface-container-highest);
            transition: .4s;
            border-radius: 24px;
        }

        .slider:before {
            position: absolute;
            content: "";
            height: 18px;
            width: 18px;
            left: 3px;
            bottom: 3px;
            background-color: white;
            transition: .4s;
            border-radius: 50%;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
        }

        input:checked+.slider {
            background-color: var(--primary);
        }

        input:checked+.slider:before {
            transform: translateX(20px);
        }

        /* Refined Med Cards (App-like) */
        .med-card {
            background: var(--surface) !important;
            border-radius: 28px !important;
            padding: 24px !important;
            margin-bottom: 20px !important;
            border: none !important;
            position: relative;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015) !important;
        }

        .med-card-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 20px;
            border-bottom: 1px solid var(--surface-container-high);
            padding-bottom: 12px;
        }

        .med-number {
            font-size: 12px;
            font-weight: 800;
            color: var(--primary);
            text-transform: uppercase;
            letter-spacing: 1px;
            display: flex;
            align-items: center;
            gap: 8px;
        }

        .med-number::before {
            content: '';
            width: 6px;
            height: 6px;
            background: var(--primary);
            border-radius: 50%;
        }

        /* --- PREMIUM MOBILE PRO COMPONENTS --- */
        .mobile-dashboard {
            padding-bottom: 30px;
        }

        .hero-section {
            padding: 16px;
            margin-top: 8px;
        }

        .hero-card {
            background: var(--primary-gradient);
            border-radius: var(--radius-lg);
            padding: 30px 24px;
            color: white;
            position: relative;
            overflow: hidden;
            box-shadow: 0 20px 40px rgba(15, 118, 110, 0.25);
        }

        .hero-badge {
            background: rgba(255, 255, 255, 0.2);
            padding: 4px 12px;
            border-radius: 100px;
            font-size: 11px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 0.5px;
            display: inline-block;
        }

        .hero-card h1 {
            font-size: 24px;
            margin: 12px 0;
            line-height: 1.3;
            font-weight: 800;
            color: white;
        }

        .hero-features {
            display: flex;
            gap: 12px;
            margin-top: 16px;
        }

        .hero-features .feat {
            display: flex;
            align-items: center;
            gap: 6px;
            font-size: 12px;
            font-weight: 600;
            opacity: 0.9;
        }

        .hero-features .feat i {
            width: 14px;
            height: 14px;
        }

        .hero-icon-blob {
            position: absolute;
            right: -20px;
            bottom: -20px;
            width: 140px;
            height: 140px;
            background: rgba(255, 255, 255, 0.1);
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .hero-icon-blob i {
            width: 60px;
            height: 60px;
            color: rgba(255, 255, 255, 0.2);
            transform: rotate(-15deg);
        }

        .section {
            margin-top: 24px;
            padding: 0 16px;
        }

        .section-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 16px;
            padding: 0 4px;
        }

        .section-title {
            font-size: 18px;
            font-weight: 800;
            letter-spacing: -0.5px;
            margin: 0;
        }

        .view-all {
            font-size: 13px;
            font-weight: 700;
            color: var(--primary);
            text-decoration: none;
        }

        /* App Grid Components */
        .app-grid {
            display: grid;
            grid-template-columns: repeat(3, 1fr);
            gap: 20px 12px;
        }

        .app-icon-item {
            display: flex;
            flex-direction: column;
            align-items: center;
            text-decoration: none;
            gap: 10px;
            transition: var(--transition);
            cursor: pointer;
        }

        .app-icon-item:active {
            transform: scale(0.9);
        }

        .icon-wrap {
            width: 68px;
            height: 68px;
            border-radius: 22px;
            display: flex;
            align-items: center;
            justify-content: center;
            box-shadow: var(--shadow-md);
            position: relative;
        }

        .icon-wrap i {
            width: 28px;
            height: 28px;
        }

        .app-icon-item span {
            font-size: 11px;
            font-weight: 700;
            color: var(--text);
            text-align: center;
        }

        /* Modern Stats Row */
        .modern-stats-row {
            display: grid;
            grid-template-columns: 1fr 1fr;
            gap: 16px;
        }

        .m-stat-card {
            background: var(--surface);
            padding: 20px;
            border-radius: var(--radius-md);
            display: flex;
            flex-direction: column;
            gap: 12px;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015);
            border: none;
            transition: var(--transition);
        }

        .m-stat-card:active {
            transform: scale(0.96);
        }

        .m-stat-icon {
            width: 44px;
            height: 44px;
            border-radius: 14px;
            display: flex;
            align-items: center;
            justify-content: center;
        }

        .m-stat-card.primary .m-stat-icon {
            background: var(--primary-soft);
            color: var(--primary);
        }

        .m-stat-card.secondary .m-stat-icon {
            background: var(--secondary-soft);
            color: var(--secondary);
        }

        .m-stat-icon i {
            width: 22px;
            height: 22px;
        }

        .m-stat-data {
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        .m-value {
            font-size: 22px;
            font-weight: 800;
            color: var(--text);
        }

        .m-label {
            font-size: 11px;
            font-weight: 700;
            color: var(--text-soft);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        /* Activity & List Components */
        .activity-stream {
            display: flex;
            flex-direction: column;
            gap: 12px;
        }

        .modern-activity-card {
            background: var(--surface);
            padding: 14px;
            border-radius: var(--radius-sm);
            display: flex;
            align-items: center;
            gap: 12px;
            box-shadow: var(--shadow-sm);
            border: 1px solid rgba(0, 0, 0, 0.02);
        }

        .p-avatar {
            width: 48px;
            height: 48px;
            border-radius: 14px;
            background: var(--primary-soft);
            color: var(--primary);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 800;
            font-size: 18px;
            flex-shrink: 0;
        }

        .activity-body {
            flex: 1;
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }

        .p-name {
            font-size: 15px;
            font-weight: 700;
            color: var(--text);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
        }

        .p-time {
            font-size: 12px;
            color: var(--text-soft);
            display: flex;
            align-items: center;
            gap: 4px;
        }

        /* Common UI Elements */
        .empty-state {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-soft);
            display: flex;
            flex-direction: column;
            align-items: center;
            justify-content: center;
        }

        .field-floating {
            position: relative;
            margin-bottom: 20px;
        }

        .field-floating input,
        .field-floating select,
        .field-floating textarea {
            width: 100%;
            height: 54px;
            padding: 18px 20px 2px;
            border: 1.5px solid var(--surface-container-high);
            border-radius: 28px;
            background: var(--surface-container-low);
            color: var(--text);
            font-family: inherit;
            font-size: 15px;
            font-weight: 600;
            outline: none;
            transition: 0.2s;
        }

        .field-floating textarea {
            height: auto;
            min-height: 120px;
            padding: 20px 16px;
        }

        .field-floating label {
            position: absolute;
            top: 50%;
            left: 20px;
            transform: translateY(-50%);
            color: var(--text-soft);
            font-size: 15px;
            font-weight: 500;
            pointer-events: none;
            transition: 0.2s;
        }

        .field-floating input:focus,
        .field-floating select:focus,
        .field-floating textarea:focus {
            border-color: var(--primary);
            background: var(--surface);
            box-shadow: 0 8px 16px color-mix(in srgb, var(--primary) 10%, transparent), 0 0 0 4px color-mix(in srgb, var(--primary) 5%, transparent);
        }

        .field-floating input:focus+label,
        .field-floating input:not(:placeholder-shown)+label,
        .field-floating select:focus+label,
        .field-floating select:not([value=""])+label,
        .field-floating select:valid+label,
        .field-floating textarea:focus+label,
        .field-floating textarea:not(:placeholder-shown)+label,
        .field-floating input[type="date"]+label,
        .field-floating input[type="time"]+label {
            top: 0 !important;
            left: 28px !important;
            font-size: 11px !important;
            transform: translateY(-50%) !important;
            padding: 0 6px !important;
            background: var(--surface-container-low) !important;
            opacity: 1 !important;
            font-weight: 700;
            color: var(--primary);
        }

        .field-floating input:focus+label,
        .field-floating select:focus+label,
        .field-floating textarea:focus+label {
            background: var(--surface) !important;
        }

        /* Bottom Sheet Modal Styles */
        .mobile-sheet-overlay {
            position: fixed;
            inset: 0;
            background: rgba(0, 0, 0, 0.4);
            backdrop-filter: blur(4px);
            -webkit-backdrop-filter: blur(4px);
            z-index: 2000;
            display: none;
            align-items: flex-end;
            justify-content: center;
        }

        .mobile-sheet {
            background: var(--surface);
            width: 100%;
            max-width: 500px;
            border-top-left-radius: 32px;
            border-top-right-radius: 32px;
            padding: 24px;
            padding-bottom: calc(24px + env(safe-area-inset-bottom));
            box-shadow: 0 -10px 40px rgba(0, 0, 0, 0.1);
            transform: translateY(100%);
            transition: transform 0.3s cubic-bezier(0, 0, 0.2, 1);
        }

        .mobile-sheet.active {
            transform: translateY(0);
        }

        .sheet-handle {
            width: 40px;
            height: 5px;
            background: var(--surface-container-highest);
            border-radius: 10px;
            margin: -12px auto 20px auto;
        }

        .sheet-header {
            display: flex;
            justify-content: space-between;
            align-items: center;
            margin-bottom: 24px;
        }

        .sheet-title {
            font-size: 20px;
            font-weight: 800;
            letter-spacing: -0.5px;
        }

        .sheet-close {
            width: 36px;
            height: 36px;
            border-radius: 12px;
            background: var(--surface-container-low);
            border: none;
            color: var(--text-soft);
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* Refined Registration Cards */
        .registry-card {
            background: var(--surface);
            border-radius: 20px;
            padding: 16px;
            border: none;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015);
            display: flex;
            align-items: center;
            gap: 16px;
            margin-bottom: 12px;
            transition: var(--transition);
            position: relative;
        }

        .registry-card:active {
            background: var(--surface-container-low);
            transform: scale(0.98);
        }

        .registry-icon {
            width: 52px;
            height: 52px;
            border-radius: 16px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .registry-content {
            flex: 1;
            min-width: 0;
        }

        .registry-title {
            font-size: 15px;
            font-weight: 700;
            color: var(--text);
            display: block;
            margin-bottom: 2px;
        }

        .registry-sub {
            font-size: 12px;
            color: var(--text-soft);
            font-weight: 600;
        }

        .registry-actions {
            display: flex;
            gap: 8px;
        }

        .brand-logo-img {
            width: 120px;
            height: 40px;
            background-color: var(--primary);
            -webkit-mask: url('../logo/logo.svg') no-repeat center;
            mask: url('../logo/logo.svg') no-repeat center;
            -webkit-mask-size: contain;
            mask-size: contain;
        }

        /* --- Physically Correct Side-Slide Transitions --- */

        /* [FORWARD] New page enters from right */
        .page-enter-forward {
            animation: slideInFromRight 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
            z-index: 100;
        }

        /* [FORWARD] Current page exits to the left */
        .page-exit-forward {
            opacity: 0.3;
            transform: translateX(-100%);
            transition: opacity 0.4s ease, transform 0.4s cubic-bezier(0.4, 0, 0.2, 1);
            pointer-events: none;
        }

        /* [BACK] Previous page enters from the left */
        .page-enter-back {
            animation: slideInFromLeft 0.4s cubic-bezier(0.4, 0, 0.2, 1) forwards;
            z-index: 10;
        }

        /* [BACK] Current page exits to the right */
        .page-exit-back {
            z-index: 200;
            transform: translateX(100%);
            opacity: 0.5;
            transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1), opacity 0.4s ease;
            pointer-events: none;
        }

        @keyframes slideInFromRight {
            from {
                transform: translateX(100%);
                opacity: 0;
            }

            to {
                transform: translateX(0);
                opacity: 1;
            }
        }

        @keyframes slideInFromLeft {
            from {
                transform: translateX(-100%);
                opacity: 0;
            }

            to {
                transform: translateX(0);
                opacity: 1;
            }
        }

        /* Shared Action Cards (for Profiles) */
        .action-card {
            display: flex;
            align-items: center;
            gap: 12px;
            padding: 16px;
            background: var(--surface);
            border: none;
            box-shadow: 0 10px 30px rgba(0, 0, 0, 0.025), 0 1px 4px rgba(0, 0, 0, 0.015);
            border-radius: 16px;
            text-decoration: none;
            color: inherit;
            transition: var(--transition);
            cursor: pointer;
            width: 100%;
            text-align: left;
        }

        .action-card:hover {
            background: var(--surface-container-low);
        }

        .action-card:active {
            transform: scale(0.98);
            background: var(--surface-container-low);
        }

        .action-icon {
            width: 48px;
            height: 48px;
            border-radius: 12px;
            display: flex;
            align-items: center;
            justify-content: center;
            flex-shrink: 0;
        }

        .action-icon i {
            width: 24px;
            height: 24px;
        }

        .action-body {
            flex: 1;
            display: flex;
            flex-direction: column;
            gap: 2px;
        }

        .action-title {
            font-weight: 700;
            font-size: 15px;
            color: var(--text);
        }

        .action-desc {
            font-size: 12px;
            color: var(--text-soft);
            font-weight: 500;
        }

        .action-arrow {
            width: 20px;
            height: 20px;
            color: var(--text-soft);
            opacity: 0.5;
            flex-shrink: 0;
        }

        /* Shared Mobile Modal */
        .mobile-modal {
            position: fixed;
            top: 0;
            left: 0;
            right: 0;
            bottom: 0;
            background: rgba(0, 0, 0, 0.5);
            backdrop-filter: blur(8px);
            z-index: 3000;
            display: none;
            align-items: center;
            justify-content: center;
            padding: 20px;
        }

        .mobile-modal.active {
            display: flex;
        }

        .modal-content-m {
            background: var(--surface);
            border-radius: 24px;
            width: 100%;
            max-width: 400px;
            box-shadow: var(--shadow-lg);
            animation: modalSlideUp 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
            overflow: hidden;
        }

        @keyframes modalSlideUp {
            from {
                transform: translateY(30px);
                opacity: 0;
            }

            to {
                transform: translateY(0);
                opacity: 1;
            }
        }

        .modal-header-m {
            display: flex;
            align-items: center;
            justify-content: space-between;
            padding: 20px;
            border-bottom: 1px solid var(--surface-container-high);
            background: var(--surface-container-low);
        }

        .modal-header-m h3 {
            margin: 0;
            font-size: 18px;
            font-weight: 800;
            color: var(--text);
        }

        .btn-icon-m {
            width: 36px;
            height: 36px;
            border-radius: 50%;
            background: var(--surface);
            border: 1px solid var(--surface-container-high);
            display: flex;
            align-items: center;
            justify-content: center;
            cursor: pointer;
            color: var(--text);
            transition: var(--transition);
        }

        .btn-icon-m:active {
            transform: scale(0.9);
        }

        .modal-body-m {
            padding: 20px;
        }

        .field-group-m {
            display: flex;
            flex-direction: column;
            gap: 6px;
            margin-bottom: 20px;
        }

        .field-group-m label {
            font-size: 12px;
            font-weight: 700;
            color: var(--text-soft);
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

        .field-group-m input {
            padding: 14px;
            border: 1.5px solid var(--surface-container-high);
            border-radius: 14px;
            font-size: 15px;
            font-weight: 600;
            background: var(--bg);
            color: var(--text);
            transition: var(--transition);
        }

        .field-group-m input:focus {
            outline: none;
            border-color: var(--primary);
            background: var(--surface);
            box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 10%, transparent);
        }

        .btn-modern-primary {
            width: 100%;
            padding: 16px;
            background: var(--primary-gradient);
            color: white;
            border: none;
            border-radius: 16px;
            font-size: 16px;
            font-weight: 800;
            cursor: pointer;
            transition: var(--transition);
            box-shadow: 0 8px 20px color-mix(in srgb, var(--primary) 30%, transparent);
        }

        .btn-modern-primary:active {
            transform: scale(0.97);
        }

        /* Wizard Footer Mobile Fixes */
        .wizard-v3-footer {
            flex-direction: column-reverse !important;
            padding: 1.2rem !important;
            gap: 12px !important;
            height: auto !important;
            border-radius: 0 0 1.5rem 1.5rem !important;
        }

        .footer-left,
        .footer-right {
            width: 100% !important;
            flex: none !important;
            justify-content: center !important;
        }

        .footer-right {
            flex-direction: column !important;
            gap: 8px !important;
        }

        .wizard-v3-footer .btn {
            width: 100% !important;
            margin: 0 !important;
            padding: 12px !important;
            height: 48px !important;
            font-size: 14px !important;
            justify-content: center !important;
        }

        .wizard-v3-body {
            padding: 1.2rem !important;
        }

        /* Mobile Drawer Specific Tuning for Primary CTA */
        #sidebar .nav-item.nav-item-primary-cta {
            margin: 12px 16px !important;
            border-radius: var(--radius-m, 12px) !important;
            padding: 12px 20px !important;
            height: auto !important;
            background: var(--primary-gradient, linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 80%, #000000) 100%)) !important;
        }
        #sidebar .nav-item.nav-item-primary-cta .nav-icon {
            background: rgba(255, 255, 255, 0.2) !important;
            border-radius: 10px !important;
            width: 32px !important;
            height: 32px !important;
            margin: 0 !important;
        }
        #sidebar .nav-item.nav-item-primary-cta .nav-label {
            color: #ffffff !important;
            font-weight: 700 !important;
            font-size: 15px !important;
        }

    }

/* 1. Global Page Background Gradient Restoration (Light/Dark Theme-aware) - Scoped to Desktop to prevent Mobile clashes */
@media only screen and (min-width: 769px) {
    html {
        background: #ffffff !important;
    }
    body {
        background: transparent !important;
    }

    html[data-theme="dark"] {
        background: radial-gradient(at 0% 0%, color-mix(in srgb, var(--primary) 10%, transparent) 0px, transparent 50%),
                    radial-gradient(at 100% 100%, color-mix(in srgb, var(--primary) 5%, transparent) 0px, transparent 50%),
                    #0a0b0d !important;
    }
    [data-theme="dark"] body,
    [data-theme="dark"] .content-wrapper {
        background: transparent !important;
        background-color: transparent !important;
    }

    /* 1.01 Top-Left Soft Theme Mesh Glow (Spans Sidebar, Topbar, and Content) */
    .mesh-blob-1 {
        background: color-mix(in srgb, var(--primary) 22%, transparent) !important;
        top: -250px !important;
        left: -200px !important;
        width: 1000px !important;
        height: 1000px !important;
        filter: blur(140px) !important;
        opacity: 0.95 !important;
    }

    [data-theme="dark"] .mesh-blob-1 {
        background: color-mix(in srgb, var(--primary) 18%, transparent) !important;
        opacity: 0.65 !important;
    }

    /* Hide other mesh blobs for a cleaner, focused top-left glow on pure white background */
    .mesh-blob-2,
    .mesh-blob-3 {
        display: none !important;
    }

    /* 1.02 Desktop Sidebar Solid White Background */
    aside {
        background: #ffffff !important;
        border-right: 1px solid rgba(0, 0, 0, 0.05) !important;
    }
    
    [data-theme="dark"] aside {
        background: rgba(12, 12, 14, 0.45) !important;
        border-right: 1px solid rgba(255, 255, 255, 0.04) !important;
    }

    /* 1.03 Desktop Topbar (Header) Glassmorphism */
    header {
        background: rgba(255, 255, 255, 0.4) !important;
        backdrop-filter: blur(30px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(30px) saturate(180%) !important;
        border: 1px solid rgba(0, 0, 0, 0.05) !important;
    }

    [data-theme="dark"] header {
        background: rgba(20, 20, 25, 0.4) !important;
        border: 1px solid rgba(255, 255, 255, 0.06) !important;
    }
}

/* 1.1 Intermediate Layout Layer Background Neutralization (Enables Gradient + Mesh Blobs to Shine Through) */
.mesh-background {
    display: block !important;
    z-index: -1 !important;
    background: transparent !important;
    background-color: transparent !important;
}

.mesh-blob {
    z-index: 1 !important; /* Sit on top of body gradient but behind all page content containers */
}

.mobile-app-shell,
.main-shell,
.app-container,
.main-content-scrollable,
#ajaxContent {
    background: transparent !important;
    background-color: transparent !important;
}

[data-theme="dark"] .mobile-app-shell,
[data-theme="dark"] .main-shell,
[data-theme="dark"] .app-container,
[data-theme="dark"] .main-content-scrollable,
[data-theme="dark"] #ajaxContent {
    background: transparent !important;
    background-color: transparent !important;
}

/* 2. Unified Light Theme Soft Shadows (Borderless Facelift) */
.card,
.bento-item,
.android-clock,
.stat-card,
.med-card,
.m-stat-card,
.registry-card,
.action-card {
    border: none !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.03), 0 1px 4px rgba(0, 0, 0, 0.01) !important;
}

/* 3. Unified Dark Theme Soft Shadows for Widget/Card Facelift */
[data-theme="dark"] .card,
[data-theme="dark"] .bento-item,
[data-theme="dark"] .android-clock,
[data-theme="dark"] .stat-card,
[data-theme="dark"] .med-card,
[data-theme="dark"] .m-stat-card,
[data-theme="dark"] .registry-card,
[data-theme="dark"] .action-card {
    border: none !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.25), 0 1px 4px rgba(0, 0, 0, 0.15) !important;
}

/* 4. Complete Mobile Bottom Navigation Redesign & Capsule Highlight */
.nav-active-indicator {
    display: none !important; /* Hide old sliding indicator block completely */
}

.mobile-bottom-nav {
    display: flex !important;
    z-index: 9999 !important; /* Float above all main content scrollable layers */
}

.nav-pill-main {
    background: rgba(15, 15, 20, 0.85) !important;
    backdrop-filter: blur(24px) saturate(180%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
    border-radius: 28px !important;
    border: 1px solid rgba(255, 255, 255, 0.08) !important;
    padding: 6px 8px !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.35) !important;
    height: 64px !important; /* Sleek, modern floating height */
    display: flex !important;
    align-items: center !important;
    justify-content: space-around !important;
}

[data-theme="light"] .nav-pill-main {
    background: rgba(255, 255, 255, 0.85) !important;
    border-color: rgba(0, 0, 0, 0.06) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.08) !important;
}

.nav-pill-main .nav-item {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    height: 48px !important;
    border-radius: 18px !important;
    color: rgba(255, 255, 255, 0.5) !important; /* Muted inactive elements */
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
    flex: 1 !important;
    margin: 0 4px !important;
    gap: 2px !important;
    opacity: 0.85 !important;
    text-decoration: none !important;
}

[data-theme="light"] .nav-pill-main .nav-item {
    color: rgba(0, 0, 0, 0.5) !important;
}

.nav-pill-main .nav-item i,
.nav-pill-main .nav-item svg {
    width: 22px !important;
    height: 22px !important;
    stroke: currentColor !important;
    stroke-width: 2 !important;
    transition: transform 0.25s cubic-bezier(0.4, 0, 0.2, 1) !important;
}

.nav-pill-main .nav-item span {
    font-size: 10px !important;
    font-weight: 600 !important;
    color: currentColor !important;
    transition: font-weight 0.25s ease !important;
}

/* Bulletproof CSS-driven Capsule Active Highlight */
.nav-pill-main .nav-item.active {
    background: var(--primary) !important; /* Beautiful dynamic primary background capsule */
    color: #ffffff !important;
    opacity: 1 !important;
    box-shadow: 0 6px 16px color-mix(in srgb, var(--primary) 35%, transparent) !important;
    transform: scale(1.04) !important;
}

[data-theme="light"] .nav-pill-main .nav-item.active {
    background: var(--primary) !important;
    color: #ffffff !important;
    opacity: 1 !important;
    box-shadow: 0 6px 16px color-mix(in srgb, var(--primary) 25%, transparent) !important;
}

.nav-pill-main .nav-item.active i,
.nav-pill-main .nav-item.active svg {
    transform: scale(1.05) translateY(-1px) !important;
    stroke: #ffffff !important;
}

.nav-pill-main .nav-item.active span {
    font-weight: 700 !important;
}

/* ==========================================================================
   MERGED DOCTOR PORTAL MODULE STYLES (FROM doctor.css)
   ========================================================================== */

/* Combined Doctor Module Stylesheet */

/* ==========================================================================
   Styles extracted from: diagnostic-pending.php
   ========================================================================== */

.diagnostic-tab-header {
        display: flex;
        gap: 8px;
        background: var(--surface-container-high);
        padding: 6px;
        border-radius: 16px;
        width: fit-content;
        margin-bottom: 0;
        border: 1px solid var(--outline-variant);
    }

    .diagnostic-tab {
        padding: 8px 18px;
        border-radius: 12px;
        font-size: 13px;
        font-weight: 700;
        cursor: pointer;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        color: var(--on-surface-variant);
        background: transparent;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .diagnostic-tab.active {
        background: var(--secondary);
        color: var(--on-secondary);
        box-shadow: 0 4px 12px rgba(var(--secondary-seed-rgb), 0.2);
    }

    .count-badge {
        background: rgba(255, 255, 255, 0.2);
        color: inherit;
        padding: 2px 8px;
        border-radius: 20px;
        font-size: 11px;
        font-weight: 800;
    }

    .diagnostic-tab:not(.active) .count-badge {
        background: var(--surface-container-highest);
        color: var(--on-surface-variant);
    }

    .filter-bar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 24px;
        flex-wrap: nowrap;
        gap: 16px;
        background: var(--surface-container-low);
        padding: 12px 20px;
        border-radius: 20px;
        border: 1px solid var(--outline-variant);
    }

    .status-select {
        height: 32px;
        padding: 0 8px;
        border-radius: 8px;
        border: 1px solid var(--outline-variant);
        background: var(--surface-container-highest);
        font-size: 12px;
        font-weight: 700;
        cursor: pointer;
        transition: all 0.2s;
    }

    .status-select.processing {
        background: var(--secondary-container);
        color: var(--on-secondary-container);
        border-color: var(--secondary);
    }

    .result-modal-overlay {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(255, 255, 255, 0.4) !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
        z-index: 2000;
        justify-content: center;
        align-items: center;
        transition: all 0.3s ease;
    }

    [data-theme="dark"] .result-modal-overlay {
        background: rgba(12, 12, 14, 0.55) !important;
    }

    .result-modal-card {
        background: var(--surface);
        border-radius: 28px;
        width: 90%;
        max-width: 540px;
        padding: 32px;
        box-shadow: 0 24px 80px rgba(0, 0, 0, 0.4);
        animation: modalFadeUp 0.4s cubic-bezier(0.2, 0, 0, 1);
    }

    @keyframes modalFadeUp {
        from { transform: translateY(40px); opacity: 0; }
        to { transform: translateY(0); opacity: 1; }
    }

    .file-upload-zone {
        border: 2px dashed var(--outline-variant);
        border-radius: 20px;
        padding: 32px;
        text-align: center;
        cursor: pointer;
        transition: all 0.2s;
        background: var(--surface-container-low);
    }

    .file-upload-zone:hover {
        border-color: var(--primary);
        background: var(--surface-container-high);
    }

/* ==========================================================================
   Styles extracted from: diagnostic-reviewed.php
   ========================================================================== */

.diagnostic-tab-header {
        display: flex;
        gap: 8px;
        background: var(--surface-container-high);
        padding: 6px;
        border-radius: 16px;
        width: fit-content;
        margin-bottom: 0;
        border: 1px solid var(--outline-variant);
    }

    .diagnostic-tab {
        padding: 8px 18px;
        border-radius: 12px;
        font-size: 13px;
        font-weight: 700;
        cursor: pointer;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        color: var(--on-surface-variant);
        background: transparent;
        display: flex;
        align-items: center;
        gap: 8px;
    }

    .diagnostic-tab.active {
        background: var(--primary);
        color: var(--on-primary);
        box-shadow: 0 4px 12px rgba(var(--primary-seed-rgb), 0.2);
    }

    .count-badge {
        background: rgba(255, 255, 255, 0.2);
        color: inherit;
        padding: 2px 8px;
        border-radius: 20px;
        font-size: 11px;
        font-weight: 800;
    }

    .diagnostic-tab:not(.active) .count-badge {
        background: var(--surface-container-highest);
        color: var(--on-surface-variant);
    }

    .filter-bar {
        display: flex;
        justify-content: space-between;
        align-items: center;
        margin-bottom: 24px;
        flex-wrap: nowrap;
        gap: 16px;
        background: var(--surface-container-low);
        padding: 12px 20px;
        border-radius: 20px;
        border: 1px solid var(--outline-variant);
    }

    .search-wrapper {
        position: relative;
        width: 100%;
        max-width: 300px;
        display: flex;
        align-items: center;
    }

    .search-wrapper i {
        position: absolute;
        left: 14px;
        top: 50%;
        transform: translateY(-50%);
        z-index: 1;
        width: 18px;
        color: var(--on-surface-variant);
        opacity: 0.7;
        pointer-events: none;
    }

    .search-wrapper input {
        width: 100%;
        height: 44px;
        padding: 0 16px 0 44px;
        border-radius: 12px;
        border: 1px solid var(--outline-variant);
        background: var(--surface-container-highest);
        color: var(--on-surface);
        font-size: 14px;
        font-weight: 500;
        transition: all 0.2s;
    }

    .search-wrapper input:focus {
        background: var(--surface);
        border-color: var(--primary);
        box-shadow: 0 0 0 4px rgba(var(--primary-seed-rgb), 0.1);
        outline: none;
    }

    .report-modal {
        display: none;
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        background: rgba(255, 255, 255, 0.4) !important;
        backdrop-filter: blur(12px) !important;
        -webkit-backdrop-filter: blur(12px) !important;
        z-index: 2000;
        justify-content: center;
        align-items: center;
        transition: all 0.3s ease;
    }

    [data-theme="dark"] .report-modal {
        background: rgba(12, 12, 14, 0.55) !important;
    }

    .report-modal-surface {
        background: var(--surface);
        border-radius: 28px;
        width: 90%;
        max-width: 800px;
        max-height: 90vh;
        display: flex;
        flex-direction: column;
        box-shadow: 0 24px 80px rgba(0, 0, 0, 0.4);
        overflow: hidden;
        animation: modalFadeUp 0.4s cubic-bezier(0.2, 0, 0, 1);
    }

    .modal-header {
        padding: 24px 32px;
        border-bottom: 1px solid var(--outline-variant);
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .modal-body {
        padding: 32px;
        overflow-y: auto;
        flex: 1;
    }

    .modal-footer {
        padding: 20px 32px;
        background: var(--surface-container-low);
        border-top: 1px solid var(--outline-variant);
        display: flex;
        justify-content: flex-end;
    }

/* ==========================================================================
   Styles extracted from: followups.php
   ========================================================================== */

@keyframes spin {
                    from {
                        transform: rotate(0deg);
                    }

                    to {
                        transform: rotate(360deg);
                    }
                }

                :root {
                    --surface-rgb: 255, 255, 255;
                }

                [data-theme="dark"] :root {
                    --surface-rgb: 28, 27, 31;
                }

                .spinner-small {
                    border-radius: 50%;
                    border: 2px solid var(--primary);
                    border-top-color: transparent;
                    animation: spin 0.8s linear infinite;
                }

                .toggle-switch {
                    position: relative;
                    display: inline-block;
                    width: 40px;
                    height: 20px;
                }

                .toggle-switch input {
                    opacity: 0;
                    width: 0;
                    height: 0;
                }

                .toggle-slider {
                    position: absolute;
                    cursor: pointer;
                    top: 0;
                    left: 0;
                    right: 0;
                    bottom: 0;
                    background-color: var(--surface-variant);
                    transition: .4s;
                    border-radius: 20px;
                }

                .toggle-slider:before {
                    position: absolute;
                    content: "";
                    height: 14px;
                    width: 14px;
                    left: 3px;
                    bottom: 3px;
                    background-color: white;
                    transition: .4s;
                    border-radius: 50%;
                }

                input:checked+.toggle-slider {
                    background-color: var(--primary);
                }

                input:checked+.toggle-slider:before {
                    transform: translateX(20px);
                }

/* ==========================================================================
   Styles extracted from: patient-passport.php
   ========================================================================== */

/* High-Fidelity Chronology Styles */
    .passport-chronology {
        position: relative;
        padding-left: 100px;
    }

    .passport-chronology::before {
        content: '';
        position: absolute;
        left: 116px;
        top: 0;
        bottom: 0;
        width: 2px;
        background: linear-gradient(to bottom, var(--primary), transparent);
        opacity: 0.2;
    }

    .chronology-item {
        position: relative;
        margin-bottom: 40px;
    }

    .chronology-date {
        position: absolute;
        left: -100px;
        width: 80px;
        text-align: right;
        padding-top: 12px;
    }

    .date-day { font-size: 1.8rem; font-weight: 800; color: var(--on-surface); line-height: 1; }
    .date-month { font-size: 0.9rem; font-weight: 700; color: var(--primary); text-transform: uppercase; }
    .date-year { font-size: 0.8rem; color: var(--on-surface-variant); opacity: 0.6; }

    .chronology-card {
        background: var(--surface);
        border-radius: 2rem;
        border: 1px solid var(--outline-variant);
        padding: 1.5rem;
        transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
        box-shadow: var(--shadow-s);
    }

    .chronology-card:hover {
        transform: translateX(8px);
        box-shadow: var(--shadow-m);
        border-color: var(--primary);
    }

    .chronology-header {
        padding-bottom: 1.2rem;
        margin-bottom: 1.5rem;
        border-bottom: 1px dashed var(--outline-variant);
    }

    .doctor-avatar-mini {
        width: 36px;
        height: 36px;
        background: var(--surface-container-high);
        color: var(--primary);
        border-radius: 10px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .chronology-notes {
        background: var(--surface-container-low);
        padding: 1.2rem;
        border-radius: 1.2rem;
        font-size: 0.95rem;
        line-height: 1.6;
        color: var(--on-surface);
        border-left: 4px solid var(--primary);
    }

    .med-item-v3 {
        background: var(--surface-container);
        padding: 0.8rem 1rem;
        border-radius: 12px;
        margin-bottom: 8px;
        border: 1px solid transparent;
        transition: all 0.2s;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }

    .med-item-v3:hover {
        border-color: var(--primary);
        background: var(--surface);
    }

    .med-name { font-weight: 700; font-size: 0.95rem; color: var(--on-surface); }
    .med-meta { font-size: 0.8rem; color: var(--primary); font-weight: 600; }

    .lab-badge-v3 {
        background: var(--secondary-container);
        color: var(--on-secondary-container);
        padding: 0.5rem 1rem;
        border-radius: 10px;
        font-size: 0.85rem;
        display: flex;
        align-items: center;
        gap: 8px;
        border: 1px solid var(--outline-variant);
    }

    .lab-name { font-weight: 700; opacity: 0.8; }
    .lab-val { font-weight: 800; }

    .followup-badge-v3 {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        background: rgba(var(--primary-seed-rgb), 0.1);
        color: var(--primary);
        padding: 0.5rem 1rem;
        border-radius: 100px;
        font-size: 0.85rem;
        font-weight: 700;
    }

    .footer-seal {
        width: 64px;
        height: 64px;
        background: var(--surface-container-high);
        color: var(--primary);
        border-radius: 50%;
        display: flex;
        align-items: center;
        justify-content: center;
        margin-bottom: 8px;
        opacity: 0.3;
    }

    @media print {
        .passport-chronology { padding-left: 0; }
        .chronology-date { position: relative; left: 0; text-align: left; margin-bottom: 12px; display: flex; gap: 8px; align-items: baseline; }
        .chronology-card { border: 1px solid #ddd; box-shadow: none !important; transform: none !important; }
        .main-content-scrollable { overflow: visible !important; }
    }

/* ==========================================================================
   Styles extracted from: reminder-view.php
   ========================================================================== */

.status-badge {
        display: inline-flex;
        align-items: center;
        gap: 6px;
        padding: 4px 10px;
        border-radius: 100px;
    }
    .lang-toggle-group {
        display: flex;
        background: var(--surface-container-high);
        padding: 4px;
        border-radius: 8px;
        gap: 4px;
    }
    .lang-btn {
        padding: 6px 12px;
        border-radius: 6px;
        font-size: 13px;
        font-weight: 600;
        cursor: pointer;
        border: none;
        background: transparent;
        color: var(--on-surface-variant);
        transition: all 0.2s;
    }
    .lang-btn.active {
        background: var(--surface);
        color: var(--primary);
        box-shadow: var(--shadow-s);
    }

/* ==========================================================================
   Styles extracted from: template-edit.php
   ========================================================================== */

.prescription-item {
        background: var(--surface-container-low);
        border-radius: var(--radius-m);
        padding: 16px;
        margin-bottom: 12px;
        border: 1px solid var(--surface-variant);
        position: relative;
    }

    .remove-row-btn {
        position: absolute;
        top: 8px;
        right: 8px;
        color: var(--error);
        cursor: pointer;
        opacity: 0.6;
        transition: opacity 0.2s;
        z-index: 10;
    }

    .remove-row-btn:hover {
        opacity: 1;
    }

    .search-results-list {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--surface-container-highest);
        border-radius: var(--radius-m);
        box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
        z-index: 1000;
        max-height: 250px;
        overflow-y: auto;
        display: none;
        border: 1px solid var(--surface-variant);
        margin-top: 4px;
    }

    .search-result-item {
        padding: 8px 16px;
        cursor: pointer;
        transition: background 0.2s;
    }

    .search-result-item:hover {
        background: var(--surface-variant);
    }

/* ==========================================================================
   Styles extracted from: template-master.php
   ========================================================================== */

.prescription-item {
        background: var(--surface-container-low);
        border-radius: var(--radius-m);
        padding: 16px;
        margin-bottom: 12px;
        border: 1px solid var(--surface-variant);
        position: relative;
    }

    .remove-row-btn {
        position: absolute;
        top: 8px;
        right: 8px;
        color: var(--error);
        cursor: pointer;
        opacity: 0.6;
        transition: opacity 0.2s;
        z-index: 10;
    }

    .remove-row-btn:hover {
        opacity: 1;
    }

    .search-results-list {
        position: absolute;
        top: 100%;
        left: 0;
        right: 0;
        background: var(--surface-container-highest);
        border-radius: var(--radius-m);
        box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
        z-index: 1000;
        max-height: 250px;
        overflow-y: auto;
        display: none;
        border: 1px solid var(--surface-variant);
        margin-top: 4px;
    }

    .search-result-item {
        padding: 8px 16px;
        cursor: pointer;
        transition: background 0.2s;
    }

    .search-result-item:hover {
        background: var(--surface-variant);
    }


/* ==========================================================================
   Styles extracted from: consultation.php
   ========================================================================== */

@keyframes spin {
                from {
                    transform: rotate(0deg);
                }

                to {
                    transform: rotate(360deg);
                }
            }
@keyframes spin {
                from {
                    transform: rotate(0deg);
                }

                to {
                    transform: rotate(360deg);
                }
            }

            :root {
                --surface-rgb: 255, 255, 255;
            }

            [data-theme="dark"] :root {
                --surface-rgb: 20, 20, 20;
            }

/* ==========================================================================
   Redesigned Diagnostic Pending Layout Styles
   ========================================================================== */

.diagnostic-stats-grid {
    margin-bottom: 24px;
}

.diagnostic-stat-card {
    background: var(--surface-container-low);
    border-radius: 24px;
    border: 1px solid var(--outline-variant);
    padding: 24px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 120px;
    transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

.diagnostic-stat-card:hover {
    transform: translateY(-4px);
    border-color: var(--primary);
    box-shadow: var(--shadow-m);
}

.diagnostic-stat-card.scan-card:hover {
    border-color: var(--secondary);
}

.stat-info {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.stat-title {
    font-size: 11px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--on-surface-variant);
    opacity: 0.7;
}

.stat-value {
    font-size: 2.2rem;
    font-weight: 900;
    margin: 0;
    font-family: 'Outfit', sans-serif;
    color: var(--primary);
}

.diagnostic-stat-card.scan-card .stat-value {
    color: var(--secondary);
}

.stat-desc {
    font-size: 12px;
    color: var(--on-surface-variant);
    opacity: 0.6;
}

.stat-icon-box {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(var(--primary-seed-rgb), 0.08);
    color: var(--primary);
    transition: all 0.3s;
}

.diagnostic-stat-card.scan-card .stat-icon-box {
    background: rgba(var(--secondary-seed-rgb), 0.08);
    color: var(--secondary);
}

.diagnostic-stat-card:hover .stat-icon-box {
    transform: scale(1.1);
}

.status-select {
    height: 36px;
    padding: 0 24px 0 12px;
    border-radius: 12px;
    border: 1px solid var(--outline-variant);
    background: var(--surface-container-highest);
    color: var(--on-surface-variant);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.5px;
    cursor: pointer;
    transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    appearance: none;
    outline: none;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");
    background-repeat: no-repeat;
    background-position: right 8px center;
    background-size: 14px;
}

.status-select:hover {
    border-color: var(--primary);
}

.status-select.not-attend {
    background-color: var(--surface-container-highest);
    color: var(--on-surface-variant);
    border-color: var(--outline-variant);
}

.status-select.processing {
    background-color: rgba(var(--primary-seed-rgb), 0.1);
    color: var(--primary);
    border-color: var(--primary);
    box-shadow: 0 0 12px rgba(var(--primary-seed-rgb), 0.15);
    animation: statusPulse 2s infinite ease-in-out;
}

@keyframes statusPulse {
    0% { box-shadow: 0 0 0 0 rgba(var(--primary-seed-rgb), 0.3); }
    70% { box-shadow: 0 0 0 8px rgba(var(--primary-seed-rgb), 0); }
    100% { box-shadow: 0 0 0 0 rgba(var(--primary-seed-rgb), 0); }
}

.request-date-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 12px;
    border-radius: 10px;
    background: var(--surface-container-high);
    color: var(--on-surface-variant);
    font-size: 12px;
    font-weight: 700;
    border: 1px solid var(--outline-variant);
}

.request-date-badge i {
    width: 14px;
    height: 14px;
    opacity: 0.7;
}

.diagnostic-item-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 6px;
    background: var(--surface-container-highest);
    color: var(--on-surface);
    font-size: 11px;
    font-weight: 800;
    margin-top: 4px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

/* Custom utility classes to avoid inline styles */
.hidden {
    display: none !important;
}

.modal-close-btn {
    opacity: 0.6;
    transition: opacity 0.2s;
}

.modal-close-btn:hover {
    opacity: 1;
}

.result-entry-textarea {
    height: 120px;
    padding-top: 24px;
    resize: none;
}

.modal-action-btn-cancel {
    min-width: 100px;
}

.modal-action-btn-save {
    min-width: 140px;
}

.action-btn-active, .action-btn-disabled {
    border-radius: 10px;
    height: 32px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.action-btn-disabled {
    opacity: 0.5;
}

.diagnostic-stat-card {
    cursor: pointer;
}

/* ==========================================
   WhatsApp API Control Center Premium Styles
   ========================================== */

/* Premium Glassmorphic Cards */
.wa-card-premium {
    border-radius: var(--radius-xl);
    border: 1px solid var(--outline-variant);
    background: var(--surface-container-low);
    backdrop-filter: blur(12px);
    transition: all 0.3s cubic-bezier(0.2, 0, 0, 1);
    position: relative;
    overflow: hidden;
}

.wa-card-premium:hover {
    transform: translateY(-2px);
    box-shadow: var(--shadow-m);
    border-color: var(--primary);
}

.wa-card-glass {
    border-radius: var(--radius-xl);
    border: 1px solid var(--outline-variant);
    background: var(--glass-bg);
    backdrop-filter: blur(var(--glass-blur));
    box-shadow: var(--shadow-s);
    transition: all var(--trans-emphasized);
}

.wa-card-glass:hover {
    box-shadow: var(--shadow-m);
    border-color: rgba(var(--primary-seed-rgb), 0.4);
}

/* Simulated Dark IDE Terminal Window */
.wa-terminal-window {
    background: #0f1115;
    border: 1px solid rgba(255, 255, 255, 0.08);
    border-radius: var(--radius-xl);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    height: 100%;
    min-height: 480px;
    box-shadow: var(--shadow-m);
}

.wa-terminal-header {
    background: rgba(255, 255, 255, 0.03);
    padding: var(--space-16) var(--space-20);
    border-bottom: 1px solid rgba(255, 255, 255, 0.08);
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.wa-terminal-dots {
    display: flex;
    gap: 6px;
    align-items: center;
}

.wa-terminal-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
}

.wa-terminal-dot.dot-red { background: #ff5f56; }
.wa-terminal-dot.dot-yellow { background: #ffbd2e; }
.wa-terminal-dot.dot-green { background: #27c93f; }

.wa-terminal-title {
    font-size: var(--font-sm);
    color: rgba(255, 255, 255, 0.6);
    font-weight: 500;
    font-family: var(--font-main);
    letter-spacing: 0.5px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.wa-terminal-body {
    padding: var(--space-20);
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: var(--font-xs);
    line-height: 1.8;
    color: #a9b7c6;
    overflow-y: auto;
    flex-grow: 1;
    background: #0b0c10;
}

/* Custom Scrollbar for Terminal */
.wa-terminal-body::-webkit-scrollbar {
    width: 6px;
}
.wa-terminal-body::-webkit-scrollbar-track {
    background: transparent;
}
.wa-terminal-body::-webkit-scrollbar-thumb {
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-full);
}
.wa-terminal-body::-webkit-scrollbar-thumb:hover {
    background: rgba(255, 255, 255, 0.25);
}

.wa-terminal-footer {
    padding: var(--space-16) var(--space-20);
    background: rgba(0, 0, 0, 0.2);
    border-top: 1px solid rgba(255, 255, 255, 0.08);
}

/* QR Code Scan Area */
.wa-qr-wrapper {
    background: #ffffff;
    border-radius: var(--radius-l);
    border: 1px solid var(--outline-variant);
    padding: var(--space-16);
    display: inline-block;
    box-shadow: var(--shadow-m);
    transition: all 0.4s cubic-bezier(0.2, 0, 0, 1);
    position: relative;
    overflow: hidden;
}

.wa-qr-wrapper:hover {
    transform: scale(1.02);
    border-color: var(--primary);
    box-shadow: 0 12px 40px rgba(var(--primary-seed-rgb), 0.15);
}

.wa-qr-scanner-line {
    position: absolute;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, rgba(var(--primary-seed-rgb), 0) 0%, var(--primary) 50%, rgba(var(--primary-seed-rgb), 0) 100%);
    box-shadow: 0 0 10px var(--primary);
    animation: waScan 3s infinite linear;
}

@keyframes waScan {
    0% { top: 0%; }
    50% { top: 100%; }
    100% { top: 0%; }
}

/* Pulse Dot Animation for active gateway */
.wa-pulse-dot {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: var(--radius-full);
    animation: waPulseGreen 2.2s infinite;
}

@keyframes waPulseGreen {
    0% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0.7); }
    70% { box-shadow: 0 0 0 8px rgba(46, 204, 113, 0); }
    100% { box-shadow: 0 0 0 0 rgba(46, 204, 113, 0); }
}

/* Premium Pulse Badge */
.wa-status-dot-pulse {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
}
.wa-status-dot-pulse.bg-success {
    background-color: #2ecc71;
    animation: waPulseGreen 2s infinite;
}
.wa-status-dot-pulse.bg-danger {
    background-color: #e74c3c;
    animation: waPulseRed 2s infinite;
}
.wa-status-dot-pulse.bg-warning {
    background-color: #f1c40f;
    animation: waPulseYellow 2s infinite;
}

@keyframes waPulseRed {
    0% { box-shadow: 0 0 0 0 rgba(231, 76, 60, 0.7); }
    70% { box-shadow: 0 0 0 8px rgba(231, 76, 60, 0); }
    100% { box-shadow: 0 0 0 0 rgba(231, 76, 60, 0); }
}

@keyframes waPulseYellow {
    0% { box-shadow: 0 0 0 0 rgba(241, 196, 15, 0.7); }
    70% { box-shadow: 0 0 0 8px rgba(241, 196, 15, 0); }
    100% { box-shadow: 0 0 0 0 rgba(241, 196, 15, 0); }
}

/* Premium Info Gradient Bento */
.wa-gradient-info-card {
    background: linear-gradient(135deg, var(--primary) 0%, #1a365d 100%) !important;
    border-radius: var(--radius-xl);
    border: none;
    color: var(--on-primary);
    box-shadow: var(--shadow-m);
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.wa-gradient-info-card::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200px;
    height: 200px;
    border-radius: var(--radius-full);
    background: rgba(255, 255, 255, 0.05);
    filter: blur(20px);
    pointer-events: none;
}

/* Layout Utilities */
.wa-status-pill {
    padding: var(--space-8) var(--space-20);
    font-weight: 700;
    letter-spacing: 0.5px;
}

.wa-btn-tall {
    height: 52px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-m) !important;
}

.wa-soft-badge {
    padding: var(--space-4) var(--space-12);
    border-radius: var(--radius-pill);
    font-weight: 700;
    font-size: var(--font-xs);
    text-transform: uppercase;
}

.bg-soft-success { background: rgba(46, 204, 113, 0.1); color: #2ecc71; }
.bg-soft-danger { background: rgba(231, 76, 60, 0.1); color: #e74c3c; }
.bg-soft-warning { background: rgba(241, 196, 15, 0.1); color: #f1c40f; }
.bg-soft-secondary { background: rgba(127, 140, 141, 0.1); color: #7f8c8d; }

.wa-metric-box {
    padding: var(--space-20);
    background: var(--surface-container-high);
    border: 1px solid var(--outline-variant);
    border-radius: var(--radius-l);
    text-align: center;
    transition: all 0.3s var(--trans-std);
}

.wa-metric-box:hover {
    transform: translateY(-2px);
    border-color: var(--primary);
    background: var(--surface-container-highest);
}

/* Quick Align helper rules */
.wa-gap-8 { gap: 8px; }
.wa-gap-12 { gap: 12px; }
.wa-gap-16 { gap: 16px; }
.wa-gap-24 { gap: 24px; }
.wa-gap-40 { gap: 40px; }

.wa-radius-16 { border-radius: var(--radius-l) !important; }
.wa-radius-24 { border-radius: var(--radius-xl) !important; }

.wa-h-100 { height: 100%; }
.wa-w-fit { width: fit-content; }

/* Settings icon box styles */
.wa-icon-box-primary {
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wa-icon-box-tertiary {
    background: var(--tertiary-container) !important;
    color: var(--on-tertiary-container) !important;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wa-icon-box-small {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.no-decoration {
    text-decoration: none !important;
}

.btn-tertiary {
    background: var(--tertiary-container) !important;
    border-color: var(--outline-variant) !important;
    color: var(--on-tertiary-container) !important;
}

.btn-tertiary:hover {
    background: var(--tertiary) !important;
    color: var(--on-tertiary) !important;
    border-color: var(--tertiary) !important;
}

.wa-max-h-600 {
    max-height: 600px;
}

.wa-textarea-tall {
    height: 120px !important;
    resize: none !important;
}

/* Widget Icon Color Helpers */
.widget-icon-indigo {
    background: #eef2ff !important;
    color: #4f46e5 !important;
}

.widget-icon-amber {
    background: #fffbeb !important;
    color: #d97706 !important;
}

.widget-icon-emerald {
    background: #ecfdf5 !important;
    color: #059669 !important;
}

.widget-icon-gray {
    background: #f3f4f6 !important;
    color: #4b5563 !important;
}

.wa-widget-active-state {
    font-size: 16px !important;
    line-height: 1.5 !important;
    font-family: var(--font-main) !important;
    color: var(--on-surface) !important;
}


/* WA Tab Layouts */
.wa-tabs-track {
    background: var(--surface-container-high) !important;
    padding: var(--space-8) !important;
    border-radius: var(--radius-l) !important;
    display: inline-flex !important;
    gap: 8px !important;
    border: 1px solid var(--outline-variant) !important;
    box-shadow: var(--shadow-s) !important;
}

.wa-tab-btn {
    background: transparent !important;
    border: 1px solid transparent !important;
    padding: var(--space-12) var(--space-24) !important;
    border-radius: var(--radius-m) !important;
    color: var(--on-surface-variant) !important;
    cursor: pointer !important;
    font-weight: 700 !important;
    font-size: var(--font-m) !important;
    transition: all var(--trans-emphasized) !important;
    display: inline-flex !important;
    align-items: center !important;
    gap: 10px !important;
}

.wa-tab-btn:hover {
    color: var(--primary) !important;
    background: rgba(var(--primary-seed-rgb), 0.04) !important;
}

.wa-tab-btn.active {
    background: var(--surface) !important;
    color: var(--primary) !important;
    box-shadow: var(--shadow-s) !important;
    border-color: var(--outline-variant) !important;
}

.wa-tab-pane {
    display: none;
}

.wa-tab-pane.active {
    display: block;
    animation: slideUpFade 0.4s cubic-bezier(0.2, 0, 0, 1) forwards;
}

/* WA Progress Bars */
.wa-progress-track {
    background: var(--surface-container-high);
    border-radius: var(--radius-full);
    height: 8px;
    overflow: hidden;
    width: 100%;
    margin-top: 8px;
}
.wa-progress-bar {
    height: 100%;
    border-radius: var(--radius-full);
    transition: width 0.8s ease-out;
}
.wa-progress-bar.bar-primary { background: var(--primary); }
.wa-progress-bar.bar-tertiary { background: var(--tertiary); }
.wa-progress-bar.bar-warning { background: #f1c40f; }
.wa-progress-bar.bar-success { background: #2ecc71; }

/* ==========================================================================
   Patient Panel Consolidated Styles - Doctor+ UI
   ========================================================================== */

:root {
    --patient-primary-gradient: linear-gradient(135deg, var(--primary), var(--primary-container));
    --patient-card-shadow: 0 8px 30px rgba(0, 0, 0, 0.04);
    --patient-card-hover-shadow: 0 16px 40px rgba(0, 0, 0, 0.08);
    --patient-transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --patient-glass-bg: rgba(255, 255, 255, 0.7);
    --patient-glass-border: rgba(255, 255, 255, 0.4);
}

/* Base layouts */
.main-body-patient {
    padding: 24px;
    animation: slideUpFade 0.6s cubic-bezier(0.16, 1, 0.3, 1) ease-out;
}

/* Header section styling */
.patient-header-container {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 32px;
    flex-wrap: wrap;
    gap: 20px;
}

.patient-profile-summary {
    display: flex;
    align-items: center;
    gap: 20px;
}

.patient-avatar-box {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    background: var(--primary-container);
    color: var(--on-primary-container);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    font-weight: 700;
    overflow: hidden;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.06);
    border: 2px solid var(--surface-container-high);
    transition: var(--patient-transition);
}

.patient-avatar-box:hover {
    transform: scale(1.05);
}

.patient-avatar-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.patient-headline {
    margin: 0;
    color: var(--on-surface);
    font-weight: 700;
    letter-spacing: -0.02em;
}

.patient-subtitle {
    margin: 4px 0 0 0;
    color: var(--on-surface-variant);
    opacity: 0.8;
}

.patient-action-group {
    display: flex;
    gap: 12px;
}

.btn-history-tonal {
    background: var(--surface-container-high);
    color: var(--on-surface);
    padding: 0 20px;
    height: 52px;
    border-radius: 14px;
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 14px;
    transition: var(--patient-transition);
    box-shadow: var(--patient-card-shadow);
    border: 1px solid var(--outline-variant);
}

.btn-history-tonal:hover {
    background: var(--surface-container-highest);
    transform: translateY(-2px);
    box-shadow: var(--patient-card-hover-shadow);
}

/* Stats Cards Grid */
.patient-stats-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-bottom: 32px;
}

.patient-stat-card {
    padding: 24px;
    position: relative;
    overflow: hidden;
    background: var(--surface);
    border: 1px solid var(--surface-variant);
    border-radius: 24px;
    box-shadow: var(--patient-card-shadow);
    transition: var(--patient-transition);
}

.patient-stat-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--patient-card-hover-shadow);
    border-color: var(--outline-variant);
}

.patient-stat-icon-wrapper {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;
    font-weight: 600;
}

.patient-stat-icon-wrapper.consultations {
    background: var(--primary-container);
    color: var(--on-primary-container);
}

.patient-stat-icon-wrapper.prescriptions {
    background: #e0f2fe;
    color: #0284c7;
}

.patient-stat-icon-wrapper.visits {
    background: #f0fdf4;
    color: #16a34a;
}

.patient-stat-value {
    font-weight: 700;
    color: var(--on-surface);
    margin-bottom: 4px;
}

.patient-stat-label {
    color: var(--on-surface-variant);
    font-weight: 500;
}

.patient-stat-deco-circle {
    position: absolute;
    right: -20px;
    top: -20px;
    width: 120px;
    height: 120px;
    border-radius: 50%;
    opacity: 0.05;
    pointer-events: none;
}

.patient-stat-deco-circle.consultations {
    background: var(--primary);
}

.patient-stat-deco-circle.prescriptions {
    background: #0284c7;
}

.patient-stat-deco-circle.visits {
    background: #16a34a;
}

/* Card Headers and Tables */
.card-header-flex {
    padding: 24px;
    border-bottom: 1px solid var(--surface-variant);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}

.card-header-title {
    margin: 0;
    font-weight: 600;
}

.view-all-link {
    font-size: 14px;
    font-weight: 600;
    color: var(--primary);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: 4px;
    transition: var(--patient-transition);
}

.view-all-link:hover {
    color: var(--primary-hover);
    transform: translateX(4px);
}

.table-responsive-patient {
    width: 100%;
    overflow-x: auto;
}

.table-patient {
    width: 100%;
    border-collapse: collapse;
}

.th-patient {
    padding: 16px 24px;
    text-align: left;
    color: var(--on-surface-variant);
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    background: var(--surface-container-low);
    border-bottom: 1px solid var(--surface-variant);
}

.tr-patient-row {
    border-bottom: 1px solid var(--surface-variant);
    transition: var(--patient-transition);
}

.tr-patient-row:hover {
    background: var(--surface-container-low);
}

.td-patient {
    padding: 16px 24px;
    color: var(--on-surface);
}

.td-patient-bold {
    font-weight: 500;
}

.badge-patient-type {
    padding: 4px 12px;
    border-radius: 100px;
    background: var(--surface-container-high);
    color: var(--on-surface-variant);
    font-size: 13px;
    font-weight: 500;
}

.icon-btn-view-activity {
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    border-radius: 12px;
    background: var(--surface-container-high);
    color: var(--primary);
    transition: var(--patient-transition);
}

.icon-btn-view-activity:hover {
    background: var(--primary);
    color: var(--on-primary);
    transform: scale(1.08);
}

.empty-activity-container {
    padding: 48px;
    text-align: center;
    color: var(--on-surface-variant);
    opacity: 0.6;
}

.empty-activity-icon {
    width: 48px;
    height: 48px;
    margin-bottom: 16px;
}

/* Search and Loaders */
.patient-search-box {
    position: relative;
    width: 400px;
    max-width: 100%;
}

.patient-search-input {
    width: 100%;
    padding: 14px 16px 14px 48px;
    border-radius: 16px;
    border: 1px solid var(--outline-variant);
    background: var(--surface-container-high);
    color: var(--on-surface);
    outline: none;
    transition: var(--patient-transition);
}

.patient-search-input:focus {
    border-color: var(--primary);
    background: var(--surface);
    box-shadow: 0 0 0 3px var(--primary-container);
}

.patient-search-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px;
    color: var(--on-surface-variant);
    opacity: 0.7;
}

.patient-search-loader {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
}

.patient-table-wrapper {
    position: relative;
    min-height: 400px;
    border-radius: 20px;
    overflow: hidden;
}

.patient-table-loader {
    position: absolute;
    inset: 0;
    background: rgba(255, 255, 255, 0.75);
    backdrop-filter: blur(4px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

/* circular and pill buttons */
.btn-circular-action {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    background: var(--surface-container-high);
    color: var(--on-surface);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    transition: var(--patient-transition);
    text-decoration: none;
}

.btn-circular-action:hover:not(:disabled) {
    background: var(--primary);
    color: var(--on-primary);
    transform: scale(1.1);
}

.btn-circular-action:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Pagination Footer */
.patient-table-footer {
    padding: 24px 16px 0;
    border-top: 1px solid var(--surface-variant);
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
}

.patient-pagination-info {
    font-size: 13px;
    color: var(--on-surface-variant);
    font-weight: 600;
}

.patient-pagination-controls {
    display: flex;
    gap: 8px;
}

/* Profile Page specific classes */
.profile-row {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
}

.profile-card-col {
    flex: 1 1 300px;
    max-width: 400px;
}

.profile-card-details-col {
    flex: 2 1 400px;
}

.profile-card-container {
    padding: 32px;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.profile-card-deco-banner {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 100px;
    background: linear-gradient(135deg, var(--primary-container), var(--surface-container-low));
    opacity: 0.5;
    z-index: 0;
}

.profile-card-inner {
    position: relative;
    z-index: 1;
}

.profile-avatar-wrapper {
    width: 100px;
    height: 100px;
    margin: 0 auto 16px;
    position: relative;
}

.profile-avatar-img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    object-fit: cover;
    border: 4px solid var(--surface);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.profile-avatar-fallback {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--tertiary-container);
    color: var(--on-tertiary-container);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 32px;
    font-weight: 700;
    border: 4px solid var(--surface);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}

.profile-name {
    color: var(--on-surface);
    margin-bottom: 4px;
}

.profile-id-badge {
    display: inline-block;
    padding: 4px 12px;
    border-radius: 100px;
    background: var(--secondary-container);
    color: var(--on-secondary-container);
    font-size: 13px;
    font-weight: 500;
}

.profile-grid-metrics {
    margin-top: 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

.profile-metric-box {
    padding: 12px;
    border-radius: 16px;
    background: var(--surface-container);
    border: 1px solid var(--surface-variant);
}

.profile-metric-label {
    font-size: 12px;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
}

.profile-metric-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--on-surface);
    margin-top: 4px;
}

.profile-contact-list {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--surface-variant);
    text-align: left;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.profile-contact-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.profile-contact-icon {
    width: 18px;
    color: var(--primary);
}

.profile-contact-text {
    font-size: 14px;
    color: var(--on-surface);
}

.profile-input-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 20px;
    margin-bottom: 20px;
}

.profile-input-grid-three {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 20px;
}

.profile-warning-note {
    margin-top: 32px;
    padding: 16px;
    border-radius: 12px;
    background: var(--surface-container);
    color: var(--on-surface-variant);
    font-size: 13px;
    display: flex;
    gap: 12px;
    align-items: flex-start;
}

/* Consultation View Specific Styling */
.view-action-header {
    display: flex;
    justify-content: flex-end;
    gap: 12px;
    margin-bottom: 24px;
}

.btn-action-outline {
    height: 40px;
    border-color: var(--primary);
    color: var(--primary);
}

.view-card-header {
    display: flex;
    align-items: center;
    gap: 16px;
}

.view-avatar-img {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    object-fit: cover;
    background: var(--surface-variant);
}

.view-avatar-fallback {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--primary-container);
    color: var(--on-primary-container);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 600;
    font-size: 16px;
}

.view-consultation-title {
    margin: 0;
}

.view-consultation-id {
    font-size: 14px;
    color: var(--on-surface-variant);
}

.view-vitals-container {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--surface-variant);
    display: flex;
    flex-wrap: wrap;
    gap: 32px;
}

.view-vital-item {
    display: flex;
    align-items: center;
    gap: 12px;
}

.view-vital-badge-icon {
    width: 36px;
    height: 36px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.view-vital-info-wrap {
    display: flex;
    flex-direction: column;
}

.view-vital-name {
    font-size: 11px;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    font-weight: 500;
}

.view-vital-number {
    font-size: 15px;
    font-weight: 600;
    color: var(--on-surface);
}

.view-observations-section {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--surface-variant);
}

.view-observations-title {
    font-size: 12px;
    font-weight: 500;
    color: var(--primary);
    text-transform: uppercase;
    margin-bottom: 8px;
}

.view-observations-box {
    background: var(--surface-container-low);
    padding: 16px;
    border-radius: var(--radius-m);
    color: var(--on-surface);
    font-size: 14px;
    line-height: 1.6;
    border-left: 4px solid var(--primary);
}

.view-grid-details-card {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 24px;
}

.view-details-group {
    display: flex;
    flex-direction: column;
}

.view-details-group-span {
    grid-column: span 2;
}

.view-details-label {
    font-size: 12px;
    font-weight: 500;
    color: var(--primary);
    text-transform: uppercase;
    margin-bottom: 4px;
}

.view-details-text {
    font-size: 14px;
    color: var(--on-surface);
    font-weight: 600;
}

.view-details-subtext {
    font-size: 13px;
    color: var(--on-surface-variant);
}

.view-schedule-item {
    font-size: 14px;
    color: var(--on-surface);
}

.view-schedule-item-muted {
    color: var(--on-surface-variant);
}

.view-issues-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 8px;
}

.view-issues-badge {
    background: var(--secondary-container);
    color: var(--on-secondary-container);
    padding: 4px 12px;
    border-radius: 100px;
    font-size: 13px;
    font-weight: 500;
}

.view-issues-empty {
    color: var(--on-surface-variant);
    font-size: 14px;
    font-style: italic;
}

.view-table-header-flex {
    background: var(--surface-container-high);
    display: flex;
    align-items: center;
    gap: 8px;
}

.view-table-title {
    margin: 0;
}

.view-table-th {
    text-align: left;
    padding: 12px 16px;
    font-size: 12px;
    color: var(--on-surface-variant);
    border-bottom: 1px solid var(--surface-variant);
    background: var(--surface-container-low);
}

.view-table-tr {
    border-bottom: 1px solid var(--surface-container-high);
}

.view-table-td {
    padding: 12px 16px;
}

.view-table-td-bold {
    font-weight: 500;
    font-size: 14px;
    color: var(--on-surface);
}

.view-table-td-subtitle {
    font-size: 11px;
    color: var(--on-surface-variant);
    text-transform: uppercase;
}

.view-table-td-dosage {
    font-size: 14px;
    color: var(--on-surface);
    font-weight: 600;
}

.view-table-td-dosage-desc {
    font-size: 11px;
    color: var(--on-surface-variant);
}

.view-table-td-duration {
    font-size: 14px;
    color: var(--on-surface);
}

.view-table-td-instruction {
    font-size: 13px;
    color: var(--on-surface-variant);
    font-style: italic;
}

.view-card-table-empty {
    padding: 32px;
    text-align: center;
    color: var(--on-surface-variant);
}

.view-card-table-empty-icon {
    width: 32px;
    height: 32px;
    opacity: 0.2;
    margin-bottom: 8px;
}

.view-table-badge-normal {
    background: #f0fdf4;
    color: #166534;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}

.view-table-badge-abnormal {
    background: #fef2f2;
    color: #991b1b;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}

.view-table-badge-completed {
    background: #eff6ff;
    color: #1d4ed8;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}

.view-table-badge-pending {
    background: var(--surface-variant);
    color: var(--on-surface-variant);
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 11px;
    font-weight: 600;
}

.view-details-columns-two {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: 24px;
    margin-top: 24px;
}

/* Billing & Tabs Page Styling */
.billing-tab-header {
    display: flex;
    background: var(--surface-container-high);
}

.billing-tab-btn {
    flex: 1;
    height: 56px;
    border: none;
    background: transparent;
    color: var(--on-surface-variant);
    font-weight: 600;
    cursor: pointer;
    transition: var(--patient-transition);
    position: relative;
}

.billing-tab-btn.active {
    color: var(--primary);
}

.billing-tab-btn.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 20%;
    right: 20%;
    height: 3px;
    background: var(--primary);
    border-radius: 3px 3px 0 0;
}

.billing-tab-content {
    display: none;
    animation: fadeIn 0.4s ease-out;
}

.billing-tab-content.active {
    display: block;
}

.billing-amount-text {
    font-weight: 700;
}

.billing-amount-pharmacy {
    font-weight: 800;
    color: #d32f2f;
}

.billing-status-badge {
    padding: 4px 10px;
    border-radius: 8px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
}

.billing-status-badge.paid {
    background: var(--success-container);
    color: var(--on-success-container);
}

.billing-status-badge.unpaid {
    background: var(--error-container);
    color: var(--on-error-container);
}

/* Animations */
@keyframes slideUpFade {
    from {
        opacity: 0;
        transform: translateY(16px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes fadeIn {
    from {
        opacity: 0;
    }
    to {
        opacity: 1;
    }
}

@keyframes spin-patient {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

.spinner-patient-small {
    width: 16px;
    height: 16px;
    border: 2px solid var(--primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin-patient 0.8s linear infinite;
}

.spinner-patient-large {
    width: 48px;
    height: 48px;
    border: 4px solid var(--primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin-patient 1s linear infinite;
}

/* Passport Page Styles */
.passport-no-print-actions {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 24px;
    gap: 12px;
}
.btn-passport-action {
    border-radius: 12px;
}
.passport-avatar-fallback {
    background: var(--primary-container);
    color: var(--on-primary-container);
}
.passport-official-label {
    text-transform: uppercase;
    font-size: 12px;
    font-weight: 800;
    opacity: 0.6;
    letter-spacing: 0.1em;
    margin-bottom: 4px;
}
.passport-blood-icon {
    color: #ef4444;
}
.passport-vital-unit {
    font-size: 14px;
    opacity: 0.6;
}
.passport-timeline-heading {
    font-size: 24px;
    font-weight: 700;
    margin-bottom: 32px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--on-surface);
}
.passport-empty-timeline {
    padding: 48px;
    text-align: center;
    color: var(--on-surface-variant);
    background: var(--surface-container-low);
    border-radius: 24px;
}
.passport-empty-icon {
    width: 48px;
    height: 48px;
    opacity: 0.1;
    margin-bottom: 16px;
}
.passport-event-id {
    font-size: 13px;
    font-weight: 700;
    background: var(--surface-container-high);
    padding: 4px 12px;
    border-radius: 8px;
    color: var(--on-surface);
}
.passport-detail-section-title {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--primary);
    font-size: 14px;
    margin-bottom: 8px;
}
.passport-detail-observation-p {
    font-size: 14px;
    line-height: 1.6;
    color: var(--on-surface);
    background: var(--surface-container-low);
    padding: 12px;
    border-radius: 12px;
}
.passport-med-item {
    padding: 8px 12px;
    border-bottom: 1px solid var(--surface-variant);
    display: flex;
    justify-content: space-between;
}
.passport-med-name {
    font-weight: 600;
    font-size: 14px;
}
.passport-med-dosage {
    font-size: 13px;
    color: var(--on-surface-variant);
}
.passport-med-empty {
    font-size: 13px;
    color: var(--on-surface-variant);
    font-style: italic;
}
.passport-footer-notes {
    margin-top: 64px;
    text-align: center;
    border-top: 1px solid var(--surface-variant);
    padding-top: 32px;
    color: var(--on-surface-variant);
    font-size: 12px;
}

/* Patient Login Specific Styles */
.password-floating-field {
    position: relative;
}

.login-arrow-icon {
    width: 18px;
}

.login-toast-container {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* ==========================================================================
   Passport Consolidated Premium UI Styles
   ========================================================================== */
.btn-passport-back {
    background: var(--surface-container-high);
    border-radius: 12px;
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: var(--on-surface);
    transition: var(--transition-standard);
}
.btn-passport-back:hover {
    background: var(--surface-container-highest);
    color: var(--primary);
}
.btn-passport-back i, .btn-passport-back svg {
    width: 18px;
    height: 18px;
}
.btn-action-premium {
    height: 40px;
    padding: 0 20px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    border-radius: 12px;
}
.btn-action-premium i, .btn-action-premium svg {
    width: 16px;
    height: 16px;
}
.badge-passport-official {
    background: var(--primary-container) !important;
    color: var(--primary) !important;
    padding: 4px 10px !important;
    border-radius: 8px !important;
    font-weight: 700 !important;
    font-size: 12px !important;
    text-transform: uppercase;
}
.view-identity-meta span {
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.view-identity-meta i, .view-identity-meta svg {
    width: 14px;
    height: 14px;
}
.view-identity-meta .blood-drop {
    color: #ef4444;
}
.passport-sync-info {
    margin-left: auto;
    text-align: right;
}
.vital-icon-box i, .vital-icon-box svg {
    width: 16px;
    height: 16px;
}
.passport-section-title-wrap {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 24px;
}
.passport-section-title-icon {
    width: 32px;
    height: 32px;
    background: var(--primary-container);
    color: var(--primary);
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.passport-section-title-icon i, .passport-section-title-icon svg {
    width: 18px;
    height: 18px;
}
.doctor-avatar-mini i, .doctor-avatar-mini svg {
    width: 16px;
    height: 16px;
}
.passport-card-section-label {
    font-weight: 700;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 1px;
    font-size: 11px;
}
.passport-footer-v3 {
    margin-top: 48px;
    border-top: 1px solid var(--outline-variant);
    padding-top: 24px;
    text-align: center;
    color: var(--on-surface-variant);
    font-size: 13px;
}
.passport-footer-v3 p {
    margin: 0;
}
.passport-footer-v3 .footer-seal {
    margin: 0 auto 8px auto;
    opacity: 0.3;
}
.passport-footer-v3 .footer-seal i, .passport-footer-v3 .footer-seal svg {
    width: 24px;
    height: 24px;
}
.passport-footer-v3 .opacity-50 {
    opacity: 0.5;
    font-size: 11px;
    margin-top: 4px !important;
}

.billing-card-header {
    padding: 0 !important;
    border-bottom: 1px solid var(--outline-variant) !important;
    background: transparent !important;
}
.billing-card-body {
    padding: var(--space-24) !important;
}

.profile-textarea-address {
    height: 100px !important;
}
.profile-warning-icon {
    width: 16px;
    height: 16px;
    margin-top: 2px;
}

/* Global Icon Utilities */
.icon-20 {
    width: 20px !important;
    height: 20px !important;
}
.icon-18 {
    width: 18px !important;
    height: 18px !important;
}
.icon-16 {
    width: 16px !important;
    height: 16px !important;
}
.icon-14 {
    width: 14px !important;
    height: 14px !important;
}
.icon-purple {
    color: #7c4dff !important;
}

/* Animation Delay Utilities */
.delay-1 {
    animation-delay: 0.1s !important;
}
.delay-2 {
    animation-delay: 0.2s !important;
}

/* Consultation View Vitals Badge Icon Colors */
.view-vital-badge-icon.bp { background: #fff1f2 !important; color: #e11d48 !important; }
.view-vital-badge-icon.temp { background: #fffbeb !important; color: #d97706 !important; }
.view-vital-badge-icon.pulse { background: #fdf2f8 !important; color: #db2777 !important; }
.view-vital-badge-icon.spo2 { background: #eff6ff !important; color: #2563eb !important; }
.view-vital-badge-icon.weight { background: #f0fdf4 !important; color: #166534 !important; }
.view-vital-badge-icon.height { background: #faf5ff !important; color: #9333ea !important; }

/* --- CONSOLIDATED DIAGNOSTIC & MAINTENANCE STYLES --- */

/* Suggestion & Search Results Lists */
.search-results-list {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    background: var(--surface-container-highest);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
    z-index: 100;
    max-height: 250px;
    overflow-y: auto;
    display: none;
    margin-top: 4px;
    border: 1px solid var(--surface-variant);
}

.search-result-item {
    padding: 12px 16px;
    cursor: pointer;
    transition: 0.2s cubic-bezier(0.4, 0, 0.2, 1);
    display: flex;
    justify-content: space-between;
    align-items: center;
    border-bottom: 1px solid var(--surface-variant);
}

.search-result-item:hover {
    background: var(--surface-variant);
}

.search-result-item:last-child {
    border-bottom: none;
}

.search-result-item .price {
    font-weight: 700;
    color: var(--primary);
}

.search-result-item .type-badge,
.type-badge {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--surface-variant);
    color: var(--on-surface-variant);
    text-transform: uppercase;
    font-weight: 600;
    display: inline-block;
}

/* Status Badge Dropdowns & Toggle Items */
.badge-select-container {
    display: flex;
    align-items: center;
    gap: 8px;
}

.badge-select {
    border: none;
    padding: 6px 12px;
    border-radius: 8px;
    font-size: 12px;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    outline: none;
}

/* Custom Status Badges */
.badge-success {
    background: #dcfce7;
    color: #166534;
}

.badge-error {
    background: #fee2e2;
    color: #991b1b;
}

/* Modal Animations & Elements */
@keyframes modalEnter {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(10px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.modal-animate-card {
    animation: modalEnter 0.4s cubic-bezier(0.2, 0, 0, 1) forwards;
}

/* Profile Grid Demarcation */
.profile-row {
    display: flex;
    gap: 24px;
    flex-wrap: wrap;
}

.profile-card-col {
    flex: 1;
    min-width: 300px;
}

.profile-details-col {
    flex: 2;
    min-width: 300px;
}

.profile-avatar-wrapper {
    width: 120px;
    height: 120px;
    font-size: 40px;
    margin: 0 auto 24px;
}

.profile-details-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 24px;
}

.profile-details-grid-full {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 24px;
}

/* Billing Selected Services Header Card */
.billing-table-card {
    background: var(--surface-container-highest);
    border-radius: 20px;
    overflow: hidden;
    border: 1px solid var(--surface-variant);
}

.billing-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 13px;
}

.billing-thead {
    background: var(--surface-container-high);
    color: var(--on-surface-variant);
}

.billing-th {
    padding: 12px 16px;
    text-align: left;
}

.billing-th-right {
    padding: 12px 16px;
    text-align: right;
}

.billing-th-center {
    padding: 12px 16px;
    text-align: center;
}

.billing-td {
    padding: 12px 16px;
    font-weight: 500;
}

.billing-td-right {
    padding: 12px 16px;
    text-align: right;
    font-weight: 700;
}

.billing-td-center {
    padding: 12px 16px;
    text-align: center;
}

.billing-remove-btn {
    background: none;
    border: none;
    color: var(--error);
    cursor: pointer;
    padding: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Settings Form Formating */
.settings-form {
    padding: 32px;
}

.settings-section-title {
    margin-bottom: 24px;
    color: var(--primary);
}

.settings-grid-2 {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}

.settings-grid-3 {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    margin-bottom: 32px;
}

/* Patient Registration Layouts (Clean grids instead of inline flex properties) */
.flex-basis-15 {
    flex: 0 0 calc(15% - 9px);
}

.flex-basis-35 {
    flex: 0 0 calc(35% - 9px);
}

.flex-basis-30 {
    flex: 0 0 calc(30% - 9px);
}

.consolidated-row {
    display: flex;
    gap: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--surface-variant);
    margin-top: 24px;
    align-items: flex-start;
}

.addr-col {
    flex: 0 0 35%;
}

.loc-col {
    flex: 0 0 35%;
}

.avatar-preview-box {
    width: 48px;
    height: 48px;
}

@media (max-width: 1200px) {
    .consolidated-row {
        flex-direction: column;
        align-items: stretch;
    }
    
    .addr-col,
    .loc-col {
        flex: 1;
    }
}

@media (max-width: 768px) {
    .settings-grid-2,
    .settings-grid-3 {
        grid-template-columns: 1fr;
    }
    
    .profile-row {
        flex-direction: column;
    }
    
    .flex-basis-15,
    .flex-basis-35 {
        flex: 1;
    }
}

/* Patient Avatar Upload Styles */
.avatar-preview-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 50%;
}

/* Custom Login Styles to Avoid Inline CSS */
.login-icon-arrow {
    width: 18px;
}

.toast-container-custom {
    position: fixed;
    bottom: 24px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

/* Service Fees Master Page Styles */
.service-master-welcome {
    margin-bottom: 32px;
    animation: slideUpFade 0.6s ease-out;
}

.service-master-title {
    color: var(--on-surface);
}

.service-master-sub {
    color: var(--on-surface-variant);
}

.service-master-card {
    border-radius: 28px;
    border: 1px solid var(--surface-variant);
    background: var(--surface-container-low);
    overflow: hidden;
}

.service-master-tabs-header {
    padding: 0;
    border-bottom: 1px solid var(--surface-variant);
}

.service-master-tabs-bar {
    display: flex;
    background: var(--surface-container-high);
}

.tab-btn {
    flex: 1;
    height: 56px;
    border: none;
    background: transparent;
    color: var(--on-surface-variant);
    font-weight: 600;
    cursor: pointer;
    transition: all 0.3s;
    position: relative;
}

.tab-btn.active {
    color: var(--primary) !important;
}

.tab-btn.active::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 20%;
    right: 20%;
    height: 3px;
    background: var(--primary);
    border-radius: 3px 3px 0 0;
}

.service-master-card-body {
    padding: 24px;
}

.service-master-modal-card {
    max-width: 480px;
    width: 90%;
    background: var(--surface-container-high);
    border-radius: var(--radius-xl);
    padding: 32px;
    box-shadow: var(--shadow-l, 0 12px 48px rgba(0,0,0,0.2));
}

.service-master-modal-title {
    margin-top: 0;
}

.mb-16 {
    margin-bottom: 16px !important;
}

.mb-24 {
    margin-bottom: 24px !important;
}

.modal-actions-right {
    display: flex;
    gap: 12px;
    justify-content: flex-end;
}

.modal-save-btn {
    height: 48px;
    border-radius: 12px;
    padding: 0 24px;
}

.text-semibold {
    font-weight: 600 !important;
}

.text-price {
    color: var(--primary) !important;
    font-weight: 700 !important;
}

.icon-small {
    width: 14px;
    height: 14px;
}

.icon-medium {
    width: 18px;
    height: 18px;
}

.btn-add-service {
    border-radius: 12px !important;
}

.badge-active {
    background: var(--success-container) !important;
    color: var(--on-success-container) !important;
}

.badge-inactive {
    background: var(--error-container) !important;
    color: var(--on-error-container) !important;
}

/* Standalone Print-Optimized Styles for Reports & Invoices */
body.report-print-body {
    --primary: #2c3e50;
    --accent: #2196F3;
    --text-main: #1a1c1e;
    --text-muted: #44474e;
    --border: #e1e2e9;
    
    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif !important;
    color: var(--text-main) !important;
    line-height: 1.5 !important;
    margin: 0 !important;
    padding: 40px !important;
    background: #fff !important;
}

body.report-print-body.accent-radiology {
    --accent: #7c4dff;
}

.report-print-body .report-container {
    max-width: 850px;
    margin: 0 auto;
    border: 1px solid var(--border);
    padding: 40px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
}

.report-print-body .header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 30px;
    border-bottom: 3px solid var(--accent);
    padding-bottom: 20px;
}

.report-print-body .hospital-info h1 {
    margin: 0;
    font-size: 24px;
    color: var(--primary);
    text-transform: uppercase;
}

.report-print-body .hospital-info p {
    margin: 2px 0;
    font-size: 13px;
    color: var(--text-muted);
}

.report-print-body .report-header {
    text-align: right;
}

.report-print-body .report-header h2 {
    margin: 0;
    font-size: 20px;
    color: var(--accent);
    text-transform: uppercase;
}

.report-print-body .report-id {
    font-size: 12px;
    margin: 4px 0;
}

.report-print-body .patient-info-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    background: #f8f9fa;
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 30px;
}

.report-print-body .info-cell label {
    display: block;
    font-size: 11px;
    text-transform: uppercase;
    color: var(--text-muted);
    font-weight: 700;
}

.report-print-body .info-cell span {
    font-size: 14px;
    font-weight: 600;
}

.report-print-body .result-section {
    margin-top: 40px;
}

.report-print-body .investigation-title {
    color: var(--accent);
    border-bottom: 2px solid #eee;
    padding-bottom: 8px;
    margin-bottom: 20px;
}

.report-print-body table {
    width: 100%;
    border-collapse: collapse;
}

.report-print-body th {
    text-align: left;
    padding: 12px;
    background: #f1f3f5;
    border-bottom: 2px solid var(--border);
    font-size: 12px;
    text-transform: uppercase;
}

.report-print-body td {
    padding: 15px 12px;
    border-bottom: 1px solid var(--border);
    font-size: 14px;
}

.report-print-body .param-name {
    font-weight: 600;
}

.report-print-body .result-val {
    font-size: 16px;
}

.report-print-body .normal-range {
    font-size: 13px;
    color: var(--text-muted);
}

.report-print-body .interpretation-box {
    margin-top: 30px;
}

.report-print-body .interpretation-label {
    font-size: 13px;
    font-weight: 700;
}

.report-print-body .interpretation-text {
    font-size: 13px;
    color: var(--text-muted);
}

.report-print-body .abnormal {
    color: #d32f2f;
    font-weight: 700;
}

.report-print-body .scan-findings {
    white-space: pre-wrap;
    background: #fff;
    padding: 20px;
    border: 1px solid var(--border);
    border-radius: 12px;
    font-size: 15px;
    line-height: 1.8;
}

.report-print-body .findings-label {
    font-weight: 700;
    margin-bottom: 12px;
    color: var(--accent);
}

.report-print-body .signature-section {
    margin-top: 60px;
    display: flex;
    justify-content: space-between;
}

.report-print-body .sig-box {
    text-align: center;
    width: 200px;
}

.report-print-body .sig-line {
    border-top: 1px solid var(--primary);
    margin-bottom: 8px;
}

.report-print-body .sig-box p {
    margin: 0;
    font-size: 12px;
    font-weight: 600;
}

.report-print-body .sig-sub {
    font-size: 10px;
    font-weight: 400;
}

.report-print-body .footer {
    margin-top: 60px;
    text-align: center;
    font-size: 11px;
    color: var(--text-muted);
    border-top: 1px solid var(--border);
    padding-top: 20px;
}

.report-print-body .no-print {
    margin-top: 40px;
    text-align: center;
    display: flex;
    justify-content: center;
    gap: 16px;
}

.report-print-body .print-btn {
    padding: 12px 24px;
    background: var(--accent);
    color: white;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
}

.report-print-body .close-btn {
    padding: 12px 24px;
    background: #eee;
    color: #333;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    font-weight: 600;
}

@media print {
    body.report-print-body {
        padding: 0 !important;
    }

    .report-print-body .report-container {
        border: none;
        box-shadow: none;
        width: 100%;
        max-width: 100%;
    }

    .report-print-body .no-print {
        display: none;
    }
}

/* --- ADDITIONAL LAB PANEL REWORK STYLES --- */
.icon-circle-indigo { background: #eef2ff !important; color: #4f46e5 !important; }
.icon-circle-pink { background: #fdf2f8 !important; color: #db2777 !important; }
.icon-circle-green { background: #f0fdf4 !important; color: #16a34a !important; }
.icon-circle-orange { background: #fff7ed !important; color: #ea580c !important; }
.icon-circle-slate { background: #f8fafc !important; color: #64748b !important; }

.widget-link {
    font-size: 14px !important;
    color: var(--primary) !important;
    font-weight: 600 !important;
    text-decoration: none !important;
    display: block !important;
    margin-top: 8px !important;
}

.vertical-middle {
    vertical-align: middle !important;
    display: inline-block !important;
}

.patient-avatar-badge {
    width: 32px !important;
    height: 32px !important;
    border-radius: 50% !important;
    background: var(--surface-variant) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--on-surface-variant) !important;
    overflow: hidden !important;
}

.color-on-surface {
    color: var(--on-surface) !important;
}

.font-weight-500 {
    font-weight: 500 !important;
}

.badge-test {
    background: var(--tertiary-container) !important;
    color: var(--on-tertiary-container) !important;
    font-weight: 600 !important;
    font-size: 11px !important;
}

.badge-scan {
    background: var(--secondary-container) !important;
    color: var(--on-secondary-container) !important;
    font-weight: 600 !important;
    font-size: 11px !important;
}

.color-primary {
    color: var(--primary) !important;
}

.badge-high {
    background: #ff9800 !important;
    color: #ffffff !important;
}

.badge-select-processing {
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
}

.badge-select-normal {
    background: var(--surface-container-highest) !important;
    color: var(--on-surface) !important;
}

.btn-result-action {
    height: 36px !important;
    padding: 0 16px !important;
    min-width: auto !important;
    border-radius: 10px !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
}

.btn-result-action-disabled {
    opacity: 0.5 !important;
    cursor: not-allowed !important;
}

.btn-doc-test {
    background: var(--primary-container) !important;
    border: none !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    color: var(--primary) !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

.btn-doc-scan {
    background: #ede7f6 !important;
    border: none !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    cursor: pointer !important;
    color: #7c4dff !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    font-size: 11px !important;
    font-weight: 600 !important;
}

.btn-action-test {
    background: var(--surface-container-high) !important;
    color: var(--primary) !important;
}

.btn-action-scan {
    background: var(--surface-container-high) !important;
    color: #7c4dff !important;
}

.btn-action-print {
    background: var(--primary-container) !important;
    color: var(--primary) !important;
}

.btn-radiology-purple {
    background: #7c4dff !important;
    border-color: #7c4dff !important;
    color: #ffffff !important;
}

.ml-8 {
    margin-left: 8px !important;
}

/* --- ADDITIONAL GENERAL UTILITY CLASSES --- */
.d-none {
    display: none !important;
}
.d-block {
    display: block !important;
}
.icon-14 {
    width: 14px !important;
    height: 14px !important;
}
.icon-18 {
    width: 18px !important;
    height: 18px !important;
}
.icon-20 {
    width: 20px !important;
    height: 20px !important;
}
.icon-24 {
    width: 24px !important;
    height: 24px !important;
}
.opacity-70 {
    opacity: 0.7 !important;
}
.opacity-60 {
    opacity: 0.6 !important;
}
.opacity-50 {
    opacity: 0.5 !important;
}
.cursor-not-allowed {
    cursor: not-allowed !important;
}
.w-50 {
    width: 50px !important;
}
.display-block {
    display: block !important;
}
.display-none {
    display: none !important;
}
.d-flex {
    display: flex !important;
}
.tab-btn {
    background: transparent !important;
    color: var(--on-surface-variant) !important;
}
.tab-btn.active {
    background: var(--primary) !important;
    color: var(--on-primary) !important;
}


/* Visual overhaul for card dropdown overflow */
.card.overflow-visible {
    overflow: visible !important;
}

/* --- PREMIUM DIAGNOSTIC BILLING SUCCESS MODAL --- */
.billing-modal-content {
    max-width: 500px !important;
    text-align: left !important;
}

.success-badge-pulse {
    animation: successBadgePulse 2s infinite ease-in-out;
    margin: 0 auto 20px auto !important;
}

@keyframes successBadgePulse {
    0% {
        box-shadow: 0 0 0 0 rgba(46, 125, 50, 0.4);
    }
    70% {
        box-shadow: 0 0 0 15px rgba(46, 125, 50, 0);
    }
    100% {
        box-shadow: 0 0 0 0 rgba(46, 125, 50, 0);
    }
}

.billing-receipt-card {
    background: var(--surface-container-low) !important;
}

.bill-summary-list {
    list-style: none !important;
}



/* --- Diagnostic Billing Modal Custom Classes --- */
.billing-modal-icon {
    background: var(--success-container) !important;
    color: var(--on-success-container) !important;
    margin: 0 auto 20px auto !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    width: 64px !important;
    height: 64px !important;
    border-radius: 50% !important;
}
.billing-modal-icon i {
    width: 32px !important;
    height: 32px !important;
}
.billing-modal-title {
    color: var(--success) !important;
    text-align: center !important;
}
.billing-modal-desc {
    text-align: center !important;
}
.billing-modal-btn-dismiss {
    flex: 1 !important;
    height: 48px !important;
    border: 1px solid var(--border) !important;
}
.billing-modal-btn-print {
    flex: 1.5 !important;
    height: 48px !important;
    text-decoration: none !important;
}
.billing-chevron-icon {
    margin-right: 4px !important;
}

/* --- Billing Print Styling Helper Classes --- */
.billing-print-amount-th {
    text-align: right !important;
}
.billing-print-amount-td {
    text-align: right !important;
    font-weight: 700 !important;
}
.billing-print-totals-container {
    display: flex !important;
    justify-content: flex-end !important;
    margin-top: 30px !important;
}
.billing-print-totals-table {
    width: 300px !important;
    border-collapse: collapse !important;
}
.billing-print-totals-label-td {
    padding: 8px 12px !important;
    border: none !important;
    font-weight: 600 !important;
}
.billing-print-totals-val-td {
    text-align: right !important;
    padding: 8px 12px !important;
    border: none !important;
    font-weight: 600 !important;
}
.billing-print-grandtotal-label-td {
    padding: 8px 12px !important;
    border-top: 2px solid var(--accent) !important;
    font-weight: 800 !important;
    font-size: 18px !important;
    color: var(--accent) !important;
}
.billing-print-grandtotal-val-td {
    text-align: right !important;
    padding: 8px 12px !important;
    border-top: 2px solid var(--accent) !important;
    font-weight: 800 !important;
    font-size: 18px !important;
    color: var(--accent) !important;
}
.billing-print-footer-container {
    margin-top: 60px !important;
    text-align: center !important;
    font-size: 11px !important;
    color: var(--text-muted) !important;
    border-top: 1px solid var(--border) !important;
    padding-top: 20px !important;
}
.billing-print-actions-container {
    margin-top: 40px !important;
    text-align: center !important;
    display: flex !important;
    justify-content: center !important;
    gap: 16px !important;
}


/* --- Premium Diagnostic Billing Layout CSS --- */
.billing-grid {
    display: grid;
    grid-template-columns: 1.2fr 0.8fr;
    gap: 24px;
    align-items: start;
    margin-bottom: 32px;
}

@media (max-width: 1024px) {
    .billing-grid {
        grid-template-columns: 1fr;
    }
}

.billing-section-card {
    background: var(--surface) !important;
    border-radius: var(--radius-2xl) !important;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.015), 0 1px 3px rgba(0, 0, 0, 0.01) !important;
    border: 1px solid var(--outline-variant) !important;
    padding: 28px !important;
    transition: var(--trans-std) !important;
    margin-bottom: 24px;
}

.billing-section-card:hover {
    box-shadow: 0 12px 36px rgba(0, 0, 0, 0.03) !important;
    border-color: var(--primary) !important;
}

.receipt-card {
    background: var(--surface) !important;
    border-radius: var(--radius-2xl) !important;
    border: 2px dashed var(--outline-variant) !important;
    padding: 28px !important;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.015) !important;
}

.receipt-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: linear-gradient(90deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 60%, #ff007f) 100%);
}

.receipt-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 16px;
    border-bottom: 1px dashed var(--outline-variant);
    margin-bottom: 20px;
}

.receipt-items-list {
    min-height: 80px;
    max-height: 400px;
    overflow-y: auto;
    margin-bottom: 20px;
    padding-right: 4px;
}

/* Custom Scrollbar for receipt items */
.receipt-items-list::-webkit-scrollbar {
    width: 4px;
}
.receipt-items-list::-webkit-scrollbar-track {
    background: transparent;
}
.receipt-items-list::-webkit-scrollbar-thumb {
    background: var(--outline-variant);
    border-radius: 4px;
}

.receipt-item-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 8px;
    border-radius: var(--radius-m);
    margin-bottom: 8px;
    border: 1px solid transparent;
    background: var(--surface-container-low);
    transition: all 0.2s ease;
    animation: billingFadeIn 0.25s ease-out;
}

.receipt-item-row:hover {
    background: var(--surface-container);
    border-color: var(--outline-variant);
}

.receipt-item-info {
    display: flex;
    flex-direction: column;
    gap: 4px;
    max-width: 70%;
}

.receipt-item-name {
    font-weight: 600;
    font-size: 13px;
    color: var(--on-surface);
}

.receipt-item-meta {
    display: flex;
    align-items: center;
    gap: 8px;
}

.receipt-item-type {
    font-size: 10px;
    padding: 2px 6px;
    border-radius: 6px;
    font-weight: 700;
    text-transform: uppercase;
}

.receipt-item-type.test {
    background: color-mix(in srgb, var(--primary) 12%, transparent);
    color: var(--primary);
}

.receipt-item-type.scan {
    background: #ffe9f3;
    color: #d11270;
}

.receipt-item-price-action {
    display: flex;
    align-items: center;
    gap: 12px;
}

.receipt-item-price {
    font-weight: 700;
    font-size: 14px;
    color: var(--on-surface);
}

.receipt-divider {
    border-top: 2px dashed var(--outline-variant);
    margin: 20px 0;
}

.receipt-total-section {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 24px;
}

.receipt-total-label {
    font-size: 13px;
    font-weight: 600;
    color: var(--on-surface-variant);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.receipt-total-amount {
    font-size: 32px;
    font-weight: 800;
    color: var(--primary);
    letter-spacing: -0.5px;
}

.patient-badge-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: color-mix(in srgb, var(--primary) 6%, var(--surface-container));
    border: 1px solid var(--outline-variant);
    padding: 16px;
    border-radius: var(--radius-l);
    margin-top: 16px;
    transition: var(--trans-std);
    animation: billingSlideDown 0.3s cubic-bezier(0.16, 1, 0.3, 1);
}

.patient-badge-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--primary) 0%, color-mix(in srgb, var(--primary) 70%, #00d2ff) 100%);
    color: var(--on-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    box-shadow: 0 4px 10px color-mix(in srgb, var(--primary) 30%, transparent);
}

.patient-badge-details {
    flex: 1;
    margin-left: 14px;
}

.patient-badge-name {
    font-weight: 700;
    font-size: 14px;
    color: var(--on-surface);
}

.patient-badge-phone {
    font-size: 12px;
    color: var(--on-surface-variant);
    margin-top: 2px;
    font-weight: 500;
}

.patient-badge-action {
    margin-left: 12px;
}

/* --- Premium Search Autocomplete Inputs & Dropdowns --- */
.search-container {
    position: relative;
    width: 100%;
}

.search-container input {
    width: 100% !important;
    height: 48px !important;
    padding: 12px 16px 12px 48px !important;
    border: 2px solid var(--outline-variant) !important;
    border-radius: var(--radius-l) !important;
    background: var(--surface-container-low) !important;
    color: var(--on-surface) !important;
    font-family: inherit !important;
    font-size: 13px !important;
    font-weight: 500 !important;
    outline: none !important;
    transition: var(--trans-std) !important;
}

.search-container input:hover {
    border-color: var(--outline) !important;
    background: var(--surface-container) !important;
}

.search-container input:focus {
    border-color: var(--primary) !important;
    background: var(--surface) !important;
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--primary) 15%, transparent) !important;
}

.search-icon-left {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    width: 18px !important;
    height: 18px !important;
    color: var(--on-surface-variant);
    opacity: 0.7;
    pointer-events: none;
    z-index: 10;
    transition: var(--trans-std) !important;
}

.search-container:focus-within .search-icon-left {
    color: var(--primary);
    opacity: 1;
}

.search-results-list {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    background: var(--surface-container-highest) !important;
    border-radius: var(--radius-l) !important;
    box-shadow: var(--shadow-l) !important;
    z-index: 1000;
    max-height: 280px;
    overflow-y: auto;
    display: none;
    border: 1px solid var(--outline-variant) !important;
    padding: 8px !important;
    animation: dropdownSlideIn 0.3s cubic-bezier(0.16, 1, 0.3, 1) !important;
}

.search-results-list.show {
    display: block !important;
}

.search-result-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 12px 16px !important;
    border-radius: var(--radius-m) !important;
    cursor: pointer !important;
    transition: var(--trans-std) !important;
    margin-bottom: 4px;
    border: 1px solid transparent;
}

.search-result-item:last-child {
    margin-bottom: 0;
}

.search-result-item:hover {
    background: var(--surface-container-high) !important;
    border-color: var(--outline-variant) !important;
    transform: translateX(4px);
}

.search-result-item strong {
    color: var(--on-surface) !important;
    font-size: 13px !important;
    font-weight: 700 !important;
}

.search-result-item small {
    color: var(--on-surface-variant) !important;
    font-size: 11px !important;
    font-weight: 500 !important;
    display: inline-block;
    margin-top: 2px;
}

.search-result-item .price {
    font-weight: 700 !important;
    color: var(--primary) !important;
}

@keyframes dropdownSlideIn {
    from {
        opacity: 0;
        transform: translateY(-8px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes billingFadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes billingSlideDown {
    from {
        opacity: 0;
        transform: translateY(-15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.position-relative {
    position: relative !important;
}

/* Service Master CRUD Custom Classes (Complies with Zero Inline CSS Rule) */
.modal-w-520 {
    width: 520px !important;
}
.grid-cols-1 {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 16px !important;
}
.grid-cols-2 {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 16px !important;
}
.grid-cols-custom-1 {
    display: grid !important;
    grid-template-columns: 1.2fr 0.8fr !important;
    gap: 16px !important;
}
.field-floating-result-type-label {
    position: absolute !important;
    left: 12px !important;
    top: 8px !important;
    font-size: 11px !important;
    color: var(--primary) !important;
}

/* Pharmacy Panel Layout Refinement */
.role-pharmacy .welcome-section h1.display-medium,
.role-pharmacy .welcome-section h1,
.role-pharmacy .welcome-section p.body-large {
    display: none !important;
}

/* Hide empty welcome-section in pharmacy panel to prevent excessive spacing */
.role-pharmacy .welcome-section:not(:has(div)):not(:has(form)):not(:has(button)) {
    display: none !important;
}

/* Adjust layout spacing when in-page header titles are moved to the topbar */
.role-pharmacy .welcome-section {
    margin-bottom: 24px !important;
    padding: 0 !important;
}

.role-pharmacy .welcome-section .page-header-flex,
.role-pharmacy .welcome-section > div {
    justify-content: flex-end !important;
    width: 100% !important;
}

.role-pharmacy .welcome-section div[style*="display: flex"] > div:first-child,
.role-pharmacy .welcome-section .page-header-flex > div:first-child {
    display: none !important;
}

/* Modern Date Picker UI Refinements */
.date-picker-filter-form {
    display: flex;
    align-items: center;
    gap: 12px;
    background: var(--surface-container-high) !important;
    padding: 8px 12px 8px 16px !important;
    border-radius: 20px !important;
    border: 1px solid var(--outline-variant) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    transition: var(--transition-standard) !important;
}

[data-theme="dark"] .date-picker-filter-form {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.date-picker-input-group {
    position: relative;
    display: flex;
    align-items: center;
}

.date-picker-icon {
    position: absolute;
    left: 12px;
    width: 16px !important;
    height: 16px !important;
    color: var(--primary) !important;
    pointer-events: none;
    z-index: 2;
}

.date-picker-input {
    height: 40px !important;
    padding: 0 12px 0 36px !important;
    border-radius: 12px !important;
    border: 1px solid var(--outline-variant) !important;
    background: var(--surface) !important;
    color: var(--on-surface) !important;
    font-family: var(--font-main) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    outline: none !important;
    transition: all 0.25s cubic-bezier(0.2, 0, 0, 1) !important;
    cursor: pointer;
    position: relative;
    z-index: 1;
}

.date-picker-input:hover {
    border-color: var(--primary) !important;
    background: var(--surface-container-low) !important;
}

.date-picker-input:focus {
    border-color: var(--primary) !important;
    background: var(--surface) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 15%, transparent) !important;
}

.date-picker-separator {
    color: var(--on-surface-variant) !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.1em !important;
    opacity: 0.8 !important;
}

.date-picker-btn {
    height: 40px !important;
    border-radius: 12px !important;
    padding: 0 20px !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 25%, transparent) !important;
    transition: var(--transition-standard) !important;
}

.date-picker-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px color-mix(in srgb, var(--primary) 35%, transparent) !important;
}

.date-picker-btn:active {
    transform: translateY(1px);
}

.date-btn-icon {
    width: 16px !important;
    height: 16px !important;
}

/* Custom Calendar Icon Style for Webkit Browsers */
.date-picker-input::-webkit-calendar-picker-indicator {
    background: transparent;
    bottom: 0;
    color: transparent;
    cursor: pointer;
    height: auto;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
    width: auto;
    z-index: 3;
}

/* Premium Filter Layout in Pharmacy Panel Header */
.header-filters-wrapper {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
    margin-left: auto !important;
}

.table-search-wrapper {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
}

.table-search-icon {
    position: absolute !important;
    left: 16px !important;
    width: 16px !important;
    height: 16px !important;
    color: var(--primary) !important;
    pointer-events: none !important;
    z-index: 2 !important;
    transition: all 0.3s cubic-bezier(0.2, 0, 0, 1) !important;
}

.table-search-wrapper:focus-within .table-search-icon {
    opacity: 0 !important;
    transform: scale(0) !important;
    pointer-events: none !important;
}

.table-search-input {
    height: 44px !important;
    width: 240px !important;
    padding: 0 16px 0 44px !important;
    border-radius: 9999px !important; /* Perfect Pill Shape */
    border: 1px solid var(--outline-variant) !important;
    background: var(--surface) !important;
    color: var(--on-surface) !important;
    font-family: var(--font-main) !important;
    font-size: 13px !important;
    font-weight: 600 !important;
    outline: none !important;
    transition: all 0.3s cubic-bezier(0.2, 0, 0, 1) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
    cursor: text !important;
}

[data-theme="dark"] .table-search-input {
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.2), inset 0 1px 0 rgba(255, 255, 255, 0.05) !important;
}

.table-search-input:hover {
    border-color: var(--primary) !important;
    background: var(--surface-container-low) !important;
}

.table-search-input:focus {
    width: 290px !important;
    padding-left: 16px !important; /* Shift text left when search icon hides */
    border-color: var(--primary) !important;
    background: var(--surface) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--primary) 15%, transparent), 0 8px 24px rgba(0, 0, 0, 0.06) !important;
}


/* Patient Search Dropdown Layout Adjustments */
.patient-search-group {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    flex: 1 !important;
}

.patient-search-avatar {
    width: 38px !important;
    height: 38px !important;
    border-radius: 50% !important;
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 13px !important;
    font-weight: 700 !important;
    flex-shrink: 0 !important;
    font-family: var(--font-main) !important;
    letter-spacing: 0.5px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.2), 0 2px 4px rgba(0, 0, 0, 0.05) !important;
    border: 1px solid var(--outline-variant) !important;
}

.patient-search-avatar img {
    width: 100% !important;
    height: 100% !important;
    border-radius: 50% !important;
    object-fit: cover !important;
}

.patient-search-details {
    display: flex !important;
    flex-direction: column !important;
    gap: 2px !important;
    text-align: left !important;
}

.patient-search-name {
    font-weight: 600 !important;
    font-size: 14px !important;
    color: var(--on-surface) !important;
    font-family: var(--font-main) !important;
    line-height: 1.2 !important;
}

.patient-search-mobile {
    font-size: 11px !important;
    color: var(--on-surface-variant) !important;
    font-family: var(--font-main) !important;
    font-weight: 500 !important;
    line-height: 1 !important;
}

/* --- Doctor Settings Page Helper Classes --- */
.profile-upload-label {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
}

.day-chip {
    cursor: pointer !important;
}

.settings-palette-icon {
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
}

.settings-palette-full-width {
    max-width: none !important;
}

.settings-font-section {
    flex-direction: column !important;
    align-items: flex-start !important;
    border-top: 1px solid var(--surface-variant) !important;
    padding-top: 20px !important;
}

.font-lexend { font-family: 'Lexend', sans-serif !important; }
.font-inter { font-family: 'Inter', sans-serif !important; }
.font-roboto { font-family: 'Roboto', sans-serif !important; }
.font-outfit { font-family: 'Outfit', sans-serif !important; }
.font-poppins { font-family: 'Poppins', sans-serif !important; }
.font-googlesans { font-family: 'Google Sans', sans-serif !important; }

.settings-initials-preview {
    width: 100% !important;
    height: 100% !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 32px !important;
    font-weight: 600 !important;
    color: var(--on-secondary-container) !important;
}

/* --- Doctor Settings Mobile Enhancements --- */
@media only screen and (max-width: 768px) {
    /* Reset Content Wrapper Padding globally on mobile to align perfectly with Floating Header */
    .content-wrapper {
        padding: 0 !important;
        margin-top: 8px !important;
    }

    /* Universal Card Expansion on Mobile - Balanced Screen space & corners */
    .card {
        margin: 0 12px 14px 12px !important;
        width: calc(100% - 24px) !important;
        padding: 24px 16px !important;
        border-radius: 28px !important;
        box-sizing: border-box !important;
    }

    /* Universal Bento Grid Layout Enhancements for Home Dashboard */
    .bento-grid {
        gap: 12px !important;
        padding: 0 12px !important;
        margin-bottom: 16px !important;
    }

    .bento-item {
        border-radius: 28px !important;
        padding: 18px !important;
    }

    .stats-container {
        padding: 0 12px !important;
        gap: 10px !important;
    }

    /* Floating Header (Topbar) - Restores original premium rounded capsule shape with a 12px margin */
    header.mobile-topbar,
    .mobile-topbar {
        margin: 12px 12px !important;
        width: calc(100% - 24px) !important;
        border-radius: 24px !important;
        padding: 0 18px !important;
        height: 64px !important;
    }

    /* Floating Bottom Navigation - Restores original capsule pill shape with a 12px margin */
    .mobile-bottom-nav {
        left: 12px !important;
        right: 12px !important;
        bottom: 16px !important;
        height: 72px !important;
    }

    .nav-pill-main {
        border-radius: 36px !important;
        padding: 0 8px !important;
    }

    /* Make Settings Card Width match the Floating Header */
    .settings-container {
        width: 100% !important;
        gap: 16px !important;
        padding: 0 !important;
    }
    
    .settings-card {
        margin: 0 12px 20px 12px !important;
        width: calc(100% - 24px) !important;
        border-radius: 28px !important;
        padding: 24px 16px !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02) !important;
        box-sizing: border-box !important;
    }

    /* Refine Profile Picture Container on Mobile */
    .profile-photo-section {
        background: var(--surface-container-low) !important;
        padding: 24px 16px !important;
        border-radius: 16px !important;
        border: 1px solid var(--outline-variant) !important;
        margin-bottom: 24px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        gap: 16px !important;
        text-align: center !important;
        width: 100% !important;
    }

    .image-preview-wrapper {
        width: 110px !important;
        height: 110px !important;
        box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08) !important;
        border-radius: 50% !important;
    }

    .image-preview {
        width: 110px !important;
        height: 110px !important;
        border: 4px solid var(--surface) !important;
    }

    .profile-meta {
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        width: 100% !important;
    }

    .profile-meta h4 {
        font-size: 18px !important;
        font-weight: 700 !important;
        margin: 0 0 4px 0 !important;
    }

    .profile-meta p {
        font-size: 13px !important;
        margin: 0 0 16px 0 !important;
        color: var(--on-surface-variant) !important;
    }

    /* Form Grid optimization */
    .form-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-bottom: 20px !important;
    }

    /* Premium spacious inputs and selectors */
    .field-floating {
        position: relative !important;
        width: 100% !important;
    }

    .field-floating input,
    .field-floating select,
    .field-floating textarea {
        width: 100% !important;
        height: 54px !important;
        padding: 18px 20px 2px !important;
        border: 1.5px solid var(--surface-container-high) !important;
        border-radius: 28px !important;
        background: var(--surface-container-low) !important;
        font-size: 15px !important;
        color: var(--text) !important;
        outline: none !important;
        transition: 0.2s !important;
    }

    .field-floating textarea {
        height: auto !important;
        min-height: 120px !important;
        padding: 20px 16px !important;
    }

    .field-floating label {
        position: absolute !important;
        left: 20px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        font-size: 15px !important;
        color: var(--text-soft) !important;
        transition: 0.2s !important;
        pointer-events: none !important;
        background: transparent !important;
        margin: 0 !important;
    }

    .field-floating textarea + label {
        top: 20px !important;
        transform: none !important;
    }

    .field-floating input:focus+label,
    .field-floating input:not(:placeholder-shown)+label,
    .field-floating select:focus+label,
    .field-floating select:not([value=""])+label,
    .field-floating select:valid+label,
    .field-floating textarea:focus+label,
    .field-floating textarea:not(:placeholder-shown)+label,
    .field-floating input[type="date"]+label,
    .field-floating input[type="time"]+label {
        top: 0 !important;
        left: 28px !important;
        font-size: 11px !important;
        transform: translateY(-50%) !important;
        padding: 0 6px !important;
        background: var(--surface-container-low) !important;
        opacity: 1 !important;
        font-weight: 700 !important;
        color: var(--primary) !important;
    }

    .field-floating input:focus+label,
    .field-floating select:focus+label,
    .field-floating textarea:focus+label {
        background: var(--surface) !important;
    }

    /* Focus effects */
    .field-floating input:focus,
    .field-floating select:focus,
    .field-floating textarea:focus {
        border-color: var(--primary) !important;
        background: var(--surface) !important;
        box-shadow: 0 8px 16px color-mix(in srgb, var(--primary) 10%, transparent), 0 0 0 4px color-mix(in srgb, var(--primary) 5%, transparent) !important;
    }

    /* Custom Select inputs styled to match perfectly */
    .custom-select {
        position: relative !important;
        width: 100% !important;
    }

    .custom-select .select-box {
        height: 54px !important;
        border-radius: 28px !important;
        border: 1.5px solid var(--surface-container-high) !important;
        background: var(--surface-container-low) !important;
        padding: 18px 40px 2px 20px !important;
        display: flex !important;
        align-items: center !important;
        width: 100% !important;
        position: relative !important;
        box-sizing: border-box !important;
        transition: 0.2s !important;
    }

    .custom-select .select-box-label {
        position: absolute !important;
        left: 20px !important;
        top: 50% !important;
        transform: translateY(-50%) !important;
        font-size: 15px !important;
        color: var(--text-soft) !important;
        transition: 0.2s !important;
        pointer-events: none !important;
        margin: 0 !important;
        background: transparent !important;
    }

    .custom-select.active .select-box-label,
    .custom-select.has-value .select-box-label {
        top: 0 !important;
        left: 28px !important;
        transform: translateY(-50%) !important;
        font-size: 11px !important;
        color: var(--primary) !important;
        font-weight: 700 !important;
        background: var(--surface-container-low) !important;
        padding: 0 6px !important;
    }

    .custom-select.active .select-box-label {
        background: var(--surface) !important;
    }

    .custom-select.active .select-box {
        border-color: var(--primary) !important;
        background: var(--surface) !important;
        box-shadow: 0 8px 16px color-mix(in srgb, var(--primary) 10%, transparent), 0 0 0 4px color-mix(in srgb, var(--primary) 5%, transparent) !important;
    }

    .custom-select .select-box-display {
        font-size: 14px !important;
        color: var(--on-surface) !important;
        line-height: 1.2 !important;
        margin-bottom: 2px !important;
        font-weight: 500 !important;
        width: 100% !important;
        text-align: left !important;
    }

    /* Select Dropdown styling */
    .custom-select .select-dropdown {
        border-radius: 14px !important;
        box-shadow: 0 10px 30px rgba(0, 0, 0, 0.15) !important;
        border: 1px solid var(--outline-variant) !important;
        background: var(--surface) !important;
        max-height: 250px !important;
        overflow-y: auto !important;
        z-index: 10050 !important;
        width: 100% !important;
    }

    .custom-select .select-option {
        padding: 12px 16px !important;
        font-size: 14px !important;
        color: var(--on-surface) !important;
        border-bottom: 1px solid var(--surface-variant) !important;
        text-align: left !important;
    }

    .custom-select .select-option.selected {
        background: var(--primary-container) !important;
        color: var(--primary) !important;
        font-weight: 600 !important;
    }

    /* Working Days Selector */
    .days-selector {
        display: flex !important;
        gap: 8px !important;
        flex-wrap: wrap !important;
        justify-content: flex-start !important;
        width: 100% !important;
    }

    .day-chip {
        flex: 1 0 calc(25% - 8px) !important;
        text-align: center !important;
    }

    .chip-label {
        display: block !important;
        width: 100% !important;
        padding: 12px 0 !important;
        font-size: 13px !important;
        font-weight: 600 !important;
        border-radius: 12px !important;
        border: 1px solid var(--outline-variant) !important;
        background: var(--surface-container-low) !important;
        color: var(--on-surface-variant) !important;
        transition: all 0.2s ease !important;
        box-sizing: border-box !important;
    }

    .day-chip input:checked+.chip-label {
        background: var(--primary) !important;
        color: #ffffff !important;
        border-color: var(--primary) !important;
        box-shadow: 0 4px 12px color-mix(in srgb, var(--primary) 30%, transparent) !important;
    }

    /* Setting items styling */
    .setting-item {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 12px !important;
    }

    .setting-info {
        width: 100% !important;
    }

    .switch {
        align-self: flex-start !important;
    }

    .font-segmented-container {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        width: 100% !important;
    }

    .font-btn {
        width: 100% !important;
        padding: 10px 8px !important;
        text-align: center !important;
        border-radius: 10px !important;
    }

    /* Wizard Card Mobile Layout Refinement (Parity with Settings Card) */
    .wizard-v3 {
        margin: 0 12px 20px 12px !important;
        width: calc(100% - 24px) !important;
        border-radius: 28px !important;
        box-sizing: border-box !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02) !important;
    }
    .wizard-v3-header {
        border-radius: 28px 28px 0 0 !important;
        padding: 20px 16px !important;
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }
    .wizard-v3-progress-dots {
        padding-left: 0 !important;
        align-self: flex-start !important;
        margin-top: 12px !important;
    }
    .wizard-v3-body {
        padding: 20px 16px !important;
    }
    .wizard-v3-footer {
        border-radius: 0 0 28px 28px !important;
        padding: 20px 16px !important;
    }

    /* Dosage and Days side-by-side inside wizard columns */
    .wizard-v3-body .dosage-select.col-span-2,
    .wizard-v3-body .dosage-select.col-span-2 + .col-span-2 {
        grid-column: span 6 !important;
    }

    /* Prescription Header Mobile Reflow */
    .prescription-header-mobile {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }
    .prescription-header-actions {
        width: 100% !important;
        justify-content: space-between !important;
        gap: 10px !important;
    }
    .template-search-wrapper {
        width: 100% !important;
        flex: 1 !important;
    }

    /* Test Section Responsive Separator */
    .test-section.border-left-solid {
        border-left: none !important;
        padding-left: 0 !important;
        border-top: 1px dashed var(--surface-variant) !important;
        padding-top: 16px !important;
        margin-top: 8px !important;
    }
}

/* --- Consultation-Add & Patient-Add Refinements --- */

/* 1. Dark Mode Background Sync to Sidebar (var(--surface-container-low)) */
[data-theme="dark"] .wizard-v3 {
    background: var(--surface-container-low) !important;
    border-color: rgba(255, 255, 255, 0.05) !important;
    box-shadow: 0 20px 80px rgba(0, 0, 0, 0.6) !important;
}
[data-theme="dark"] .wizard-v3-header,
[data-theme="dark"] .wizard-v3-body,
[data-theme="dark"] .wizard-v3-footer {
    background: var(--surface-container-low) !important;
    border-color: rgba(255, 255, 255, 0.05) !important;
}

/* Premium Icon background badge for wizard steps (compliance with no inline css) */
.wizard-step-icon-wrapper {
    background: var(--primary-container) !important;
    color: var(--primary) !important;
    padding: 8px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
}

/* --- Global Dark Theme Table and Datatable Row/Cell Sync --- */

/* Unify all datatable inner rows, cells, and standard tables under dark theme to use sidebar color */
[data-theme="dark"] table.dataTable,
[data-theme="dark"] table.dataTable tbody,
[data-theme="dark"] table.dataTable tbody tr,
[data-theme="dark"] table.dataTable tbody td,
[data-theme="dark"] .table,
[data-theme="dark"] .table tbody,
[data-theme="dark"] .table tbody tr,
[data-theme="dark"] .table tbody td,
[data-theme="dark"] tr,
[data-theme="dark"] td {
    background-color: var(--surface-container-low) !important;
    background: var(--surface-container-low) !important;
    color: var(--text) !important;
    border-color: var(--surface-variant) !important;
}

/* Subtle accent striping for zebra rows in dark mode */
[data-theme="dark"] table.dataTable.stripe tbody tr.odd,
[data-theme="dark"] table.dataTable.display tbody tr.odd {
    background-color: color-mix(in srgb, var(--primary) 2%, var(--surface-container-low)) !important;
    background: color-mix(in srgb, var(--primary) 2%, var(--surface-container-low)) !important;
}

/* Slick container-high hover highlighting for table rows */
[data-theme="dark"] table.dataTable.hover tbody tr:hover,
[data-theme="dark"] table.dataTable.display tbody tr:hover,
[data-theme="dark"] .table tbody tr:hover,
[data-theme="dark"] tr.hover-lift-row:hover {
    background-color: var(--surface-container-high) !important;
    background: var(--surface-container-high) !important;
    cursor: pointer;
}

/* --- Symmetrical Mobile Floating Capsule & Glassmorphic Navigation --- */
@media only screen and (max-width: 768px) {
    /* Symmetrical Floating Topbar geometry (matches bottombar) */
    header.mobile-topbar,
    .mobile-topbar {
        position: fixed !important;
        top: 16px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: calc(100% - 24px) !important;
        max-width: 600px !important;
        height: 72px !important;
        border-radius: 36px !important;
        padding: 0 20px !important;
        box-sizing: border-box !important;
        display: flex !important;
        align-items: center !important;
        z-index: 10000 !important;
        margin: 0 !important;
    }

    /* Floating Topbar scroll-under padding for main content wrapper */
    .main-content-scrollable {
        padding-top: 90px !important;
        padding-bottom: 120px !important;
    }

    /* Neutralize nested scroll container padding to prevent double padding gaps */
    .main-content-scrollable .main-content-scrollable {
        padding-top: 0 !important;
        padding-bottom: 0 !important;
    }

    /* Standardize bottom nav pill geometry */
    .mobile-bottom-nav {
        position: fixed !important;
        bottom: 16px !important;
        left: 50% !important;
        transform: translateX(-50%) !important;
        width: calc(100% - 24px) !important;
        max-width: 600px !important;
        height: 72px !important;
        z-index: 11000 !important;
        margin: 0 !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        display: flex !important;
    }

    .nav-pill-main {
        width: 100% !important;
        height: 100% !important;
        border-radius: 36px !important;
        box-sizing: border-box !important;
    }

    /* Sidebar Drawer Overlay correction on Mobile (covers nav bars correctly and applies premium background blur) */
    .sidebar-overlay {
        z-index: 11500 !important;
        backdrop-filter: blur(8px) !important;
        -webkit-backdrop-filter: blur(8px) !important;
    }

    /* Ensure Sidebar Drawer sits on top of all floating elements and the overlay */
    #sidebar {
        z-index: 12000 !important;
    }

    /* 1. Dark Mode Glassmorphism Overrides */
    [data-theme="dark"] .mobile-topbar,
    [data-theme="dark"] .nav-pill-main {
        background: rgba(10, 12, 18, 0.5) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        border: 1px solid rgba(255, 255, 255, 0.08) !important;
        box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.37) !important;
        color: #f1f1f3 !important;
    }

    /* 2. Light Mode Glassmorphism Overrides */
    [data-theme="light"] .mobile-topbar,
    [data-theme="light"] .nav-pill-main {
        background: rgba(255, 255, 255, 0.45) !important;
        backdrop-filter: blur(24px) saturate(180%) !important;
        -webkit-backdrop-filter: blur(24px) saturate(180%) !important;
        border: 1px solid rgba(255, 255, 255, 0.4) !important;
        box-shadow: 0 8px 32px 0 rgba(31, 38, 135, 0.06) !important;
        color: #1e293b !important;
    }

    /* Transform DataTables into beautiful touch-friendly cards on mobile */
    .data-table-wrapper {
        overflow-x: visible !important;
        background: transparent !important;
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
    }

    .data-table-wrapper table {
        display: block !important;
        width: 100% !important;
        border: none !important;
        background: transparent !important;
    }

    .data-table-wrapper thead {
        display: none !important;
    }

    .data-table-wrapper tbody {
        display: block !important;
        width: 100% !important;
        background: transparent !important;
    }

    .data-table-wrapper tr {
        display: flex !important;
        flex-direction: column !important;
        background: var(--surface) !important;
        border-radius: 28px !important;
        padding: 20px 20px 16px 20px !important;
        margin-bottom: 16px !important;
        border: 1px solid var(--surface-variant) !important;
        box-shadow: 0 4px 16px rgba(0, 0, 0, 0.02) !important;
        box-sizing: border-box !important;
        width: 100% !important;
        transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    }

    [data-theme="dark"] .data-table-wrapper tr {
        background: var(--surface-container-low) !important;
        border-color: var(--surface-variant) !important;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2) !important;
    }

    .data-table-wrapper td {
        display: flex !important;
        align-items: center !important;
        padding: 8px 0 !important;
        border: none !important;
        width: 100% !important;
        justify-content: flex-start !important;
        font-size: 14px !important;
        color: var(--on-surface-variant) !important;
        box-sizing: border-box !important;
        background: transparent !important;
    }

    /* Style the first column (Patient Identity) as the Card Header */
    .data-table-wrapper td:first-child {
        padding-bottom: 12px !important;
        border-bottom: 1px dashed var(--surface-variant) !important;
        margin-bottom: 6px !important;
    }

    /* Make middle columns stack as elegant key-value pairs using data-label */
    .data-table-wrapper td:not(:first-child):not(:last-child)::before {
        content: attr(data-label) ":";
        font-weight: 600;
        color: var(--text-soft);
        width: 100px;
        flex-shrink: 0;
        display: inline-block;
        font-size: 13px;
    }

    /* Format the last action column to stretch full width with centered touch buttons */
    .data-table-wrapper td:last-child {
        padding-top: 14px !important;
        border-top: 1px solid var(--surface-variant) !important;
        margin-top: 8px !important;
        justify-content: flex-end !important;
    }

    .data-table-wrapper td:last-child > div {
        width: 100% !important;
        display: flex !important;
        justify-content: flex-end !important;
        gap: 8px !important;
    }

    .data-table-wrapper td:last-child a,
    .data-table-wrapper td:last-child button {
        flex: 1 !important;
        height: 40px !important;
        border-radius: 12px !important;
        font-size: 13px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        text-decoration: none !important;
    }
}

/* ==========================================================================
   Patient Panel Mobile & Touch Optimization - Symmetrical Overrides
   ========================================================================== */
@media only screen and (max-width: 768px) {
    /* 1. Main Container & Header Stacking */
    .main-body-patient {
        padding: 16px !important;
    }

    .patient-header-container {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 16px !important;
        margin-bottom: 24px !important;
        width: 100% !important;
    }

    .patient-profile-summary {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 12px !important;
        width: 100% !important;
    }

    .patient-avatar-box {
        width: 80px !important;
        height: 80px !important;
        border-radius: 24px !important;
        font-size: 28px !important;
    }

    .patient-headline {
        font-size: 22px !important;
    }

    .patient-subtitle {
        font-size: 13px !important;
    }

    .patient-action-group {
        width: 100% !important;
        display: flex !important;
        flex-direction: column !important;
        gap: 8px !important;
    }

    .patient-action-group a,
    .patient-action-group button,
    .btn-history-tonal {
        width: 100% !important;
        height: 48px !important;
        border-radius: 16px !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    /* 2. Stats Grid Overhaul */
    .patient-stats-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-bottom: 24px !important;
        width: 100% !important;
    }

    .patient-stat-card {
        padding: 20px !important;
        border-radius: 24px !important;
        min-height: auto !important;
    }

    .patient-stat-icon-wrapper {
        width: 44px !important;
        height: 44px !important;
        border-radius: 14px !important;
        margin-bottom: 12px !important;
    }

    .patient-stat-value {
        font-size: 24px !important;
        margin-bottom: 2px !important;
    }

    .patient-stat-label {
        font-size: 13px !important;
    }

    /* 3. Table-to-Card Responsive Engine */
    .table-responsive-patient {
        overflow-x: visible !important;
        background: transparent !important;
    }

    .table-patient {
        display: block !important;
        width: 100% !important;
        border: none !important;
        background: transparent !important;
    }

    .table-patient thead {
        display: none !important;
    }

    .table-patient tbody {
        display: block !important;
        width: 100% !important;
    }

    /* Target rows inside both Ajax and static tables */
    .tr-patient-row,
    .table-patient tbody tr,
    .view-table-tr {
        display: flex !important;
        flex-direction: column !important;
        background: var(--surface) !important;
        border: 1px solid var(--surface-variant) !important;
        border-radius: 24px !important;
        padding: 16px 20px !important;
        margin-bottom: 16px !important;
        box-shadow: var(--patient-card-shadow) !important;
        box-sizing: border-box !important;
        width: 100% !important;
        transition: transform 0.2s ease, box-shadow 0.2s ease !important;
    }

    [data-theme="dark"] .tr-patient-row,
    [data-theme="dark"] .table-patient tbody tr,
    [data-theme="dark"] .view-table-tr {
        background: var(--surface-container-low) !important;
        border-color: var(--surface-variant) !important;
        box-shadow: 0 8px 30px rgba(0, 0, 0, 0.2) !important;
    }

    .tr-patient-row:hover,
    .table-patient tbody tr:hover,
    .view-table-tr:hover {
        transform: translateY(-2px) !important;
        box-shadow: var(--patient-card-hover-shadow) !important;
    }

    .td-patient,
    .table-patient tbody td,
    .view-table-td {
        display: flex !important;
        align-items: center !important;
        justify-content: space-between !important;
        padding: 10px 0 !important;
        border: none !important;
        border-bottom: 1px dashed var(--surface-variant) !important;
        text-align: right !important;
        font-size: 14px !important;
        color: var(--on-surface) !important;
        width: 100% !important;
        box-sizing: border-box !important;
        background: transparent !important;
    }

    .td-patient:last-child,
    .table-patient tbody td:last-child,
    .view-table-td:last-child {
        border-bottom: none !important;
        padding-bottom: 0 !important;
    }

    .td-patient:first-child,
    .table-patient tbody td:first-child,
    .view-table-td:first-child {
        padding-top: 0 !important;
    }

    /* Dynamic Attribute Injection */
    .td-patient::before,
    .table-patient tbody td::before,
    .view-table-td::before {
        content: attr(data-label) !important;
        font-weight: 600 !important;
        color: var(--on-surface-variant) !important;
        text-transform: uppercase !important;
        font-size: 11px !important;
        letter-spacing: 0.5px !important;
        text-align: left !important;
        opacity: 0.8 !important;
        float: left !important;
    }

    /* Inner layouts within stacked cells */
    .td-patient .patient-profile-summary {
        flex-direction: row !important;
        justify-content: flex-end !important;
        gap: 8px !important;
        width: auto !important;
    }

    .td-patient .patient-avatar-box {
        width: 32px !important;
        height: 32px !important;
        border-radius: 50% !important;
        font-size: 12px !important;
    }

    .icon-btn-view-activity,
    .btn-circular-action {
        width: 40px !important;
        height: 40px !important;
        border-radius: 12px !important;
        margin-top: 4px !important;
    }

    /* 4. Health Passport Mobile Optimization */
    .clinical-view-container {
        padding: 0 !important;
    }

    .btn-passport-back {
        width: 44px !important;
        height: 44px !important;
        border-radius: 14px !important;
    }

    .view-identity-banner {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 20px !important;
        padding: 24px !important;
        border-radius: 24px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .view-identity-meta {
        flex-direction: column !important;
        align-items: center !important;
        gap: 8px !important;
        margin-top: 12px !important;
    }

    .view-identity-meta span {
        font-size: 13px !important;
    }

    .passport-sync-info {
        margin-left: 0 !important;
        text-align: center !important;
        border-top: 1px dashed var(--outline-variant) !important;
        width: 100% !important;
        padding-top: 16px !important;
        margin-top: 16px !important;
    }

    .vitals-v3-grid {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
        margin-bottom: 24px !important;
        width: 100% !important;
    }

    .vital-status-card {
        padding: 16px !important;
        border-radius: 20px !important;
    }

    .vital-value {
        font-size: 20px !important;
        margin-top: 8px !important;
    }

    .passport-chronology {
        padding-left: 0 !important;
        margin-top: 16px !important;
    }

    .passport-chronology::before {
        display: none !important;
    }

    .chronology-item {
        margin-bottom: 32px !important;
        width: 100% !important;
    }

    .chronology-date {
        position: relative !important;
        left: 0 !important;
        width: 100% !important;
        text-align: left !important;
        padding: 10px 16px !important;
        margin-bottom: 12px !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
        background: var(--surface-container-high) !important;
        border-radius: 14px !important;
        border: 1px solid var(--outline-variant) !important;
        box-sizing: border-box !important;
    }

    [data-theme="dark"] .chronology-date {
        background: var(--surface-container-low) !important;
    }

    .chronology-date div {
        display: inline-block !important;
    }

    .date-day {
        font-size: 18px !important;
        font-weight: 800 !important;
    }

    .date-month {
        font-size: 13px !important;
        font-weight: 700 !important;
    }

    .date-year {
        font-size: 13px !important;
        opacity: 0.7 !important;
        margin-left: auto !important;
    }

    .chronology-card {
        border-radius: 24px !important;
        padding: 16px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .chronology-card:hover {
        transform: none !important;
    }

    .chronology-body {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important;
    }

    .chronology-body .col-span-7,
    .chronology-body .col-span-5,
    .chronology-body .col-span-12 {
        width: 100% !important;
        grid-column: span 12 / span 12 !important;
    }

    /* 5. Profile Page Mobile Optimization */
    .profile-row {
        flex-direction: column !important;
        gap: 16px !important;
        width: 100% !important;
    }

    .profile-card-col {
        max-width: 100% !important;
        width: 100% !important;
        flex: 1 1 100% !important;
    }

    .profile-card-details-col {
        width: 100% !important;
        flex: 1 1 100% !important;
    }

    .profile-card-container {
        padding: 24px !important;
        border-radius: 24px !important;
    }

    .profile-grid-metrics {
        gap: 10px !important;
    }

    .profile-metric-box {
        padding: 10px !important;
        border-radius: 14px !important;
    }

    .profile-metric-value {
        font-size: 14px !important;
    }

    .profile-input-grid,
    .profile-input-grid-three {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-bottom: 16px !important;
    }

    /* 6. Consultation View Details Mobile Overrides */
    .view-action-header {
        flex-direction: column !important;
        gap: 8px !important;
        margin-bottom: 16px !important;
        width: 100% !important;
    }

    .view-action-header a,
    .view-action-header button {
        width: 100% !important;
        justify-content: center !important;
        height: 48px !important;
        border-radius: 16px !important;
        margin: 0 !important;
    }

    .view-consultation-title {
        font-size: 18px !important;
    }

    .view-grid-details-card {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }

    .view-details-group-span {
        grid-column: span 1 !important;
    }

    .view-vitals-container {
        gap: 12px !important;
        margin-top: 16px !important;
        padding-top: 16px !important;
    }

    .view-vital-item {
        width: calc(50% - 6px) !important;
        gap: 8px !important;
    }

    .view-vital-badge-icon {
        width: 32px !important;
        height: 32px !important;
        border-radius: 8px !important;
    }

    .view-vital-number {
        font-size: 13px !important;
    }

    .view-observations-section {
        margin-top: 16px !important;
        padding-top: 16px !important;
    }

    .view-observations-box {
        padding: 12px !important;
        font-size: 13px !important;
        border-radius: 12px !important;
    }

    .view-details-columns-two {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-top: 16px !important;
    }

    .view-card-table-empty {
        padding: 24px !important;
    }

    .billing-tab-header {
        height: 48px !important;
        border-radius: 12px !important;
        overflow: hidden !important;
    }

    .billing-tab-btn {
        height: 48px !important;
        font-size: 12px !important;
    }
}

@media only screen and (max-width: 480px) {
    .vitals-v3-grid {
        grid-template-columns: 1fr !important;
    }

    .view-vital-item {
        width: 100% !important;
    }
}

/* ==========================================================================
   Staff Panel Mobile & Touch Optimization - Symmetrical Overrides
   ========================================================================== */
@media only screen and (max-width: 768px) {
    /* 1. Dashboard Welcome & Clock Widgets */
    .role-staff .main-body {
        padding: 16px !important;
    }

    .role-staff .main-body > div[style*="grid-template-columns"] {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-bottom: 24px !important;
    }

    .welcome-card {
        padding: 24px !important;
        border-radius: 24px !important;
        text-align: center !important;
        position: relative !important;
        overflow: hidden !important;
    }

    .welcome-badges-row {
        justify-content: center !important;
        margin-bottom: 16px !important;
    }

    .welcome-text-group h2 {
        font-size: 22px !important;
    }

    .welcome-text-group p {
        font-size: 13px !important;
    }

    .welcome-actions {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
        margin-top: 20px !important;
    }

    .welcome-actions a,
    .welcome-actions button {
        width: 100% !important;
        height: 48px !important;
        border-radius: 14px !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .android-clock {
        padding: 24px !important;
        min-height: 120px !important;
        border-radius: 24px !important;
    }

    .clock-time {
        font-size: 2.8rem !important;
    }

    .clock-date {
        font-size: 13px !important;
    }

    /* Secondary Navigation Tiles */
    .role-staff .main-body > div[style*="repeat(auto-fit"] {
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 12px !important;
        margin-bottom: 24px !important;
    }

    .action-tile {
        padding: 16px !important;
        border-radius: 20px !important;
        display: flex !important;
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
    }

    .tile-icon {
        width: 44px !important;
        height: 44px !important;
        border-radius: 14px !important;
        margin-bottom: 8px !important;
    }

    .tile-label {
        font-size: 13px !important;
    }

    /* Stats Grid Stacking */
    .role-staff .stats-grid {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        margin-bottom: 24px !important;
    }

    .stat-card {
        padding: 16px !important;
        border-radius: 20px !important;
    }

    /* 2. Directory Toolbar & Pagination Overrides */
    .role-staff .card-header {
        padding: 16px !important;
        gap: 12px !important;
        flex-direction: column !important;
        align-items: stretch !important;
    }

    .role-staff .card-header > div[style*="display: flex"] {
        max-width: 100% !important;
        width: 100% !important;
    }

    .role-staff .card-header .btn-primary {
        width: 100% !important;
        justify-content: center !important;
        height: 48px !important;
        border-radius: 14px !important;
    }

    .pagination-footer {
        padding: 16px !important;
        flex-direction: column !important;
        gap: 12px !important;
        text-align: center !important;
    }

    /* 3. Form Grid Stacking & Checkout Pages */
    .role-staff form .grid-12 {
        gap: 16px !important;
        display: flex !important;
        flex-direction: column !important;
        width: 100% !important;
    }

    .role-staff form .col-span-12,
    .role-staff form .col-span-6,
    .role-staff form .lg\:col-span-7,
    .role-staff form .lg\:col-span-5 {
        width: 100% !important;
        grid-column: span 12 / span 12 !important;
    }

    .role-staff form .field-floating {
        width: 100% !important;
    }

    /* Stretches and custom buttons */
    .role-staff form button[type="submit"],
    .role-staff form .btn-primary,
    .role-staff form .btn-outline {
        width: 100% !important;
        height: 48px !important;
        border-radius: 14px !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .role-staff form div[style*="border-top"] {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
        padding-top: 16px !important;
    }
}

@media only screen and (max-width: 480px) {
    .role-staff .main-body > div[style*="repeat(auto-fit"] {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   Diagnostic Panel Mobile & Touch Optimization - Symmetrical Overrides
   ========================================================================== */
@media only screen and (max-width: 768px) {
    /* 1. Bento Dashboard Overrides */
    .role-diagnostic .bento-grid {
        grid-template-columns: 1fr !important;
        grid-auto-rows: auto !important;
        gap: 16px !important;
    }

    .role-diagnostic .bento-welcome {
        grid-column: span 1 !important;
        grid-row: auto !important;
        padding: 24px !important;
        text-align: center !important;
    }

    .role-diagnostic .welcome-info-group {
        width: 100% !important;
    }

    .role-diagnostic .welcome-title {
        font-size: 24px !important;
        text-align: center !important;
    }

    .role-diagnostic .welcome-visual-icon {
        display: none !important;
    }

    .role-diagnostic .welcome-info-group .flex {
        flex-direction: column !important;
        gap: 12px !important;
        width: 100% !important;
        margin-top: 20px !important;
    }

    .role-diagnostic .welcome-info-group .flex a {
        width: 100% !important;
        justify-content: center !important;
        margin: 0 !important;
    }

    .role-diagnostic .bento-clock {
        grid-column: span 1 !important;
        padding: 20px !important;
        text-align: center !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: auto !important;
    }

    .role-diagnostic .clock-time-mini {
        font-size: 2.2rem !important;
    }

    .role-diagnostic .mini-widget {
        grid-column: span 1 !important;
        padding: 16px !important;
        display: flex !important;
        flex-direction: row !important;
        align-items: center !important;
        gap: 16px !important;
        text-align: left !important;
        justify-content: flex-start !important;
    }

    .role-diagnostic .widget-icon-circle {
        margin-bottom: 0 !important;
        flex-shrink: 0 !important;
    }

    .role-diagnostic .widget-value {
        font-size: 20px !important;
        margin-top: 2px !important;
    }

    /* 2. Tab Bar Scaling Overrides */
    .role-diagnostic .diagnostic-tab-header {
        width: 100% !important;
        display: flex !important;
        gap: 4px !important;
        border-radius: 12px !important;
        padding: 4px !important;
        box-sizing: border-box !important;
    }

    .role-diagnostic .diagnostic-tab {
        flex: 1 !important;
        padding: 8px 12px !important;
        text-align: center !important;
        justify-content: center !important;
        font-size: 12px !important;
        border-radius: 10px !important;
        display: flex !important;
        align-items: center !important;
        gap: 4px !important;
    }

    .role-diagnostic .diagnostic-tab .count-badge {
        font-size: 10px !important;
        padding: 2px 6px !important;
    }

    /* 3. Modal Form Scaling & Stacking */
    .role-diagnostic .result-modal-card {
        padding: 20px !important;
        width: 92% !important;
        border-radius: 20px !important;
        max-height: 90vh !important;
        overflow-y: auto !important;
    }

    .role-diagnostic .result-modal-card .form-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important;
    }

    .role-diagnostic .result-modal-card .form-grid .grid-cols-2,
    .role-diagnostic .result-modal-card .form-grid .grid-cols-custom-1 {
        display: flex !important;
        flex-direction: column !important;
        gap: 16px !important;
        grid-template-columns: 1fr !important;
    }

    .role-diagnostic .result-modal-card .form-grid .col-span-full {
        width: 100% !important;
    }

    .role-diagnostic .result-modal-card form div[style*="border-top"],
    .role-diagnostic .result-modal-card .flex.justify-end.gap-12 {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
        padding-top: 16px !important;
        margin-top: 16px !important;
    }

    .role-diagnostic .result-modal-card form button,
    .role-diagnostic .result-modal-card form .btn {
        width: 100% !important;
        margin: 0 !important;
        height: 48px !important;
        justify-content: center !important;
        border-radius: 12px !important;
    }

    .role-diagnostic .file-upload-zone {
        padding: 20px 16px !important;
        border-radius: 16px !important;
    }

    /* 4. Billing Layout Mobile Refinements */
    .role-diagnostic .billing-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-bottom: 16px !important;
    }

    .role-diagnostic .billing-section-card,
    .role-diagnostic .receipt-card {
        padding: 16px !important;
        border-radius: 20px !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }

    .role-diagnostic .receipt-items-list {
        max-height: 250px !important;
    }

    .role-diagnostic .receipt-total-amount {
        font-size: 20px !important;
    }

    .role-diagnostic .search-results-list {
        max-height: 250px !important;
    }

    /* 5. Print Modal Custom Classes (Replacing Inline CSS) */
    .billing-print-modal-overlay {
        position: fixed !important;
        top: 0 !important;
        left: 0 !important;
        width: 100% !important;
        height: 100% !important;
        background: rgba(0,0,0,0.55) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        z-index: 2000 !important;
        backdrop-filter: blur(5px) !important;
        -webkit-backdrop-filter: blur(5px) !important;
        animation: fadeIn 0.3s ease !important;
    }

    .billing-print-modal-card {
        background: var(--surface-container-high) !important;
        border-radius: 28px !important;
        width: 420px !important;
        padding: 32px !important;
        box-shadow: var(--shadow-xl) !important;
        animation: zoomIn 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275) !important;
        box-sizing: border-box !important;
    }

    .billing-print-total-badge {
        width: fit-content !important;
        margin: 12px auto 0 auto !important;
        padding: 10px 20px !important;
    }

    .billing-print-whatsapp-info {
        color: var(--on-surface-variant) !important;
        justify-content: center !important;
    }

    /* Print Modal Card Responsive Scale */
    @media (max-width: 480px) {
        .billing-print-modal-card {
            width: 92% !important;
            padding: 24px 20px !important;
            border-radius: 20px !important;
        }

        .billing-print-modal-card .flex.gap-16 {
            flex-direction: column !important;
            gap: 10px !important;
            width: 100% !important;
        }

        .billing-print-modal-card .flex.gap-16 button {
            width: 100% !important;
            height: 48px !important;
            border-radius: 14px !important;
            justify-content: center !important;
            margin: 0 !important;
        }
    }
}

/* --- Scoped Pharmacy Panel Styles --- */
.role-pharmacy .stats-card-pad {
    padding: var(--space-24) !important;
}
.role-pharmacy .stats-card-inner {
    display: flex;
    align-items: center;
    gap: var(--space-16);
}
.role-pharmacy .stats-card-icon {
    width: 48px;
    height: 48px;
    border-radius: var(--radius-m);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}
.role-pharmacy .quick-actions-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-top: 32px;
}
.role-pharmacy .clickable-card {
    cursor: pointer;
    transition: var(--trans-std);
    height: 100%;
}
.role-pharmacy .clickable-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-m) !important;
}
.role-pharmacy .pos-card-pad {
    padding: 32px !important;
}
.role-pharmacy .action-link-card {
    text-decoration: none;
    color: inherit;
}
.role-pharmacy .action-card-icon {
    width: 36px;
    height: 36px;
    margin-bottom: var(--space-16);
}
.role-pharmacy .action-card-title {
    margin: 0 0 var(--space-8) 0;
    font-weight: 700;
    font-size: 18px;
}
.role-pharmacy .action-card-desc {
    margin: 0;
    font-size: var(--font-base);
    color: var(--on-surface-variant);
    opacity: 0.8;
}

.role-pharmacy .settings-container {
    display: grid;
    grid-template-columns: 2fr 1.2fr;
    gap: 32px;
    padding: 24px;
}
.role-pharmacy .settings-card {
    background: var(--surface-container-low);
    border-radius: 32px;
    border: 1px solid var(--surface-variant);
    padding: 32px;
    height: fit-content;
}
.role-pharmacy .settings-section-header {
    display: flex;
    align-items: center;
    gap: 20px;
    margin-bottom: 32px;
    padding-bottom: 24px;
    border-bottom: 1px dashed var(--outline-variant);
}
.role-pharmacy .settings-icon-box {
    width: 56px;
    height: 56px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
}
.role-pharmacy .profile-photo-section {
    display: flex;
    align-items: center;
    gap: 28px;
    margin-bottom: 32px;
}
.role-pharmacy .image-preview-wrapper {
    position: relative;
    width: 100px;
    height: 100px;
    border-radius: 28px;
    box-shadow: var(--shadow-m);
}
.role-pharmacy .image-preview {
    width: 100%;
    height: 100%;
    border-radius: 28px;
    overflow: hidden;
    background: var(--secondary-container);
}
.role-pharmacy .remove-image-btn {
    position: absolute;
    top: -8px;
    right: -8px;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--error);
    color: white;
    border: 2px solid var(--surface);
    cursor: pointer;
    justify-content: center;
    align-items: center;
    z-index: 2;
    transition: transform 0.2s;
}
.role-pharmacy .remove-image-btn:hover {
    transform: scale(1.1);
}
.role-pharmacy .profile-meta h4 {
    margin: 0;
    font-size: 22px;
    font-weight: 700;
    color: var(--on-surface);
}
.role-pharmacy .profile-meta p {
    margin: 4px 0 12px;
    font-size: 14px;
    color: var(--on-surface-variant);
}
.role-pharmacy .form-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}
.role-pharmacy .col-span-2 {
    grid-column: span 2;
}
.role-pharmacy .initials-avatar-large {
    font-size: 36px;
    font-weight: 800;
    color: var(--on-secondary-container);
    background: var(--secondary-container);
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}
.role-pharmacy .form-section-title {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--primary);
    margin: 32px 0 20px;
    font-weight: 800;
}
.role-pharmacy .textarea-large {
    height: 80px;
    padding-top: 24px;
}
.role-pharmacy .credential-helper {
    gap: 12px;
    padding: 0 20px;
    background: var(--surface-container-highest);
    border-radius: 16px;
    font-size: 12px;
    color: var(--on-surface-variant);
    height: 56px;
}
.role-pharmacy .credential-check-icon {
    width: 18px;
}
.role-pharmacy .submit-btn-large {
    margin-top: 40px;
    width: 100%;
    height: 56px;
    border-radius: 18px;
    font-weight: 700;
    font-size: 16px;
    box-shadow: 0 8px 24px rgba(var(--primary-rgb), 0.2);
}
.role-pharmacy .submit-btn-medium {
    width: 100%;
    height: 48px;
}
.role-pharmacy .sidebar-layout {
    display: flex;
    flex-direction: column;
    gap: 24px;
}
.role-pharmacy .insight-row {
    padding: 16px;
    background: var(--surface-container-high);
    border-radius: 20px;
    display: flex;
    align-items: center;
    gap: 16px;
}
.role-pharmacy .insight-icon {
    width: 44px;
    height: 44px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.role-pharmacy .insight-label {
    margin: 0;
    font-size: 11px;
    font-weight: 800;
    color: var(--on-surface-variant);
    opacity: 0.7;
}
.role-pharmacy .insight-value {
    margin: 0;
    font-weight: 700;
    font-size: 14px;
}
.role-pharmacy .version-card {
    background: var(--primary-container) !important;
    color: var(--on-primary-container) !important;
    border: none !important;
    padding: 24px !important;
}
.role-pharmacy .version-card-icon {
    width: 32px;
    height: 32px;
    margin-bottom: 16px;
    opacity: 0.8;
}
.role-pharmacy .version-card-title {
    font-size: 18px;
    font-weight: 700;
}
.role-pharmacy .version-card-desc {
    font-size: 13px;
    opacity: 0.8;
    line-height: 1.5;
}
.role-pharmacy .setting-item.item-column-start {
    flex-direction: column;
    align-items: flex-start;
}
.role-pharmacy .palette-left-align {
    justify-content: flex-start;
    max-width: none;
}
.role-pharmacy .font-lexend { font-family: 'Lexend', sans-serif; }
.role-pharmacy .font-inter { font-family: 'Inter', sans-serif; }
.role-pharmacy .font-outfit { font-family: 'Outfit', sans-serif; }
.role-pharmacy .font-google-sans { font-family: 'Google Sans', sans-serif; }

.role-pharmacy .header-flex-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.role-pharmacy .kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 24px;
    margin-bottom: 32px;
}
.role-pharmacy .kpi-card {
    padding: 32px;
}
.role-pharmacy .kpi-card-netprofit {
    box-shadow: 0 12px 24px rgba(30, 136, 229, 0.1);
}
.role-pharmacy .kpi-card-header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
}
.role-pharmacy .kpi-card-label {
    margin: 0;
    font-size: 14px;
    font-weight: 600;
}
.role-pharmacy .kpi-card-value {
    margin: 8px 0 0 0;
    font-size: 32px;
    font-weight: 700;
}
.role-pharmacy .kpi-card-value.font-36 {
    font-size: 36px;
    font-weight: 800;
}
.role-pharmacy .kpi-card-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.role-pharmacy .kpi-card-caption {
    margin: 16px 0 0 0;
    font-size: 12px;
}
.role-pharmacy .kpi-discount-badge {
    margin-top: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}
.role-pharmacy .reports-split-grid {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 24px;
}
.role-pharmacy .card-header-flex {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.role-pharmacy .stock-insights-card {
    border: 2px solid var(--error) !important;
}
.role-pharmacy .stock-insights-title {
    display: flex;
    align-items: center;
    gap: 12px;
    color: var(--error);
}
.role-pharmacy .stock-insights-row {
    display: flex;
    justify-content: space-between;
    padding: 12px 0;
    border-bottom: 1px solid rgba(0,0,0,0.05);
}
.role-pharmacy .stock-insights-item {
    font-size: 13px;
    font-weight: 500;
}
.role-pharmacy .stock-insights-value {
    font-weight: 700;
    color: #d32f2f;
}
.role-pharmacy .stock-insights-link {
    display: block;
    color: var(--error) !important;
    font-size: 12px;
    text-decoration: none;
}
.role-pharmacy .metrics-list {
    display: flex;
    flex-direction: column;
    gap: 16px;
}
.role-pharmacy .metrics-item {
    display: block;
}
.role-pharmacy .metrics-label {
    margin: 0;
    font-size: 12px;
    color: var(--on-surface-variant);
}
.role-pharmacy .metrics-value {
    font-weight: 700;
}
.role-pharmacy .metrics-divider {
    height: 1px;
    background: var(--surface-variant);
}

/* @media for slideUpFade animations */
@keyframes slideUpFade {
    from { opacity: 0; transform: translateY(20px); }
    to { opacity: 1; transform: translateY(0); }
}
.role-pharmacy .animate-slide-up-1 { animation: slideUpFade 0.6s ease-out forwards; }
.role-pharmacy .animate-slide-up-2 { animation: slideUpFade 0.8s ease-out forwards; }
.role-pharmacy .animate-slide-up-3 { animation: slideUpFade 1.0s ease-out forwards; }

/* Prescription Panel specific classes */
.role-pharmacy .prescription-card {
    padding: 24px !important;
    border-radius: 28px !important;
    margin-bottom: 20px !important;
}
.role-pharmacy .prescription-card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 16px;
}
.role-pharmacy .prescription-patient-group {
    display: flex;
    align-items: center;
    gap: 16px;
}
.role-pharmacy .prescription-patient-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: var(--primary-container);
    color: var(--primary);
    font-size: 20px;
    font-weight: 700;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}
.role-pharmacy .prescription-patient-name {
    margin: 0;
    font-size: 18px;
    font-weight: 700;
    color: var(--on-surface);
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: wrap;
}
.role-pharmacy .priority-badge {
    padding: 4px 10px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 700;
}
.role-pharmacy .priority-urgent {
    background: #ffebee;
    color: #c62828;
}
.role-pharmacy .priority-high {
    background: #fff3e0;
    color: #ef6c00;
}
.role-pharmacy .priority-normal {
    background: #e8f5e9;
    color: #2e7d32;
}
.role-pharmacy .prescription-patient-meta {
    display: flex;
    gap: 16px;
    margin-top: 8px;
    font-size: 12px;
    color: var(--on-surface-variant);
    opacity: 0.8;
    flex-wrap: wrap;
}
.role-pharmacy .prescription-actions-group {
    display: flex;
    align-items: center;
    gap: 20px;
}
.role-pharmacy .prescription-doctor-info {
    text-align: right;
}
.role-pharmacy .doctor-label {
    margin: 0;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    color: var(--on-surface-variant);
    opacity: 0.7;
}
.role-pharmacy .doctor-name {
    margin: 4px 0 0 0;
    font-weight: 700;
    font-size: 14px;
}
.role-pharmacy .prescription-details-drawer {
    margin-top: 24px;
    border-top: 1px dashed var(--outline-variant);
    padding-top: 24px;
}
.role-pharmacy .prescription-details-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 16px;
}
.role-pharmacy .details-heading {
    margin: 0;
    font-weight: 700;
    font-size: 15px;
}
.role-pharmacy .med-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 2fr;
    gap: 16px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--surface-variant);
    align-items: center;
    font-size: 13px;
}
.role-pharmacy .med-row-header {
    font-weight: 700;
    color: var(--on-surface-variant);
    border-bottom: 2px solid var(--surface-variant);
    background: var(--surface-container-low);
    border-radius: 8px;
}
.role-pharmacy .med-type-badge {
    padding: 2px 6px;
    border-radius: 4px;
    background: var(--secondary-container);
    color: var(--on-secondary-container);
    font-size: 10px;
    font-weight: 700;
    margin-right: 6px;
    text-transform: uppercase;
}

/* Responsive Overrides below 768px for Scoped Pharmacy Layouts */
@media only screen and (max-width: 768px) {
    .role-pharmacy .stats-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-pharmacy .quick-actions-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-pharmacy .clickable-card {
        padding: 24px !important;
    }
    .role-pharmacy .settings-container {
        grid-template-columns: 1fr !important;
        gap: 24px !important;
        padding: 16px !important;
    }
    .role-pharmacy .settings-card {
        padding: 24px 16px !important;
        border-radius: 24px !important;
    }
    .role-pharmacy .profile-photo-section {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 16px !important;
    }
    .role-pharmacy .form-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-pharmacy .form-grid .col-span-2 {
        grid-column: span 1 !important;
    }
    .role-pharmacy .submit-btn-large {
        height: 48px !important;
        margin-top: 24px !important;
        border-radius: 14px !important;
        font-size: 14px !important;
    }
    .role-pharmacy .sidebar-layout {
        gap: 16px !important;
        width: 100% !important;
    }
    .role-pharmacy .kpi-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
        margin-bottom: 24px !important;
    }
    .role-pharmacy .kpi-card {
        padding: 20px 16px !important;
        border-radius: 20px !important;
    }
    .role-pharmacy .kpi-card-value {
        font-size: 28px !important;
    }
    .role-pharmacy .kpi-card-value.font-36 {
        font-size: 30px !important;
    }
    .role-pharmacy .reports-split-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-pharmacy .stock-insights-card,
    .role-pharmacy .sidebar-layout .card {
        padding: 16px !important;
        border-radius: 20px !important;
    }
    
    /* Interactive Image Cropper Modals (#cropperModal) styling */
    .role-pharmacy .pcv2-box {
        width: 92% !important;
        padding: 20px 16px !important;
        border-radius: 20px !important;
    }
    .role-pharmacy .pcv2-footer {
        flex-direction: column !important;
        gap: 8px !important;
        width: 100% !important;
    }
    .role-pharmacy .pcv2-footer .btn {
        width: 100% !important;
        margin: 0 !important;
        height: 44px !important;
        justify-content: center !important;
    }
    
    /* Prescriptions Stacking & Table Drawer Reflow */
    .role-pharmacy .prescription-card-header {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 16px !important;
    }
    .role-pharmacy .prescription-actions-group {
        width: 100% !important;
        justify-content: space-between !important;
        border-top: 1px solid var(--surface-variant) !important;
        padding-top: 16px !important;
    }
    .role-pharmacy .prescription-doctor-info {
        text-align: left !important;
    }
    .role-pharmacy .btn-mark-ready {
        flex-grow: 1 !important;
        justify-content: center !important;
    }
    .role-pharmacy .med-row-header {
        display: none !important;
    }
    .role-pharmacy .med-row {
        grid-template-columns: 1fr !important;
        gap: 12px !important;
        padding: 16px !important;
        border: 1px solid var(--surface-variant) !important;
        border-radius: 16px !important;
        background: var(--surface-container-low) !important;
        margin-bottom: 12px !important;
    }
    .role-pharmacy .med-row > div {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding-bottom: 8px !important;
        border-bottom: 1px dashed var(--outline-variant) !important;
    }
    .role-pharmacy .med-row > div:last-child {
        border-bottom: none !important;
        padding-bottom: 0 !important;
    }
    .role-pharmacy .med-row > div::before {
        content: attr(data-label) !important;
        font-weight: 700 !important;
        color: var(--on-surface-variant) !important;
        margin-right: 16px !important;
    }
}

/* ==========================================================================
   Hospital Panel Scoped Styling & Mobile Reflow Overrides
   ========================================================================== */
.role-hospital .page-icon-wrapper {
    width: 48px;
    height: 48px;
    min-width: 48px;
    border-radius: 12px;
    background: var(--primary-container);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.2);
}
.role-hospital .page-title {
    color: var(--on-surface);
    margin: 0;
    font-size: 24px;
    font-weight: 700;
}
.role-hospital .page-subtitle {
    color: var(--on-surface-variant);
    font-size: 14px;
    margin-top: 2px;
}
.role-hospital .btn-onboard {
    height: 48px;
    padding: 0 24px;
    border-radius: 14px;
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    font-weight: 700;
    font-size: 14px;
    box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.2);
}
.role-hospital .stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 24px;
    animation: slideUpFade 0.7s ease-out;
}
.role-hospital .stats-card {
    background: var(--surface-container-low);
    border-radius: 24px;
    padding: 20px;
    border: 1px solid var(--surface-variant);
    display: flex;
    align-items: center;
    gap: 16px;
    transition: transform 0.2s, box-shadow 0.2s;
}
.role-hospital .stats-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.04);
}
.role-hospital .stats-card-icon-box {
    width: 48px;
    height: 48px;
    border-radius: 14px;
    background: var(--primary);
    color: var(--on-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 8px 16px rgba(var(--primary-rgb), 0.3);
}
.role-hospital .stats-card-content {
    display: flex;
    flex-direction: column;
}
.role-hospital .stats-card-label {
    font-size: 12px;
    font-weight: 700;
    color: var(--on-surface-variant);
    text-transform: uppercase;
}
.role-hospital .stats-card-value {
    font-size: 24px;
    font-weight: 800;
    color: var(--on-surface);
}
.role-hospital .bento-table-card {
    background: var(--surface-container-low);
    border-radius: 32px;
    padding: 24px;
    border: 1px solid var(--surface-variant);
    box-shadow: 0 4px 24px rgba(0,0,0,0.02);
}
.role-hospital .table-title {
    margin: 0;
    font-weight: 600;
    font-size: 1.25rem;
}
.role-hospital .table-header-actions {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 24px;
    flex-wrap: wrap;
    gap: 16px;
}
.role-hospital .search-box {
    position: relative;
    width: 360px;
    max-width: 100%;
}
.role-hospital .search-icon {
    position: absolute;
    left: 16px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--on-surface-variant);
    opacity: 0.7;
    pointer-events: none;
}
.role-hospital .search-input {
    width: 100%;
    padding: 14px 16px 14px 48px;
    border-radius: 16px;
    border: 1px solid var(--surface-variant);
    background: var(--surface-container-high);
    color: var(--on-surface);
    outline: none;
    transition: var(--transition-standard);
}
.role-hospital .search-input:focus {
    border-color: var(--primary);
    background: var(--surface);
    box-shadow: 0 0 0 4px rgba(var(--primary-rgb), 0.1);
}
.role-hospital .search-loader-container {
    position: absolute;
    right: 16px;
    top: 50%;
    transform: translateY(-50%);
}
.role-hospital .spinner-small {
    width: 18px;
    height: 18px;
    border: 2px solid var(--primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
}
.role-hospital .data-table-wrapper {
    position: relative;
    min-height: 400px;
    border-radius: 20px;
    overflow-x: auto;
}
.role-hospital .table-loader-overlay {
    position: absolute;
    inset: 0;
    background: rgba(var(--surface-rgb), 0.5);
    backdrop-filter: blur(4px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    z-index: 10;
}
.role-hospital .spinner {
    width: 48px;
    height: 48px;
    border: 4px solid var(--primary);
    border-top-color: transparent;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}
.role-hospital .bento-data-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
}
.role-hospital .table-header-row {
    background: var(--surface-container-highest);
}
.role-hospital .bento-data-table th {
    padding: 16px;
    text-align: left;
    color: var(--on-surface-variant);
    font-weight: 600;
    font-size: 13px;
    text-transform: uppercase;
    letter-spacing: 0.8px;
    border-bottom: 1px solid var(--surface-variant);
}
.role-hospital .bento-data-table td {
    padding: 16px;
    border-bottom: 1px solid var(--surface-variant);
    vertical-align: middle;
}
.role-hospital .hover-lift-row {
    transition: background 0.2s;
}
.role-hospital .hover-lift-row:hover {
    background: var(--surface-container);
}
.role-hospital .user-identity-cell {
    display: flex;
    align-items: center;
    gap: 14px;
}
.role-hospital .user-avatar-badge {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--primary-container);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 15px;
    box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.12);
    flex-shrink: 0;
}
.role-hospital .user-avatar-badge.bg-secondary {
    background: var(--secondary-container);
    color: var(--on-secondary-container);
}
.role-hospital .user-avatar-badge.bg-tertiary {
    background: var(--tertiary-container);
    color: var(--tertiary);
}
.role-hospital .user-avatar-image {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    object-fit: cover;
    flex-shrink: 0;
}
.role-hospital .user-identity-details {
    display: flex;
    flex-direction: column;
}
.role-hospital .user-name {
    font-weight: 600;
    color: var(--on-surface);
    font-size: 14px;
}
.role-hospital .user-sub {
    font-size: 12px;
    color: var(--on-surface-variant);
    opacity: 0.7;
}
.role-hospital .specialty-badge-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--on-surface);
    font-weight: 500;
    font-size: 14px;
}
.role-hospital .specialty-icon {
    opacity: 0.5;
}
.role-hospital .status-chip {
    padding: 6px 12px;
    border-radius: 100px;
    font-size: 11px;
    font-weight: 600;
    text-transform: uppercase;
    display: inline-block;
}
.role-hospital .status-chip.status-active {
    background: var(--success-container);
    color: var(--on-success-container);
}
.role-hospital .status-chip.status-inactive {
    background: var(--error-container);
    color: var(--on-error-container);
}
.role-hospital .actions-flex {
    display: flex;
    gap: 10px;
    align-items: center;
}
.role-hospital .actions-flex.justify-center {
    justify-content: center;
}
.role-hospital .action-btn-pill {
    width: 38px;
    height: 38px;
    border-radius: 14px;
    background: var(--surface-container-high);
    color: var(--on-surface-variant);
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    cursor: pointer;
    transition: all 0.2s;
    text-decoration: none;
}
.role-hospital .action-btn-pill:hover {
    background: var(--primary-container);
    color: var(--primary);
    transform: translateY(-2px);
}
.role-hospital .action-btn-pill.active {
    background: var(--primary) !important;
    color: var(--on-primary) !important;
}
.role-hospital .action-btn-pill:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    pointer-events: none;
}
.role-hospital .empty-state-cell {
    padding: 64px;
    text-align: center;
    color: var(--on-surface-variant);
}
.role-hospital .empty-state-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 16px;
    opacity: 0.5;
}
.role-hospital .empty-state-icon-box {
    width: 64px;
    height: 64px;
    border-radius: 20px;
    background: var(--surface-container-highest);
    display: flex;
    align-items: center;
    justify-content: center;
}
.role-hospital .empty-state-text {
    font-weight: 500;
}
.role-hospital .table-footer {
    padding: 24px 16px 0;
    border-top: 1px solid var(--surface-variant);
}
.role-hospital .pagination-info {
    font-size: 13px;
    color: var(--on-surface-variant);
    font-weight: 600;
    opacity: 0.8;
}

/* Patients Page Elements */
.role-hospital .contact-badge-wrap {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--on-surface);
}
.role-hospital .contact-icon {
    opacity: 0.5;
}
.role-hospital .contact-text {
    font-weight: 500;
    font-size: 13px;
}
.role-hospital .demographics-text {
    font-size: 13px;
    color: var(--on-surface-variant);
}
.role-hospital .age-highlight {
    font-weight: 600;
    color: var(--on-surface);
}
.role-hospital .visit-info-wrap {
    display: flex;
    flex-direction: column;
    gap: 2px;
}
.role-hospital .visit-date {
    font-weight: 600;
    color: var(--on-surface);
    font-size: 13px;
}
.role-hospital .visit-doctor {
    font-size: 11px;
    color: var(--on-surface-variant);
    opacity: 0.7;
}

/* Staff Page Elements */
.role-hospital .role-badge-wrap {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.role-hospital .role-title {
    font-weight: 600;
    font-size: 13px;
    color: var(--on-surface);
}
.role-hospital .role-shift {
    font-size: 11px;
    color: var(--on-surface-variant);
    display: flex;
    align-items: center;
    gap: 4px;
}

/* Settings Page Scopes */
.role-hospital .settings-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
    animation: slideUpFade 0.8s ease-out;
}
.role-hospital .settings-card {
    background: var(--surface-container-low);
    border-radius: 32px;
    padding: 32px;
    border: 1px solid var(--surface-variant);
}
.role-hospital .settings-card-sm {
    background: var(--surface-container-low);
    border-radius: 28px;
    padding: 24px;
    border: 1px solid var(--surface-variant);
}
.role-hospital .initials-icon {
    width: 100px;
    height: 100px;
    min-width: 100px;
    border-radius: 28px;
    background: var(--primary-container);
    color: var(--primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 36px;
    font-weight: 800;
    box-shadow: 0 8px 16px rgba(var(--primary-rgb), 0.15);
    text-transform: uppercase;
}
.role-hospital .section-title {
    font-size: 14px;
    text-transform: uppercase;
    color: var(--primary);
    margin-bottom: 16px;
    font-weight: 800;
}
.role-hospital .identity-card-content {
    display: flex;
    align-items: flex-start;
    gap: 32px;
    position: relative;
    z-index: 2;
}
.role-hospital .identity-form-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 20px;
}
.role-hospital .bg-watermark-icon {
    position: absolute;
    right: -20px;
    top: -20px;
    width: 200px;
    height: 200px;
    opacity: 0.03;
    color: var(--on-surface);
    transform: rotate(10deg);
    pointer-events: none;
}
.role-hospital .icon-badge {
    width: 32px;
    height: 32px;
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
}
.role-hospital .icon-badge.bg-secondary {
    background: var(--secondary-container);
    color: var(--secondary);
}
.role-hospital .card-subtitle-text {
    font-size: 16px;
    font-weight: 700;
    color: var(--on-surface);
    margin: 0;
}
.role-hospital .contact-grid-2 {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
    margin-bottom: 20px;
}
.role-hospital .contact-grid-3 {
    display: grid;
    grid-template-columns: 1fr 2fr 1fr;
    gap: 20px;
}
.role-hospital .card-subtitle-sm {
    font-size: 14px;
    font-weight: 700;
    color: var(--on-surface);
    margin: 0;
}
.role-hospital .card-hint-text {
    font-size: 11px;
    color: var(--on-surface-variant);
    line-height: 1.4;
}
.role-hospital .btn-save {
    height: 56px;
    border-radius: 16px;
    font-weight: 700;
    font-size: 15px;
    box-shadow: 0 4px 12px rgba(var(--primary-rgb), 0.3);
}

/* Clinical Master Database Page Scopes */
.role-hospital .welcome-section.animate-slide-up {
    margin-bottom: 24px;
    animation: slideUpFade 0.6s ease-out;
}
.role-hospital .tabs-container.mb-24 {
    margin-bottom: 24px;
}
.role-hospital .tabs-flex {
    display: flex;
    gap: 8px;
    border-bottom: 1px solid var(--surface-variant);
    padding-bottom: 1px;
}
.role-hospital .tab-btn {
    padding: 12px 24px;
    border: none;
    background: transparent;
    color: var(--on-surface-variant);
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    border-bottom: 2px solid transparent;
    display: flex;
    align-items: center;
    gap: 8px;
    opacity: 0.7;
    transition: all 0.2s;
}
.role-hospital .tab-btn:hover {
    opacity: 1;
    background: var(--surface-container-high);
    border-radius: 8px 8px 0 0;
}
.role-hospital .tab-btn.active {
    color: var(--primary);
    border-bottom-color: var(--primary);
    opacity: 1;
}
.role-hospital .search-card {
    background: var(--surface-container-low);
    border-radius: 24px;
    padding: 16px;
    margin-bottom: 24px;
    border: 1px solid var(--surface-variant);
}
.role-hospital .bento-content-card {
    background: var(--surface-container-low);
    border-radius: 32px;
    padding: 24px;
    border: 1px solid var(--surface-variant);
    min-height: 400px;
}
.role-hospital .loader-overlay {
    display: none;
    justify-content: center;
    padding: 48px;
}
.role-hospital .content-grid-bento {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}
.role-hospital .item-card {
    background: var(--surface-container-high);
    border-radius: 16px;
    padding: 16px;
    border: 1px solid var(--surface-variant);
    display: flex;
    align-items: center;
    gap: 16px;
    transition: transform 0.2s;
}
.role-hospital .item-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.role-hospital .item-icon {
    width: 40px;
    height: 40px;
    border-radius: 12px;
    background: var(--secondary-container);
    color: var(--secondary);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.role-hospital .item-details {
    display: flex;
    flex-direction: column;
}
.role-hospital .item-name {
    font-weight: 600;
    color: var(--on-surface);
    margin-bottom: 2px;
}
.role-hospital .item-detail {
    font-size: 12px;
    color: var(--on-surface-variant);
    opacity: 0.8;
}
.role-hospital .empty-results-cell {
    grid-column: 1/-1;
    text-align: center;
    padding: 48px;
    opacity: 0.5;
    color: var(--on-surface-variant);
}
.role-hospital .error-results-cell {
    grid-column: 1/-1;
    text-align: center;
    color: var(--error);
    padding: 48px;
}
.role-hospital .pagination-controls {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin-top: 24px;
}
.role-hospital .pagination-label {
    font-size: 13px;
    color: var(--on-surface-variant);
    padding: 0 12px;
    display: flex;
    align-items: center;
}

/* Touch & Mobile Responsiveness below 768px */
@media only screen and (max-width: 768px) {
    .role-hospital .stats-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-hospital .page-header-responsive {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 16px !important;
    }
    .role-hospital .btn-onboard {
        width: 100% !important;
        justify-content: center !important;
    }
    .role-hospital .search-box {
        width: 100% !important;
    }
    .role-hospital .bento-table-card {
        padding: 16px !important;
        border-radius: 24px !important;
    }
    .role-hospital .table-header-actions {
        flex-direction: column !important;
        align-items: stretch !important;
    }

    /* Stacking Tables vertically into Cards */
    .role-hospital .bento-data-table thead {
        display: none !important;
    }
    .role-hospital .bento-data-table tbody tr {
        display: block !important;
        border: 1px solid var(--surface-variant) !important;
        border-radius: 20px !important;
        padding: 16px !important;
        margin-bottom: 16px !important;
        background: var(--surface-container-low) !important;
    }
    .role-hospital .bento-data-table tbody td {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        padding: 10px 0 !important;
        border-bottom: 1px dashed var(--outline-variant) !important;
        text-align: right !important;
    }
    .role-hospital .bento-data-table tbody td:last-child {
        border-bottom: none !important;
        padding-bottom: 0 !important;
    }
    .role-hospital .bento-data-table tbody td::before {
        content: attr(data-label) !important;
        font-weight: 700 !important;
        color: var(--on-surface-variant) !important;
        text-align: left !important;
        margin-right: 16px !important;
    }

    /* Full Stacking details inside stacked elements */
    .role-hospital .bento-data-table tbody td .user-identity-cell {
        justify-content: flex-end !important;
    }
    .role-hospital .bento-data-table tbody td .actions-flex {
        justify-content: flex-end !important;
        width: 100% !important;
    }

    /* Settings Page Mobile overrides */
    .role-hospital .settings-grid {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-hospital .col-span-3,
    .role-hospital .col-span-2,
    .role-hospital .col-span-1 {
        grid-column: span 1 !important;
    }
    .role-hospital .settings-card {
        padding: 24px 16px !important;
        border-radius: 24px !important;
    }
    .role-hospital .identity-card-content {
        flex-direction: column !important;
        align-items: center !important;
        text-align: center !important;
        gap: 20px !important;
    }
    .role-hospital .identity-form-grid,
    .role-hospital .contact-grid-2,
    .role-hospital .contact-grid-3 {
        grid-template-columns: 1fr !important;
        gap: 16px !important;
    }
    .role-hospital .btn-save {
        width: 100% !important;
    }
    
    /* Clinical Registry Tabs and Lists Reflow */
    .role-hospital .tabs-flex {
        flex-direction: column !important;
        gap: 8px !important;
        border-bottom: none !important;
    }
    .role-hospital .tab-btn {
        width: 100% !important;
        border-radius: 12px !important;
        border: 1px solid var(--surface-variant) !important;
        justify-content: center !important;
        border-bottom: 1px solid var(--surface-variant) !important;
    }
    .role-hospital .tab-btn.active {
        background: var(--primary-container) !important;
        border-color: var(--primary) !important;
        color: var(--primary) !important;
    }
}









