﻿/* JMJ Technologies Brand Colors */
:root {
    --jmj-primary: #0077B6;
    --jmj-primary-light: #00A8E8;
    --jmj-primary-dark: #005A8C;
    --jmj-navy: #1A365D;
    --jmj-gray: #4A5568;
    --jmj-gray-light: #718096;
    --bs-primary: #0077B6 !important;
    --bs-primary-rgb: 0, 119, 182 !important;
}

/* Override Bootstrap primary color */
.bg-primary {
    background-color: var(--jmj-primary) !important;
}

.btn-primary {
    background-color: var(--jmj-primary) !important;
    border-color: var(--jmj-primary) !important;
}

.btn-primary:hover {
    background-color: var(--jmj-primary-dark) !important;
    border-color: var(--jmj-primary-dark) !important;
}

.text-primary {
    color: var(--jmj-primary) !important;
}

.border-primary {
    border-color: var(--jmj-primary) !important;
}

a {
    color: var(--jmj-primary);
}

a:hover {
    color: var(--jmj-primary-dark);
}

/* ================================================
   JMJ LANDING PAGE STYLES
   ================================================ */

.jmj-landing {
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    overflow: hidden;
    background: linear-gradient(135deg, var(--jmj-navy) 0%, #0f172a 50%, #020617 100%);
}

/* Animated gradient orbs */
.jmj-landing-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
}

.jmj-gradient-orb {
    position: absolute;
    border-radius: 50%;
    filter: blur(80px);
    opacity: 0.5;
    animation: float 20s ease-in-out infinite;
}

.jmj-orb-1 {
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, var(--jmj-primary) 0%, transparent 70%);
    top: -200px;
    right: -100px;
    animation-delay: 0s;
}

.jmj-orb-2 {
    width: 500px;
    height: 500px;
    background: radial-gradient(circle, var(--jmj-primary-light) 0%, transparent 70%);
    bottom: -150px;
    left: -100px;
    animation-delay: -7s;
}

.jmj-orb-3 {
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, #6366f1 0%, transparent 70%);
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    animation-delay: -14s;
    opacity: 0.3;
}

@keyframes float {
    0%, 100% {
        transform: translate(0, 0) scale(1);
    }
    25% {
        transform: translate(30px, -30px) scale(1.05);
    }
    50% {
        transform: translate(-20px, 20px) scale(0.95);
    }
    75% {
        transform: translate(-30px, -20px) scale(1.02);
    }
}

/* Subtle grid overlay */
.jmj-grid-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 50px 50px;
    z-index: 1;
}

/* Main content container */
.jmj-landing-content {
    position: relative;
    z-index: 2;
    height: calc(100vh - 60px);
    padding: 80px 40px 20px;
}

/* Left hero section */
.jmj-hero-left {
    display: flex;
    align-items: center;
    padding-left: 5%;
}

.jmj-hero-content {
    max-width: 600px;
}

.jmj-hero-logo {
    height: 80px;
    width: auto;
}

.jmj-hero-title {
    font-size: 3.5rem;
    font-weight: 700;
    color: #ffffff;
    line-height: 1.1;
    margin-bottom: 1.5rem;
    letter-spacing: -0.02em;
}

.jmj-highlight {
    background: linear-gradient(135deg, var(--jmj-primary-light) 0%, var(--jmj-primary) 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.jmj-hero-subtitle {
    font-size: 1.25rem;
    color: rgba(255,255,255,0.7);
    line-height: 1.6;
    margin-bottom: 2.5rem;
    max-width: 500px;
}

/* Feature list */
.jmj-features {
    display: flex;
    flex-direction: column;
    gap: 1.25rem;
}

.jmj-feature {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.25rem;
    background: rgba(255,255,255,0.05);
    border: 1px solid rgba(255,255,255,0.1);
    border-radius: 12px;
    transition: all 0.3s ease;
}

.jmj-feature:hover {
    background: rgba(255,255,255,0.08);
    border-color: rgba(255,255,255,0.2);
    transform: translateX(5px);
}

.jmj-feature-icon {
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--jmj-primary) 0%, var(--jmj-primary-light) 100%);
    border-radius: 10px;
    font-size: 1.25rem;
    color: white;
    flex-shrink: 0;
}

.jmj-feature-text {
    display: flex;
    flex-direction: column;
}

.jmj-feature-text strong {
    color: #ffffff;
    font-size: 1rem;
    font-weight: 600;
}

.jmj-feature-text span {
    color: rgba(255,255,255,0.6);
    font-size: 0.875rem;
}

/* Right side - Login card */
.jmj-hero-right {
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: 5%;
}

.jmj-login-card {
    width: 100%;
    max-width: 420px;
    background: rgba(255,255,255,0.95);
    backdrop-filter: blur(20px);
    border-radius: 24px;
    padding: 2.5rem;
    box-shadow:
        0 25px 50px -12px rgba(0,0,0,0.4),
        0 0 0 1px rgba(255,255,255,0.1);
}

.jmj-login-header {
    text-align: center;
    margin-bottom: 2rem;
}

.jmj-login-header h2 {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--jmj-navy);
    margin-bottom: 0.5rem;
}

.jmj-login-header p {
    color: var(--jmj-gray);
    font-size: 0.95rem;
    margin: 0;
}

/* Custom input styling */
.jmj-input-group {
    position: relative;
    margin-bottom: 1rem;
}

.jmj-input-group i {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: var(--jmj-gray-light);
    font-size: 1rem;
    transition: color 0.2s ease;
}

.jmj-input-group input {
    width: 100%;
    padding: 1rem 1rem 1rem 3rem;
    border: 2px solid #e2e8f0;
    border-radius: 12px;
    font-size: 1rem;
    transition: all 0.2s ease;
    background: #f8fafc;
}

.jmj-input-group input:focus {
    outline: none;
    border-color: var(--jmj-primary);
    background: #ffffff;
    box-shadow: 0 0 0 4px rgba(0, 119, 182, 0.1);
}

.jmj-input-group input:focus + i,
.jmj-input-group:focus-within i {
    color: var(--jmj-primary);
}

/* Login options row */
.jmj-login-options {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    font-size: 0.875rem;
}

.jmj-checkbox {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    cursor: pointer;
    color: var(--jmj-gray);
}

.jmj-checkbox input {
    width: 18px;
    height: 18px;
    accent-color: var(--jmj-primary);
}

.jmj-login-options a {
    color: var(--jmj-primary);
    text-decoration: none;
    font-weight: 500;
}

.jmj-login-options a:hover {
    text-decoration: underline;
}

/* Primary button */
.jmj-btn-primary {
    width: 100%;
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, var(--jmj-primary) 0%, var(--jmj-primary-dark) 100%);
    color: white;
    border: none;
    border-radius: 12px;
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.75rem;
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 119, 182, 0.3);
}

.jmj-btn-primary:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 119, 182, 0.4);
}

.jmj-btn-primary:active {
    transform: translateY(0);
}

.jmj-btn-primary i {
    transition: transform 0.2s ease;
}

.jmj-btn-primary:hover i {
    transform: translateX(4px);
}

/* Login footer */
.jmj-login-footer {
    text-align: center;
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e2e8f0;
    font-size: 0.95rem;
    color: var(--jmj-gray);
}

.jmj-login-footer a {
    color: var(--jmj-primary);
    font-weight: 600;
    text-decoration: none;
    margin-left: 0.25rem;
}

.jmj-login-footer a:hover {
    text-decoration: underline;
}

/* Landing page footer */
.jmj-landing-footer {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    padding: 1rem 0;
    z-index: 2;
}

.jmj-footer-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: rgba(255,255,255,0.5);
    font-size: 0.875rem;
}

.jmj-footer-links {
    display: flex;
    gap: 1.5rem;
}

.jmj-footer-links a {
    color: rgba(255,255,255,0.5);
    text-decoration: none;
    transition: color 0.2s ease;
}

.jmj-footer-links a:hover {
    color: rgba(255,255,255,0.8);
}

/* Responsive adjustments */
@media (max-width: 991px) {
    .jmj-landing-content {
        padding: 100px 20px 20px;
        height: auto;
        min-height: calc(100vh - 60px);
    }

    .jmj-hero-left {
        padding-left: 0;
        justify-content: center;
        text-align: center;
        margin-bottom: 3rem;
    }

    .jmj-hero-content {
        max-width: 100%;
    }

    .jmj-hero-title {
        font-size: 2.5rem;
    }

    .jmj-hero-subtitle {
        max-width: 100%;
    }

    .jmj-features {
        align-items: center;
    }

    .jmj-feature {
        max-width: 400px;
        width: 100%;
    }

    .jmj-hero-right {
        padding-right: 0;
        justify-content: center;
    }

    .jmj-login-card {
        max-width: 100%;
    }

    .jmj-landing-footer {
        position: relative;
        margin-top: 2rem;
    }

    .jmj-footer-content {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
    }
}

@media (max-width: 576px) {
    .jmj-hero-title {
        font-size: 2rem;
    }

    .jmj-login-card {
        padding: 1.5rem;
        border-radius: 16px;
    }

    .jmj-feature {
        padding: 0.875rem 1rem;
    }

    .jmj-feature-icon {
        width: 40px;
        height: 40px;
        font-size: 1rem;
    }
}

/* Hide default navbar on landing page */
body.unauthenticated #topnavbar {
    background: transparent !important;
    box-shadow: none;
}

body.unauthenticated .fixed-bottom {
    display: none;
}

/* ================================================
   END JMJ LANDING PAGE STYLES
   ================================================ */

/* Set padding to keep content from hitting the edges */
.body-content {
    margin-top: 15px;
    padding-left: 15px;
    padding-right: 15px;
}

/* Override the default bootstrap behavior where horizontal description lists 
   will truncate terms that are too long to fit in the left column 
*/
.dl-horizontal dt {
    white-space: normal;
}
.help-block ul {
    list-style-type: none;
    padding-left: 0;
}
html {
    scroll-behavior: auto !important;
}
body{
    background-color:#EFEDEC;
}
.background {
    background-color: #EFEDEC !important;
}
.rowmain{
  
}
.rowalt {
    background-color: rgba(0,0,0,.05) !important;
}
.bg-hover-select:hover {
    background-color: rgba(0,0,0,.1) !important;
}
.bg-hover-light {
    background-color:#f8f9fa !important;
}

.nav-link-light{
    color:#ffffff !important;
}
.confidencelevel {
    background-color: #cccccc !important;
}

.confidencelevel1, .confidencelevel2 {
    background-color: #008450 !important;
}

.confidencelevel3 {
    background-color: #efb700 !important;
}

.confidencelevel4, .confidencelevel5 {
    background-color: #b81d13 !important;
}
ul.tools {
    display: none;
    list-style: none;
    border: solid 1px #000;
    border-radius: 10px;
    position: absolute;
    background: #fff;
    padding-left: 0rem !important;
    line-height: 0;
    z-index: 20000!important;
    
}

    ul.tools li {
        display: block !important;
       
        height: 20px !important;
       
        padding: 15px 25px 15px 25px !important;
        padding-inline-start: 10px !important;
        cursor: pointer;
    }
    ul.tools li:first-of-type {
        border-start-start-radius: 10px;
        border-start-end-radius: 10px;
    }
    ul.tools li:last-of-type {
        border-end-start-radius: 10px;
        border-end-end-radius: 10px;
    }
    ul.tools li:hover{
        background-color: var(--bs-secondary);
        color: white;
    }
/* Set width on the form input elements since they're 100% wide by default */
input,
select,
textarea {
   /* max-width: 280px;*/
}
.boxHover{
    box-shadow: 0 0 0 2px orange;
    transition: all 300ms ease-in-out;
}

/* Patient Health Report Styles */
.health-report-container {
    padding: 70px 40px 40px 40px;
    background: transparent;
    min-height: 100vh;
}

.health-report-wrapper {
    max-width: 1400px;
    margin: 0 auto;
}

.health-report-header {
    background: linear-gradient(135deg, white 0%, #f8f9fa 100%);
    border: 2px solid transparent;
    background-clip: padding-box;
   /* border-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%) 1;*/
    border-radius: 20px;
    padding: 40px;
    margin-bottom: 40px;
   /* box-shadow: 0 20px 60px rgba(102,126,234,0.15);*/
    position: relative;
    overflow: hidden;
    margin-top: 50px;
}

.health-report-header::before {
    content: '';
    position: absolute;
    top: 0;
    right: -100px;
    width: 300px;
    height: 300px;
    background: linear-gradient(135deg, #667eea10 0%, #764ba210 100%);
    border-radius: 50%;
}

.health-score-hero {
    background: white;
    border-radius: 20px;
    padding: 30px;
    box-shadow: 0 15px 40px rgba(102,126,234,0.2);
    border: 2px solid transparent;
    background-clip: padding-box;/*
    border-image: linear-gradient(135deg, #667eea 0%, #764ba2 100%) 1;*/
    transition: all 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
    overflow: hidden;
}

.health-score-hero::after {
    content: '';
    position: absolute;
    top: -50%;
    right: -50%;
    width: 200%;
    height: 200%;
    background: radial-gradient(circle, rgba(102,126,234,0.05) 0%, transparent 70%);
    animation: pulse 3s ease-in-out infinite;
    pointer-events: none; /* Ensure pseudo-element doesn't block clicks */
    z-index: 0;
}

/* Ensure button inside health-score-hero is clickable */
.health-score-hero button {
    position: relative;
    z-index: 10;
    cursor: pointer;
}

/* Specific fix for modal trigger button */
button[data-bs-target="#scoreBreakdownModal"] {
    position: relative;
    z-index: 20 !important;
    pointer-events: auto !important;
    cursor: pointer !important;
}

@@keyframes pulse {
    0%, 100% { transform: scale(1); opacity: 0.8; }
    50% { transform: scale(1.1); opacity: 0.3; }
}

.health-score-hero:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: 0 30px 70px rgba(102,126,234,0.3);
}

.metric-stat-card {
    background: white;
    border-radius: 16px;
    padding: 25px;
    height: 100%;
    border: 1px solid #e9ecef;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
    transition: all 0.3s cubic-bezier(0.175, 0.885, 0.32, 1.275);
    position: relative;
    overflow: hidden;
}

.metric-stat-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
    background: linear-gradient(90deg, #667eea 0%, #764ba2 100%);
    transform: scaleX(0);
    transition: transform 0.3s ease;
}

.metric-stat-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: 0 20px 50px rgba(102,126,234,0.25);
    border: 1px solid rgba(102,126,234,0.3);
}

.metric-stat-card:hover::before {
    transform: scaleX(1);
}

.metric-icon-wrapper {
    width: 70px;
    height: 70px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, #667eea15 0%, #764ba215 100%);
    box-shadow: 0 4px 15px rgba(102,126,234,0.2);
    border: 2px solid rgba(102,126,234,0.1);
}

.health-tabs {
    background: white;
    border-radius: 16px;
    padding: 8px;
    box-shadow: 0 8px 24px rgba(0,0,0,0.08);
    margin-bottom: 30px;
    border: 1px solid #e9ecef;
}

.health-tabs .nav-link {
    border-radius: 12px;
    padding: 12px 24px;
    margin: 4px;
    border: none;
    background: transparent;
    color: #6c757d;
    font-weight: 500;
    transition: all 0.3s ease;
    position: relative;
}

.health-tabs .nav-link:hover {
    background: rgba(102,126,234,0.08);
    color: #667eea;
    transform: translateY(-2px);
}

.health-tabs .nav-link.active {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    box-shadow: 0 8px 20px rgba(102,126,234,0.3);
}

.health-tabs .nav-link .badge {
    animation: shake 2s ease-in-out infinite;
}

@@keyframes shake {
    0%, 100% { transform: translateX(0); }
    10%, 30%, 50%, 70%, 90% { transform: translateX(-2px); }
    20%, 40%, 60%, 80% { transform: translateX(2px); }
}

.tab-content-wrapper {
    background: white;
    border-radius: 20px;
    padding: 40px;
    box-shadow: 0 15px 40px rgba(0,0,0,0.08);
    border: 1px solid #e9ecef;
    animation: slideUp 0.5s ease;
}

@@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(30px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.health-alert-card {
    background: white;
    border-radius: 16px;
    padding: 24px;
    margin-bottom: 20px;
    transition: all 0.3s ease;
    position: relative;
    overflow: hidden;
    border: 1px solid #e9ecef;
    box-shadow: 0 4px 12px rgba(0,0,0,0.05);
}

.health-alert-card.priority-high {
    border-left: 6px solid #dc3545;
    background: linear-gradient(90deg, #dc354508 0%, transparent 50%);
    box-shadow: 0 6px 20px rgba(220,53,69,0.15);
}

.health-alert-card.priority-medium {
    border-left: 6px solid #ffc107;
    background: linear-gradient(90deg, #ffc10708 0%, transparent 50%);
    box-shadow: 0 6px 20px rgba(255,193,7,0.15);
}

.health-alert-card.priority-low {
    border-left: 6px solid #17a2b8;
    background: linear-gradient(90deg, #17a2b808 0%, transparent 50%);
    box-shadow: 0 6px 20px rgba(23,162,184,0.15);
}

.health-alert-card:hover {
    transform: translateX(10px) scale(1.01);
    box-shadow: 0 12px 35px rgba(0,0,0,0.12);
}

.health-score-ring-container {
    position: relative;
    width: 220px;
    height: 220px;
    margin: 0 auto;
    z-index: 1;
}

.health-score-label {
    position: absolute;
    bottom: 45px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 14px;
    color: #6c757d;
    font-weight: 500;
    white-space: nowrap;
}

.health-score-ring {
    transition: stroke-dasharray 1.5s ease-out;
    stroke-dashoffset: 0;
    animation: fillRing 1.5s ease-out forwards;
}

@keyframes fillRing {
    from {
        stroke-dasharray: 0 596.9;
    }
}

.health-score-number {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 64px;
    font-weight: 800;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: 0 2px 10px rgba(102,126,234,0.1);
    width: 100%;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
}

.score-value {
    display: inline-block;
    min-width: 90px;
    text-align: center;
    animation: fadeInScale 0.8s ease-out;
}

@@keyframes fadeInScale {
    from {
        opacity: 0;
        transform: scale(0.8);
    }
    to {
        opacity: 1;
        transform: scale(1);
    }
}

.progress-bar-animated {
    background-size: 1rem 1rem;
    animation: progress-bar-stripes 1s linear infinite;
}

@@keyframes progress-bar-stripes {
    from { background-position: 1rem 0; }
    to { background-position: 0 0; }
}

.condition-metric-card {
    background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
    border-radius: 12px;
    padding: 20px;
    height: 100%;
    transition: all 0.3s ease;
}

.condition-metric-card:hover {
    transform: scale(1.05);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
}

.sparkline-chart {
    height: 60px;
    margin-top: 10px;
}

.preventive-care-item {
    background: white;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 15px;
    border-left: 5px solid transparent;
    transition: all 0.3s ease;
    box-shadow: 0 3px 10px rgba(0,0,0,0.05);
    border: 1px solid #e9ecef;
}

.preventive-care-item.overdue {
    border-left-color: #dc3545;
    background: linear-gradient(90deg, #dc354508 0%, transparent 30%);
}

.preventive-care-item.due-soon {
    border-left-color: #ffc107;
    background: linear-gradient(90deg, #ffc10708 0%, transparent 30%);
}

.preventive-care-item.completed {
    border-left-color: #28a745;
    background: linear-gradient(90deg, #28a74508 0%, transparent 30%);
}

.preventive-care-item:hover {
    transform: translateX(8px);
    box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}

.medication-card {
    background: white;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 20px;
    position: relative;
    transition: all 0.3s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.06);
    border: 1px solid #e9ecef;
}

.medication-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 35px rgba(0,0,0,0.1);
}

.medication-badge {
    display: inline-block;
    padding: 6px 12px;
    border-radius: 20px;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.care-provider-card {
    background: white;
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 15px;
    display: flex;
    align-items: center;
    transition: all 0.3s ease;
    box-shadow: 0 3px 10px rgba(0,0,0,0.05);
    border: 1px solid #e9ecef;
}

.care-provider-card:hover {
    transform: translateX(10px);
    box-shadow: 0 10px 25px rgba(0,0,0,0.1);
    background: linear-gradient(90deg, #667eea05 0%, transparent 100%);
}

.provider-avatar {
    width: 60px;
    height: 60px;
    border-radius: 50%;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 24px;
    margin-right: 20px;
}

.trend-chart-container {
    background: white;
    border-radius: 16px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: 0 10px 30px rgba(0,0,0,0.08);
}

.financial-summary-card {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 16px;
    padding: 30px;
    color: white;
    margin-bottom: 30px;
    position: relative;
    overflow: hidden;
}

.financial-summary-card::after {
    content: '$';
    position: absolute;
    bottom: -20px;
    right: -20px;
    font-size: 150px;
    opacity: 0.1;
    font-weight: 700;
}

.health-badge {
    display: inline-block;
    padding: 10px 20px;
    border-radius: 30px;
    font-weight: 700;
    font-size: 14px;
    letter-spacing: 0.8px;
    text-transform: uppercase;
    animation: fadeIn 0.5s ease;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
    border: 1px solid rgba(0,0,0,0.05);
}

@@keyframes fadeIn {
    from { opacity: 0; transform: scale(0.8); }
    to { opacity: 1; transform: scale(1); }
}

.section-header {
    font-size: 28px;
    font-weight: 700;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    margin-bottom: 25px;
    position: relative;
    padding-left: 25px;
}

.section-header::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 6px;
    height: 30px;
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border-radius: 3px;
    box-shadow: 0 2px 8px rgba(102,126,234,0.3);
}

.empty-state {
    text-align: center;
    padding: 60px 20px;
    color: #6c757d;
}

.empty-state-icon {
    font-size: 64px;
    color: #dee2e6;
    margin-bottom: 20px;
}

.loading-spinner {
    display: inline-block;
    width: 40px;
    height: 40px;
    border: 4px solid rgba(102,126,234,0.2);
    border-top-color: #667eea;
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

@@keyframes spin {
    to { transform: rotate(360deg); }
}

/* Additional enhancements for Patient Health Report */
.health-report-container h1 {
    text-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.health-report-container .display-4 {
    font-weight: 800 !important;
}

/* Add glow effect to important numbers */
.health-score-hero h2,
.metric-stat-card h2 {
    text-shadow: 0 2px 8px rgba(102,126,234,0.15);
}

/* Enhanced button styles */
.health-report-container .btn-primary {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    border: none;
    padding: 12px 32px;
    border-radius: 30px;
    font-weight: 600;
    letter-spacing: 0.5px;
    box-shadow: 0 8px 20px rgba(102,126,234,0.3);
    transition: all 0.3s ease;
}

.health-report-container .btn-primary:hover {
    transform: translateY(-3px);
    box-shadow: 0 12px 30px rgba(102,126,234,0.4);
}

/* Add subtle animation to metric cards on load */
.metric-stat-card {
    animation: slideInUp 0.6s ease;
}

.metric-stat-card:nth-child(2) {
    animation-delay: 0.1s;
}

.metric-stat-card:nth-child(3) {
    animation-delay: 0.2s;
}

.metric-stat-card:nth-child(4) {
    animation-delay: 0.3s;
}

@@keyframes slideInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Enhance progress bars */
.progress {
    height: 10px !important;
    border-radius: 20px !important;
    background: #f0f3f6 !important;
    box-shadow: inset 0 2px 4px rgba(0,0,0,0.05);
}

.progress-bar {
    border-radius: 20px !important;
}

/* Add accent border to focused tabs */
.health-tabs .nav-link:focus {
    outline: 2px solid rgba(102,126,234,0.3);
    outline-offset: 2px;
}

.grow-wrap {
    /* easy way to plop the elements on top of each other and have them both sized based on the tallest one's height */
    display: grid;
}

    .grow-wrap::after {
        /* Note the weird space! Needed to preventy jumpy behavior */
        content: attr(data-replicated-value) " ";
        /* This is how textarea text behaves */
        white-space: pre-wrap;
        /* Hidden from view, clicks, and screen readers */
        visibility: hidden;
    }

    .grow-wrap > textarea {
        /* You could leave this, but after a user resizes, then it ruins the auto sizing */
        resize: none;
        /* Firefox shows scrollbar on growth, you can hide like this. */
        overflow: hidden;
    }

    .grow-wrap > textarea,
    .grow-wrap::after {
        /* Identical styling required!! */
        /*border: 1px solid black;*/
       /* padding: 0.25rem;*/
        font: inherit;
        /* Place on top of each other */
        grid-area: 1 / 1 / 2 / 2;
    }
.c-hover:hover,
.c-hover:focus {
    color: rgba(0, 0, 0, .85);
    background-color: #d2f4ea;
}

.pulse-primary {
    color: rgba(255, 255, 255, 0.8);
    box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, .8);
    animation: pulse-primary 1s infinite;
    z-index: 1000;
}

    .pulse-primary:hover {
        color: rgba(255, 255, 255, 1) !important;
    }

/* Modern form improvements for AddNewPatient page */
.card {
    border: none;
    border-radius: 0.5rem;
    overflow: hidden;
}

.card-header {
    border-bottom: none;
    font-weight: 600;
    padding: 1rem 1.25rem;
}

.card-body {
    padding: 1.5rem 1.25rem;
}

/* Equal height cards per row - only for main report cards */
@media (min-width: 992px) {
    /* Target only direct children rows of report parent that contain report cards */
    [data-report-parent] > .row {
        display: flex;
        flex-wrap: wrap;
    }
    
    /* Target only columns that are direct children of those rows */
    [data-report-parent] > .row > [class*='col-'] {
        display: flex;
        flex-direction: column;
    }
    
    /* Target only cards with data-report attribute (main report cards) */
    [data-report-parent] .card[data-report] {
        flex: 1 1 auto;
        display: flex;
        flex-direction: column;
        height: 100%;
    }
    
    [data-report-parent] .card[data-report] .card-body {
        flex: 1 1 auto;
    }
    
    /* Provider Report Card specific selectors */
    .prc-score-breakdown > .container-fluid > .row,
    .prc-key-metrics-section > .container-fluid > .row,
    .prc-charts-section > .container-fluid > .row {
        display: flex;
        flex-wrap: wrap;
    }
    
    .prc-score-breakdown > .container-fluid > .row > [class*='col-'],
    .prc-key-metrics-section > .container-fluid > .row > [class*='col-'],
    .prc-charts-section > .container-fluid > .row > [class*='col-'] {
        display: flex;
        flex-direction: column;
    }
}

/* For custom card layouts */
.prc-score-card,
.prc-peer-rank-card,
.prc-metric-card,
.prc-stat-card,
.prc-metric-category-card,
.clinic-card,
.provider-card,
.patient-card,
.filter-card,
.patient-detail-card,
.hedis-detail-card,
.diagnostic-gap-card,
.hedis-measure-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}

.prc-score-card-body,
.clinic-card .card-body,
.provider-card .card-body,
.patient-card .card-body,
.filter-card .card-body,
.patient-detail-card .card-body,
.hedis-detail-card .card-body {
    flex: 1 1 auto;
}

.form-control, .form-select {
    border-radius: 0.375rem;
    border-color: #dee2e6;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.form-control:focus, .form-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.15);
}

.input-group-text {
    background-color: #f8f9fa;
    border-color: #dee2e6;
}

.btn {
    border-radius: 0.375rem;
    font-weight: 500;
    transition: all 0.2s ease-in-out;
}

.btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.invalid-feedback {
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

.modal-content {
    border: none;
    border-radius: 0.5rem;
}

.modal-header {
    border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.modal-footer {
    border-top: 1px solid rgba(0, 0, 0, 0.05);
}

/* Address card styling */
.address-card {
    transition: all 0.2s ease-in-out;
}

.address-card:hover {
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Ensure consistent form element spacing */
.form-label {
    margin-bottom: 0.5rem;
}

.row.mb-3 {
    margin-bottom: 1rem !important;
}

/* Ensure all input groups have consistent height */
.input-group .form-control,
.input-group .form-select,
.input-group .btn {
    height: calc(2.5rem + 2px);
}

.input-group-text {
    height: calc(2.5rem + 2px);
    display: flex;
    align-items: center;
}

@-webkit-keyframes pulse-primary {
    0% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(40, 185, 1845, .8);
        color: rgba(255, 255, 255, 1);
    }

    40% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, 0);
    }

    100% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, .8);
        color: rgba(255, 255, 255, 1);
    }
}

@keyframes pulse-primary {
    0% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, .8);
        box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, .8);
        color: rgba(255, 255, 255, 1);
    }

    40% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, 0);
        box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, 0);
    }

    100% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, .8);
        box-shadow: 0px 0px 20px 5px rgba(40, 185, 184, .8);
        color: rgba(255, 255, 255, 1);
    }
}


.pulse-warning {
    color: rgba(255, 255, 255, 0.8);
    box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
    animation: pulse-warning 2.5s infinite;
}

    .pulse-warning:hover {
        color: rgba(255, 255, 255, 1) !important;
    }

@-webkit-keyframes pulse-warning {
    0% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, 0);
    }

    100% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
        color: rgba(255, 255, 255, 1);
    }
}

@keyframes pulse-warning {
    0% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
        box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, 0);
        box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, 0);
    }

    100% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
        box-shadow: 0px 0px 20px 5px rgba(255, 170, 0, .8);
        color: rgba(255, 255, 255, 1);
    }
}


.pulse-default {
    color: rgba(0, 0, 0, 0.8);
    box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
    animation: pulse-default 3.2s infinite;
}

    .pulse-default:hover {
        color: rgba(0, 0, 0, 1) !important;
    }

@-webkit-keyframes pulse-default {
    0% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
        color: rgba(0, 0, 0, 1);
    }

    70% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, 0);
    }

    100% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
        color: rgba(0, 0, 0, 1);
    }
}

@keyframes pulse-default {
    0% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
        box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
        color: rgba(0, 0, 0, 1);
    }

    70% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, 0);
        box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, 0);
    }

    100% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
        box-shadow: 0px 0px 20px 5px rgba(245, 245, 245, .8);
        color: rgba(0, 0, 0, 1);
    }
}


.pulse-danger {
    color: rgba(255, 255, 255, 0.8);
    box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, .8);
    animation: pulse-danger 1s 1;
}

    .pulse-danger:hover {
        color: rgba(255, 255, 255, 1) !important;
    }

@-webkit-keyframes pulse-danger {
    0% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, 0);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, 0.8);
    }

    100% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, .0);
        color: rgba(255, 255, 255, 1);
    }
}

@keyframes pulse-danger {
    0% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, 0);
        box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, .8);
        box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, 0);
    }

    100% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, 0);
        box-shadow: 0px 0px 20px 5px rgba(255, 63, 58, .8);
        color: rgba(255, 255, 255, 1);
    }
}


.pulse-success {
    color: rgba(255, 255, 255, 0.8);
    box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
    animation: pulse-success 3.5s infinite;
}

    .pulse-success:hover {
        color: rgba(255, 255, 255, 1) !important;
    }

@-webkit-keyframes pulse-success {
    0% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, 0);
    }

    100% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
        color: rgba(255, 255, 255, 1);
    }
}

@keyframes pulse-success {
    0% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
        box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, 0);
        box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, 0);
    }

    100% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
        box-shadow: 0px 0px 20px 5px rgba(45, 220, 45, .8);
        color: rgba(255, 255, 255, 1);
    }
}


.pulse-info {
    color: rgba(255, 255, 255, 0.8);
    box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
    animation: pulse-info 3.7s infinite;
}

    .pulse-info:hover {
        color: rgba(255, 255, 255, 1) !important;
    }

@-webkit-keyframes pulse-info {
    0% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, 0);
    }

    100% {
        -webkit-box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
        color: rgba(255, 255, 255, 1);
    }
}

@keyframes pulse-info {
    0% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
        box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
        color: rgba(255, 255, 255, 1);
    }

    70% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, 0);
        box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, 0);
    }

    100% {
        -moz-box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
        box-shadow: 0px 0px 20px 5px rgba(125, 249, 255, .8);
        color: rgba(255, 255, 255, 1);
    }
}

/* ========================================
   PATIENT LIST STYLES
   ======================================== */

/* Patient List Container */
.pl-container {
    min-height: calc(100vh - 56px);
}

/* Page Header */
.pl-page-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Search and Filter Card */
.pl-search-filter-card {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Search Input */
.pl-search-wrapper {
    position: relative;
}

.pl-search-icon {
    position: absolute;
    left: 15px;
    top: 50%;
    transform: translateY(-50%);
    color: #6c757d;
}

.pl-search-input {
    padding-left: 40px;
    border-radius: 8px;
    transition: all 0.3s;
}

.pl-search-input:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

/* Quick Filters */
.pl-quick-filters {
    padding-top: 1rem;
    border-top: 1px solid #e9ecef;
}

/* Advanced Options */
.pl-advanced-options-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding-bottom: 20px;
}

.pl-option-section {
    padding: 1.5rem;
    border-bottom: 1px solid #e9ecef;
}

.pl-option-section:last-child {
    border-bottom: none;
}

.pl-option-title {
    color: #495057;
    margin-bottom: 1rem;
    font-weight: 600;
}

.pl-option-content {
    padding-left: 2rem;
}

/* Provider Search */
.pl-provider-search-wrapper {
    position: relative;
}

.pl-provider-search-wrapper #provSpinner {
    position: absolute;
    right: 10px;
    top: 10px;
}

.pl-provider-results {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    max-height: 200px;
    overflow-y: auto;
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
    z-index: 1000;
    margin-top: 4px;
}

.pl-selected-provider {
    margin-top: 0.5rem;
}

.pl-selected-provider .badge {
    font-size: 0.875rem;
    padding: 0.5rem 1rem;
}

/* Results Section */
.pl-results-section {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-height: 400px;
    overflow: hidden;
}

.pl-loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 5rem 0;
}

.pl-loading-container .spinner-border {
    width: 4rem;
    height: 4rem;
}

/* Responsive */
@media (max-width: 768px) {
    .pl-option-content {
        padding-left: 0;
    }
    
    .pl-quick-filters {
        display: flex;
        flex-direction: column;
        gap: 0.5rem;
    }
}

/* ========================================
   COHORT MANAGEMENT STYLES
   ======================================== */

.cm-container {
    background-color: #f8f9fa;
    min-height: calc(100vh - 60px);
    margin-top:50px !important;
}

.cm-card {
    background: white;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.1);
    padding: 20px;
    margin-bottom: 20px;
}

.cm-list-item {
    padding: 15px;
    border: 1px solid #e9ecef;
    border-radius: 6px;
    margin-bottom: 10px;
    transition: all 0.2s;
    cursor: pointer;
}

.cm-list-item:hover {
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    transform: translateY(-1px);
}

.cm-list-item.active {
    border-color: #007bff;
    background-color: #f0f8ff;
}

.cm-patient-card,
#cohortPatientsContent .patient-card {
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 15px;
    margin-bottom: 10px;
}

.cm-action-buttons {
    display: flex;
    gap: 10px;
    margin-top: 15px;
}

.cm-stats-badge {
    background-color: #e9ecef;
    padding: 5px 10px;
    border-radius: 20px;
    font-size: 0.875rem;
}

/* Dynamic Criteria Form Styling */
#dynamicCriteriaForm .form-control.has-value,
#dynamicCriteriaForm .form-select.has-value {
    border-color: #0d6efd;
    background-color: #e7f1ff;
    font-weight: 500;
}

#dynamicCriteriaForm .form-control.has-value:focus,
#dynamicCriteriaForm .form-select.has-value:focus {
    border-color: #0a58ca;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

#dynamicCriteriaForm label.has-value {
    color: #0d6efd;
    font-weight: 600;
}

.cm-criteria-section-header {
    position: relative;
}

.cm-criteria-section-header .badge {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
}

/* ========================================
   LAYOUT & NAVIGATION STYLES
   ======================================== */

/* Enhanced Navigation Styles */
.navbar-nav .nav-link {
    padding: 0.5rem 1.25rem;
    transition: all 0.2s ease;
    position: relative;
}

.navbar-nav .nav-item {
    margin: 0 0.25rem;
}

.navbar-nav .nav-link i {
    font-size: 0.9rem;
}

.navbar-nav .dropdown-menu {
    border: none;
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
    margin-top: 0.5rem;
    min-width: 200px;
}

.navbar-nav .dropdown-item {
    padding: 0.5rem 1rem;
    transition: all 0.2s ease;
}

.navbar-nav .dropdown-item:hover {
    background-color: #f8f9fa;
    padding-left: 1.25rem;
}

.navbar-nav .dropdown-item i {
    width: 20px;
    text-align: center;
}

.dropdown-divider {
    margin: 0.5rem 0;
}

/* Active dropdown indicator */
.navbar-nav .dropdown-toggle:after {
    transition: transform 0.2s ease;
}

.navbar-nav .dropdown-toggle[aria-expanded="true"]:after {
    transform: rotate(-180deg);
}

/* Mobile responsive adjustments */
@media (max-width: 767px) {
    .navbar-nav .dropdown-menu {
        box-shadow: none;
        border-left: 3px solid #007bff;
        margin-top: 0;
    }
}

/* Feedback Icon Styles */
.feedback-icon {
    transition: all 0.3s ease;
    cursor: pointer;
    border: 2px solid transparent;
}

.feedback-icon:hover {
    opacity: 1 !important;
    transform: scale(1.1);
    background-color: rgba(13, 110, 253, 0.15);
    border-color: rgba(13, 110, 253, 0.3);
}

/* ========================================
   PATIENT SEARCH RESULTS STYLES
   ======================================== */

/* Results Container */
.ps-results-container {
    padding: 1.5rem;
}

/* Results Header */
.ps-results-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1.5rem;
    flex-wrap: wrap;
    gap: 1rem;
}

.ps-results-count .badge {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

/* Pagination Styling */
.ps-pagination {
    display: flex;
    padding-left: 0;
    list-style: none;
}

.ps-page-link {
    position: relative;
    display: block;
    color: #495057;
    text-decoration: none;
    background-color: #fff;
    border: 1px solid #dee2e6;
    padding: 0.375rem 0.75rem;
    cursor: pointer;
    transition: all 0.2s;
}

.ps-page-link:hover {
    z-index: 2;
    color: #0a58ca;
    background-color: #f8f9fa;
    border-color: #dee2e6;
}

.ps-page-item.active .ps-page-link {
    z-index: 3;
    color: #fff;
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.ps-page-item.disabled .ps-page-link {
    color: #6c757d;
    pointer-events: none;
    cursor: auto;
    background-color: #fff;
    border-color: #dee2e6;
}

.ps-page-item:first-child .ps-page-link {
    border-top-left-radius: 0.375rem;
    border-bottom-left-radius: 0.375rem;
}

.ps-page-item:last-child .ps-page-link {
    border-top-right-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
}

/* Table Styling */
.ps-table-container {
    overflow-x: auto;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.ps-patient-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.ps-patient-table thead {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
}

.ps-patient-table thead th {
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    white-space: nowrap;
    border-bottom: none;
}

.ps-sortable {
    cursor: pointer;
    user-select: none;
    transition: background-color 0.2s;
}

.ps-sortable:hover {
    background-color: #e9ecef;
}

.ps-sort-icon {
    font-size: 0.875rem;
    color: #6c757d;
    margin-left: 0.25rem;
}

/* Table Rows */
.ps-patient-row {
    cursor: pointer;
    transition: all 0.2s;
}

.ps-patient-row:hover {
    background-color: #f8f9fa;
    transform: translateX(2px);
}

.ps-patient-row.loading {
    opacity: 0.7;
}

.ps-patient-table tbody td {
    padding: 1rem;
    vertical-align: middle;
}

/* Patient Name */
.ps-patient-name {
    font-weight: 400;
    font-size: 1.3em;
    color: #111315;
}

/* PHI Hidden */
.ps-phi-hidden {
    background-color: #212529;
    color: #212529;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-family: monospace;
}

/* Member ID */
.ps-member-id {
    font-family: monospace;
    color: #495057;
}

/* Data Size */
.ps-data-size {
    font-weight: 500;
    color: #6c757d;
}

/* Loading Indicator */
.ps-loading-indicator {
    display: inline-flex;
    align-items: center;
}

/* Gender Badge */
.bg-pink {
    background-color: #e83e8c !important;
}

/* No Results */
.ps-no-results {
    padding: 3rem 0;
}

/* Results Footer */
.ps-results-footer {
    margin-top: 1.5rem;
    padding-top: 1.5rem;
    border-top: 1px solid #dee2e6;
}

/* Assignment Buttons */
.ps-assignment-btn.btn-sm {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

/* Responsive */
@media (max-width: 768px) {
    .ps-results-header {
        justify-content: center;
    }

    .ps-patient-table {
        font-size: 0.875rem;
    }

    .ps-patient-table thead th,
    .ps-patient-table tbody td {
        padding: 0.75rem 0.5rem;
    }
}

/* ========================================
   PATIENT SUMMARY COMPONENTS
   ======================================== */

/* SDOH Score Card */
.sdoh-score-card {
    transition: all 0.3s ease;
}

.sdoh-score-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

/* Metric Cards */
.metric-card {
    transition: all 0.3s ease;
}

.metric-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
}

.metric-label {
    min-height: 1.5rem;
    line-height: 1.2;
}

/* ========================================
   MODERN DASHBOARD STYLES
   ======================================== */

/* Hero Section (Unauthenticated) */
.hero-section {
    position: relative;
    min-height: calc(70vh - 56px);
    display: flex;
    align-items: center;
    overflow: hidden;
}

.map-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.hero-map {
    width: 100%;
    height: 100%;
    opacity: 0.3;
}

.map-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.95) 0%, rgba(13, 110, 253, 0.8) 100%);
}

/* Feature Pills */
.feature-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.feature-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.25rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50px;
    color: white;
    font-size: 0.9rem;
}

/* Map Stats */
.map-stats {
    display: flex;
    gap: 3rem;
    margin-top: 2rem;
}

.stat-item {
    text-align: center;
}

.stat-value {
    font-size: 2.5rem;
    font-weight: bold;
    color: white;
    line-height: 1;
}

.stat-label {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

/* Sign In Box */
.signin-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.signin-box {
    background: white;
    padding: 2.5rem;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    width: 100%;
    max-width: 400px;
}

/* Info Cards */
.info-card {
    text-align: center;
    padding: 2rem;
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
}

.info-card:hover {
    transform: translateY(-5px);
}

.info-icon {
    color: #0d6efd;
    margin-bottom: 1.5rem;
}

/* Dashboard Container */
.dashboard-container {
    min-height: calc(100vh - 56px);
    background: #f8f9fa;
}

/* Modern Welcome Header */
.welcome-header-modern {
    background: white;
    padding: 2rem;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    margin-bottom: 2rem;
}

/* Gradient Metric Cards */
.metric-card-gradient {
    background: white;
    border-radius: 15px;
    padding: 1.5rem;
    height: 100%;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.metric-card-gradient:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.12);
}

.metric-card-gradient::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

/* Gradient Classes */
.gradient-primary::before {
    background: linear-gradient(90deg, #667eea, #764ba2);
}

.gradient-success::before {
    background: linear-gradient(90deg, #06b6d4, #10b981);
}

.gradient-warning::before {
    background: linear-gradient(90deg, #f59e0b, #ef4444);
}

.gradient-info::before {
    background: linear-gradient(90deg, #3b82f6, #8b5cf6);
}

/* Metric Card Components */
.metric-icon {
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 2.5rem;
    opacity: 0.1;
}

.metric-value {
    font-size: 2.5rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
    color: #1a1a2e;
    animation: countUp 0.6s ease-out;
}

.metric-trend {
    font-size: 0.85rem;
}

/* Dashboard Cards */
.dashboard-card {
    background: white;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.card-header-modern {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.card-body-modern {
    padding: 1.5rem;
}

/* Risk Indicators */
.risk-indicator {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 0.5rem;
}

.risk-indicator.low {
    background-color: #10b981;
}

.risk-indicator.medium {
    background-color: #f59e0b;
}

.risk-indicator.high {
    background-color: #ef4444;
}

.risk-indicator.critical {
    background-color: #1a1a2e;
}

/* Quick Actions Modern */
.quick-actions-modern {
    margin-bottom: 2rem;
}

.action-card-modern {
    display: flex;
    align-items: center;
    padding: 1rem;
    background: white;
    border-radius: 12px;
    text-decoration: none;
    color: #495057;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    height: 100%;
}

.action-card-modern:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12);
    color: #495057;
}

.action-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.25rem;
    margin-right: 1rem;
    flex-shrink: 0;
}

.action-icon.gradient-purple {
    background: linear-gradient(135deg, #8b5cf6, #ec4899);
}

.action-icon.gradient-success {
    background: linear-gradient(135deg, #06b6d4, #10b981);
}

.action-icon.gradient-warning {
    background: linear-gradient(135deg, #f59e0b, #ef4444);
}

.action-icon.gradient-info {
    background: linear-gradient(135deg, #3b82f6, #0ea5e9);
}

.action-icon.gradient-dark {
    background: linear-gradient(135deg, #1a1a2e, #16213e);
}

/* Activity Timeline */
.activity-timeline {
    position: relative;
    padding-left: 0;
}

.activity-item {
    position: relative;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.activity-item:last-child {
    margin-bottom: 0;
}

.activity-icon {
    position: relative;
    left: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 0.875rem;
    flex-shrink: 0;
}

/* AI Insights */
.ai-insight-item {
    display: flex;
    gap: 1rem;
}

.insight-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: #f8f9fa;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

/* Map Container */
.map-container {
    padding: 1rem;
    position: relative;
}

.map-chart {
    width: 100%;
    height: 300px;
}

.map-tabs {
    display: flex;
    gap: 0.5rem;
}

.map-tab {
    padding: 0.375rem 0.75rem;
    border: 1px solid #dee2e6;
    background: white;
    border-radius: 4px;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
}

.map-tab.active {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

/* Patient Welcome */
.patient-welcome-modern {
    background: white;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.patient-hero {
    text-align: center;
    padding: 4rem 2rem;
}

.patient-avatar {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 2rem;
    font-size: 3rem;
    color: white;
}

/* Animations */
@keyframes countUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* ========================================
   MODERN SIDEBAR COMPONENT
   ======================================== */

/* Layout Container */
.bd-layout {
    display: flex;
    min-height: calc(100vh - 56px);
}

/* Modern Sidebar Base */
.bd-sidebar.modern-sidebar {
    width: 280px;
    background: white;
    color: #212529;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
    border-right: 1px solid #e9ecef;
    display: flex;
    flex-direction: column;
    position: fixed;
    height: calc(100vh - 56px);
    z-index: 100;
    transition: all 0.3s ease;
}

/* Sidebar Header */
.sidebar-header {
    padding: 1.5rem;
    border-bottom: 2px solid #e9ecef;
    background: white;
}

.sidebar-brand {
    display: flex;
    align-items: center;
    color: #495057 !important;
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 600;
    transition: all 0.3s;
    padding: 0.875rem 1.5rem;
    margin: -0.875rem -1.5rem;
    border-radius: 6px;
}

.sidebar-brand:hover {
    background: #f8f9fa;
    color: #0d6efd !important;
    text-decoration: none;
}

.sidebar-brand i {
    font-size: 1.5rem;
    margin-right: 1rem;
    color: #6c757d;
}

.sidebar-brand:hover i {
    color: #0d6efd;
}

/* Sidebar Navigation */
.sidebar-nav {
    flex: 1;
    padding: 1.5rem 0;
    margin: 0;
    list-style: none;
    overflow-y: auto;
}

.bd-sidebar .nav-item {
    margin: 0;
}

.bd-sidebar .nav-link:not(#navlist .nav-link) {
    display: flex;
    align-items: center;
    padding: 0.875rem 1.5rem;
    color: #495057 !important;
    text-decoration: none;
    transition: all 0.3s;
    border-left: 4px solid transparent;
    position: relative;
    font-weight: 500;
}

.bd-sidebar .nav-link:not(#navlist .nav-link):hover {
    background: #f8f9fa;
    color: #0d6efd !important;
    border-left-color: #0d6efd;
    transform: translateX(5px);
}

.bd-sidebar .nav-link.active {
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd !important;
    border-left-color: #0d6efd;
}

.bd-sidebar .nav-link:not(#navlist .nav-link) i {
    width: 24px;
    margin-right: 1rem;
    font-size: 1.1rem;
    text-align: center;
    color: #6c757d;
}

.bd-sidebar .nav-link:not(#navlist .nav-link):hover i,
.bd-sidebar .nav-link:not(#navlist .nav-link).active i {
    color: #0d6efd;
}

.bd-sidebar .nav-link span {
    font-size: 0.95rem;
    color: inherit;
}

/* Nav Divider */
.nav-divider {
    height: 1px;
    background: #e9ecef;
    margin: 1rem 1.5rem;
}

/* Sidebar Footer */
.sidebar-footer {
    padding: 1.5rem;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.sidebar-footer .btn {
    width: 100%;
    border-color: #0d6efd;
    color: #0d6efd;
    transition: all 0.3s;
    background: white;
}

.sidebar-footer .btn:hover {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

/* Main Content Area */
.modern-main-group {
    flex: 1;
    margin-left: 280px;
}

/* Scrollbar Styling */
.sidebar-nav::-webkit-scrollbar {
    width: 6px;
}

.sidebar-nav::-webkit-scrollbar-track {
    background: #f8f9fa;
}

.sidebar-nav::-webkit-scrollbar-thumb {
    background: #dee2e6;
    border-radius: 3px;
}

.sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: #adb5bd;
}

/* Mobile Toggle Button */
.bd-sidebar-toggle {
    display: none;
}

/* Loading State */
#rendercontent.loading {
    position: relative;
    min-height: 400px;
}

#rendercontent.loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* ========================================
   RESPONSIVE DESIGN
   ======================================== */

/* Tablet and Mobile Adjustments */
@media (max-width: 991.98px) {
    .hero-section {
        min-height: auto;
    }
    
    .hero-content {
        padding: 2rem 0;
    }
    
    .map-stats {
        gap: 2rem;
    }
    
    .stat-value {
        font-size: 2rem;
    }
    
    .signin-box {
        margin-top: 2rem;
    }
}

@media (max-width: 768px) {
    /* Sidebar Responsive */
    .bd-sidebar.modern-sidebar {
        width: 100%;
        position: static;
        height: auto;
    }
    
    .modern-main-group {
        margin-left: 0;
    }
    
    .bd-layout {
        flex-direction: column;
    }
    
    .bd-sidebar-toggle {
        display: block !important;
        position: fixed;
        top: 70px;
        right: 1rem;
        z-index: 1001;
        background: #0d6efd;
        color: white !important;
        border: none;
        padding: 0.5rem 0.75rem;
        border-radius: 4px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }
    
    .bd-sidebar-toggle:hover {
        background: #0a58ca;
        color: white !important;
        transform: scale(1.05);
    }
    
    #bd-nav {
        position: fixed;
        top: 56px;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1000;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }
    
    #bd-nav.show {
        transform: translateX(0);
    }
    
    /* Dashboard Responsive */
    .metric-card {
        margin-bottom: 1rem;
    }
    
    .welcome-header-modern h1 {
        font-size: 1.75rem;
    }
    
    .header-actions {
        margin-top: 1rem;
    }
}

@media (max-width: 575.98px) {
    .feature-pills {
        justify-content: center;
    }
    
    .map-stats {
        flex-direction: column;
        gap: 1rem;
        align-items: center;
    }
}

/* ========================================
   UTILITY CLASSES
   ======================================== */

/* Gradient Utilities */
.gradient-primary {
    background: linear-gradient(135deg, #667eea, #764ba2);
}

.gradient-success {
    background: linear-gradient(135deg, #06b6d4, #10b981);
}

.gradient-warning {
    background: linear-gradient(135deg, #f59e0b, #ef4444);
}

.gradient-info {
    background: linear-gradient(135deg, #3b82f6, #8b5cf6);
}

.gradient-purple {
    background: linear-gradient(135deg, #8b5cf6, #ec4899);
}

.gradient-dark {
    background: linear-gradient(135deg, #1a1a2e, #16213e);
}

/* Card Hover Effects */
.hover-lift {
    transition: all 0.3s ease;
}

.hover-lift:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.12);
}

/* Shadow Utilities */
.shadow-soft {
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
}

.shadow-medium {
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.12);
}

.shadow-strong {
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
}

/* Border Radius Utilities */
.rounded-12 {
    border-radius: 12px;
}

.rounded-15 {
    border-radius: 15px;
}

/* Form Control Enhancements */
.form-floating > label {
    color: #6c757d;
}

.form-floating > .form-control:focus ~ label,
.form-floating > .form-control:not(:placeholder-shown) ~ label {
    color: #0d6efd;
}

/* ========================================
   PROVIDER REPORT CARD STYLES (prc-)
   Note: All styles support both prefixed (prc-) and non-prefixed versions
   ======================================== */

/* Provider Report Card Container */
.provider-report-card {
    padding: 0;
    background-color: #f7fafc;
    min-height: 100vh;
}

/* Header Background */
.prc-header-background,
.header-background {
    position: relative;
    z-index: 2;
    padding: 0;
    margin: 0;
}

/* Header Content */
.prc-header-content,
.header-content {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 2rem;
    padding: 2.5rem 3rem;
    position: relative;
}

/* Main Score Container on Right */
.prc-main-score-container,
.main-score-container {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    display: flex;
    align-items: center;
    gap: 2rem;
}

/* Provider Avatar */
.prc-provider-avatar {
    position: relative;
    flex-shrink: 0;
}

.prc-avatar-circle {
    width: 120px;
    height: 120px;
    background: #7c3aed;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 3rem;
    color: white;
    box-shadow: 0 8px 16px rgba(124, 58, 237, 0.3);
}

/* Tier Indicator */
.prc-tier-indicator {
    position: absolute;
    bottom: 5px;
    right: 5px;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 0.875rem;
    border: 3px solid white;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Provider Main Info */
.prc-provider-main-info {
    flex: 1;
    text-align: left;
}

.prc-provider-name {
    color: #1a202c;
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.prc-provider-credentials {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.prc-credential-badge {
    background: rgba(99, 102, 241, 0.1);
    color: #4c51bf;
    padding: 0.5rem 1rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    border: 1px solid rgba(99, 102, 241, 0.2);
}

.prc-credential-badge i {
    opacity: 0.7;
}

/* Score Showcase */
.prc-score-showcase {
    display: flex;
    align-items: center;
    gap: 2rem;
}

/* Score Ring */
.prc-score-ring {
    position: relative;
    width: 140px;
    height: 140px;
    background: transparent !important;
}

.prc-circular-chart {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    max-height: 100%;
    transform: rotate(-90deg);
    background: transparent;
}

.prc-circle-bg {
    fill: none;
    stroke: #eee;
    stroke-width: 3.8;
}

.prc-circle {
    fill: none;
    stroke-width: 2.8;
    stroke-linecap: round;
    animation: progress 1s ease-out forwards;
}

/* Tier-specific colors for the progress ring */
.prc-circular-chart.platinum .prc-circle { stroke: #D4D4D4; }  /* Platinum - slightly darker */
.prc-circular-chart.gold .prc-circle { stroke: #FFD700; }      /* Gold */
.prc-circular-chart.silver .prc-circle { stroke: #C0C0C0; }    /* Silver */
.prc-circular-chart.bronze .prc-circle { stroke: #CD7F32; }    /* Bronze */

/* Score Display positioned inside ring */
.prc-score-display {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    color: #1a202c;
}

/* Score Number Display */
.prc-score-number {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
    display: block;
}

.prc-score-grade {
    font-size: 1.5rem;
    font-weight: 500;
    color: #718096;
    display: block;
    margin-top: 0.25rem;
}

/* Score Labels */
.prc-score-labels {
    text-align: left;
}

.prc-tier-label {
    margin-bottom: 0.5rem;
}

.prc-badge-modern {
    padding: 0.5rem 1.25rem;
    border-radius: 20px;
    font-weight: 600;
    text-transform: uppercase;
    font-size: 0.8125rem;
    letter-spacing: 0.5px;
    display: inline-block;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.prc-percentile-label {
    font-size: 1.125rem;
    font-weight: 600;
    color: #1a202c;
    margin-bottom: 0.25rem;
}

.prc-peer-context {
    font-size: 0.875rem;
    color: #718096;
}

/* Quick Stats Bar */
.prc-quick-stats-bar {
    background: white;
    padding: 1.5rem 3rem;
    display: flex;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 3rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.prc-stat-item {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.prc-stat-item > i {
    font-size: 1.75rem;
    color: #7c3aed;
    opacity: 0.8;
}

.prc-stat-content {
    text-align: left;
}

.prc-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: #1a202c;
    line-height: 1;
}

.prc-stat-label {
    font-size: 0.75rem;
    color: #718096;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-top: 0.25rem;
    font-weight: 500;
}

/* Report Header */
.prc-report-header,
.report-header {
    background: linear-gradient(135deg, #e8e5ff 0%, #f3f0ff 100%);
    color: #2d3748;
    padding: 0;
    position: relative;
    overflow: hidden;
    border-radius: 12px 12px 0 0;
}

@keyframes rotate {
    from { transform: rotate(0deg); }
    to { transform: rotate(360deg); }
}

@keyframes progress {
    0% {
        stroke-dasharray: 0 100;
    }
}

/* Score Card */
.prc-score-card {
    background: white;
    border-radius: 20px;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
    position: relative;
    overflow: hidden;
}

.prc-score-display {
    font-size: 4rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.prc-score-label {
    color: #6c757d;
    font-size: 1.125rem;
}

/* Score Breakdown Section */
.prc-score-breakdown {
    padding: 2rem 0;
    background: #f7fafc;
}

/* Score Cards - override the default prc-score-card */
.prc-score-breakdown .prc-score-card {
    background: white;
    border-radius: 16px;
    padding: 2rem 1.5rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
    height: 100%;
    text-align: center;
    transition: all 0.3s ease;
    border: 1px solid #e2e8f0;
}

.prc-score-breakdown .prc-score-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.prc-score-card-header {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.prc-score-card-header i {
    font-size: 1.5rem;
    color: #718096;
    margin-bottom: 0.5rem;
}

.prc-score-card-header span {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    font-weight: 600;
    color: #718096;
}

.prc-score-card-body {
    text-align: center;
}

.prc-score {
    font-size: 3rem;
    font-weight: 700;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.prc-weight {
    font-size: 0.75rem;
    color: #6c757d;
    opacity: 0.8;
}

/* Score Card Color Variants */
.prc-clinical-quality .prc-score { color: #10b981; }
.prc-efficiency .prc-score { color: #3b82f6; }
.prc-patient-volume .prc-score { color: #8b5cf6; }
.prc-documentation .prc-score { color: #f59e0b; }
.prc-outcomes .prc-score { color: #ec4899; }

/* Peer Rank Card */
.prc-peer-rank-card {
    background: #7c3aed;
    color: white;
    padding: 2rem 1.5rem;
    border-radius: 16px;
    text-align: center;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(124, 58, 237, 0.3);
    border: 1px solid rgba(124, 58, 237, 0.5);
}

.prc-rank-display {
    text-align: center;
}

.prc-rank-number {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
}

.prc-rank-text {
    font-size: 0.875rem;
    opacity: 0.9;
    margin: 0.5rem 0;
}

.prc-rank-label {
    font-size: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.9;
    font-weight: 500;
}

/* Score Breakdown (legacy) */
.prc-breakdown-card {
    background: white;
    border-radius: 15px;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    height: 100%;
    transition: all 0.3s ease;
}

.prc-breakdown-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
}

.prc-measure-icon {
    width: 50px;
    height: 50px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 1.5rem;
    margin-bottom: 1rem;
}

/* Progress Bars */
.prc-progress {
    height: 8px;
    border-radius: 4px;
    background-color: #e9ecef;
    overflow: visible;
    position: relative;
}

.prc-progress-bar {
    height: 100%;
    border-radius: 4px;
    position: relative;
    transition: width 1s ease-in-out;
}

/* Key Metrics Section */
.prc-key-metrics-section {
    /*    padding: 3rem 0;
    background: white;*/
    background: white;
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.prc-key-metrics-section h3 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 2rem;
    color: #212529;
}

.prc-metric-card {
    /*    background: white;
    border-radius: 12px;
    padding: 1.25rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    height: 100%;*/
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1.5rem;
    text-align: center;
    border-left: 4px solid #007bff;
}

.prc-metric-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.12);
}

.prc-metric-value,
.prc-key-metric-value {
    font-size: 2rem;
    font-weight: bold;
    color: #1a1a2e;
}

.prc-metric-label {
    color: #6c757d;
    font-size: 0.875rem;
}

/* Charts Section */
.prc-charts-section {
    padding: 3rem 0;
    background: #f8f9fa;
}

/* Chart Containers */
.prc-chart-container {
    background: white;
    border-radius: 15px;
    padding: 1.5rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    height: 420px;
}

.prc-chart-container h3 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #212529;
}

.prc-chart-container canvas {
    max-height: 320px;
}

.prc-chart-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

/* Peer Comparison Section */
.prc-peer-comparison-section {
    padding: 3rem 0;
    background: white;
}

.prc-peer-comparison-section h3 {
    font-size: 1.25rem;
    font-weight: 600;
    margin-bottom: 1.5rem;
    color: #212529;
}

/* Peer Stats Container */
.prc-peer-stats-container {
    background: #f8f9fa;
    border-radius: 12px;
    padding: 2rem;
}

.prc-peer-group-name {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-size: 1.125rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 1.5rem;
}

.prc-peer-group-name i {
    color: #6c757d;
}

/* Stats Cards */
.prc-stats-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: 1rem;
    margin-bottom: 2rem;
}

.prc-stat-card {
    background: white;
    border-radius: 8px;
    padding: 1.5rem;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
}

.prc-stat-icon {
    font-size: 2rem;
    color: #6c757d;
    margin-bottom: 0.75rem;
}

.prc-stat-info {
    text-align: center;
}

.prc-stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: #212529;
    line-height: 1;
    margin-bottom: 0.25rem;
}

/* Percentile Chart */
.prc-percentile-chart {
    margin-top: 2rem;
}

.prc-percentile-chart h5 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 1rem;
    color: #495057;
}

.prc-quartile-display {
    position: relative;
    height: 60px;
    background: #e9ecef;
    border-radius: 8px;
    overflow: visible;
    margin-bottom: 3rem;
}

.prc-quartile-bar {
    display: flex;
    height: 100%;
}

.prc-quartile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 600;
    position: relative;
}

.prc-quartile span {
    font-size: 0.875rem;
}

.prc-quartile small {
    font-size: 0.75rem;
    opacity: 0.9;
}

.prc-quartile.q1 { background: #dc3545; }
.prc-quartile.q2 { background: #fd7e14; }
.prc-quartile.q3 { background: #ffc107; }
.prc-quartile.q4 { background: #28a745; }

.prc-your-position {
    position: absolute;
    bottom: -35px;
    transform: translateX(-50%);
    text-align: center;
    font-size: 0.875rem;
    font-weight: 600;
    color: #212529;
}

.prc-your-position i {
    display: block;
    font-size: 1.25rem;
    color: #0d6efd;
    transform: rotate(180deg);
}

/* Tier Badges - Don't apply to SVG elements */
.prc-tier-indicator.platinum,
.prc-badge-platinum,
.prc-badge-modern.platinum,
.badge.platinum {
    background: #E5E4E2;
    color: #333;
}

.prc-tier-indicator.gold,
.prc-badge-gold,
.prc-badge-modern.gold,
.badge.gold {
    background: #FFD700;
    color: #333;
}

.prc-tier-indicator.silver,
.prc-badge-silver,
.prc-badge-modern.silver,
.badge.silver {
    background: #C0C0C0;
    color: #333;
}

.prc-tier-indicator.bronze,
.prc-badge-bronze,
.prc-badge-modern.bronze,
.badge.bronze {
    background: #CD7F32;
    color: white;
}

/* Detailed Metrics Section */
.prc-detailed-metrics-section {
    padding: 3rem 0;
    background: #f8f9fa;
}

.prc-detailed-metrics-section h3 {
    font-size: 1.5rem;
    font-weight: 600;
    margin-bottom: 2rem;
    color: #212529;
}

.prc-metric-category-card {
    background: white;
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
    height: 100%;
}

.prc-metric-category-header {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1rem;
}

.prc-metric-category-header h4 {
    font-size: 1.25rem;
    font-weight: 600;
    color: #212529;
    margin: 0;
}

.prc-metric-category-description {
    font-size: 0.875rem;
    color: #6c757d;
    line-height: 1.5;
    margin-bottom: 1.5rem;
}

/* Category Icons */
.prc-category-icon-clinicalquality::before { content: "\f21e"; font-family: FontAwesome; }
.prc-category-icon-efficiency::before { content: "\f155"; font-family: FontAwesome; }
.prc-category-icon-patientvolume::before { content: "\f0c0"; font-family: FontAwesome; }
.prc-category-icon-documentation::before { content: "\f15c"; font-family: FontAwesome; }
.prc-category-icon-outcomes::before { content: "\f201"; font-family: FontAwesome; }

/* Metric Items */
.prc-metric-items {
    border-top: 1px solid #e9ecef;
    padding-top: 1rem;
}

.prc-metric-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr 1fr 0.75fr;
    gap: 1rem;
    padding: 0.75rem;
    font-weight: 600;
    font-size: 0.875rem;
    color: #6c757d;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid #e9ecef;
}

.prc-metric-item {
    display: grid;
    grid-template-columns: 2fr 1fr 1.5fr 1fr 0.75fr;
    gap: 1rem;
    padding: 1rem 0.75rem;
    border-bottom: 1px solid #f8f9fa;
    align-items: center;
}

.prc-metric-item:hover {
    background: #f8f9fa;
}

.prc-metric-name {
    font-weight: 500;
    color: #495057;
}

.prc-metric-value {
    font-weight: 600;
    color: #212529;
}

.prc-metric-score-bar {
    text-align: center;
}

.prc-score-bar-container {
    width: 100%;
    height: 8px;
    background: #e9ecef;
    border-radius: 4px;
    overflow: hidden;
    margin-bottom: 0.25rem;
}

.prc-score-bar-fill {
    height: 100%;
    transition: width 0.6s ease;
}

.prc-score-bar-fill.excellent { background: #28a745; }
.prc-score-bar-fill.good { background: #17a2b8; }
.prc-score-bar-fill.average { background: #ffc107; }
.prc-score-bar-fill.poor { background: #dc3545; }

.prc-score-bar-label {
    font-size: 0.75rem;
    color: #6c757d;
}

.prc-metric-percentile {
    text-align: center;
}

.prc-percentile-badge {
    display: inline-block;
    padding: 0.25rem 0.75rem;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
}

.prc-percentile-badge.top-tier { background: #d4edda; color: #155724; }
.prc-percentile-badge.mid-tier { background: #d1ecf1; color: #0c5460; }
.prc-percentile-badge.low-tier { background: #fff3cd; color: #856404; }
.prc-percentile-badge.bottom-tier { background: #f8d7da; color: #721c24; }

.prc-metric-weight {
    text-align: center;
    color: #6c757d;
    font-weight: 600;
}

/* Modal Styles when loaded in modal */
.modal-dialog.modal-fullscreen .provider-report-card {
    height: 100vh;
    overflow-y: auto;
}

/* ========================================
   NON-PREFIXED MAPPING FOR PROVIDER REPORT CARD
   Add all prc- selectors to their non-prefixed versions
   ======================================== */

/* Simply add non-prefixed class names to all existing selectors */

/* Responsive adjustments */
@media (max-width: 768px) {
    .prc-report-header {
        padding: 2rem 1rem;
    }
    
    .prc-score-display {
        font-size: 3rem;
    }
    
    .prc-metric-value {
        font-size: 1.5rem;
    }
}

/* Print Styles */
@media print {
    .provider-report-card {
        background: white;
    }
    
    .prc-report-header {
        background: white;
        color: black;
        border-bottom: 2px solid #000;
    }
    
    .prc-score-card,
    .prc-breakdown-card,
    .prc-metric-card {
        box-shadow: none;
        border: 1px solid #dee2e6;
    }
}

/* ========================================
   FACE SHEET STYLES (face-)
   ======================================== */

/* Diagnoses Container */
.face-diagnoses-container {
    padding: .5rem;
}

/* Section Header */
.face-section-header {
    border: 1px solid #dfdfdf;
    padding: .5rem;
    border-radius: 10px;
}

.face-section-header h3 {
    font-weight: 600;
    margin-bottom: 0.5rem;
}

/* HCC Legend Card */
.face-hcc-legend-card {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 10px;
}

.face-hcc-badges {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
}

.face-hcc-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: help;
}

.face-hcc-badge.cms {
    background: #0d6efd;
    color: white;
}

.face-hcc-badge.hhs {
    background: #6c757d;
    color: white;
}

.face-hcc-badge.rx {
    background: #dc3545;
    color: white;
}

.face-hcc-filter {
    margin-bottom: 0;
}

.face-hcc-filter .form-check-label {
    font-weight: 500;
    color: #495057;
    cursor: pointer;
}

/* Table Card */
.face-table-card {
    border: 1px solid #dee2e6 !important;
    border-radius: 10px;
}

/* Diagnoses Table */
.face-diagnoses-table table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

/* Removed global table border hiding rule that was overriding Bootstrap table borders */

.face-diagnoses-table thead tr th {
    font-weight: 600;
    white-space: nowrap;
}

.face-diagnosis-row {
    transition: all 0.2s;
}

/* Diagnosis Code */
.face-diagnosis-code {
    font-family: monospace;
    font-size: 1rem;
    font-weight: 600;
    background: #e9ecef;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    display: inline-block;
}

/* Description Cell */
.face-description-cell {
    max-width: 400px;
}

.face-diagnosis-description {
    font-weight: 400;
    line-height: 1.5;
}

/* Factor Badges */
.face-factor-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.face-factor-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: help;
}

.face-factor-badge.cms {
    background: rgba(13, 110, 253, 0.15);
    color: #0d6efd;
}

.face-factor-badge.hhs {
    background: rgba(108, 117, 125, 0.15);
    color: #6c757d;
}

.face-factor-badge.rx {
    background: rgba(220, 53, 69, 0.15);
    color: #dc3545;
}

/* Occurrence Badge */
.face-occurrence-badge {
    background: #e9ecef;
    color: #495057;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    font-weight: 600;
    display: inline-block;
    min-width: 40px;
}

/* Date Range */
.face-date-range {
    color: #495057;
    font-size: 0.875rem;
    white-space: nowrap;
}

/* Details Button */
.face-details-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 1rem;
}

/* Details Container */
.face-details-row td {
    background: #f8f9fa;
    border: none;
}

.face-details-container {
    background: white;
    margin: 1rem;
    border-radius: 8px;
    overflow: hidden;
}

.face-details-header {
    background: #e9ecef;
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: #495057;
    border-bottom: 1px solid #dee2e6;
}

/* Details Table */
.face-details-table {
    font-size: 0.875rem;
}

.face-details-table thead th {
    font-weight: 600;
    color: #6c757d;
    padding: 0.75rem;
    border-bottom: 2px solid #dee2e6;
}

.face-details-table td {
    padding: 0.75rem;
    vertical-align: middle;
}

/* Date Badges */
.face-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Category Badge */
.face-category-badge {
    display: inline-block;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

/* Provider Name */
.face-provider-name {
    font-weight: 500;
    color: #495057;
}

/* Related Documents Button */
.face-related-docs-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
}

/* Related Documents Inner */
.face-related-docs-inner {
    background: #f8f9fa;
    margin: 0.5rem;
    border-radius: 6px;
    overflow: hidden;
}

.face-related-inner-header {
    background: #dee2e6;
    padding: 0.5rem 1rem;
    font-weight: 600;
    color: #495057;
    font-size: 0.875rem;
}

/* Document Name */
.face-doc-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    font-size: 0.875rem;
    padding-left: 0.5rem;
}

/* View Button */
.face-view-btn {
    border-radius: 6px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

/* Document Preview */
.face-document-preview {
    padding: 1rem;
    background: #f8f9fa;
}

.face-preview-iframe {
    width: 100%;
    height: 600px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: white;
}

/* Related Table */
.face-related-table {
    font-size: 0.8125rem;
}

.face-related-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #6c757d;
    padding: 0.5rem;
    font-size: 0.8125rem;
}

.face-related-table td {
    padding: 0.5rem;
    font-size: 0.8125rem;
}

/* Patient Sub Summary Container */
.face-patient-subsummary-container {
    padding: 1rem 1.5rem;
}

/* Patient Header Card */
.face-patient-header-card {
    background: white;
    border-radius: 10px;
    padding: 1rem;
    margin-bottom: 0.5rem;
}

.face-patient-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

/* Patient Name Section */
.face-patient-name-section {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.face-patient-icon {
    font-size: 3rem;
    color: #0d6efd;
    opacity: 0.8;
}

.face-patient-details {
    flex: 1;
}

.face-patient-name {
    margin: 0 0 0.5rem 0;
    color: #212529;
    font-weight: 600;
    font-size: 1.5rem;
}

/* Patient Demographics */
.face-patient-demographics {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: #6c757d;
    font-size: 0.9375rem;
}

.face-demo-item {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.face-demo-item i {
    color: #6c757d;
    font-size: 0.875rem;
}

.face-demo-separator {
    color: #dee2e6;
    margin: 0 0.25rem;
}

/* Deceased Styling */
.face-deceased-info {
    color: #dc3545;
    font-weight: 500;
}

.face-deceased-indicator {
    color: #dc3545;
    margin-left: 0.5rem;
    cursor: help;
}

.face-deceased-indicator i {
    font-size: 0.875rem;
}

/* PHI Hidden */
.face-phi-hidden {
    background-color: #000;
    color: #000;
    padding: 0 0.25rem;
    border-radius: 3px;
}

/* Download Button */
.face-download-btn {
    border-radius: 8px;
    padding: 0.5rem 1rem;
    font-weight: 500;
    transition: all 0.2s;
    text-decoration: none;
    white-space: nowrap;
}

.face-download-btn i {
    font-size: 1.125rem;
}

/* ========================================
   DATA VISUALIZATION STYLES (data-)
   ======================================== */

/* Stat Cards */
.data-stat-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    height: 100%;
    transition: transform 0.2s, box-shadow 0.2s;
}

.data-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
}

.data-stat-card-header {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.data-stat-card-header i {
    font-size: 1.25rem;
}

.data-stat-card-header span {
    font-weight: 600;
    font-size: 0.9rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.data-stat-card-body {
    padding: 1.5rem;
    text-align: center;
}

.data-stat-value {
    font-size: 2.5rem;
    font-weight: bold;
    line-height: 1;
    margin-bottom: 0.5rem;
}

.data-stat-label {
    color: #6c757d;
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

.data-stat-secondary {
    display: flex;
    gap: 0.5rem;
    justify-content: center;
    flex-wrap: wrap;
}

/* Progress Info Card */
.data-progress-info-card {
    background: white;
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

.data-time-estimates {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.data-time-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem;
    background: #f8f9fa;
    border-radius: 6px;
}

.data-time-label {
    color: #6c757d;
    font-size: 0.875rem;
}

.data-time-value {
    font-weight: 600;
    color: #212529;
}

/* System Health Card */
.data-system-health-card {
    background: white;
    border-radius: 10px;
    padding: 1.5rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    min-height: 100%;
    display: flex;
    flex-direction: column;
}

/* Equal Heights Container for Queue Processing Status and System Health Overview */
.data-cards-equal-height-container {
    display: flex;
    align-items: stretch;
}

.data-cards-equal-height-container > .col-6,
.data-cards-equal-height-container > .col-12 {
    display: flex;
    flex-direction: column;
}

.data-cards-equal-height-container .data-progress-info-card,
.data-cards-equal-height-container .data-system-health-card {
    height: 100%;
}

.data-health-metric {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 8px;
    transition: background 0.2s;
}

.data-health-metric:hover {
    background: #e9ecef;
}

.data-metric-icon {
    font-size: 2rem;
}

.data-metric-info {
    flex: 1;
}

.data-metric-label {
    font-size: 0.875rem;
    color: #6c757d;
}

.data-metric-value {
    font-weight: 600;
    color: #212529;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .data-stat-value {
        font-size: 2rem;
    }
    
    .data-time-item {
        flex-direction: column;
        text-align: center;
        gap: 0.25rem;
    }
}

/* ========================================
   LOG DISPLAY STYLES (log-)
   ======================================== */

.log-items-container {
    padding: 1rem 0;
}

.log-entries {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.log-entry {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem;
    background: #f8f9fa;
    border-radius: 8px;
    transition: all 0.2s;
    border-left: 4px solid transparent;
}

.log-entry:hover {
    background: #e9ecef;
    transform: translateX(2px);
}

.log-entry.log-error {
    background: #dc3545;
    color: white;
    border-left-color: #a02530;
}

.log-entry.log-error:hover {
    background: #c82333;
}

.log-entry.log-warning {
    background: #fff3cd;
    border-left-color: #ffc107;
}

.log-entry.log-warning:hover {
    background: #ffe8a1;
}

.log-time {
    min-width: 80px;
    text-align: center;
    padding: 0.25rem;
    background: rgba(0, 0, 0, 0.05);
    border-radius: 6px;
}

.log-error .log-time {
    background: rgba(255, 255, 255, 0.2);
}

.log-date {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    opacity: 0.8;
}

.log-timestamp {
    font-size: 0.875rem;
    font-weight: 500;
}

.log-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: white;
    border-radius: 50%;
    flex-shrink: 0;
    font-size: 1.25rem;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.log-error .log-icon {
    background: rgba(255, 255, 255, 0.2);
    box-shadow: none;
}

.log-warning .log-icon {
    background: white;
}

.log-content {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 1rem;
    min-width: 0;
}

.log-message {
    flex: 1;
    font-size: 0.9375rem;
    line-height: 1.5;
    word-break: break-word;
}

.log-level-badge {
    flex-shrink: 0;
}

.no-logs-message {
    text-align: center;
    padding: 3rem;
}

/* Icon animations */
.fa-heartbeat {
    animation: pulse 1s infinite;
}

.fa-download {
    animation: bounce 0.5s;
}

@keyframes pulse {
    0% { transform: scale(1); }
    50% { transform: scale(1.1); }
    100% { transform: scale(1); }
}

@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-3px); }
}

/* Responsive adjustments */
@media (max-width: 576px) {
    .log-entry {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    
    .log-time {
        order: -1;
        width: 100%;
        text-align: left;
        display: flex;
        gap: 0.5rem;
        background: none;
        padding: 0;
    }
    
    .log-icon {
        width: 32px;
        height: 32px;
        font-size: 1rem;
    }
    
    .log-content {
        width: 100%;
        padding-left: 2.5rem;
    }
}

/* ========================================
   PATIENT APPOINTMENTS STYLES (pt-appt-)
   ======================================== */

/* Appointments Container */
.pt-appt-appointments-container {
    padding: 1.5rem;
}

/* Section Header */
.pt-appt-section-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-appt-section-header h3 {
    color: #495057;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.pt-appt-last-updated {
    font-size: 0.875rem;
    color: #6c757d;
    font-style: italic;
}

/* Table Card */
.pt-appt-table-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

/* Appointments Table */
.pt-appt-appointments-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-appt-appointments-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-appt-appointment-row {
    transition: all 0.2s;
}

.pt-appt-appointment-row:hover {
    background-color: #f8f9fa;
}

.pt-appt-appointment-row td {
    padding: 1rem;
    vertical-align: middle;
}

/* Date Badge */
.pt-appt-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Time Badge */
.pt-appt-time-badge {
    display: inline-flex;
    align-items: center;
    background: #d1ecf1;
    color: #0c5460;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Appointment Details */
.pt-appt-appointment-details {
    line-height: 1.5;
}

.pt-appt-appointment-type {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
    margin-bottom: 0.25rem;
}

.pt-appt-appointment-duration {
    padding-left: 1.75rem;
}

.pt-appt-duration-badge {
    display: inline-flex;
    align-items: center;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

.pt-appt-fw-500 {
    font-weight: 500;
}

/* Provider Name */
.pt-appt-provider-name {
    font-weight: 500;
    color: #495057;
}

/* Location Info */
.pt-appt-location-info {
    line-height: 1.5;
    font-size: 0.875rem;
}

.pt-appt-facility-name {
    font-weight: 500;
    color: #495057;
    margin-bottom: 0.25rem;
}

.pt-appt-address-line {
    color: #6c757d;
    padding-left: 1.25rem;
}

/* Contact Info */
.pt-appt-contact-info {
    line-height: 1.5;
}

.pt-appt-contact-item {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
    margin-bottom: 0.25rem;
}

.pt-appt-contact-item:last-child {
    margin-bottom: 0;
}

.pt-appt-contact-item i {
    color: #6c757d;
    width: 1rem;
}

.pt-appt-contact-number {
    font-family: monospace;
    color: #495057;
    white-space: nowrap;
}

/* Responsive */
@media (max-width: 768px) {
    .pt-appt-appointments-container {
        padding: 1rem;
    }
    
    .pt-appt-appointments-table {
        font-size: 0.875rem;
    }
    
    .pt-appt-appointments-table thead th,
    .pt-appt-appointment-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-appt-address-line {
        padding-left: 0;
    }
}

/* ========================================
   COMMON HEALTHCARE INTERFACE PATTERNS (hei-)
   ======================================== */

/* Base Card Pattern */
.hei-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    transition: all 0.3s;
}

.hei-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.hei-card-header {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #e9ecef;
    font-weight: 600;
}

.hei-card-body {
    padding: 1.5rem;
}

/* Badge Patterns */
.hei-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
}

.hei-badge-primary { 
    background: #0d6efd; 
    color: white; 
}

.hei-badge-secondary { 
    background: #6c757d; 
    color: white; 
}

.hei-badge-success { 
    background: #198754; 
    color: white; 
}

.hei-badge-danger { 
    background: #dc3545; 
    color: white; 
}

.hei-badge-warning { 
    background: #ffc107; 
    color: #000; 
}

.hei-badge-info { 
    background: #0dcaf0; 
    color: #000; 
}

.hei-badge-light { 
    background: #f8f9fa; 
    color: #000; 
    border: 1px solid #dee2e6;
}

/* Table Patterns */
.hei-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.hei-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
}

.hei-table tbody td {
    padding: 0.875rem 1rem;
    vertical-align: middle;
}

.hei-table-hover tbody tr:hover {
    background-color: #f8f9fa;
    cursor: pointer;
}

/* Button Enhancements */
.hei-btn {
    border-radius: 6px;
    transition: all 0.2s;
    font-weight: 500;
}

.hei-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

.hei-btn-sm {
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
}

/* Loading States */
.hei-loading {
    position: relative;
    pointer-events: none;
    opacity: 0.7;
}

.hei-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 30px;
    height: 30px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid #0d6efd;
    border-radius: 50%;
    animation: hei-spin 1s linear infinite;
}

@keyframes hei-spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

/* Animations */
@keyframes hei-fadeIn {
    from { 
        opacity: 0; 
        transform: translateY(10px); 
    }
    to { 
        opacity: 1; 
        transform: translateY(0); 
    }
}

.hei-animate-in {
    animation: hei-fadeIn 0.3s ease-in-out;
}

/* Status Indicators */
.hei-status-indicator {
    display: inline-block;
    width: 10px;
    height: 10px;
    border-radius: 50%;
    margin-right: 0.5rem;
}

.hei-status-active {
    background-color: #28a745;
    animation: hei-pulse 2s infinite;
}

.hei-status-inactive {
    background-color: #dc3545;
}

.hei-status-pending {
    background-color: #ffc107;
    animation: hei-pulse 1.5s infinite;
}

@keyframes hei-pulse {
    0% { 
        box-shadow: 0 0 0 0 currentColor; 
    }
    70% { 
        box-shadow: 0 0 0 10px transparent; 
    }
    100% { 
        box-shadow: 0 0 0 0 transparent; 
    }
}

/* Responsive Utilities */
@media (max-width: 768px) {
    .hei-container { 
        padding: 1rem; 
    }
    
    .hei-table { 
        font-size: 0.875rem; 
    }
    
    .hei-table thead th,
    .hei-table tbody td {
        padding: 0.5rem;
    }
    
    .hei-btn { 
        padding: 0.375rem 0.75rem; 
        font-size: 0.875rem; 
    }
    
    .hei-card-body {
        padding: 1rem;
    }
}

/* ========================================
   PATIENT STYLES (pt-)
   ======================================== */

/* Patient Summary Styles */
.pt-sdoh-score-card {
    transition: all 0.3s ease;
}

.pt-sdoh-score-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

.pt-metric-card {
    transition: all 0.3s ease;
}

.pt-metric-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.15) !important;
}

.pt-metric-label {
    min-height: 1.5rem;
    line-height: 1.2;
}

/* Patient Diagnoses Styles */
.pt-diagnoses-container {
    padding: 1.5rem;
}

.pt-section-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-section-header h3 {
    color: #495057;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.pt-hcc-legend-card {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-hcc-badges {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
    align-items: center;
}

.pt-hcc-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
    cursor: help;
}

.pt-hcc-badge.cms {
    background: #0d6efd;
    color: white;
}

.pt-hcc-badge.hhs {
    background: #6c757d;
    color: white;
}

.pt-hcc-badge.rx {
    background: #dc3545;
    color: white;
}

.pt-hcc-filter {
    margin-bottom: 0;
}

.pt-hcc-filter .form-check-label {
    font-weight: 500;
    color: #495057;
    cursor: pointer;
}

.pt-table-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.pt-diagnoses-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-diagnoses-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-diagnosis-row {
    transition: all 0.2s;
}

.pt-diagnosis-row:hover {
    background-color: #f8f9fa;
}

.pt-diagnosis-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-diagnosis-code {
    font-family: monospace;
    font-size: 1rem;
    font-weight: 600;
    color: #212529;
    background: #e9ecef;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    display: inline-block;
}

.pt-description-cell {
    max-width: 400px;
}

.pt-diagnosis-description {
    font-weight: 500;
    color: #212529;
    line-height: 1.5;
}

.pt-factor-badges {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.pt-factor-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.75rem;
    font-weight: 600;
    cursor: help;
}

.pt-factor-badge.cms {
    background: rgba(13, 110, 253, 0.15);
    color: #0d6efd;
}

.pt-factor-badge.hhs {
    background: rgba(108, 117, 125, 0.15);
    color: #6c757d;
}

.pt-factor-badge.rx {
    background: rgba(220, 53, 69, 0.15);
    color: #dc3545;
}

.pt-occurrence-badge {
    background: #e9ecef;
    color: #495057;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    font-weight: 600;
    display: inline-block;
    min-width: 40px;
}

.pt-date-range {
    color: #495057;
    font-size: 0.875rem;
    white-space: nowrap;
}

.pt-details-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 1rem;
}

.pt-details-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

.pt-details-row td {
    background: #f8f9fa;
    border: none;
}

.pt-details-container {
    background: white;
    margin: 1rem;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-details-header {
    background: #e9ecef;
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: #495057;
    border-bottom: 1px solid #dee2e6;
}

.pt-details-table {
    font-size: 0.875rem;
}

.pt-details-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #6c757d;
    padding: 0.75rem;
    border-bottom: 1px solid #dee2e6;
}

.pt-details-table td {
    padding: 0.75rem;
    vertical-align: middle;
}

.pt-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-category-badge {
    display: inline-block;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

.pt-provider-name {
    font-weight: 500;
    color: #495057;
}

.pt-related-docs-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.25rem 0.75rem;
    font-size: 0.875rem;
}

.pt-related-docs-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(108, 117, 125, 0.2);
}

.pt-related-docs-inner {
    background: #f8f9fa;
    margin: 0.5rem;
    border-radius: 6px;
    overflow: hidden;
}

.pt-related-inner-header {
    background: #dee2e6;
    padding: 0.5rem 1rem;
    font-weight: 600;
    color: #495057;
    font-size: 0.875rem;
}

.pt-doc-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    font-size: 0.875rem;
    padding-left: 0.5rem;
}

.pt-view-btn {
    border-radius: 6px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

.pt-view-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(13, 110, 253, 0.2);
}

.pt-document-preview {
    padding: 1rem;
    background: #f8f9fa;
}

.pt-preview-iframe {
    width: 100%;
    height: 600px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: white;
}

.pt-related-table {
    font-size: 0.8125rem;
}

.pt-related-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #6c757d;
    padding: 0.5rem;
    font-size: 0.8125rem;
}

.pt-related-table td {
    padding: 0.5rem;
    font-size: 0.8125rem;
}

/* Patient Vital Signs Styles */
.pt-vital-signs-container {
    max-width: 1400px;
    margin: 0 auto;
}

.pt-vital-sign-card {
    transition: all 0.3s ease;
    border: 1px solid #dee2e6;
}

.pt-vital-sign-card:hover {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important;
}

.pt-vital-detail-card {
    transition: all 0.2s ease;
    background-color: #f8f9fa;
    position: relative;
}

.pt-vital-detail-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 0.25rem 0.5rem rgba(0, 0, 0, 0.1);
}

.pt-clickable-vital {
    cursor: pointer;
}

.pt-clickable-vital:hover {
    border-color: #0d6efd !important;
}

.pt-clickable-vital:hover .pt-trend-indicator {
    opacity: 1;
    transform: scale(1.1);
}

.pt-trend-indicator {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    opacity: 0.5;
    transition: all 0.2s ease;
}

.pt-bg-danger-subtle {
    background-color: rgba(220, 53, 69, 0.05) !important;
}

.pt-bg-warning-subtle {
    background-color: rgba(255, 193, 7, 0.05) !important;
}

.pt-bg-info-subtle {
    background-color: rgba(13, 202, 240, 0.05) !important;
}

.pt-vital-icon-wrapper {
    flex-shrink: 0;
}

.pt-vital-name {
    color: #495057;
    font-size: 0.875rem;
    font-weight: 600;
    text-transform: capitalize;
}

.pt-vital-value {
    line-height: 1;
}

.pt-unit-text {
    font-size: 1rem;
    font-weight: 500;
}

.pt-loinc-wrapper {
    margin-top: 0.5rem;
    padding-top: 0.5rem;
    border-top: 1px solid #dee2e6;
}

/* Patient Diagnoses Responsive */
@media (max-width: 1200px) {
    .pt-description-cell {
        max-width: 300px;
    }
}

@media (max-width: 768px) {
    .pt-diagnoses-container {
        padding: 1rem;
    }
    
    .pt-hcc-legend-card {
        padding: 0.75rem 1rem;
    }
    
    .pt-hcc-badges {
        margin-bottom: 0.5rem;
    }
    
    .pt-diagnoses-table {
        font-size: 0.875rem;
    }
    
    .pt-diagnoses-table thead th,
    .pt-diagnosis-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-details-btn,
    .pt-related-docs-btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.8125rem;
    }
    
    /* Vital Signs Mobile */
    .pt-vital-sign-card .card-header h5 {
        font-size: 1.1rem;
    }
    
    .pt-vital-detail-card {
        margin-bottom: 0.5rem;
    }
    
    .pt-vital-value {
        font-size: 1.5rem !important;
    }
    
    .pt-unit-text {
        font-size: 0.875rem;
    }
}

@media (max-width: 576px) {
    .pt-vital-sign-card .card-header .row {
        flex-direction: column;
    }
    
    .pt-vital-sign-card .card-header .col-auto {
        margin-top: 1rem;
    }
    
    .pt-vital-detail-card {
        margin-bottom: 1rem;
    }
}

/* Patient Sub Summary Styles */
.pt-subsummary-container {
    padding: 1rem 0;
}

.pt-header-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    margin-bottom: 1rem;
}

.pt-patient-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
}

.pt-name-section {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.pt-patient-icon {
    font-size: 3rem;
    color: #0d6efd;
    opacity: 0.8;
}

.pt-patient-details {
    flex: 1;
}

.pt-patient-name {
    margin: 0 0 0.5rem 0;
    color: #212529;
    font-weight: 600;
    font-size: 1.5rem;
}

.pt-demographics {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
    color: #6c757d;
    font-size: 0.9375rem;
}

.pt-demo-item {
    display: inline-flex;
    align-items: center;
    white-space: nowrap;
}

.pt-demo-item i {
    color: #6c757d;
    font-size: 0.875rem;
}

.pt-demo-separator {
    color: #dee2e6;
    margin: 0 0.25rem;
}

.pt-deceased-info {
    color: #dc3545;
    font-weight: 500;
}

.pt-deceased-indicator {
    color: #dc3545;
    margin-left: 0.5rem;
    cursor: help;
}

.pt-deceased-indicator i {
    font-size: 0.875rem;
}

.pt-phi-hidden {
    background-color: #000;
    color: #000;
    padding: 0 0.25rem;
    border-radius: 3px;
}

.pt-download-btn {
    border-radius: 8px;
    padding: 0.5rem 1rem;
    font-weight: 500;
    transition: all 0.2s;
    text-decoration: none;
    white-space: nowrap;
}

.pt-download-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
    text-decoration: none;
}

.pt-download-btn i {
    font-size: 1.125rem;
}

@media (max-width: 768px) {
    .pt-subsummary-container {
        padding: 1rem;
    }
    
    .pt-header-card {
        padding: 1rem;
    }
    
    .pt-name-section {
        flex-direction: column;
        text-align: center;
    }
    
    .pt-patient-icon {
        font-size: 2.5rem;
    }
    
    .pt-patient-name {
        font-size: 1.25rem;
    }
    
    .pt-demographics {
        justify-content: center;
        font-size: 0.875rem;
    }
    
    .pt-demo-separator {
        display: none;
    }
    
    .pt-demo-item {
        width: 100%;
        justify-content: center;
    }
    
    .pt-patient-actions {
        width: 100%;
        text-align: center;
        margin-top: 1rem;
    }
    
    .pt-download-btn {
        width: 100%;
    }
}

/* Patient Medical Claims Styles */
.pt-medical-claims-container {
    padding: 1.5rem;
}

.pt-confidence-summary {
    background: #f8f9fa;
    padding: 1rem;
    border-radius: 8px;
    border: 1px solid #e9ecef;
}

.pt-summary-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: #6c757d;
    margin-bottom: 0.75rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.pt-confidence-stats {
    display: flex;
    gap: 1rem;
}

.pt-stat-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pt-stat-bar {
    width: 8px;
    height: 32px;
    border-radius: 4px;
}

.pt-stat-bar.confidence-high {
    background: #008450;
}

.pt-stat-bar.confidence-medium {
    background: #efb700;
}

.pt-stat-bar.confidence-low {
    background: #b81d13;
}

.pt-stat-info {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.pt-stat-percent {
    font-size: 1.125rem;
    font-weight: 700;
    color: #212529;
    transition: all 0.3s ease;
    display: inline-block;
    min-width: 45px;
}

.pt-stat-label {
    font-size: 0.75rem;
    color: #6c757d;
    font-weight: 500;
}

#pt-toggleFilters {
    transition: all 0.3s ease;
}

#pt-toggleFilters:hover {
    background-color: #6c757d;
    border-color: #6c757d;
    color: white;
}

.pt-toggle-icon {
    transition: transform 0.3s ease;
    display: inline-block;
}

#pt-toggleFilters.active .pt-toggle-icon {
    transform: rotate(180deg);
}

#pt-filterBadge {
    font-size: 0.65rem;
    padding: 0.25rem 0.4rem;
    animation: pt-pulse 2s infinite;
}

@keyframes pt-pulse {
    0% {
        transform: translate(-50%, -50%) scale(1);
    }
    50% {
        transform: translate(-50%, -50%) scale(1.1);
    }
    100% {
        transform: translate(-50%, -50%) scale(1);
    }
}

.pt-filter-section {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    border: 1px solid #e9ecef;
    transition: all 0.3s ease;
}

.pt-filter-section.collapsing {
    transition: height 0.3s ease;
}

.pt-filter-section .form-select {
    min-width: 150px;
    border-color: #dee2e6;
    cursor: pointer;
}

.pt-filter-section .form-select:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
}

.pt-filter-summary {
    padding: 0.375rem 0;
    font-weight: 500;
}

.pt-empty-state {
    background: white;
    padding: 4rem 2rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    text-align: center;
}

.pt-claims-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-claims-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-claim-row {
    transition: all 0.2s;
}

.pt-claim-row:hover {
    background-color: #f8f9fa;
}

.pt-claim-row td {
    padding: 0.75rem;
    vertical-align: middle;
}

.pt-confidence-indicator {
    padding: 0.75rem 0.25rem !important;
}

.pt-confidence-bar {
    width: 6px;
    height: 40px;
    border-radius: 3px;
    transition: all 0.2s;
}

.pt-confidence-bar.confidence-1,
.pt-confidence-bar.confidence-2,
.pt-confidence-bar.confidence-3 {
    background: #008450;
}

.pt-confidence-bar.confidence-4 {
    background: #efb700;
}

.pt-confidence-bar.confidence-5 {
    background: #b81d13;
}

.pt-claim-number {
    font-family: monospace;
    font-size: 0.9375rem;
}

.pt-fw-500 {
    font-weight: 500;
}

.pt-provider-info {
    color: #495057;
    font-weight: 500;
}

.pt-date-badge.small {
    padding: 0.25rem 0.5rem;
    font-size: 0.8125rem;
}

.pt-doc-count-badge {
    display: inline-flex;
    align-items: center;
    background: #d1ecf1;
    color: #0c5460;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-weight: 600;
}

.pt-view-link-btn {
    color: #0d6efd;
    font-weight: 600;
    text-decoration: underline;
    transition: all 0.2s;
    font-size: 0.875rem;
}

.pt-view-link-btn:hover {
    color: #0056b3;
    text-decoration: none;
}

.pt-external-link-btn {
    color: #6c757d;
    font-size: 0.75rem;
    transition: all 0.2s;
    text-decoration: none;
}

.pt-external-link-btn:hover {
    color: #0d6efd;
}

.pt-confidence-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-confidence-badge.confidence-1,
.pt-confidence-badge.confidence-2 {
    background: #d4edda;
    color: #155724;
}

.pt-confidence-badge.confidence-3 {
    background: #fff3cd;
    color: #856404;
}

.pt-confidence-badge.confidence-4,
.pt-confidence-badge.confidence-5 {
    background: #f8d7da;
    color: #721c24;
}

.pt-ra-badge {
    display: inline-flex;
    align-items: center;
    padding: 0.25rem 0.5rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-ra-badge.yes {
    background: #d4edda;
    color: #155724;
}

.pt-ra-badge.no {
    background: #f8d7da;
    color: #721c24;
}

.pt-claim-details-row td {
    background: #f8f9fa;
    border: none;
}

.pt-claim-details-container {
    background: white;
    margin: 1rem;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-height: 100px;
}

.pt-details-loading {
    padding: 2rem;
    text-align: center;
    color: #6c757d;
}

@media (max-width: 1200px) {
    .pt-claims-table {
        font-size: 0.875rem;
    }
}

@media (max-width: 992px) {
    .pt-claims-table thead th:nth-child(7),
    .pt-claim-row td:nth-child(7) {
        display: none;
    }
}

@media (max-width: 768px) {
    .pt-medical-claims-container {
        padding: 1rem;
    }
    
    .pt-section-header .d-flex {
        flex-direction: column;
    }
    
    .pt-confidence-summary {
        margin-top: 1rem;
        width: 100%;
    }
    
    .pt-confidence-stats {
        justify-content: space-around;
    }
    
    .pt-claims-table thead th,
    .pt-claim-row td {
        padding: 0.5rem;
    }
    
    .pt-claims-table thead th:nth-child(5),
    .pt-claim-row td:nth-child(5) {
        display: none;
    }
    
    .pt-confidence-bar {
        width: 4px;
        height: 30px;
    }
}

/* Patient Encounters Styles */
.pt-encounters-container {
    padding: 1.5rem;
}

.pt-encounters-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-encounters-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-encounter-row {
    transition: all 0.2s;
}

.pt-encounter-row:hover {
    background-color: #f8f9fa;
}

.pt-encounter-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-encounter-type {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
}

.pt-location-info {
    color: #6c757d;
    font-size: 0.875rem;
}

.pt-related-docs-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 1rem;
}

.pt-related-docs-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

@media (max-width: 768px) {
    .pt-encounters-container {
        padding: 1rem;
    }
    
    .pt-encounters-table {
        font-size: 0.875rem;
    }
    
    .pt-encounters-table thead th,
    .pt-encounter-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-related-docs-btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.875rem;
    }
}

/* Patient Medications Styles */
.pt-medications-container {
    padding: 1.5rem;
}

.pt-medications-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-medications-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-medication-row {
    transition: all 0.2s;
}

.pt-medication-row:hover {
    background-color: #f8f9fa;
}

.pt-medication-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-medication-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
}

.pt-date-range {
    color: #495057;
    font-size: 0.875rem;
    white-space: nowrap;
}

.pt-details-row td {
    background: #f8f9fa;
    border: none;
}

.pt-status-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
    background: #e9ecef;
    color: #495057;
}

.pt-status-badge.active {
    background: #d1ecf1;
    color: #0c5460;
}

.pt-code-value {
    font-family: monospace;
    color: #495057;
    font-weight: 500;
    background: #f8f9fa;
    padding: 0.125rem 0.375rem;
    border-radius: 3px;
}

.pt-rxnorm-name {
    font-weight: 500;
    color: #495057;
}

.pt-note-text {
    font-size: 0.875rem;
    color: #6c757d;
    max-width: 200px;
}

.pt-related-docs-inner {
    background: #f8f9fa;
    margin: 0.5rem;
    border-radius: 6px;
    overflow: hidden;
}

.pt-related-inner-header {
    background: #dee2e6;
    padding: 0.5rem 1rem;
    font-weight: 600;
    color: #495057;
    font-size: 0.875rem;
}

@media (max-width: 1200px) {
    .pt-note-text {
        max-width: 150px;
    }
}

@media (max-width: 768px) {
    .pt-medications-container {
        padding: 1rem;
    }
    
    .pt-medications-table {
        font-size: 0.875rem;
    }
    
    .pt-medications-table thead th,
    .pt-medication-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-details-btn,
    .pt-related-docs-btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.8125rem;
    }
}

/* Patient Conditions Styles */
.pt-conditions-container {
    padding: 1.5rem;
}

.pt-conditions-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-conditions-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-condition-row {
    transition: all 0.2s;
}

.pt-condition-row:hover {
    background-color: #f8f9fa;
}

.pt-condition-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-date-badge.secondary {
    background: #f8f9fa;
}

.pt-type-badge {
    display: inline-block;
    background: #0d6efd;
    color: white;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-description-text {
    font-weight: 500;
    color: #212529;
    max-width: 300px;
}

.pt-code-section {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.pt-code-item {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.pt-code-type {
    font-size: 0.75rem;
    color: #6c757d;
    font-weight: 600;
    min-width: 60px;
}

.pt-status-badge.unknown {
    background: #f8f9fa;
    color: #6c757d;
    font-style: italic;
}

@media (max-width: 1200px) {
    .pt-description-text {
        max-width: 200px;
    }
}

@media (max-width: 768px) {
    .pt-conditions-container {
        padding: 1rem;
    }
    
    .pt-conditions-table {
        font-size: 0.875rem;
    }
    
    .pt-conditions-table thead th,
    .pt-condition-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-related-docs-btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.875rem;
    }
}

/* ========================================
   ACCOUNT/LOGIN STYLES (auth-)
   ======================================== */

/* Hide navbar and footer on login page */
body.auth-login-page #topnavbar, 
body.auth-login-page footer {
    display: none !important;
}

.render-body-container {
    margin-top: 0 !important;
    padding: 0 !important;
}

/* Login Container */
.auth-login-container {
    min-height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Background */
.auth-login-background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
}

.auth-login-map {
    width: 100%;
    height: 100%;
    opacity: 0.3;
}

.auth-login-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.95) 0%, rgba(13, 110, 253, 0.8) 100%);
}

/* Login Content */
.auth-login-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 420px;
    padding: 2rem;
}

/* Login Card */
.auth-login-card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    padding: 2.5rem;
    animation: fadeInUp 0.5s ease-out;
}

/* Login Header */
.auth-login-header {
    text-align: center;
    margin-bottom: 2rem;
}

.auth-login-logo {
    height: 50px;
    margin-bottom: 1.5rem;
}

.auth-login-title {
    color: #212529;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.auth-login-subtitle {
    color: #6c757d;
    font-size: 1rem;
    margin-bottom: 0;
}

/* Form Styling */
.auth-login-form {
    margin-top: 2rem;
}

.auth-login-form .form-floating {
    position: relative;
}

.auth-login-form .form-floating .form-control {
    padding-left: 2.75rem;
    height: 3.5rem;
    border-radius: 8px;
    border: 2px solid #e9ecef;
    transition: all 0.3s;
}

.auth-login-form .form-floating .form-control:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.auth-login-form .form-floating .form-label {
    padding-left: 2.75rem;
    color: #6c757d;
}

.auth-input-icon {
    position: absolute;
    left: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: #6c757d;
    pointer-events: none;
    z-index: 10;
}

/* Remember Me & Forgot Password */
.auth-login-form .form-check-input {
    cursor: pointer;
}

.auth-login-form .form-check-label {
    cursor: pointer;
    user-select: none;
    color: #495057;
}

.auth-forgot-link {
    color: #0d6efd;
    text-decoration: none;
    font-size: 0.875rem;
    transition: color 0.2s;
}

.auth-forgot-link:hover {
    color: #0a58ca;
    text-decoration: underline;
}

/* Login Button */
.auth-login-button {
    font-weight: 600;
    padding: 0.75rem;
    border-radius: 8px;
    transition: all 0.3s;
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
    border: none;
}

.auth-login-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(13, 110, 253, 0.3);
    background: linear-gradient(135deg, #0a58ca 0%, #0854b3 100%);
}

/* Login Footer */
.auth-login-footer {
    text-align: center;
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e9ecef;
}

/* Copyright */
.auth-copyright-text {
    text-align: center;
    margin-top: 2rem;
    color: white;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.auth-copyright-text p {
    margin: 0;
    font-size: 0.875rem;
}

/* Alert Styling */
.auth-login-form .alert {
    border-radius: 8px;
    border: none;
}

/* Animations */
@keyframes fadeInUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Responsive */
@media (max-width: 576px) {
    .auth-login-content {
        padding: 1rem;
    }
    
    .auth-login-card {
        padding: 2rem 1.5rem;
    }
    
    .auth-login-logo {
        height: 40px;
    }
}

/* ACCOUNT/TWOFACTOR STYLES (auth-) */
/* Hide navbar and footer on auth pages */
body.auth-page #topnavbar, 
body.auth-page footer {
    display: none !important;
}

.render-body-container {
    margin-top: 0 !important;
    padding: 0 !important;
}

/* Container */
.auth-twofactor-container {
    min-height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Background */
.auth-twofactor-background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    overflow: hidden;
}

.auth-twofactor-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.95) 0%, rgba(13, 110, 253, 0.8) 100%);
}

/* Content */
.auth-twofactor-content {
    position: relative;
    z-index: 1;
    width: 100%;
    max-width: 520px;
    padding: 2rem;
}

/* Card */
.auth-twofactor-card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.1);
    padding: 2.5rem;
    animation: fadeInUp 0.5s ease-out;
}

/* Header */
.auth-twofactor-header {
    text-align: center;
    margin-bottom: 2rem;
}

.auth-security-icon {
    width: 80px;
    height: 80px;
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1.5rem;
    box-shadow: 0 5px 20px rgba(13, 110, 253, 0.3);
}

.auth-security-icon i {
    font-size: 2rem;
    color: white;
}

.auth-twofactor-title {
    color: #212529;
    font-weight: 600;
    font-size: 1.75rem;
    margin-bottom: 0.5rem;
}

.auth-twofactor-subtitle {
    color: #6c757d;
    font-size: 1rem;
    margin-bottom: 0;
}

/* Setup Section */
.auth-setup-section {
    margin-bottom: 2rem;
}

.auth-setup-instructions {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.auth-setup-instructions h5 {
    color: #495057;
    font-weight: 600;
}

.auth-setup-steps {
    margin-bottom: 1rem;
    padding-left: 1.5rem;
}

.auth-setup-steps li {
    margin-bottom: 0.5rem;
    color: #495057;
}

.auth-app-suggestions {
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #dee2e6;
}

.auth-app-links {
    display: flex;
    gap: 1rem;
    flex-wrap: wrap;
}

.auth-app-link {
    display: inline-flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    color: #495057;
    text-decoration: none;
    font-size: 0.875rem;
    transition: all 0.2s;
}

.auth-app-link:hover {
    background: #f8f9fa;
    border-color: #0d6efd;
    color: #0d6efd;
    transform: translateY(-1px);
}

/* QR Section */
.auth-qr-section {
    text-align: center;
}

.auth-qr-container {
    background: white;
    border: 2px solid #e9ecef;
    border-radius: 12px;
    padding: 1.5rem;
    display: inline-block;
    margin-bottom: 1rem;
}

.auth-qr-code {
    width: 240px;
    height: 240px;
    display: block;
}

.auth-manual-setup {
    margin-top: 1rem;
}

.auth-manual-code-box {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 1rem;
    margin-top: 0.5rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.auth-manual-code {
    font-size: 1.125rem;
    color: #212529;
    background: white;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
}

/* Verify Section */
.auth-verify-section {
    text-align: center;
    margin-bottom: 2rem;
}

.auth-authenticator-icon {
    font-size: 4rem;
    color: #0d6efd;
    margin-bottom: 1rem;
}

.auth-verify-instruction {
    color: #495057;
    font-size: 1.125rem;
    margin-bottom: 0;
}

/* Code Input */
.auth-code-input-section {
    margin-top: 2rem;
}

.auth-code-input-wrapper {
    position: relative;
    margin-bottom: 1.5rem;
}

.auth-code-input {
    text-align: center;
    font-size: 2rem;
    font-weight: 600;
    letter-spacing: 0.5rem;
    height: 4rem;
    border: 2px solid #e9ecef;
    border-radius: 8px;
    transition: all 0.3s;
    font-family: 'Monaco', 'Courier New', monospace;
}

.auth-code-input:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.auth-code-input-icon {
    position: absolute;
    right: 1rem;
    top: 50%;
    transform: translateY(-50%);
    color: #6c757d;
    pointer-events: none;
}

/* Verify Button */
.auth-verify-button {
    font-weight: 600;
    padding: 0.75rem;
    border-radius: 8px;
    transition: all 0.3s;
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
    border: none;
}

.auth-verify-button:hover {
    transform: translateY(-2px);
    box-shadow: 0 5px 15px rgba(13, 110, 253, 0.3);
    background: linear-gradient(135deg, #0a58ca 0%, #0854b3 100%);
}

/* Help Section */
.auth-help-section {
    margin-top: 2rem;
    padding-top: 1.5rem;
    border-top: 1px solid #e9ecef;
}

.auth-help-link {
    color: #0d6efd;
    text-decoration: none;
}

.auth-help-link:hover {
    text-decoration: underline;
}

/* Copyright */
.auth-copyright-text {
    text-align: center;
    margin-top: 2rem;
    color: white;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);
}

.auth-copyright-text p {
    margin: 0;
    font-size: 0.875rem;
}

/* Alert */
.auth-twofactor-form .alert {
    border-radius: 8px;
    border: none;
    margin-bottom: 1.5rem;
}

/* Responsive for TwoFactor */
@media (max-width: 576px) {
    .auth-twofactor-content {
        padding: 1rem;
    }
    
    .auth-twofactor-card {
        padding: 2rem 1.5rem;
    }
    
    .auth-qr-code {
        width: 200px;
        height: 200px;
    }
    
    .auth-code-input {
        font-size: 1.5rem;
        letter-spacing: 0.25rem;
    }
    
    .auth-app-links {
        flex-direction: column;
    }
    
    .auth-app-link {
        justify-content: center;
    }
}

/* ACCOUNT/RESET PASSWORD CONFIRMATION STYLES (auth-) */
/* Success Icon */
.auth-success-icon-wrapper {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    background: rgba(25, 135, 84, 0.1);
    border-radius: 50%;
    animation: scaleIn 0.5s ease-out;
}

.auth-success-icon {
    font-size: 3rem;
    animation: checkmark 0.5s ease-out 0.3s both;
}

/* Security Tips */
.auth-security-tips {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1rem;
    margin-top: 1.5rem;
    text-align: left;
}

.auth-tips-title {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #495057;
}

.auth-tips-list {
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.875rem;
    color: #6c757d;
}

.auth-tips-list li {
    padding: 0.25rem 0;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.auth-tips-list i {
    color: #28a745;
    font-size: 1rem;
}

/* Confetti Animation */
.auth-confetti-container {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    overflow: hidden;
    z-index: 9999;
}

.auth-confetti {
    position: absolute;
    width: 10px;
    height: 10px;
    top: -10px;
    animation: confetti-fall linear;
}

@keyframes confetti-fall {
    to {
        transform: translateY(calc(100vh + 10px)) rotate(360deg);
    }
}

/* ACCOUNT/RESET PASSWORD STYLES (auth-) */
/* Password Requirements */
.auth-password-requirements {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 1rem;
    font-size: 0.875rem;
}

.auth-requirements-title {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: 0.5rem;
    color: #495057;
}

.auth-requirements-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.auth-requirement {
    padding: 0.25rem 0;
    color: #6c757d;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.auth-requirement i {
    font-size: 0.5rem;
    color: #dc3545;
    transition: color 0.3s;
}

.auth-requirement.valid i {
    color: #28a745;
}

/* Back Link */
.auth-back-link {
    color: #6c757d;
    text-decoration: none;
    font-size: 0.875rem;
    transition: color 0.2s;
}

.auth-back-link:hover {
    color: #0d6efd;
    text-decoration: underline;
}

/* Common Animation Keyframes */
@keyframes scaleIn {
    from {
        transform: scale(0);
    }
    to {
        transform: scale(1);
    }
}

@keyframes checkmark {
    from {
        transform: scale(0) rotate(-45deg);
    }
    to {
        transform: scale(1) rotate(0);
    }
}

/* ==================== Admin Styles ==================== */
/* Extracted and prefixed from Admin view files */

/* From _User.cshtml */
.admin-section-header {
    border-bottom: 2px solid #e9ecef;
    padding-bottom: 0.5rem;
}

.admin-section-header h5 {
    color: #495057;
    font-weight: 600;
}

.admin-form-floating > .form-control:focus,
.admin-form-floating > .form-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.admin-form-floating > .form-control:disabled,
.admin-form-floating > .form-select:disabled {
    background-color: #f8f9fa;
    opacity: 0.65;
}

.admin-alert-link {
    font-weight: 600;
}

#professionalSection:not(.d-none) ~ .row {
    display: flex !important;
}

/* From Index.cshtml */
/* Modern Admin Sidebar Styles - Scoped to admin area only */
.admin-bd-layout {
    display: flex;
    min-height: calc(100vh - 56px);
}

/* Admin-specific sidebar */
.admin-bd-sidebar.admin-modern-sidebar {
    width: 280px;
    background: white;
    color: #212529;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
    border-right: 1px solid #e9ecef;
    display: flex;
    flex-direction: column;
    position: fixed;
    height: calc(100vh - 56px);
    z-index: 100;
    transition: all 0.3s ease;
}

.admin-bd-links {
    height: 100%;
    display: flex !important;
    flex-direction: column;
}

/* Sidebar Header */
.admin-sidebar-header {
    padding: 1.5rem;
    border-bottom: 2px solid #e9ecef;
    background: white;
}

.admin-sidebar-brand {
    display: flex;
    align-items: center;
    color: #495057 !important;
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 600;
    transition: all 0.3s;
    padding: 0.875rem 1.5rem;
    margin: -0.875rem -1.5rem;
    border-radius: 6px;
}

.admin-sidebar-brand:hover {
    background: #f8f9fa;
    color: #0d6efd !important;
    text-decoration: none;
}

.admin-sidebar-brand i {
    font-size: 1.5rem;
    margin-right: 1rem;
    color: #6c757d;
}

.admin-sidebar-brand:hover i {
    color: #0d6efd;
}

/* Navigation */
.admin-sidebar-nav {
    flex: 1;
    padding: 1.5rem 0;
    margin: 0;
    list-style: none;
    overflow-y: auto;
}

.admin-bd-sidebar .nav-item {
    margin: 0;
}

.admin-bd-sidebar .nav-link {
    display: flex;
    align-items: center;
    padding: 0.875rem 1.5rem;
    color: #495057 !important;
    text-decoration: none;
    transition: all 0.3s;
    border-left: 4px solid transparent;
    position: relative;
    font-weight: 500;
}

.admin-bd-sidebar .nav-link:hover {
    background: #f8f9fa;
    color: #0d6efd !important;
    border-left-color: #0d6efd;
    transform: translateX(5px);
}

.admin-bd-sidebar .nav-link.active {
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd !important;
    border-left-color: #0d6efd;
}

.admin-bd-sidebar .nav-link i {
    width: 24px;
    margin-right: 1rem;
    font-size: 1.1rem;
    text-align: center;
    color: #6c757d;
}

.admin-bd-sidebar .nav-link:hover i {
    color: #0d6efd;
}

.admin-bd-sidebar .nav-link.active i {
    color: #0d6efd;
}

.admin-bd-sidebar .nav-link span {
    font-size: 0.95rem;
    color: inherit;
}

/* Nav Divider */
.admin-nav-divider {
    height: 1px;
    background: #e9ecef;
    margin: 1rem 1.5rem;
}

/* Sidebar Footer */
.admin-sidebar-footer {
    padding: 1.5rem;
    border-top: 1px solid #e9ecef;
    background: #f8f9fa;
}

.admin-sidebar-footer .btn {
    width: 100%;
    border-color: #0d6efd;
    color: #0d6efd;
    transition: all 0.3s;
    background: white;
}

.admin-sidebar-footer .btn:hover {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

/* Main Content */
.admin-modern-main-group {
    flex: 1;
    margin-left: 280px;
}

.admin-table-responsive {
    background: #f8f9fa;
}

.admin-main-content {
    margin: 0 auto;
}

/* Scrollbar Styling */
.admin-sidebar-nav::-webkit-scrollbar {
    width: 6px;
}

.admin-sidebar-nav::-webkit-scrollbar-track {
    background: #f8f9fa;
}

.admin-sidebar-nav::-webkit-scrollbar-thumb {
    background: #dee2e6;
    border-radius: 3px;
}

.admin-sidebar-nav::-webkit-scrollbar-thumb:hover {
    background: #adb5bd;
}

/* Responsive */
@media (max-width: 768px) {
    .admin-bd-sidebar.admin-modern-sidebar {
        width: 100%;
        position: static;
        height: auto;
    }
    
    .admin-modern-main-group {
        margin-left: 0;
    }
    
    .admin-bd-layout {
        flex-direction: column;
    }
    
    .admin-bd-sidebar-toggle {
        display: block !important;
        position: fixed;
        top: 70px;
        right: 1rem;
        z-index: 1001;
        background: #0d6efd;
        color: white !important;
        border: none;
        padding: 0.5rem 0.75rem;
        border-radius: 4px;
        box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
    }
    
    .admin-bd-sidebar-toggle:hover {
        background: #0a58ca;
        color: white !important;
        transform: scale(1.05);
    }
    
    #bd-nav {
        position: fixed;
        top: 56px;
        left: 0;
        right: 0;
        bottom: 0;
        z-index: 1000;
        transform: translateX(-100%);
        transition: transform 0.3s ease;
    }
    
    #bd-nav.show {
        transform: translateX(0);
    }
    
    .admin-bd-sidebar.admin-modern-sidebar {
        position: fixed;
        height: 100vh;
    }
}

/* Loading State */
#rendercontent.loading {
    position: relative;
    min-height: 400px;
}

#rendercontent.loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* From _SystemManagement.cshtml */
/* Status Hero Card */
.admin-status-hero-card {
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.95) 0%, rgba(13, 110, 253, 0.8) 100%);
    border-radius: 15px;
    padding: 3rem;
    color: white;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.2);
}

.admin-status-hero-content {
    text-align: center;
}

.admin-status-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2rem;
    margin-bottom: 2rem;
}

.admin-status-icon-wrapper {
    position: relative;
    font-size: 5rem;
}

.admin-status-active .admin-status-icon-wrapper {
    color: #4ade80;
}

.admin-status-inactive .admin-status-icon-wrapper {
    color: #ef4444;
}

.admin-pulse-ring {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 100px;
    height: 100px;
    border-radius: 50%;
    border: 2px solid #4ade80;
    animation: admin-pulse 2s infinite;
}

@keyframes admin-pulse {
    0% {
        transform: translate(-50%, -50%) scale(1);
        opacity: 1;
    }
    100% {
        transform: translate(-50%, -50%) scale(1.5);
        opacity: 0;
    }
}

.admin-status-title {
    font-size: 2.5rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
}

.admin-status-subtitle {
    font-size: 1.25rem;
    opacity: 0.9;
    margin-bottom: 0;
}

.admin-status-controls {
    margin-top: 2rem;
}

/* Info Cards */
.admin-info-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
    height: 100%;
    transition: transform 0.2s;
}

.admin-info-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

.admin-info-card-header {
    background: #f8f9fa;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #e9ecef;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font-weight: 600;
}

.admin-info-card-header i {
    font-size: 1.25rem;
    color: #6366f1;
}

.admin-info-card-body {
    padding: 1.5rem;
}

.admin-info-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.admin-info-item:last-child {
    margin-bottom: 0;
}

.admin-info-label {
    color: #6c757d;
    font-size: 0.875rem;
}

.admin-info-value {
    font-weight: 600;
    color: #212529;
}

/* Quick Action Cards */
.admin-quick-action-card {
    background: white;
    border-radius: 10px;
    padding: 2rem;
    text-align: center;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    cursor: pointer;
    transition: all 0.3s;
    height: 100%;
}

.admin-quick-action-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

.admin-quick-action-card i {
    font-size: 3rem;
    margin-bottom: 1rem;
}

.admin-quick-action-card h6 {
    margin-bottom: 0.5rem;
    color: #212529;
}

.admin-quick-action-card p {
    font-size: 0.875rem;
}

/* Progress bars */
.admin-progress {
    background-color: #e9ecef;
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .admin-status-hero-card {
        padding: 2rem 1rem;
    }
    
    .admin-status-indicator {
        flex-direction: column;
        gap: 1rem;
    }
    
    .admin-status-icon-wrapper {
        font-size: 3rem;
    }
    
    .admin-status-title {
        font-size: 1.75rem;
    }
    
    .admin-status-subtitle {
        font-size: 1rem;
    }
    
    .btn-lg {
        padding: 0.5rem 1rem;
        font-size: 1rem;
    }
}

/* From _Client.cshtml */
/* Client Edit Container */
.admin-client-edit-container {
    min-height: calc(100vh - 56px);
}

/* Page Header */
.admin-page-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    margin-bottom: 2rem;
}

/* Form Section Cards */
.admin-form-section-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    transition: transform 0.2s;
}

.admin-form-section-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.admin-section-title {
    color: #495057;
    margin-bottom: 1.5rem;
    font-weight: 600;
    padding-bottom: 1rem;
    border-bottom: 2px solid #e9ecef;
    font-size: 1.125rem;
}

/* Modern Form Controls */
.admin-form-floating {
    position: relative;
}

.admin-form-floating > .form-control,
.admin-form-floating > .form-select {
    padding: 1.625rem 0.75rem 0.625rem;
    font-size: 1rem;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    transition: all 0.2s;
    background-color: white;
    color: #212529 !important;
    font-weight: 500;
}

.admin-form-floating > .form-control:focus,
.admin-form-floating > .form-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.25rem rgba(13, 110, 253, 0.25);
    color: #212529 !important;
}

.admin-form-floating > .form-control:read-only {
    background-color: #e9ecef;
    color: #495057 !important;
}

.admin-form-floating > label {
    position: absolute;
    top: 0;
    left: 0.75rem;
    padding: 1rem 0.75rem;
    pointer-events: none;
    border: 1px solid transparent;
    transform-origin: 0 0;
    transition: opacity 0.1s ease-in-out, transform 0.1s ease-in-out;
    color: #6c757d;
    font-weight: 400;
}

.admin-form-floating > .form-control:focus ~ label,
.admin-form-floating > .form-control:not(:placeholder-shown) ~ label,
.admin-form-floating > .form-select ~ label {
    opacity: 0.85;
    transform: scale(0.85) translateY(-0.75rem) translateX(0.15rem);
    background: white;
    padding: 0 0.25rem;
    color: #495057;
    font-weight: 500;
    height: 2rem;
    width: auto;
}

/* Modern Checkboxes */
.admin-checkbox-group {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.admin-modern-checkbox {
    padding: 0.75rem 1rem;
    border-radius: 8px;
    transition: all 0.2s;
    border: 1px solid transparent;
}

.admin-modern-checkbox:hover {
    background-color: #f8f9fa;
    border-color: #e9ecef;
}

.admin-modern-checkbox .form-check-input {
    width: 1.25rem;
    height: 1.25rem;
    margin-top: 0.125rem;
    cursor: pointer;
    border-radius: 4px;
    border: 2px solid #dee2e6;
}

.admin-modern-checkbox .form-check-input:checked {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.admin-modern-checkbox .form-check-label {
    margin-left: 0.5rem;
    font-weight: 500;
    color: #495057;
    cursor: pointer;
    user-select: none;
    display: flex;
    align-items: center;
}

.admin-modern-checkbox .form-check-label i {
    color: #6c757d;
    font-size: 1.1rem;
}

/* Action Buttons */
.admin-form-actions {
    background: white;
    padding: 2rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    text-align: center;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

.admin-btn-lg {
    padding: 0.75rem 2rem;
    font-size: 1rem;
    font-weight: 500;
    border-radius: 8px;
    transition: all 0.2s;
}

.admin-btn-primary {
    background-color: #0d6efd;
    border-color: #0d6efd;
}

.admin-btn-primary:hover {
    background-color: #0a58ca;
    border-color: #0a58ca;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

.admin-btn-secondary {
    background-color: #6c757d;
    border-color: #6c757d;
}

.admin-btn-secondary:hover {
    background-color: #5c636a;
    border-color: #5c636a;
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(108, 117, 125, 0.2);
}

/* Validation Feedback */
.admin-invalid-feedback {
    font-size: 0.875rem;
    margin-top: 0.25rem;
}

/* Responsive */
@media (max-width: 768px) {
    .admin-form-container {
        padding: 0 1rem;
    }
    
    .admin-form-section-card {
        padding: 1rem;
    }
    
    .admin-page-header h2 {
        font-size: 1.5rem;
    }
    
    .admin-btn-lg {
        padding: 0.5rem 1.5rem;
        font-size: 0.9375rem;
    }
}

/* From _ErrorLog.cshtml */
.admin-error-message {
    word-break: break-word;
}

.admin-error-log {
    white-space: pre-wrap;
    word-wrap: break-word;
    overflow-wrap: break-word;
    max-width: 100%;
    overflow-x: auto;
}

/* Ensure table doesn't expand beyond viewport */
.admin-table-responsive table {
    table-layout: fixed;
    width: 100%;
}

.admin-table-responsive td {
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Error message column should take remaining space */
.admin-table-responsive th:nth-child(2),
.admin-table-responsive td:nth-child(2) {
    width: auto;
    min-width: 300px;
}

/* Ensure the expanded error details don't break layout */
.admin-table-responsive .bg-light {
    max-width: 100%;
    overflow-x: auto;
}

/* ========================================
   REPORTING STYLES (rpt-)
   ======================================== */

/* From Views/Reporting/Index.cshtml */
.rpt-filter-select {
    border-radius: 8px;
    transition: all 0.3s;
}

.rpt-filter-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.rpt-filter-select.border-primary {
    border-width: 2px;
}

/* Modern Sidebar Styles for Reporting Dashboard */
.rpt-bd-sidebar.modern-sidebar {
    width: 280px;
    background: white;
    color: #212529;
    box-shadow: 2px 0 10px rgba(0, 0, 0, 0.05);
    border-right: 1px solid #e9ecef;
    display: flex;
    flex-direction: column;
    height: calc(100vh - 64px);
    transition: all 0.3s ease;
}

/* Sidebar Header */
.rpt-sidebar-header {
    padding: 1.5rem;
    border-bottom: 2px solid #e9ecef;
    background: white;
}

.rpt-sidebar-brand {
    display: flex;
    align-items: center;
    color: #495057 !important;
    text-decoration: none;
    font-size: 1.25rem;
    font-weight: 600;
    transition: all 0.3s;
    padding: 0.875rem 1.5rem;
    margin: -0.875rem -1.5rem;
    border-radius: 6px;
}

.rpt-sidebar-brand i {
    font-size: 1.5rem;
    margin-right: 1rem;
    color: #6c757d;
}

/* Navigation */
.rpt-sidebar-nav {
    flex: 1;
    padding: 1.5rem 0;
    margin: 0;
    list-style: none;
    overflow-y: auto;
}

.rpt-sidebar-nav .nav-item {
    margin: 0;
}

.rpt-sidebar-nav .nav-link {
    display: flex;
    align-items: center;
    padding: 0.875rem 1.5rem;
    color: #495057 !important;
    text-decoration: none;
    transition: all 0.3s;
    border-left: 4px solid transparent;
    position: relative;
    font-weight: 500;
    cursor: pointer;
}

.rpt-sidebar-nav .nav-link:hover {
    background: #f8f9fa;
    color: #0d6efd !important;
    border-left-color: #0d6efd;
    transform: translateX(5px);
}

.rpt-sidebar-nav .nav-link.active {
    background: rgba(13, 110, 253, 0.1);
    color: #0d6efd !important;
    border-left-color: #0d6efd;
}

.rpt-sidebar-nav .nav-link i {
    width: 24px;
    margin-right: 1rem;
    font-size: 1.1rem;
    text-align: center;
    color: #6c757d;
}

.rpt-sidebar-nav .nav-link:hover i {
    color: #0d6efd;
}

.rpt-sidebar-nav .nav-link.active i {
    color: #0d6efd;
}

.rpt-sidebar-nav .nav-link span {
    font-size: 0.95rem;
    color: inherit;
}

/* Nav Divider */
.rpt-nav-divider {
    height: 1px;
    background: #e9ecef;
    margin: 1rem 1.5rem;
}

/* Main content adjustments */
.rpt-modern-main-group {
    margin-left: 280px;
    width: calc(100% - 280px);
    transition: all 0.3s ease;
}

/* Responsive Design */
@media (max-width: 768px) {
    .rpt-bd-sidebar.modern-sidebar {
        transform: translateX(-100%);
        position: fixed;
    }
    
    .rpt-bd-sidebar.modern-sidebar.show {
        transform: translateX(0);
    }
    
    .rpt-modern-main-group {
        margin-left: 0;
        width: 100%;
    }
}

/* From Views/Reporting/ProviderMetrics.cshtml */
#rpt-providerMap {
    height: 600px;
    width: 100%;
    border: 1px solid #ddd;
    border-radius: 4px;
}

.rpt-clinic-popup {
    min-width: 250px;
}

.rpt-clinic-popup h6 {
    margin-bottom: 8px;
    color: #333;
}

.rpt-clinic-popup .info-row {
    margin: 4px 0;
    font-size: 14px;
}

.rpt-clinic-popup .label {
    font-weight: bold;
    color: #666;
}

.provider-metrics-container {
    padding: 1rem 0;
}

/* Pagination Header */
.rpt-pagination-header,
.pagination-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
    flex-wrap: wrap;
    gap: 1rem;
}

.rpt-results-summary .badge {
    padding: 0.5rem 1rem;
    font-size: 0.875rem;
}

/* Provider Group Cards */
.rpt-provider-group-card,
.provider-group-card {
    background: white;
    border-radius: 12px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    margin-bottom: 1.5rem;
    overflow: hidden;
    transition: all 0.3s;
}

.rpt-provider-group-card:hover,
.provider-group-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
}

.rpt-group-header,
.group-header {
    padding: 1.5rem;
    cursor: pointer;
    transition: background-color 0.2s;
}

.rpt-group-header:hover,
.group-header:hover {
    background-color: #f8f9fa;
}

.rpt-group-header-content,
.group-header-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 2rem;
}

.rpt-group-main-info,
.group-main-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.rpt-group-icon,
.group-icon {
    font-size: 2.5rem !important;
    color: #0d6efd;
    opacity: 0.8;
}

.rpt-group-name,
.group-name {
    margin: 0;
    font-size: 1.25rem;
    font-weight: 600;
    color: #212529;
}

.rpt-group-meta,
.group-meta {
    display: flex;
    gap: 0.75rem;
    margin-top: 0.5rem;
    flex-wrap: wrap;
}

.rpt-location-badge, .rpt-system-badge, .rpt-alignment-badge,
.location-badge, .system-badge, .alignment-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    padding: 0.25rem 0.75rem;
    background: #e9ecef;
    border-radius: 20px;
    font-size: 0.875rem;
    color: #495057;
}

.rpt-system-badge,
.system-badge {
    background: #d1ecf1;
    color: #0c5460;
}

.rpt-alignment-badge,
.alignment-badge {
    background: #f8d7da;
    color: #721c24;
}

/* Group Stats */
.rpt-group-stats,
.group-stats {
    display: flex;
    align-items: center;
    gap: 2rem;
}

.rpt-stat-item,
.stat-item {
    text-align: center;
}

.rpt-stat-value,
.stat-value {
    font-size: 1.5rem;
    font-weight: 700;
    color: #0d6efd;
    line-height: 1;
}

.rpt-stat-label,
.stat-label {
    font-size: 0.75rem;
    color: #6c757d;
    text-transform: uppercase;
    margin-top: 0.25rem;
}

.rpt-expand-indicator,
.expand-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: #f8f9fa;
    border-radius: 50%;
    transition: all 0.3s;
}

.rpt-expand-indicator i,
.expand-indicator i {
    transition: transform 0.3s;
    color: #6c757d;
}

.rpt-group-header.expanded .rpt-expand-indicator i {
    transform: rotate(180deg);
}

/* Clinics Container */
.rpt-clinics-container,
.clinics-container {
    background: #f8f9fa;
    border-top: 1px solid #dee2e6;
    padding: 1rem;
}

/* Clinic Cards */
.rpt-clinic-card,
.clinic-card {
    background: white;
    border-radius: 8px;
   /* margin-bottom: 1rem;*/
    overflow: hidden;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
}

.rpt-clinic-card:last-child {
    margin-bottom: 0;
}

.rpt-clinic-header,
.clinic-header {
    padding: 1.25rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.2s;
}

.rpt-clinic-header:hover,
.clinic-header:hover {
    background-color: #f8f9fa;
}

.rpt-clinic-info,
.clinic-info {
    display: flex;
    align-items: center;
    gap: 1rem;
    flex: 1;
}

.rpt-clinic-icon,
.clinic-icon {
    font-size: 2.5rem !important;
    color: #6c757d;
}

.rpt-clinic-names,
.clinic-names {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rpt-clinic-name,
.clinic-name {
    font-weight: 600;
    color: #212529;
    font-size: 1.1rem;
}

.rpt-legal-name,
.legal-name {
    font-size: 0.875rem;
    color: #6c757d;
    font-style: italic;
}

/* Clinic details container */
.clinic-details {
    flex: 1;
}

.rpt-clinic-meta,
.clinic-meta {
    display: flex;
    gap: 1rem;
    margin-top: 0.5rem;
    flex-wrap: wrap;
    font-size: 0.875rem;
    color: #6c757d;
}

.rpt-npi-badge,
.npi-badge {
    background: #e9ecef;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-family: monospace;
}

/* Address info badge */
.address-info {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.rpt-clinic-stats,
.clinic-stats {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.rpt-mini-stat,
.mini-stat {
    text-align: center;
}

.rpt-mini-value,
.mini-value {
    display: block;
    font-size: 1.25rem;
    font-weight: 600;
    color: #495057;
}

.rpt-mini-label,
.mini-label {
    display: block;
    font-size: 0.75rem;
    color: #6c757d;
    text-transform: uppercase;
}

/* Clinic Action Buttons */
.rpt-clinic-action-buttons,
.clinic-action-buttons {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-left: 1rem;
}

.rpt-clinic-action-buttons .report-card-btn,
.clinic-action-buttons .report-card-btn {
    font-size: 0.875rem;
    padding: 0.375rem 0.75rem;
    white-space: nowrap;
}

/* Make report card button white when header is expanded */
.rpt-clinic-header.expanded .report-card-btn,
.rpt-provider-header.expanded .report-card-btn,
.clinic-header.expanded .report-card-btn,
.provider-header.expanded .report-card-btn,
[data-clinic-target-id].expanded .report-card-btn {
    background-color: white !important;
    color: #0d6efd !important;
    border-color: white !important;
}

.rpt-clinic-header.expanded .report-card-btn:hover,
.rpt-provider-header.expanded .report-card-btn:hover,
.clinic-header.expanded .report-card-btn:hover,
.provider-header.expanded .report-card-btn:hover,
[data-clinic-target-id].expanded .report-card-btn:hover {
    background-color: #f8f9fa !important;
    border-color: #f8f9fa !important;
}

/* Providers Container */
.rpt-providers-container,
.providers-container {
    background: #f0f0f0;
    border-top: 1px solid #dee2e6;
    padding: 1rem;
}

/* Provider Cards */
.rpt-provider-card,
.provider-card {
    background: white;
    border-radius: 6px;
    margin-bottom: 0.75rem;
    overflow: hidden;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

.rpt-provider-card:last-child,
.provider-card:last-child {
    margin-bottom: 0;
}

.rpt-provider-header,
.provider-header {
    padding: 1rem;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: background-color 0.2s;
}

.rpt-provider-header:hover,
.provider-header:hover {
    background-color: #f8f9fa;
}

.rpt-provider-info,
.provider-info {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
}

.rpt-provider-icon,
.provider-icon {
    font-size: 1.5rem;
    color: #28a745;
}

.rpt-provider-name,
.provider-name {
    font-weight: 600;
    color: #212529;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rpt-primary-badge,
.primary-badge {
    background: #ffc107;
    color: #212529;
    padding: 0.125rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
}

.rpt-provider-meta,
.provider-meta {
    display: flex;
    gap: 1rem;
    margin-top: 0.25rem;
    font-size: 0.875rem;
    color: #6c757d;
}

.rpt-specialty-info,
.specialty-info {
    color: #495057;
}

.rpt-specialization,
.specialization {
    font-style: italic;
}

.rpt-provider-grouping,
.provider-grouping {
    font-size: 0.75rem;
    color: #6c757d;
    font-style: italic;
    margin-top: 0.25rem;
}

.rpt-provider-stats,
.provider-stats {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.rpt-patient-count,
.patient-count {
    text-align: center;
}

.rpt-count-value,
.count-value {
    display: block;
    font-size: 1.125rem;
    font-weight: 600;
    color: #28a745;
}

.rpt-count-label,
.count-label {
    display: block;
    font-size: 0.75rem;
    color: #6c757d;
    text-transform: uppercase;
}

/* Patients Container */
.rpt-patients-container,
.patients-container {
    background: #e9ecef;
    border-top: 1px solid #dee2e6;
    padding: 1rem;
}

.rpt-patients-grid,
.patients-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 0.75rem;
}

/* Patient Cards */
.rpt-patient-card,
.patient-card {
    background: white;
    border-radius: 6px;
    padding: 1rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
    transition: all 0.2s;
    border: 1px solid transparent;
}

.rpt-patient-card:hover,
.patient-card:hover {
    border-color: #0d6efd;
    box-shadow: 0 2px 4px rgba(13, 110, 253, 0.15);
}

.rpt-patient-header,
.patient-header {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex: 1;
}

.rpt-patient-icon,
.patient-icon {
    font-size: 1.25rem;
    color: #6c757d;
}

.rpt-patient-name,
.patient-name {
    font-weight: 500;
    color: #212529;
    margin-bottom: 0.25rem;
}

.rpt-patient-details,
.patient-details {
    display: flex;
    gap: 1rem;
    font-size: 0.875rem;
    color: #6c757d;
}

.rpt-gender-badge,
.gender-badge {
    padding: 0.125rem 0.5rem;
    border-radius: 12px;
    font-size: 0.75rem;
}

.rpt-gender-badge.male,
.gender-badge.male {
    background: #d1ecf1;
    color: #0c5460;
}

.rpt-gender-badge.female,
.gender-badge.female {
    background: #f8d7da;
    color: #721c24;
}

.rpt-patient-link,
.patient-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    background: #f8f9fa;
    border-radius: 50%;
    color: #6c757d;
    transition: all 0.2s;
}

.rpt-patient-link:hover,
.patient-link:hover {
    background: #0d6efd;
    color: white;
    transform: scale(1.1);
}

/* PHI Hidden */
.rpt-phi-hidden,
.phi-hidden {
    background-color: #212529;
    color: #212529;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-family: monospace;
    user-select: none;
}

/* Responsive */
@media (max-width: 768px) {
    .rpt-group-header-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .rpt-group-stats {
        width: 100%;
        justify-content: space-between;
    }

    .rpt-clinic-header,
    .rpt-provider-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }

    .rpt-clinic-stats,
    .rpt-provider-stats {
        width: 100%;
        justify-content: space-between;
    }

    .rpt-patients-grid {
        grid-template-columns: 1fr;
    }
}

/* Expanded states */
[data-group-id].expanded {
    background-color: #0d6efd;
    color: white;
}

[data-group-id].expanded .rpt-group-icon,
[data-group-id].expanded .group-icon,
[data-group-id].expanded .rpt-stat-value,
[data-group-id].expanded .stat-value,
[data-group-id].expanded .rpt-stat-label,
[data-group-id].expanded .stat-label,
[data-group-id].expanded .rpt-group-name,
[data-group-id].expanded .group-name,
[data-group-id].expanded .group-icon,
[data-group-id].expanded .stat-value,
[data-group-id].expanded .stat-label,
[data-group-id].expanded .group-name {
    color: white !important;
}

[data-group-id].expanded .rpt-location-badge,
[data-group-id].expanded .location-badge,
[data-group-id].expanded .rpt-system-badge,
[data-group-id].expanded .system-badge,
[data-group-id].expanded .rpt-alignment-badge,
[data-group-id].expanded .alignment-badge,
[data-group-id].expanded .location-badge,
[data-group-id].expanded .system-badge,
[data-group-id].expanded .alignment-badge {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

[data-group-id].expanded .rpt-claims-stat .rpt-stat-value,
[data-group-id].expanded .claims-stat .stat-value,
[data-group-id].expanded .rpt-claims-stat .rpt-stat-label,
[data-group-id].expanded .claims-stat .stat-label {
    color: white !important;
}

/* Supporting details text in expanded state */
[data-group-id].expanded .rpt-supporting-details,
[data-group-id].expanded .supporting-details,
[data-group-id].expanded .rpt-supporting-details *,
[data-group-id].expanded .supporting-details * {
    color: white !important;
}

[data-clinic-target-id].expanded {
    background-color: #6c757d;
    color: white;
}

[data-clinic-target-id].expanded .rpt-clinic-name,
[data-clinic-target-id].expanded .clinic-name,
[data-clinic-target-id].expanded .rpt-mini-value,
[data-clinic-target-id].expanded .mini-value,
[data-clinic-target-id].expanded .rpt-mini-label,
[data-clinic-target-id].expanded .mini-label,
[data-clinic-target-id].expanded .rpt-clinic-icon,
[data-clinic-target-id].expanded .clinic-icon,
[data-clinic-target-id].expanded .rpt-legal-name,
[data-clinic-target-id].expanded .legal-name,
[data-clinic-target-id].expanded .rpt-clinic-meta,
[data-clinic-target-id].expanded .clinic-meta,
[data-clinic-target-id].expanded .clinic-name,
[data-clinic-target-id].expanded .mini-value,
[data-clinic-target-id].expanded .mini-label,
[data-clinic-target-id].expanded .clinic-icon,
[data-clinic-target-id].expanded .legal-name,
[data-clinic-target-id].expanded .clinic-meta {
    color: white;
}

[data-clinic-target-id].expanded .rpt-npi-badge,
[data-clinic-target-id].expanded .npi-badge {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

[data-clinic-target-id].expanded .address-info {
    color: white;
}

/* Expanded clinic state - expand indicator button styling */
[data-clinic-target-id].expanded .rpt-expand-indicator,
[data-clinic-target-id].expanded .expand-indicator {
    background-color: white !important;
}

[data-clinic-target-id].expanded .rpt-expand-indicator i,
[data-clinic-target-id].expanded .expand-indicator i {
    color: #6c757d !important;
}

[data-provider-target-id].expanded {
    background-color: #28a745;
    color: white;
}

[data-provider-target-id].expanded .rpt-provider-name,
[data-provider-target-id].expanded .provider-name,
[data-provider-target-id].expanded .rpt-count-value,
[data-provider-target-id].expanded .count-value,
[data-provider-target-id].expanded .rpt-count-label,
[data-provider-target-id].expanded .count-label,
[data-provider-target-id].expanded .rpt-provider-icon,
[data-provider-target-id].expanded .provider-icon,
[data-provider-target-id].expanded .rpt-provider-meta,
[data-provider-target-id].expanded .provider-meta,
[data-provider-target-id].expanded .rpt-provider-grouping,
[data-provider-target-id].expanded .provider-grouping,
[data-provider-target-id].expanded .rpt-specialty-info,
[data-provider-target-id].expanded .specialty-info {
    color: white;
}

[data-provider-target-id].expanded .rpt-npi-badge,
[data-provider-target-id].expanded .npi-badge {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

[data-provider-target-id].expanded .rpt-primary-badge,
[data-provider-target-id].expanded .primary-badge {
    background: rgba(255, 193, 7, 0.2);
    color: white;
}

/* Annual Claims Styles */
.rpt-claims-summary,
.claims-summary {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0 1rem;
    border-left: 1px solid #e9ecef;
}

.rpt-claims-year,
.claims-year {
    font-size: 0.75rem;
    color: #6c757d;
    font-weight: 500;
}

.rpt-claims-value,
.claims-value {
    font-size: 0.875rem;
    font-weight: 600;
    color: #28a745;
}

.rpt-annual-claims-container,
.annual-claims-container {
    background: #f8f9fa;
    border-top: 1px solid #e9ecef;
    padding: 1rem;
}

.rpt-claims-header,
.claims-header {
    margin-bottom: 0.75rem;
}

.rpt-claims-header h6,
.claims-header h6 {
    margin: 0;
    color: #495057;
    font-size: 0.875rem;
    font-weight: 600;
}

.rpt-claims-header i,
.claims-header i {
    margin-right: 0.5rem;
    color: #28a745;
}

.rpt-claims-grid,
.claims-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 1rem;
}

.rpt-year-claim-card,
.year-claim-card {
    background: white;
    border: 1px solid #e9ecef;
    border-radius: 0.375rem;
    padding: 0.75rem;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.rpt-year-label,
.year-label {
    font-weight: 600;
    color: #212529;
    margin-bottom: 0.5rem;
    font-size: 1rem;
    text-align: center;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #e9ecef;
}

.rpt-claim-stats,
.claim-stats {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.rpt-stat-row,
.stat-row {
    display: flex;
    justify-content: space-between;
    font-size: 0.813rem;
}

.rpt-stat-row .rpt-stat-label,
.stat-row .stat-label {
    color: #6c757d;
}

.rpt-stat-row .rpt-stat-value,
.stat-row .stat-value {
    font-weight: 500;
    color: #495057;
}

.rpt-stat-value.billed,
.stat-value.billed {
    color: #dc3545;
}

.rpt-stat-value.paid,
.stat-value.paid {
    color: #28a745;
}

.rpt-stat-value.paidratio {
    color: #17a2b8;
}

[data-provider-target-id].expanded .rpt-claims-year,
[data-provider-target-id].expanded .claims-year {
    color: rgba(255, 255, 255, 0.8);
}

[data-provider-target-id].expanded .rpt-claims-value,
[data-provider-target-id].expanded .claims-value {
    color: white;
}

/* Clickable claims styles */
.rpt-claims-stat.clickable, .rpt-claims-summary.clickable {
    cursor: pointer;
    transition: all 0.2s;
}

.rpt-claims-stat.clickable:hover {
    background-color: rgba(40, 167, 69, 0.1);
    border-radius: 0.375rem;
}

.rpt-claims-summary.clickable:hover {
    background-color: rgba(40, 167, 69, 0.1);
    border-radius: 0.375rem;
    transform: scale(1.05);
}

.rpt-claims-stat.clickable .rpt-stat-value {
    color: #28a745;
    font-weight: 600;
}

/* Modal styles */
.rpt-claims-modal {
    display: none;
    position: fixed;
    z-index: 10000;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0,0,0,0.4);
}

.rpt-claims-modal-content {
    background-color: #fefefe;
    margin: 5% auto;
    padding: 0;
    border: 1px solid #888;
    width: 90%;
    max-width: 800px;
    border-radius: 0.375rem;
    box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
}

.rpt-claims-modal-header {
    background-color: #f8f9fa;
    padding: 1rem 1.5rem;
    border-bottom: 1px solid #dee2e6;
    border-radius: 0.375rem 0.375rem 0 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.rpt-claims-modal-header h3 {
    margin: 0;
    color: #212529;
    font-size: 1.25rem;
}

.rpt-claims-modal-close {
    color: #6c757d;
    font-size: 1.5rem;
    font-weight: 700;
    line-height: 1;
    cursor: pointer;
    background: none;
    border: none;
    padding: 0;
}

.rpt-claims-modal-close:hover {
    color: #000;
}

.rpt-claims-modal-body {
    padding: 1.5rem;
    max-height: 60vh;
    overflow-y: auto;
}

.rpt-claims-history-table {
    width: 100%;
    border-collapse: collapse;
}

.rpt-claims-history-table th,
.rpt-claims-history-table td {
    padding: 0.75rem;
    text-align: left;
    border-bottom: 1px solid #dee2e6;
}

.rpt-claims-history-table th {
    background-color: #f8f9fa;
    font-weight: 600;
    color: #495057;
    position: sticky;
    top: 0;
    z-index: 10;
}

.rpt-claims-history-table tr:hover {
    background-color: #f8f9fa;
}

.rpt-claims-history-table .number {
    text-align: right;
}

.rpt-claims-history-table .paid {
    color: #28a745;
    font-weight: 500;
}

.rpt-claims-history-table .billed {
    color: #dc3545;
}

.rpt-claims-history-table .paidratio {
    color: #17a2b8;
}

/* Sorting Controls */
.rpt-sorting-controls,
.sorting-controls {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: 1.5rem;
    padding: 1rem;
    background-color: #f8f9fa;
    border-radius: 0.375rem;
}

.rpt-sort-label,
.sort-label {
    font-weight: 500;
    color: #495057;
}

.rpt-sort-buttons,
.sort-buttons {
    display: flex;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.rpt-sort-btn,
.sort-btn {
    padding: 0.375rem 0.75rem;
    border: 1px solid #dee2e6;
    background-color: white;
    color: #495057;
    border-radius: 0.25rem;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rpt-sort-btn:hover,
.sort-btn:hover {
    background-color: #e9ecef;
    border-color: #adb5bd;
}

.rpt-sort-btn.active,
.sort-btn.active {
    background-color: #007bff;
    color: white;
    border-color: #007bff;
}

.rpt-sort-btn i {
    font-size: 0.75rem;
}

/* From Views/Reporting/Campaigns.cshtml */
/* Campaigns Container */
.rpt-campaigns-container {
   /* background: #f8f9fa;*/
    min-height: calc(100vh - 56px);
}

/* Page Header */
.rpt-page-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Filter Card */
.rpt-filter-card {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.rpt-filter-select.has-value {
    border-color: #0d6efd;
    background-color: rgba(13, 110, 253, 0.05);
}

/* Campaign Content */
.rpt-campaign-content {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.rpt-campaign-header {
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
    color: white;
    padding: 1rem 1.5rem;
}

.rpt-campaign-header h5 {
    display: flex;
    align-items: center;
}

.rpt-campaign-list-container {
    overflow-y: auto;
    overflow-x: hidden;
}

/* Empty State */
.rpt-empty-state {
    text-align: center;
    padding: 5rem 2rem;
}

/* Patient Detail Container */
.rpt-patient-detail-container,
.rpt-hedis-detail-container {
    animation: rpt-fadeIn 0.3s ease-in-out;
}

.rpt-patient-detail-card,
.rpt-hedis-detail-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
}

/* Button Styles - Note: These use Bootstrap classes but have rpt-specific overrides */
.rpt-campaign-content .btn {
    border-radius: 6px;
    transition: all 0.2s;
}

.rpt-campaign-content .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

/* Animations */
@keyframes rpt-fadeIn {
    from {
        opacity: 0;
        transform: translateY(10px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Loading State */
.rpt-campaign-list-container.loading {
    position: relative;
    min-height: 200px;
}

.rpt-campaign-list-container.loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
}

/* Responsive */
@media (max-width: 768px) {
    .rpt-filter-card .row {
        gap: 0.5rem !important;
    }
    
    .rpt-campaign-list-container {
        max-height: none !important;
    }
}

/* From Views/Reporting/Partials/_ProviderMetricsListing.cshtml */
/* Narrative Stats Design */
.rpt-group-stats-narrative {
    display: flex;
    align-items: center;
    gap: 2rem;
    padding: 0.5rem 0;
}

.rpt-narrative-content {
    flex: 1;
    display: flex;
    align-items: center;
    gap: 3rem;
    flex-wrap: wrap;
}

/* Supporting Details */
.rpt-supporting-details,
.supporting-details {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.rpt-detail-block,
.detail-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.25rem;
}

.rpt-detail-number,
.detail-number {
    font-size: 1.75rem;
    font-weight: 600;
    color: #495057;
    line-height: 1;
}

.rpt-detail-label,
.detail-label {
    font-size: 0.875rem;
    color: #6c757d;
    text-transform: lowercase;
}

.rpt-detail-divider,
.detail-divider {
    width: 1px;
    height: 40px;
    background: #e9ecef;
}

/* Financial Story */
.rpt-financial-story,
.financial-story {
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 2rem;
}

.rpt-claims-highlight,
.claims-highlight {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 1.25rem;
    background: #f8f9fa;
    border-radius: 25px;
    text-decoration: none;
    color: inherit;
    transition: all 0.3s;
    border: 1px solid #e9ecef;
    cursor: pointer;
}

.rpt-claims-highlight:hover,
.claims-highlight:hover {
    background: #e7f3ff;
    border-color: #0d6efd;
    transform: translateX(3px);
    text-decoration: none;
    color: inherit;
}

.rpt-claims-amount,
.claims-amount {
    font-size: 1.25rem;
    font-weight: 700;
    color: #28a745;
}

.rpt-claims-context,
.claims-context {
    font-size: 0.875rem;
    color: #6c757d;
}

.rpt-claims-highlight i,
.claims-highlight i {
    font-size: 0.875rem;
    color: #6c757d;
    transition: transform 0.3s;
}

.rpt-claims-highlight:hover i,
.claims-highlight:hover i {
    transform: translateX(3px);
    color: #0d6efd;
}

/* Risk Metrics */
.rpt-risk-metrics,
.risk-metrics {
    display: flex;
    align-items: center;
    gap: 1.5rem;
}

.rpt-risk-block,
.risk-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 0.5rem 1rem;
    background: #fff5e6;
    border-radius: 12px;
    border: 1px solid #ffe0b3;
}

.rpt-risk-block.unique,
.risk-block.unique {
    background: #e6f7ff;
    border-color: #b3e0ff;
}

.rpt-risk-number,
.risk-number {
    font-size: 1.5rem;
    font-weight: 700;
    color: #fd7e14;
    line-height: 1;
}

.rpt-risk-block.unique .rpt-risk-number,
.risk-block.unique .risk-number {
    color: #0d6efd;
}

.rpt-risk-label,
.risk-label {
    font-size: 0.75rem;
    color: #6c757d;
    margin-top: 0.25rem;
    white-space: nowrap;
}

/* Expand Trigger */
.rpt-expand-trigger,
.expand-trigger {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.5rem 1rem;
    background: white;
    border: 2px solid #e9ecef;
    border-radius: 20px;
    color: #6c757d;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s;
    white-space: nowrap;
}

.rpt-expand-trigger:hover,
.expand-trigger:hover {
    border-color: #0d6efd;
    color: #0d6efd;
    background: #f8f9fa;
}

.rpt-expand-trigger i {
    font-size: 0.75rem;
    transition: transform 0.3s;
}

.rpt-group-header.expanded .rpt-expand-trigger,
.rpt-group-header.expanded .expand-trigger {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

.rpt-group-header.expanded .rpt-expand-trigger i,
.rpt-group-header.expanded .expand-trigger i {
    transform: rotate(180deg);
}

/* Responsive Design */
@media (max-width: 1200px) {
    .rpt-narrative-content {
        gap: 2rem;
    }

    .rpt-financial-story {
        margin-left: 0;
        width: 100%;
        justify-content: flex-start;
    }
}

@media (max-width: 768px) {
    .rpt-group-stats-narrative {
        flex-direction: column;
        align-items: stretch;
        gap: 1.5rem;
    }

    .rpt-narrative-content {
        flex-direction: column;
        align-items: flex-start;
        gap: 1.5rem;
    }

    .rpt-hero-number {
        font-size: 2rem;
    }

    .rpt-supporting-details {
        order: 3;
    }

    .rpt-financial-story {
        order: 2;
        flex-wrap: wrap;
        gap: 1rem;
    }

    .rpt-expand-trigger {
        align-self: flex-end;
    }
}

@media (max-width: 576px) {
    .rpt-primary-story {
        flex-wrap: wrap;
    }

    .rpt-detail-number {
        font-size: 1.5rem;
    }

    .rpt-claims-highlight {
        padding: 0.5rem 1rem;
    }

    .rpt-claims-amount {
        font-size: 1.1rem;
    }
}

/* Expanded state overrides for new elements */
.rpt-group-header.expanded .rpt-detail-number,
.rpt-group-header.expanded .detail-number,
.rpt-group-header.expanded .rpt-detail-label,
.rpt-group-header.expanded .detail-label,
.rpt-group-header.expanded .rpt-claims-amount,
.rpt-group-header.expanded .claims-amount,
.rpt-group-header.expanded .rpt-claims-context,
.rpt-group-header.expanded .claims-context,
.rpt-group-header.expanded .rpt-claims-highlight i,
.rpt-group-header.expanded .claims-highlight i,
.rpt-group-header.expanded .rpt-risk-label,
.rpt-group-header.expanded .risk-label,
.rpt-group-header.expanded .rpt-expand-text,
.rpt-group-header.expanded .expand-text {
    color: white !important;
}

.rpt-group-header.expanded .rpt-detail-divider,
.rpt-group-header.expanded .detail-divider {
    background: rgba(255, 255, 255, 0.3);
}

.rpt-group-header.expanded .rpt-claims-highlight,
.rpt-group-header.expanded .claims-highlight {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.3);
}

.rpt-group-header.expanded .rpt-claims-highlight:hover,
.rpt-group-header.expanded .claims-highlight:hover {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.5);
    color: white;
}

.rpt-group-header.expanded .rpt-risk-block,
.rpt-group-header.expanded .risk-block {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.3);
}

.rpt-group-header.expanded .rpt-risk-block .rpt-risk-number,
.rpt-group-header.expanded .risk-block .risk-number {
    color: white !important;
}

.rpt-group-header.expanded .rpt-expand-trigger,
.rpt-group-header.expanded .expand-trigger {
    background: white;
    color: #0d6efd !important;
    border-color: white;
    font-weight: 600;
}

.rpt-group-header.expanded .rpt-expand-trigger .rpt-expand-text,
.rpt-group-header.expanded .expand-trigger .expand-text {
    color: #0d6efd !important;
}

.rpt-group-header.expanded .rpt-expand-trigger i,
.rpt-group-header.expanded .expand-trigger i {
    color: #0d6efd !important;
}

.rpt-group-header.expanded .rpt-expand-trigger:hover,
.rpt-group-header.expanded .expand-trigger:hover {
    background: #f8f9fa;
    border-color: #f8f9fa;
    transform: scale(1.05);
}

/* From Views/Reporting/Partials/_SDOHPatientDetails.cshtml */
.rpt-sdoh-assessment-section {
    margin-bottom: 1.5rem;
}

.rpt-sdoh-domain-header {
    background-color: #f8f9fa;
    padding: 0.75rem;
    border-radius: 8px 8px 0 0;
    font-weight: 600;
    margin-bottom: 0;
}

.rpt-sdoh-domain-content {
    border: 1px solid #dee2e6;
    border-top: none;
    padding: 1rem;
    border-radius: 0 0 8px 8px;
}

.rpt-risk-indicator {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 0.5rem;
}

.rpt-risk-high { background-color: #dc3545; }
.rpt-risk-moderate { background-color: #ffc107; }
.rpt-risk-low { background-color: #28a745; }

.rpt-assessment-item {
    display: flex;
    justify-content: space-between;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f8f9fa;
}

.rpt-assessment-item:last-child {
    border-bottom: none;
}

.rpt-assessment-value {
    font-weight: 600;
}

.rpt-recommendation-card {
    background-color: #e7f3ff;
    border: 1px solid #b3d9ff;
    border-radius: 8px;
    padding: 1rem;
    margin-top: 1rem;
}

/* ========================================
   HOME PAGE STYLES (home-)
   ======================================== */

/* Conditional margin top for home container */
.home-container {
    margin-top: 70px; /* Default for authenticated users */
}

/* When unauthenticated, override navbar display and margins */
body.home-page.unauthenticated #topnavbar,
body.home-page.unauthenticated .navbar,
body.home-page.unauthenticated footer {
    display: none !important;
}

body.home-page.unauthenticated .render-body-container {
    margin-top: 0px !important;
}

body.home-page.unauthenticated .home-container {
    margin-top: 0px;
}

/* Reset default margins for hero layout */
body.home-page {
    margin-top: 0 !important;
}

/* Hero Section Styles */
.home-hero-section {
    position: relative;
    min-height: calc(70vh - 56px);
    display: flex;
    align-items: center;
    overflow: hidden;
}

.home-map-background {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
}

.home-hero-map {
    width: 100%;
    height: 100%;
    opacity: 0.3;
}

.home-map-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, rgba(26, 26, 46, 0.95) 0%, rgba(13, 110, 253, 0.8) 100%);
}

.home-hero-content {
    position: relative;
    z-index: 2;
    width: 100%;
    padding: 3rem 0;
}

.home-welcome-box {
    padding: 1rem 0;
}

.home-feature-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem;
}

.home-feature-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.5rem 1.25rem;
    background: rgba(255, 255, 255, 0.1);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50px;
    color: white;
    font-size: 0.9rem;
}

.home-map-stats {
    display: flex;
    gap: 3rem;
    margin-top: 2rem;
}

.home-stat-item {
    text-align: center;
}

.home-stat-value {
    font-size: 2.5rem;
    font-weight: bold;
    color: white;
    line-height: 1;
}

.home-stat-label {
    color: rgba(255, 255, 255, 0.7);
    font-size: 0.9rem;
    margin-top: 0.5rem;
}

/* Sign In Box */
.home-signin-wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
}

.home-signin-box {
    background: white;
    padding: 2.5rem;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.3);
    width: 100%;
    max-width: 400px;
}

/* Info Section */
.home-info-section {
    /*  background: #f8f9fa;*/
}

.home-info-card {
    text-align: center;
    padding: 2rem;
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s;
    height: 100%;
}

.home-info-card:hover {
    transform: translateY(-5px);
}

.home-info-icon {
    color: #0d6efd;
    margin-bottom: 1.5rem;
}

/* Dashboard Styles */
.home-dashboard-container {
    min-height: calc(100vh - 56px);
    background: #f8f9fa;
}

/* Modern Welcome Header */
.home-welcome-header-modern {
    background: white;
    padding: 2rem;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    margin-bottom: 2rem;
}

/* Metric Cards */
.home-metric-card {
    background: white;
    border-radius: 15px;
    padding: 1.5rem;
    height: 100%;
    position: relative;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
}

.home-metric-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.12);
}

.home-metric-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 4px;
}

.home-gradient-primary::before {
    background: linear-gradient(90deg, #667eea, #764ba2);
}

.home-gradient-success::before {
    background: linear-gradient(90deg, #06b6d4, #10b981);
}

.home-gradient-warning::before {
    background: linear-gradient(90deg, #f59e0b, #ef4444);
}

.home-gradient-info::before {
    background: linear-gradient(90deg, #3b82f6, #8b5cf6);
}

.home-metric-icon {
    position: absolute;
    top: 1rem;
    right: 1rem;
    font-size: 2.5rem;
    opacity: 0.1;
}

.home-metric-value {
    font-size: 2.5rem;
    font-weight: bold;
    margin-bottom: 0.5rem;
    color: #1a1a2e;
    animation: countUp 0.6s ease-out;
}

.home-metric-label {
    color: #6c757d;
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
}

.home-metric-trend {
    font-size: 0.85rem;
}

/* Dashboard Cards */
.home-dashboard-card {
    background: white;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.home-card-header-modern {
    padding: 1.25rem 1.5rem;
    border-bottom: 1px solid #f0f0f0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.home-card-body-modern {
    padding: 1.5rem;
}

/* Risk Indicators */
.home-risk-indicator {
    display: inline-block;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    margin-right: 0.5rem;
}

.home-risk-indicator.low {
    background-color: #10b981;
}

.home-risk-indicator.medium {
    background-color: #f59e0b;
}

.home-risk-indicator.high {
    background-color: #ef4444;
}

.home-risk-indicator.critical {
    background-color: #1a1a2e;
}

/* Quick Actions Modern */
.home-quick-actions-modern {
    margin-bottom: 2rem;
}

.home-action-card-modern {
    display: flex;
    align-items: center;
    padding: 1rem;
    background: white;
    border-radius: 12px;
    text-decoration: none;
    color: #495057;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
    transition: all 0.3s ease;
    height: 100%;
}

.home-action-card-modern:hover {
    transform: translateY(-3px);
    box-shadow: 0 5px 15px rgba(0, 0, 0, 0.12);
    color: #495057;
}

.home-action-icon {
    width: 48px;
    height: 48px;
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1.25rem;
    margin-right: 1rem;
    flex-shrink: 0;
}

.home-action-icon.gradient-purple {
    background: linear-gradient(135deg, #8b5cf6, #ec4899);
}

.home-action-icon.gradient-success {
    background: linear-gradient(135deg, #06b6d4, #10b981);
}

.home-action-icon.gradient-warning {
    background: linear-gradient(135deg, #f59e0b, #ef4444);
}

.home-action-icon.gradient-info {
    background: linear-gradient(135deg, #3b82f6, #0ea5e9);
}

.home-action-icon.gradient-dark {
    background: linear-gradient(135deg, #1a1a2e, #16213e);
}

.home-action-content {
    display: flex;
    flex-direction: column;
}

.home-action-content span {
    font-weight: 500;
    font-size: 0.95rem;
}

.home-action-content small {
    font-size: 0.8rem;
    margin-top: 0.25rem;
}

/* Activity Timeline */
.home-activity-timeline {
    position: relative;
    padding-left: 0;
}

.home-activity-timeline::before {
    content: '';
    position: absolute;
    left: 15px;
    top: 0.5rem;
    bottom: 0.5rem;
    width: 2px;
    background: #e9ecef;
    display: none;
}

.home-activity-item {
    position: relative;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.home-activity-item:last-child {
    margin-bottom: 0;
}

.home-activity-icon {
    position: relative;
    left: 0;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 0.875rem;
    flex-shrink: 0;
}

.home-activity-content {
    flex: 1;
}

/* AI Insights */
.home-ai-insight-item {
    display: flex;
    gap: 1rem;
}

.home-insight-icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: #f8f9fa;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
}

/* Map Container */
.home-map-container {
    padding: 1rem;
    position: relative;
}

.home-map-chart {
    width: 100%;
    height: 300px;
}

.home-map-tabs {
    display: flex;
    gap: 0.5rem;
}

.home-map-tab {
    padding: 0.375rem 0.75rem;
    border: 1px solid #dee2e6;
    background: white;
    border-radius: 4px;
    font-size: 0.875rem;
    cursor: pointer;
    transition: all 0.2s;
}

.home-map-tab.active {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

/* Patient Welcome */
.home-patient-welcome-modern {
    background: white;
    border-radius: 15px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
    overflow: hidden;
}

.home-patient-hero {
    text-align: center;
    padding: 4rem 2rem;
}

.home-patient-avatar {
    width: 100px;
    height: 100px;
    background: linear-gradient(135deg, #667eea, #764ba2);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto 2rem;
    font-size: 3rem;
    color: white;
}

/* Animations */
@keyframes home-countUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Form Floating Labels */
.home-form-floating > label {
    color: #6c757d;
}

.home-form-floating > .form-control:focus ~ label,
.home-form-floating > .form-control:not(:placeholder-shown) ~ label {
    color: #0d6efd;
}

/* Responsive */
@media (max-width: 767px) {
    .home-metric-card {
        margin-bottom: 1rem;
    }

    .home-welcome-header-modern h1 {
        font-size: 1.75rem;
    }

    .home-header-actions {
        margin-top: 1rem;
    }
}

@media (max-width: 991.98px) {
    .home-hero-section {
        min-height: auto;
    }

    .home-hero-content {
        padding: 2rem 0;
    }

    .home-map-stats {
        gap: 2rem;

/* Patient Page Styles */
/* Video transform styles for patient page */
.pt-flipX video::-webkit-media-text-track-display {
    transform: matrix(-1, 0, 0, 1, 0, 0) !important;
}

.pt-flipXY video::-webkit-media-text-track-display {
    transform: matrix(-1, 0, 0, -1, 0, 0) !important;
}

.pt-flipXYX video::-webkit-media-text-track-display {
    transform: matrix(1, 0, 0, -1, 0, 0) !important;
}

/* Patient page main container - add top margin to prevent topbar obstruction */
.pt-main-container {
    margin-top: 70px !important;
}

/* Patient page sidebar styles to restore custom left-side menu */
.pt-bd-sidebar {
    background-color: #f8f9fa !important;
    border-right: 1px solid #dee2e6;
}

/* Override the .bd-sidebar .nav-link rule that's causing the heavy padding */
#navlist.bd-sidebar .nav-link {
    display: inline-flex !important;
    padding: 0.1875rem 0.5rem !important;
    margin-top: 0.125rem !important;
    margin-left: 0.8rem !important;
    text-decoration: none !important;
    border: none !important;
    border-left: none !important;
    background-color: transparent !important;
    border-radius: 0 !important;
    font-weight: normal !important;
    transition: none !important;
    position: static !important;
    align-items: center !important;
}

#navlist.bd-sidebar .nav-link:hover,
#navlist.bd-sidebar .nav-link:focus {
    background-color: #d2f4ea !important;
    border: none !important;
    border-left: none !important;
}

/* Selected state - when JavaScript adds these classes */
#navlist.bd-sidebar .nav-link.text-bg-dark.bg-opacity-75.text-white i.fa-solid {
    color: #fff !important;
}
#navlist.bd-sidebar .nav-link.text-bg-dark i.fa-solid {
    color: #fff !important;
}
#navlist.bd-sidebar .nav-link.text-white i.fa-solid {
    color: #fff !important;
}

/* Style the btn-toggle for patient sidebar */
#navlist .btn-toggle {
    color: rgba(0, 0, 0, .65) !important;
    background-color: transparent !important;
    border: 0 !important;
    padding: .25rem .5rem !important;
    font-weight: 600 !important;
}

#navlist .btn-toggle:hover {
    color: rgba(0, 0, 0, .85) !important;
    background-color: #d2f4ea !important;
}

/* Patient page menu toggle button positioning */
.pt-menu-toggle-container {
    position: fixed !important;
    z-index: 1000;
    top: 60px !important;
    left: 290px !important;
  /*  width: auto;*/
    display: inline-block !important;
    transition: left 0.35s ease;
}

.pt-menu-toggle-container > div {
    display: inline-block;
    /*width: auto;*/
}

/* When sidebar is collapsed, move toggle to left edge */
#navlist.collapse:not(.show) ~ .bd-content .pt-menu-toggle-container {
    left: 0px;
}

.pt-menu-toggle-container .bg-light {
    background-color: #f8f9fa !important;
}
    }

    .home-stat-value {
        font-size: 2rem;
    }

    .home-signin-box {
        margin-top: 2rem;
    }

    .home-map-panel {
        margin-top: 2rem;
    }
}

@media (max-width: 575.98px) {
    .home-feature-pills {
        justify-content: center;
    }

    .home-map-stats {
        flex-direction: column;
        gap: 1rem;
        align-items: center;
    }
}

/* ========================================
   STATISTICS PAGE STYLES (stats-)
   ======================================== */

.stats-statistics-dashboard {
    /* background: #f8f9fa;*/
    min-height: calc(100vh - 56px);
    margin-top: 56px;
}

.stats-dashboard-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.stats-refresh-indicators {
    /*  display: flex;*/
    align-items: center;
    gap: 0.5rem;
}

.stats-loading-placeholder {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 2rem;
}

.stats-activity-log-section {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    overflow-x: hidden;
}

.stats-section-header {
    border-bottom: 2px solid #e9ecef;
    padding-bottom: 1rem;
}

.stats-log-container {
    max-height: 600px;
    overflow-y: auto;
    overflow-x: hidden;
}

/* Scrollbar styling */
.stats-log-container::-webkit-scrollbar {
    width: 8px;
}

.stats-log-container::-webkit-scrollbar-track {
    background: #f1f1f1;
    border-radius: 4px;
}

.stats-log-container::-webkit-scrollbar-thumb {
    background: #888;
    border-radius: 4px;
}

.stats-log-container::-webkit-scrollbar-thumb:hover {
    background: #555;
}

/* Global Stats Container */
.stats-global-stats-container {
    min-height: calc(100vh - 56px);
}

/* Page Header */
.stats-page-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Stat Cards */
.stats-stat-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    transition: transform 0.2s;
}

.stats-stat-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.stats-card-title {
    color: #495057;
    margin-bottom: 1.5rem;
    font-weight: 600;
    padding-bottom: 1rem;
    border-bottom: 2px solid #e9ecef;
}

/* Stat Items */
.stats-stat-items {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.stats-stat-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.75rem 0;
    border-bottom: 1px solid #f8f9fa;
    transition: background-color 0.2s;
}

.stats-stat-item:last-child {
    border-bottom: none;
}

.stats-stat-item:hover {
    background-color: #f8f9fa;
    margin: 0 -1rem;
    padding-left: 1rem;
    padding-right: 1rem;
    border-radius: 6px;
}

.stats-stat-label {
    color: #495057;
    font-weight: 500;
    display: flex;
    align-items: center;
}

.stats-stat-value .badge {
    font-size: 1rem;
    padding: 0.5rem 1rem;
    font-weight: 500;
}

/* Summary Cards */
.stats-summary-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    transition: transform 0.2s;
}

.stats-summary-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.stats-summary-icon {
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    font-size: 2rem;
    flex-shrink: 0;
}

.stats-bg-primary-soft {
    background: rgba(13, 110, 253, 0.1);
}

.stats-bg-success-soft {
    background: rgba(25, 135, 84, 0.1);
}

.stats-summary-content {
    flex: 1;
}

.stats-summary-label {
    color: #6c757d;
    margin-bottom: 0.5rem;
    font-weight: 500;
}

.stats-summary-value {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.stats-primary-value {
    font-size: 2rem;
    font-weight: 700;
    color: #212529;
    line-height: 1;
}

.stats-secondary-value {
    color: #6c757d;
    font-size: 1rem;
}

.stats-unit {
    font-size: 1.25rem;
    color: #6c757d;
    font-weight: 500;
}

/* Chart Card */
.stats-chart-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    margin-bottom: 2rem;
}

.stats-chart-container {
    position: relative;
    height: 400px;
    padding: 1rem 0;
}

/* Responsive */
@media (max-width: 768px) {
    .stats-stat-item {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .stats-summary-card {
        flex-direction: column;
        text-align: center;
    }
    
    .stats-summary-icon {
        width: 60px;
        height: 60px;
        font-size: 1.5rem;
    }
    
    .stats-primary-value {
        font-size: 1.5rem;
    }
    
    .stats-chart-container {
        height: 300px;
    }
}

@media (max-width: 576px) {
    .stats-stat-value .badge {
        font-size: 0.875rem;
        padding: 0.375rem 0.75rem;
    }
}

/* Client Stats Container */
.stats-client-stats-container {
    min-height: calc(100vh - 56px);
}

/* Filter Card */
.stats-filter-card {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

/* Filter Elements */
.stats-filter-select,
.stats-filter-input {
    border-radius: 8px;
    transition: all 0.3s;
    border-width: 2px;
}

.stats-filter-select:focus,
.stats-filter-input:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.stats-filter-select.has-value,
.stats-filter-input.has-value {
    border-color: #0d6efd;
    background-color: rgba(13, 110, 253, 0.05);
}

/* Quick Filters */
.stats-quick-filters {
    padding-top: 1rem;
    border-top: 1px solid #e9ecef;
}

/* Results Section */
.stats-results-section {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    min-height: 400px;
    overflow: hidden;
}

.stats-loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 5rem 0;
}

.stats-loading-container .spinner-border {
    width: 4rem;
    height: 4rem;
}

/* Button Styles */
.stats-client-stats-container .btn {
    border-radius: 6px;
    transition: all 0.2s;
}

.stats-client-stats-container .btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.stats-client-stats-container .btn-group .btn {
    border-radius: 6px;
    margin: 0 2px;
}

.stats-client-stats-container .btn-group .btn:hover {
    z-index: 1;
}

/* Responsive */
@media (max-width: 768px) {
    .stats-quick-filters {
        text-align: center;
    }
    
    .stats-client-stats-container .btn-group {
        display: flex;
        flex-wrap: wrap;
        gap: 0.25rem;
        margin-top: 0.5rem;
    }
}

/* ========================================
   DOCUMENT VIEWER STYLES (doc-)
   ======================================== */

/* Combined Header Card - Ultra Compact */
.doc-combined-header-card {
    background: white;
    border-radius: 6px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05);
    padding: 0.5rem 0.75rem;
    margin-bottom: 0.5rem;
}

/* Combined Info Rows */
.doc-combined-info-row,
.doc-document-info-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
}

.doc-combined-info-row {
    padding-bottom: 0.375rem;
    border-bottom: 1px solid #e9ecef;
}

.doc-document-info-row {
    padding-top: 0.375rem;
}

/* Patient and Document Sections */
.doc-patient-section,
.doc-document-section {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex: 1;
}

/* Combined Icons */
.doc-combined-icon {
    font-size: 1rem;
    color: #0d6efd;
    opacity: 0.8;
    flex-shrink: 0;
}

/* Inline Info */
.doc-patient-info-inline,
.doc-document-info-inline {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.25rem;
    font-size: 0.8125rem;
    line-height: 1.2;
}

.doc-patient-name-inline {
    font-weight: 600;
    color: #212529;
}

.doc-document-name-inline {
    font-weight: 600;
    color: #212529;
}

.doc-demo-inline,
.doc-practice-inline {
    color: #6c757d;
}

.doc-document-date-inline {
    color: #6c757d;
    font-weight: 400;
    margin-left: 0.25rem;
}

.doc-info-separator {
    color: #dee2e6;
    margin: 0 0.25rem;
}

/* OIG Compact */
.doc-oig-compact {
    display: flex;
    align-items: center;
    cursor: pointer;
}

/* Deceased Styling */
.doc-deceased-indicator {
    color: #dc3545;
    margin-left: 0.25rem;
    cursor: help;
}

.doc-deceased-indicator i {
    font-size: 0.75rem;
}

/* PHI Hidden */
.doc-phi-hidden {
    background-color: #000;
    color: #000;
    padding: 0 0.25rem;
    border-radius: 3px;
}

/* Compact Document Actions */
.doc-document-actions-compact {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
    margin-top: 0.375rem;
    padding-top: 0.375rem;
    border-top: 1px solid #e9ecef;
}

.doc-document-options-wrapper {
    position: relative;
}

.doc-dropdown-menu-custom {
    background: white;
    border: 1px solid rgba(0, 0, 0, 0.15);
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
    margin-top: 0.5rem;
    min-width: 200px;
    z-index: 1000;
}

.doc-dropdown-menu-custom .bg-hover-select {
    transition: background-color 0.15s ease;
    cursor: pointer;
}

.doc-dropdown-menu-custom .bg-hover-select:hover {
    background-color: #f8f9fa;
}

.doc-dropdown-menu-custom .bg-hover-select a {
    color: #212529;
    text-decoration: none;
    display: block;
    padding: 0.25rem 0;
}

/* Compact Navigation */
.doc-navigation-buttons-compact {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.doc-nav-button-group {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.125rem;
}

.doc-nav-btn-compact {
    padding: 0.25rem 0.5rem;
    font-size: 0.8125rem;
}

.doc-nav-date-label {
    font-size: 0.6875rem;
    color: #6c757d;
    white-space: nowrap;
    line-height: 1;
    min-height: 0.875rem;
}

/* Button Styling */
.doc-combined-header-card .btn-outline-primary,
.doc-combined-header-card .btn-outline-secondary {
    border-radius: 5px;
    font-size: 0.8125rem;
    font-weight: 500;
    transition: all 0.15s ease;
}

.doc-combined-header-card .btn-outline-primary:hover,
.doc-combined-header-card .btn-outline-secondary:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.doc-combined-header-card .btn-outline-primary i,
.doc-combined-header-card .btn-outline-secondary i {
    font-size: 0.75rem;
}

/* Hide button text on very small screens */
@media (max-width: 480px) {
    .doc-btn-text {
        display: none;
    }
}

/* Responsive */
@media (max-width: 768px) {
    .doc-combined-header-card {
        padding: 0.5rem;
    }
    
    .doc-combined-info-row,
    .doc-document-info-row {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.5rem;
    }
    
    .doc-patient-section,
    .doc-document-section {
        width: 100%;
    }
    
    .doc-patient-info-inline,
    .doc-document-info-inline {
        font-size: 0.75rem;
    }
    
    .doc-combined-icon {
        font-size: 0.875rem;
    }
    
    .doc-info-separator {
        display: none;
    }
    
    .doc-demo-inline,
    .doc-practice-inline {
        display: block;
        width: 100%;
    }
    
    .doc-document-actions-compact {
        flex-wrap: wrap;
        gap: 0.5rem;
    }
    
    .doc-navigation-buttons-compact {
        width: 100%;
        justify-content: center;
        order: -1;
    }
    
    .doc-oig-compact {
        position: absolute;
        top: 0.5rem;
        right: 0.5rem;
    }
}

/* ============================================ */
/* Manage Views Styles (prefixed with 'manage-') */
/* ============================================ */

/* Styles from Manage/Index.cshtml */
.manage-card {
    transition: transform 0.2s;
}
.manage-card:hover {
    transform: translateY(-2px);
}
.manage-list-group-item {
    border-left: none;
    border-right: none;
}
.manage-list-group-item:first-child {
    border-top: none;
}
.manage-list-group-item:last-child {
    border-bottom: none;
}

/* Styles from Manage/SetupTwoFactor.cshtml */
.manage-accordion-button:not(.collapsed) {
    background-color: #f8f9fa;
    color: #0d6efd;
}
.manage-accordion-button:focus {
    box-shadow: none;
    border-color: #dee2e6;
}

/* ============================================ */
/* AdHocReporting Views Styles (prefixed with 'query-') */
/* ============================================ */

/* Styles from AdHocReporting/QueryBuilder.cshtml */
.query-builder-container {
    height: calc(100vh - 150px);
    display: flex;
    flex-direction: column;
}

.query-builder-header {
    padding: 15px;
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
}

.query-builder-body {
    flex: 1;
    display: flex;
    overflow: hidden;
}

.query-builder-sidebar {
    width: 250px;
    background: #f8f9fa;
    border-right: 1px solid #dee2e6;
    overflow-y: auto;
}

.query-builder-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.query-canvas {
    flex: 1;
    padding: 20px;
    overflow-y: auto;
    background: #fff;
}

.query-results {
    height: 300px;
    border-top: 1px solid #dee2e6;
    overflow: auto;
}

.query-data-source-item {
    padding: 10px 15px;
    cursor: pointer;
    border-bottom: 1px solid #e9ecef;
    transition: background 0.2s;
}

.query-data-source-item:hover {
    background: #e9ecef;
}

.query-data-source-item.selected {
    background: #e7f3ff;
    border-left: 3px solid #0d6efd;
}

.query-field-item {
    padding: 8px 15px;
    cursor: move;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.875rem;
}

.query-field-item:hover {
    background: #f8f9fa;
}

.query-field-item i {
    margin-right: 5px;
    color: #6c757d;
}

.query-section {
    margin-bottom: 30px;
    padding: 20px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: #f8f9fa;
}

.query-section-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 15px;
    color: #495057;
}

.query-selected-field {
    display: inline-block;
    padding: 5px 10px;
    margin: 5px;
    background: #e7f3ff;
    border: 1px solid #b8daff;
    border-radius: 4px;
    font-size: 0.875rem;
}

.query-selected-field .remove {
    margin-left: 5px;
    cursor: pointer;
    color: #dc3545;
}

.query-join-builder {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 10px;
    background: white;
    border-radius: 4px;
}

.query-condition-builder {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 10px;
    background: white;
    border-radius: 4px;
}

.query-sql-preview {
    font-family: 'Courier New', monospace;
    font-size: 0.875rem;
    background: #2d2d2d;
    color: #f8f8f2;
    padding: 15px;
    border-radius: 4px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.query-mode-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.query-mode-tab {
    padding: 8px 20px;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    cursor: pointer;
    background: white;
    transition: all 0.2s;
}

.query-mode-tab.active {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

.query-results-table {
    font-size: 0.875rem;
}

.query-results-table th {
    position: sticky;
    top: 0;
    background: #f8f9fa;
    z-index: 1;
}

.query-dragging {
    opacity: 0.5;
    cursor: move;
}

.query-drag-over {
    background-color: #e7f3ff;
    border: 2px dashed #0d6efd;
}

.query-drop-zone {
    min-height: 60px;
    padding: 10px;
    border: 1px dashed #dee2e6;
    border-radius: 4px;
}

/* Styles from AdHocReporting/Index.cshtml */
.query-adhoc-dashboard {
    padding: 20px;
}

.query-report-card {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s;
    cursor: pointer;
}

.query-report-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.query-template-card {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 15px;
    background: #f8f9fa;
}

.query-template-card:hover {
    background: #e9ecef;
}

.query-history-item {
    padding: 10px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}

.query-history-item:hover {
    background: #f8f9fa;
}

.query-data-source-tile {
    text-align: center;
    padding: 20px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 15px;
    cursor: pointer;
    transition: all 0.3s;
}

.query-data-source-tile:hover {
    background: #f8f9fa;
    border-color: #0d6efd;
}

.query-data-source-tile i {
    font-size: 2rem;
    color: #6c757d;
    margin-bottom: 10px;
}

.query-quick-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    text-decoration: none;
    color: #495057;
    transition: all 0.3s;
}

.query-quick-action-btn:hover {
    border-color: #0d6efd;
    color: #0d6efd;
    background: #f8f9fa;
    text-decoration: none;
}

.query-quick-action-btn i {
    font-size: 3rem;
    margin-bottom: 10px;
}
EOF < /dev/null
/* ============================================ */
/* Manage Views Styles (prefixed with 'manage-') */
/* ============================================ */

/* Styles from Manage/Index.cshtml */
.manage-card {
    transition: transform 0.2s;
}
.manage-card:hover {
    transform: translateY(-2px);
}
.manage-list-group-item {
    border-left: none;
    border-right: none;
}
.manage-list-group-item:first-child {
    border-top: none;
}
.manage-list-group-item:last-child {
    border-bottom: none;
}

/* Styles from Manage/SetupTwoFactor.cshtml */
.manage-accordion-button:not(.collapsed) {
    background-color: #f8f9fa;
    color: #0d6efd;
}
.manage-accordion-button:focus {
    box-shadow: none;
    border-color: #dee2e6;
}
/* ============================================ */
/* AdHocReporting Views Styles (prefixed with 'query-') */
/* ============================================ */

/* Styles from AdHocReporting/QueryBuilder.cshtml */
.query-builder-container {
    height: calc(100vh - 150px);
    display: flex;
    flex-direction: column;
}

.query-builder-header {
    padding: 15px;
    background: #f8f9fa;
    border-bottom: 1px solid #dee2e6;
}

.query-builder-body {
    flex: 1;
    display: flex;
    overflow: hidden;
}

.query-builder-sidebar {
    width: 250px;
    background: #f8f9fa;
    border-right: 1px solid #dee2e6;
    overflow-y: auto;
}

.query-builder-main {
    flex: 1;
    display: flex;
    flex-direction: column;
}

.query-canvas {
    flex: 1;
    padding: 20px;
    overflow-y: auto;
    background: #fff;
}

.query-results {
    height: 300px;
    border-top: 1px solid #dee2e6;
    overflow: auto;
}

.query-data-source-item {
    padding: 10px 15px;
    cursor: pointer;
    border-bottom: 1px solid #e9ecef;
    transition: background 0.2s;
}

.query-data-source-item:hover {
    background: #e9ecef;
}

.query-data-source-item.selected {
    background: #e7f3ff;
    border-left: 3px solid #0d6efd;
}

.query-field-item {
    padding: 8px 15px;
    cursor: move;
    border-bottom: 1px solid #f0f0f0;
    font-size: 0.875rem;
}

.query-field-item:hover {
    background: #f8f9fa;
}

.query-field-item i {
    margin-right: 5px;
    color: #6c757d;
}

.query-section {
    margin-bottom: 30px;
    padding: 20px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: #f8f9fa;
}

.query-section-title {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 15px;
    color: #495057;
}

.query-selected-field {
    display: inline-block;
    padding: 5px 10px;
    margin: 5px;
    background: #e7f3ff;
    border: 1px solid #b8daff;
    border-radius: 4px;
    font-size: 0.875rem;
}

.query-selected-field .remove {
    margin-left: 5px;
    cursor: pointer;
    color: #dc3545;
}

.query-join-builder {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 10px;
    background: white;
    border-radius: 4px;
}

.query-condition-builder {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 10px;
    padding: 10px;
    background: white;
    border-radius: 4px;
}

.query-sql-preview {
    font-family: 'Courier New', monospace;
    font-size: 0.875rem;
    background: #2d2d2d;
    color: #f8f8f2;
    padding: 15px;
    border-radius: 4px;
    white-space: pre-wrap;
    word-wrap: break-word;
}

.query-mode-tabs {
    display: flex;
    gap: 10px;
    margin-bottom: 20px;
}

.query-mode-tab {
    padding: 8px 20px;
    border: 1px solid #dee2e6;
    border-radius: 4px;
    cursor: pointer;
    background: white;
    transition: all 0.2s;
}

.query-mode-tab.active {
    background: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

.query-results-table {
    font-size: 0.875rem;
}

.query-results-table th {
    position: sticky;
    top: 0;
    background: #f8f9fa;
    z-index: 1;
}

.query-dragging {
    opacity: 0.5;
    cursor: move;
}

.query-drag-over {
    background-color: #e7f3ff;
    border: 2px dashed #0d6efd;
}

.query-drop-zone {
    min-height: 60px;
    padding: 10px;
    border: 1px dashed #dee2e6;
    border-radius: 4px;
}

/* Styles from AdHocReporting/Index.cshtml */
.query-adhoc-dashboard {
    padding: 20px;
}

.query-report-card {
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    padding: 20px;
    margin-bottom: 20px;
    transition: all 0.3s;
    cursor: pointer;
}

.query-report-card:hover {
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transform: translateY(-2px);
}

.query-template-card {
    border: 1px solid #e9ecef;
    border-radius: 8px;
    padding: 15px;
    margin-bottom: 15px;
    background: #f8f9fa;
}

.query-template-card:hover {
    background: #e9ecef;
}

.query-history-item {
    padding: 10px;
    border-bottom: 1px solid #f0f0f0;
    cursor: pointer;
}

.query-history-item:hover {
    background: #f8f9fa;
}

.query-data-source-tile {
    text-align: center;
    padding: 20px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    margin-bottom: 15px;
    cursor: pointer;
    transition: all 0.3s;
}

.query-data-source-tile:hover {
    background: #f8f9fa;
    border-color: #0d6efd;
}

.query-data-source-tile i {
    font-size: 2rem;
    color: #6c757d;
    margin-bottom: 10px;
}

.query-quick-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 20px;
    border: 2px dashed #dee2e6;
    border-radius: 8px;
    text-decoration: none;
    color: #495057;
    transition: all 0.3s;
}

.query-quick-action-btn:hover {
    border-color: #0d6efd;
    color: #0d6efd;
    background: #f8f9fa;
    text-decoration: none;
}

.query-quick-action-btn i {
    font-size: 3rem;
    margin-bottom: 10px;
}

/* MMR Monthly Summary Styles - prefixed with "mmr-" */
.mmr-cursor-pointer {
    cursor: pointer;
}

.mmr-table tbody tr.mmr-cursor-pointer:hover {
    background-color: rgba(13, 110, 253, 0.075);
    transform: translateX(2px);
    transition: all 0.2s ease;
}

/* MMR Monthly Detail Styles - prefixed with "mmr-" */
.mmr-accordion-button:not(.collapsed) {
    background-color: #f8f9fa;
    color: #0d6efd;
}

.mmr-accordion-button:focus {
    box-shadow: none;
    border-color: rgba(0,0,0,.125);
}

/* Patient Rx Medication History Styles - prefixed with "pt-" */
.pt-rx-history-container {
    padding: 1.5rem;
}

.pt-section-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-section-header h3 {
    color: #495057;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.pt-table-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.pt-rx-history-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-rx-history-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-medication-row {
    transition: all 0.2s;
}

.pt-medication-row:hover {
    background-color: #f8f9fa;
}

.pt-medication-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-medication-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
}

.pt-fw-500 {
    font-weight: 500;
}

.pt-fw-600 {
    font-weight: 600;
}

.pt-code-value {
    font-family: monospace;
    color: #495057;
    font-weight: 500;
    background: #f8f9fa;
    padding: 0.125rem 0.375rem;
    border-radius: 3px;
}

.pt-occurrence-badge {
    background: #e9ecef;
    color: #495057;
    padding: 0.375rem 0.75rem;
    border-radius: 20px;
    font-weight: 600;
    display: inline-block;
    min-width: 40px;
}

.pt-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-details-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 1rem;
}

.pt-details-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

.pt-details-row td {
    background: #f8f9fa;
    border: none;
}

.pt-details-container {
    background: white;
    margin: 1rem;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-details-header {
    background: #e9ecef;
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: #495057;
    border-bottom: 1px solid #dee2e6;
}

.pt-fills-accordion {
    border-top: 1px solid #dee2e6;
}

.pt-fill-item {
    border-bottom: 1px solid #dee2e6;
}

.pt-fill-item:last-child {
    border-bottom: none;
}

.pt-fill-header {
    background: #f8f9fa;
}

.pt-fill-toggle {
    width: 100%;
    text-align: left;
    padding: 0.75rem 1rem;
    background: none;
    border: none;
    color: #495057;
    text-decoration: none;
    display: flex;
    align-items: center;
    transition: all 0.2s;
}

.pt-fill-toggle:hover {
    background: #e9ecef;
    color: #212529;
    text-decoration: none;
}

.pt-fill-toggle[aria-expanded="true"] .fa-chevron-right {
    transform: rotate(90deg);
}

.pt-fill-toggle .fa-chevron-right {
    transition: transform 0.2s;
}

.pt-fill-date {
    color: #6c757d;
    font-size: 0.875rem;
    font-weight: normal;
}

.pt-fill-body {
    background: white;
    padding: 1rem;
}

.pt-fill-details-table {
    font-size: 0.875rem;
}

.pt-fill-details-table td {
    padding: 0.5rem;
    border-top: 1px solid #f8f9fa;
    vertical-align: middle;
}

.pt-fill-details-table tr:first-child td {
    border-top: none;
}

.pt-detail-label {
    width: 200px;
    font-weight: 600;
    color: #6c757d;
    font-size: 0.875rem;
    white-space: nowrap;
    padding-right: 1rem;
}

.pt-detail-value {
    color: #212529;
    word-break: break-word;
}

.pt-status-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
    background: #e9ecef;
    color: #495057;
}

.pt-status-badge.active {
    background: #d1ecf1;
    color: #0c5460;
}

.pt-status-badge.scheduled {
    background: #fff3cd;
    color: #856404;
}

.pt-quantity-badge {
    display: inline-block;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-weight: 600;
}

.pt-days-badge {
    display: inline-block;
    background: #d1ecf1;
    color: #0c5460;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-weight: 500;
}

.pt-refill-badge {
    display: inline-block;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-weight: 500;
}

.pt-note-text {
    font-size: 0.875rem;
    color: #6c757d;
    max-width: 400px;
    display: inline-block;
    line-height: 1.5;
}

.pt-sig-text {
    font-style: italic;
    color: #495057;
    background: #f8f9fa;
    padding: 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    display: inline-block;
    line-height: 1.5;
}

@media (max-width: 1200px) {
    .pt-note-text {
        max-width: 300px;
    }
}

@media (max-width: 768px) {
    .pt-rx-history-container {
        padding: 1rem;
    }
    
    .pt-rx-history-table {
        font-size: 0.875rem;
    }
    
    .pt-rx-history-table thead th,
    .pt-medication-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-details-btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.8125rem;
    }
    
    .pt-detail-label {
        width: 150px;
    }
}

/* ================================================================
   PATIENT VIEW STYLES - CONSOLIDATED FROM INDIVIDUAL VIEW FILES
   ================================================================ */

/* Patient Procedures Styles - prefixed with "pt-proc-" */
.pt-proc-procedures-container {
    padding: 1.5rem;
}

/* Section Header */
.pt-proc-section-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-proc-section-header h3 {
    color: #495057;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

/* Table Card */
.pt-proc-table-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

/* Procedures Table */
.pt-proc-procedures-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-proc-procedures-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-proc-procedure-row {
    transition: all 0.2s;
}

.pt-proc-procedure-row:hover {
    background-color: #f8f9fa;
}

.pt-proc-procedure-row td {
    padding: 1rem;
    vertical-align: middle;
}

/* Procedure Name */
.pt-proc-procedure-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
}

.pt-proc-fw-500 {
    font-weight: 500;
}

/* Date Badge */
.pt-proc-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.375rem 0.75rem;
    border-radius: 6px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Provider Info */
.pt-proc-provider-info {
    line-height: 1.5;
}

.pt-proc-provider-name {
    font-weight: 500;
    color: #495057;
}

.pt-proc-practice-name {
    font-size: 0.875rem;
    color: #6c757d;
}

/* Related Documents Button */
.pt-proc-related-docs-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 1rem;
}

.pt-proc-related-docs-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

/* Related Documents Container */
.pt-proc-related-docs-row td {
    background: #f8f9fa;
    border: none;
}

.pt-proc-related-docs-container {
    background: white;
    margin: 1rem;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-proc-related-header {
    background: #e9ecef;
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: #495057;
    border-bottom: 1px solid #dee2e6;
}

/* Related Table */
.pt-proc-related-table {
    font-size: 0.875rem;
}

.pt-proc-related-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #6c757d;
    padding: 0.75rem;
    border-bottom: 1px solid #dee2e6;
}

.pt-proc-related-table td {
    padding: 0.75rem;
    vertical-align: middle;
}

/* Document Name */
.pt-proc-doc-name {
    display: flex;
    align-items: center;
    font-weight: 500;
}

/* Category Badge */
.pt-proc-category-badge {
    display: inline-block;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

/* View Button */
.pt-proc-view-btn {
    border-radius: 6px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 0.75rem;
}

.pt-proc-view-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(13, 110, 253, 0.2);
}

/* Document Preview */
.pt-proc-document-preview {
    padding: 1rem;
    background: #f8f9fa;
}

.pt-proc-preview-iframe {
    width: 100%;
    height: 600px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: white;
}

/* Responsive */
@media (max-width: 768px) {
    .pt-proc-procedures-container {
        padding: 1rem;
    }
    
    .pt-proc-procedures-table {
        font-size: 0.875rem;
    }
    
    .pt-proc-procedures-table thead th,
    .pt-proc-procedure-row td {
        padding: 0.75rem 0.5rem;
    }
    
    .pt-proc-related-docs-btn {
        padding: 0.25rem 0.5rem;
        font-size: 0.875rem;
    }
}

/* Patient Plans of Care Styles - prefixed with "pt-poc-" */
.pt-poc-care-plans-container {
    padding: 1.5rem;
}

/* Section Header */
.pt-poc-section-header {
    background: white;
    padding: 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-poc-section-header h3 {
    color: #495057;
    font-weight: 600;
    margin-bottom: 0.5rem;
}

/* Empty State */
.pt-poc-empty-state {
    background: white;
    padding: 4rem 2rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    text-align: center;
}

/* Care Plan Card */
.pt-poc-care-plan-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

/* Card Header */
.pt-poc-card-header-custom {
    background: #f8f9fa;
    padding: 1.5rem;
    border-bottom: 2px solid #dee2e6;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.pt-poc-header-content h5 {
    color: #495057;
    font-weight: 600;
}

.pt-poc-last-updated {
    font-size: 0.875rem;
    color: #6c757d;
    font-style: italic;
    margin-top: 0.5rem;
}

/* Related Documents Button */
.pt-poc-related-docs-btn {
    border-radius: 20px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 1rem;
    white-space: nowrap;
}

.pt-poc-related-docs-btn:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(13, 110, 253, 0.2);
}

/* Related Documents Section */
.pt-poc-related-docs-section {
    background: #f8f9fa;
    padding: 1rem;
    border-bottom: 1px solid #dee2e6;
}

.pt-poc-related-docs-container {
    background: white;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
}

.pt-poc-related-header {
    background: #e9ecef;
    padding: 0.75rem 1rem;
    font-weight: 600;
    color: #495057;
    border-bottom: 1px solid #dee2e6;
}

/* Related Table */
.pt-poc-related-table {
    font-size: 0.875rem;
}

.pt-poc-related-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #6c757d;
    padding: 0.75rem;
    border-bottom: 1px solid #dee2e6;
}

.pt-poc-related-table td {
    padding: 0.75rem;
    vertical-align: middle;
}

/* Document Name */
.pt-poc-doc-name {
    display: flex;
    align-items: center;
    font-weight: 500;
}

/* Date Badge */
.pt-poc-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Category Badge */
.pt-poc-category-badge {
    display: inline-block;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

/* View Button */
.pt-poc-view-btn {
    border-radius: 6px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 0.75rem;
}

.pt-poc-view-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(13, 110, 253, 0.2);
}

/* Document Preview */
.pt-poc-document-preview {
    padding: 1rem;
    background: #f8f9fa;
}

.pt-poc-preview-iframe {
    width: 100%;
    height: 600px;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    background: white;
}

/* Card Body */
.pt-poc-card-body-custom {
    padding: 1.5rem;
}

/* Detail Section */
.pt-poc-detail-section {
    margin-bottom: 2rem;
}

.pt-poc-detail-section:last-child {
    margin-bottom: 0;
}

.pt-poc-section-title {
    background: #f8f9fa;
    padding: 0.75rem 1rem;
    margin-bottom: 1rem;
    border-radius: 6px;
    font-weight: 600;
    color: #495057;
}

/* Detail Table */
.pt-poc-detail-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-poc-detail-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 0.75rem;
    border-bottom: 2px solid #dee2e6;
}

.pt-poc-detail-table tbody tr {
    transition: all 0.2s;
}

.pt-poc-detail-table tbody tr:hover {
    background-color: #f8f9fa;
}

.pt-poc-detail-table td {
    padding: 0.75rem;
    vertical-align: middle;
}

/* Time Badge */
.pt-poc-time-badge {
    display: inline-flex;
    align-items: center;
    background: #d1ecf1;
    color: #0c5460;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Duration Badge */
.pt-poc-duration-badge {
    display: inline-flex;
    align-items: center;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
}

/* Appointment Type */
.pt-poc-appointment-type {
    font-weight: 600;
    color: #0d6efd;
    margin-bottom: 0.25rem;
}

/* Provider Name */
.pt-poc-provider-name {
    font-weight: 500;
    color: #495057;
}

/* Location Info */
.pt-poc-location-info {
    line-height: 1.5;
    font-size: 0.875rem;
}

.pt-poc-facility-name {
    font-weight: 500;
    color: #495057;
    margin-bottom: 0.25rem;
}

.pt-poc-address-line {
    color: #6c757d;
    padding-left: 1.25rem;
    font-size: 0.875rem;
}

/* Contact Info */
.pt-poc-contact-info {
    line-height: 1.5;
}

.pt-poc-contact-item {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
    margin-bottom: 0.25rem;
}

.pt-poc-contact-item:last-child {
    margin-bottom: 0;
}

.pt-poc-contact-item i {
    color: #6c757d;
    width: 1rem;
}

.pt-poc-contact-number {
    font-family: monospace;
    color: #495057;
    white-space: nowrap;
}

/* Proposal Description */
.pt-poc-proposal-desc {
    color: #212529;
    line-height: 1.5;
}

/* Medication Info */
.pt-poc-medication-info {
    line-height: 1.5;
}

.pt-poc-medication-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
}

.pt-poc-medication-desc {
    color: #6c757d;
    font-size: 0.875rem;
    margin-top: 0.25rem;
    padding-left: 2rem;
}

/* Status Badge */
.pt-poc-status-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
    background: #e9ecef;
    color: #495057;
}

.pt-poc-status-badge.active {
    background: #d1ecf1;
    color: #0c5460;
}

/* Procedure Info */
.pt-poc-procedure-info {
    line-height: 1.5;
}

.pt-poc-procedure-desc {
    font-weight: 500;
    color: #212529;
}

.pt-poc-procedure-reason {
    color: #6c757d;
    font-size: 0.875rem;
    font-style: italic;
    margin-top: 0.25rem;
}

/* Responsive */
@media (max-width: 768px) {
    .pt-poc-care-plans-container {
        padding: 1rem;
    }
    
    .pt-poc-card-header-custom {
        flex-direction: column;
        align-items: flex-start;
        gap: 1rem;
    }
    
    .pt-poc-related-docs-btn {
        width: 100%;
        justify-content: center;
    }
    
    .pt-poc-detail-table {
        font-size: 0.875rem;
    }
    
    .pt-poc-detail-table thead th,
    .pt-poc-detail-table td {
        padding: 0.5rem;
    }
    
    .pt-poc-address-line {
        padding-left: 0;
    }
}

/* Patient Medical Claim Detail Styles - prefixed with "pt-mcd-" */
.pt-mcd-claim-detail-container {
    padding: 1rem;
}

/* Info Card */
.pt-mcd-info-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.pt-mcd-card-header {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 1rem 1.5rem;
    font-weight: 600;
    color: #495057;
}

.pt-mcd-card-body {
    padding: 1.5rem;
}

/* Info Section */
.pt-mcd-info-section {
    height: 100%;
}

.pt-mcd-info-title {
    color: #495057;
    font-weight: 600;
    margin-bottom: 1rem;
    font-size: 0.9375rem;
    display: flex;
    align-items: center;
}

.pt-mcd-info-content {
    font-size: 0.875rem;
    line-height: 1.6;
}

.pt-mcd-provider-name,
.pt-mcd-sub-patient-name {
    font-weight: 600;
    color: #212529;
    margin-bottom: 0.5rem;
}

.pt-mcd-credentials {
    color: #6c757d;
    font-weight: 500;
}

.pt-mcd-info-label {
    font-weight: 600;
    color: #495057;
    margin-right: 0.5rem;
}

.pt-mcd-monospace {
    font-family: monospace;
    background: #f8f9fa;
    padding: 0.125rem 0.375rem;
    border-radius: 3px;
}

/* NPI Link */
.pt-mcd-npi-link {
    color: #0d6efd;
    text-decoration: none;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.2s;
}

.pt-mcd-npi-link:hover {
    color: #0056b3;
    text-decoration: underline;
}

/* PHI Redacted */
.pt-mcd-phi-redacted {
    background: #212529;
    color: #ffc107;
    padding: 0.25rem 0.75rem;
    border-radius: 4px;
    font-size: 0.875rem;
    display: inline-block;
    font-weight: 500;
}

.pt-mcd-redacted-text {
    background: #212529;
    color: #212529;
    padding: 0.125rem 0.25rem;
    border-radius: 2px;
    display: inline-block;
    margin-bottom: 0.25rem;
}

.pt-mcd-redacted-amount {
    background: #212529;
    color: #212529;
    padding: 0.125rem 0.5rem;
    border-radius: 3px;
    font-family: monospace;
}

/* Detail Section */
.pt-mcd-detail-section {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.pt-mcd-section-title {
    background: #f8f9fa;
    border-bottom: 2px solid #dee2e6;
    padding: 1rem 1.5rem;
    font-weight: 600;
    color: #495057;
    font-size: 1rem;
}

/* Table Card */
.pt-mcd-table-card {
    padding: 0;
}

/* Detail Table */
.pt-mcd-detail-table,
.pt-mcd-diagnoses-table {
    margin-bottom: 0;
    font-size: 0.875rem;
}

.pt-mcd-detail-table thead th,
.pt-mcd-diagnoses-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 0.75rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
    font-size: 0.875rem;
}

.pt-mcd-detail-table tbody tr,
.pt-mcd-diagnoses-table tbody tr {
    transition: all 0.2s;
}

.pt-mcd-detail-table tbody tr:hover,
.pt-mcd-diagnoses-table tbody tr:hover {
    background-color: #f8f9fa;
}

.pt-mcd-detail-table td,
.pt-mcd-diagnoses-table td {
    padding: 0.75rem;
    vertical-align: middle;
}

/* Line Number */
.pt-mcd-line-number {
    display: inline-block;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 20px;
    font-weight: 600;
    min-width: 2.5rem;
    text-align: center;
}

/* Date Badge */
.pt-mcd-date-badge {
    display: inline-flex;
    align-items: center;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-mcd-date-badge.small {
    font-size: 0.8125rem;
}

/* Code Badges */
.pt-mcd-code-badge {
    display: inline-block;
    background: #f8f9fa;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-family: monospace;
    font-size: 0.875rem;
}

.pt-mcd-code-badge.primary {
    background: #d1ecf1;
    color: #0c5460;
    font-weight: 500;
}

/* Description Text */
.pt-mcd-description-text {
    color: #212529;
    line-height: 1.5;
}

/* Amount Text */
.pt-mcd-amount-text {
    font-family: monospace;
    font-weight: 500;
    color: #495057;
}

.pt-mcd-amount-text.paid {
    color: #0d6efd;
}

/* Total Row */
.pt-mcd-total-row {
    background: #f8f9fa;
    font-weight: 600;
}

.pt-mcd-total-row td {
    padding: 1rem 0.75rem;
    border-top: 2px solid #dee2e6;
}

.pt-mcd-total-label {
    font-size: 1rem;
    color: #495057;
}

.pt-mcd-total-amount {
    font-family: monospace;
    font-size: 1rem;
    color: #212529;
}

.pt-mcd-total-amount.paid {
    color: #0d6efd;
}

/* Diagnoses Table Specific */
.pt-mcd-diagnosis-code {
    font-family: monospace;
    background: #f8f9fa;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-weight: 500;
    color: #495057;
}

.pt-mcd-diagnosis-description {
    color: #212529;
    line-height: 1.5;
}

.pt-mcd-primary-diagnosis {
    background-color: #fff3cd;
}

.pt-mcd-primary-diagnosis:hover {
    background-color: #ffeeba !important;
}

.pt-mcd-primary-badge {
    display: inline-flex;
    align-items: center;
    background: #ffc107;
    color: #212529;
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
}

/* Responsive */
@media (max-width: 992px) {
    .pt-mcd-info-section {
        margin-bottom: 1.5rem;
    }
    
    .pt-mcd-detail-table,
    .pt-mcd-diagnoses-table {
        font-size: 0.8125rem;
    }
    
    .pt-mcd-detail-table thead th,
    .pt-mcd-diagnoses-table thead th,
    .pt-mcd-detail-table td,
    .pt-mcd-diagnoses-table td {
        padding: 0.5rem;
    }
}

@media (max-width: 768px) {
    .pt-mcd-claim-detail-container {
        padding: 0.5rem;
    }
    
    .pt-mcd-card-body {
        padding: 1rem;
    }
    
    /* Hide some columns on mobile */
    .pt-mcd-detail-table thead th:nth-child(3),
    .pt-mcd-detail-table tbody td:nth-child(3) {
        display: none;
    }
    
    .pt-mcd-diagnoses-table thead th:nth-child(1),
    .pt-mcd-diagnoses-table tbody td:nth-child(1) {
        display: none;
    }
}

/* Contact Page Styles - prefixed with "contact-" */
.contact-container {
    max-width: 800px;
    margin: 0 auto;
    padding: 2rem;
}

.contact-header {
    text-align: center;
    margin-bottom: 3rem;
}

.contact-header h1 {
    color: #2c3e50;
    margin-bottom: 1rem;
}

.contact-header p {
    color: #6c757d;
    font-size: 1.1rem;
}

.contact-info {
    background: #f8f9fa;
    border-radius: 8px;
    padding: 2rem;
    margin-bottom: 3rem;
}

.contact-info-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 2rem;
}

.contact-info-item {
    text-align: center;
}

.contact-info-item i {
    font-size: 2.5rem;
    color: #0d6efd;
    margin-bottom: 1rem;
    display: block;
}

.contact-info-item h4 {
    color: #2c3e50;
    margin-bottom: 0.5rem;
}

.contact-info-item p {
    color: #6c757d;
    margin: 0;
}

.contact-form {
    background: white;
    border: 1px solid #dee2e6;
    border-radius: 8px;
    padding: 2rem;
    box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}

.contact-form .form-group {
    margin-bottom: 1.5rem;
}

.contact-form .form-label {
    font-weight: 600;
    color: #495057;
    margin-bottom: 0.5rem;
}

.contact-form .form-control, 
.contact-form .form-select {
    border-radius: 6px;
    border: 1px solid #ced4da;
    padding: 0.75rem;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

.contact-form .form-control:focus, 
.contact-form .form-select:focus {
    border-color: #0d6efd;
    box-shadow: 0 0 0 0.2rem rgba(13, 110, 253, 0.15);
}

.contact-form textarea.form-control {
    min-height: 150px;
    resize: vertical;
}

.contact-btn-submit {
    background-color: #0d6efd;
    color: white;
    padding: 0.75rem 2rem;
    border: none;
    border-radius: 6px;
    font-size: 1.1rem;
    font-weight: 500;
    transition: background-color 0.15s ease-in-out;
}

.contact-btn-submit:hover {
    background-color: #0b5ed7;
}

.contact-btn-submit:disabled {
    opacity: 0.65;
    cursor: not-allowed;
}

.contact-success-message {
    background-color: #d4edda;
    border: 1px solid #c3e6cb;
    color: #155724;
    padding: 1rem;
    border-radius: 6px;
    margin-bottom: 1rem;
}

.contact-error-message {
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    color: #721c24;
    padding: 1rem;
    border-radius: 6px;
    margin-bottom: 1rem;
}

/* Patient Coverages Styles - prefixed with "pt-" */
.pt-coverages-container {
    padding: 1.5rem;
}

.pt-coverages-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-coverages-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-coverage-row {
    transition: all 0.2s;
}

.pt-coverage-row:hover {
    background-color: #f8f9fa;
}

.pt-coverage-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-payor-info {
    display: flex;
    align-items: center;
}

.pt-subscriber-info {
    line-height: 1.5;
}

.pt-subscriber-name {
    font-weight: 500;
    color: #212529;
    margin-bottom: 0.25rem;
}

.pt-subscriber-address {
    padding-left: 1.25rem;
}

.pt-phi-redacted {
    background: #212529;
    color: #ffc107;
    padding: 0.125rem 0.5rem;
    border-radius: 4px;
    font-size: 0.875rem;
    display: inline-block;
}

.pt-id-badge {
    font-family: monospace;
    background: #e9ecef;
    color: #495057;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-weight: 500;
    display: inline-block;
}

/* Patient Allergies Styles - prefixed with "pt-" */
.pt-allergies-container {
    padding: 1.5rem;
}

.pt-allergies-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.pt-allergies-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem;
    border-bottom: 2px solid #dee2e6;
    white-space: nowrap;
}

.pt-allergy-row {
    transition: all 0.2s;
}

.pt-allergy-row:hover {
    background-color: #f8f9fa;
}

.pt-allergy-row td {
    padding: 1rem;
    vertical-align: middle;
}

.pt-allergy-name {
    display: flex;
    align-items: center;
    font-weight: 500;
    color: #212529;
}

.pt-reaction-text {
    color: #495057;
    font-weight: 500;
}

.pt-onset-text {
    color: #495057;
    font-size: 0.875rem;
}

.pt-severity-badge {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 500;
}

.pt-severity-badge.severe {
    background: #f8d7da;
    color: #721c24;
}

.pt-severity-badge.moderate {
    background: #fff3cd;
    color: #856404;
}

.pt-severity-badge.mild {
    background: #d1ecf1;
    color: #0c5460;
}

/* Patient Immunizations Styles - prefixed with "pt-" */
.pt-immunizations-container {
    max-width: 1200px;
    margin: 0 auto;
}

.pt-immunizations-table {
    margin-bottom: 0;
}

.pt-immunizations-table tbody tr.pt-immunization-row {
    border-bottom: 1px solid #dee2e6;
}

.pt-immunizations-table tbody tr.pt-immunization-row:last-child {
    border-bottom: none;
}

.pt-immunization-card {
    transition: all 0.3s ease;
    border-radius: 0 !important;
}

.pt-immunization-card:hover {
    box-shadow: none !important;
}

.pt-vaccine-icon-wrapper {
    flex-shrink: 0;
}

.pt-vaccine-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: #212529;
    margin-bottom: 0.25rem;
}

.pt-vaccine-date {
    font-size: 0.875rem;
}

.pt-vaccine-note {
    font-size: 0.875rem;
    padding: 0.5rem;
    background-color: #f8f9fa;
    border-radius: 0.375rem;
    margin-top: 0.5rem;
}

.pt-detail-item {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
}

.pt-detail-label {
    color: #6c757d;
    font-weight: 500;
    margin-right: 0.5rem;
    min-width: 85px;
}

.pt-detail-value {
    color: #212529;
}

/* Patient Diagnostic Results Styles - prefixed with "pt-" */
.pt-diagnostic-results-container {
    max-width: 1400px;
    margin: 0 auto;
}

.pt-diagnostic-result-card {
    transition: all 0.3s ease;
    border: 1px solid #dee2e6;
}

.pt-diagnostic-result-card:hover {
    box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.1) !important;
}

.pt-diagnostic-result-card.has-abnormal {
    border-color: #ffc107;
}

.pt-diagnostic-table thead th {
    font-weight: 600;
    color: #495057;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 0.75rem;
    border-bottom: 2px solid #dee2e6;
}

.pt-diagnostic-table tbody td {
    padding: 0.75rem;
    vertical-align: middle;
}

/* Patient Search Results Styles - prefixed with "pt-" */
.pt-search-table-success {
    --bs-table-bg: rgba(25, 135, 84, 0.1);
}

.pt-search-table-hover tbody tr:hover {
    background-color: rgba(0, 0, 0, 0.02);
    cursor: pointer;
}

.pt-search-table thead th {
    font-weight: 600;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    border-bottom: 2px solid #dee2e6;
}

.pt-search-badge {
    font-weight: 500;
}

/* CMS Claims Styles - prefixed with "cms-" */
.cms-claims-container {
    padding: 1.5rem;
}

.cms-subsection-header {
    background: white;
    padding: 1rem 1.5rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

.cms-subsection-header h4 {
    color: #495057;
    font-weight: 600;
}

.cms-header-actions {
    display: flex;
    gap: 0.5rem;
}

.cms-empty-state {
    background: white;
    padding: 4rem 2rem;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    text-align: center;
}

.cms-enrollment-section {
    margin-bottom: 2rem;
}

.cms-enrollment-grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.cms-year-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.cms-year-header {
    background: #f8f9fa;
    padding: 1rem 1.5rem;
    border-bottom: 2px solid #dee2e6;
}

.cms-year-header h5 {
    color: #495057;
    font-weight: 600;
}

.cms-year-content {
    padding: 1.5rem;
}

.cms-metric-row {
    display: flex;
    align-items: stretch;
    margin-bottom: 1.5rem;
    min-height: 60px;
}

.cms-metric-row:last-child {
    margin-bottom: 0;
}

.cms-metric-label {
    width: 120px;
    font-weight: 600;
    color: #495057;
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    flex-shrink: 0;
}

.cms-months-grid {
    display: grid;
    grid-template-columns: repeat(12, 1fr);
    gap: 0.5rem;
    flex: 1;
    align-items: stretch;
}

.cms-month-cell {
    background: #f8f9fa;
    border-radius: 6px;
    padding: 0.5rem 0.25rem;
    text-align: center;
    transition: all 0.2s;
    cursor: pointer;
    border: 1px solid transparent;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 50px;
}

.cms-month-cell:hover {
    background: #e9ecef;
    transform: translateY(-2px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.cms-month-cell.empty {
    background: transparent;
    cursor: default;
    opacity: 0.5;
}

.cms-month-cell.empty:hover {
    background: transparent;
    transform: none;
    box-shadow: none;
}

.cms-month-cell.estimated {
    opacity: 0.7;
    cursor: default;
}

.cms-month-cell.estimated:hover {
    transform: none;
}

.cms-month-cell.payment {
    background: #d1ecf1;
}

.cms-month-cell.enrollment {
    background: #fff3cd;
}

.cms-month-name {
    font-size: 0.75rem;
    color: #6c757d;
    font-weight: 600;
    margin-bottom: 0.25rem;
    line-height: 1;
}

.cms-month-value {
    font-weight: 600;
    color: #212529;
    font-size: 0.875rem;
    line-height: 1.2;
    word-break: break-word;
}

.cms-month-value.small {
    font-size: 0.75rem;
}

.cms-claims-content {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    overflow: hidden;
}

.cms-claims-table-wrapper {
    overflow-x: auto;
}

.cms-claims-table {
    width: 100%;
    border-collapse: collapse;
    table-layout: fixed;
}

.cms-claims-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 1rem 0.5rem;
    border-bottom: 2px solid #dee2e6;
    text-align: left;
    font-size: 0.875rem;
    vertical-align: middle;
}

.cms-hcc-header-row {
    background: #f8f9fa;
    cursor: pointer;
    transition: all 0.2s;
}

.cms-hcc-header-row:hover {
    background: #e9ecef;
}

.cms-hcc-header-row td {
    padding: 0.75rem 0.5rem;
    border-bottom: 1px solid #dee2e6;
    vertical-align: middle;
}

.cms-hcc-title-cell {
    font-weight: 600;
}

.cms-hcc-title-content {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-wrap: wrap;
}

.cms-hcc-code {
    background: #0d6efd;
    color: white;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    font-size: 0.8125rem;
    white-space: nowrap;
    flex-shrink: 0;
}

.cms-hcc-separator {
    color: #6c757d;
    flex-shrink: 0;
}

.cms-hcc-description {
    color: #495057;
    word-wrap: break-word;
}

.cms-hcc-metric {
    text-align: center;
    font-weight: 600;
    color: #495057;
    padding: 0.75rem 0.25rem;
    font-size: 0.875rem;
}

.cms-btn-toggle {
    background: transparent;
    border: 1px solid #dee2e6;
    border-radius: 6px;
    padding: 0.375rem 0.75rem;
    transition: all 0.2s;
}

.cms-btn-toggle:hover {
    background: white;
    border-color: #0d6efd;
    color: #0d6efd;
}

.cms-hcc-details {
    background: white;
    border-top: 1px solid #dee2e6;
}

.cms-diagnosis-table {
    width: 100%;
    table-layout: fixed;
}

.cms-diagnosis-row {
    transition: all 0.2s;
}

.cms-diagnosis-row:hover {
    background: #f8f9fa;
}

.cms-diagnosis-row td {
    padding: 0.5rem;
    border-bottom: 1px solid #f8f9fa;
    vertical-align: middle;
}

.cms-diagnosis-row:last-child td {
    border-bottom: none;
}

.cms-diagnosis-code {
    font-family: monospace;
    font-weight: 600;
    color: #495057;
    background: #f8f9fa;
    padding: 0.125rem 0.375rem;
    border-radius: 4px;
    font-size: 0.8125rem;
    display: inline-block;
}

.cms-diagnosis-desc {
    color: #212529;
    font-size: 0.875rem;
    line-height: 1.4;
    word-wrap: break-word;
}

.cms-metric-value {
    font-weight: 600;
    color: #495057;
    font-size: 0.875rem;
}

.cms-metric-value.clickable {
    cursor: pointer;
    padding: 0.125rem 0.25rem;
    border-radius: 4px;
    transition: all 0.2s;
    display: inline-block;
}

.cms-metric-value.clickable:hover {
    background: #e9ecef;
    color: #0d6efd;
}

.cms-expand-all-btn,
.cms-collapse-all-btn {
    border-radius: 6px;
    font-weight: 500;
    transition: all 0.2s;
    padding: 0.375rem 0.75rem;
}

.cms-expand-all-btn:hover,
.cms-collapse-all-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Client Chart Pulls Styles - prefixed with "client-" (rpt- was too long) */
.client-results-container {
    padding: 1.5rem;
}

.client-credits-alert {
    padding: 1rem 1.5rem;
    border-radius: 8px;
    border: none;
    display: flex;
    align-items: center;
    font-size: 1.1rem;
}

.client-credits-alert.alert-danger {
    background-color: #f8d7da;
    color: #721c24;
}

.client-credits-alert.alert-info {
    background-color: #d1ecf1;
    color: #0c5460;
}

.client-stats-summary-card,
.client-chart-card,
.client-cohort-details-card {
    background: white;
    border-radius: 10px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
}

.client-card-title {
    color: #495057;
    margin-bottom: 1.5rem;
    font-weight: 600;
    padding-bottom: 1rem;
    border-bottom: 2px solid #e9ecef;
}

.client-table-container {
    overflow-x: auto;
    border-radius: 8px;
}

.client-stats-table,
.client-cohort-table {
    margin-bottom: 0;
    font-size: 0.9375rem;
}

.client-stats-table thead th,
.client-cohort-table thead th {
    background: #f8f9fa;
    font-weight: 600;
    color: #495057;
    padding: 0.75rem 1rem;
    border-bottom: 2px solid #dee2e6;
}

.client-period-column {
    width: 200px;
}

.client-period-name {
    font-weight: 500;
    color: #495057;
}

.client-stats-table tbody tr:hover {
    background-color: #f8f9fa;
}

.client-metric-value {
    font-family: monospace;
    font-size: 0.95rem;
    color: #495057;
}

.client-chart-container {
    position: relative;
    height: 400px;
    padding: 1rem 0;
}

.client-cohort-row {
    transition: all 0.2s;
}

.client-cohort-row:hover {
    background-color: #f8f9fa;
    transform: translateX(2px);
}

.client-cohort-name {
    font-weight: 500;
    color: #212529;
}

.client-month-total {
    background-color: #e9ecef;
    font-weight: 600;
}

.client-month-total td {
    padding: 0.75rem 1rem;
    color: #495057;
}

.client-grand-total {
    background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 100%);
    color: white;
}

.client-grand-total td {
    padding: 1rem;
    font-size: 1.05rem;
}

/* Reporting SDOH Styles - prefixed with "rpt-" */
/* SDOH Expansion Scroll Container Fix */
[data-report-expansion="SDOH"] [data-active-contents] {
    padding-bottom: 50px !important; /* Add bottom padding for scroll content */
    box-sizing: border-box;
}

[data-report-expansion="SDOH"] .sdoh-patients-container {
    margin-bottom: 20px; /* Ensure space at bottom of patient list */
}

.rpt-sdoh-domain-card {
    border-radius: 8px;
    border: 1px solid #e9ecef;
    transition: all 0.3s;
    cursor: pointer;
}

.rpt-sdoh-domain-card:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    transform: translateY(-2px);
}

.rpt-sdoh-metric {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.5rem 0;
    border-bottom: 1px solid #f8f9fa;
}

.rpt-sdoh-metric:last-child {
    border-bottom: none;
}

.rpt-sdoh-score-badge {
    padding: 0.25rem 0.75rem;
    border-radius: 20px;
    font-size: 0.875rem;
    font-weight: 600;
}

.rpt-score-high {
    background-color: #dc3545;
    color: white;
}

.rpt-score-moderate {
    background-color: #ffc107;
    color: #212529;
}

.rpt-score-low {
    background-color: #28a745;
    color: white;
}

.rpt-risk-indicator {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    display: inline-block;
    margin-right: 0.5rem;
}

.rpt-sdoh-patient-row {
    cursor: pointer;
    transition: all 0.2s;
}

.rpt-sdoh-patient-row:hover {
    background-color: #f8f9fa;
}

.rpt-risk-level-indicator {
    width: 8px;
    height: 100%;
    position: absolute;
    left: 0;
    top: 0;
}

.rpt-risk-level-high {
    background-color: #dc3545;
}

.rpt-risk-level-moderate {
    background-color: #ffc107;
}

.rpt-risk-level-low {
    background-color: #28a745;
}

.rpt-sdoh-factor-tag {
    display: inline-block;
    padding: 0.25rem 0.5rem;
    margin: 0.125rem;
    border-radius: 4px;
    font-size: 0.75rem;
    background-color: #e9ecef;
    color: #495057;
}

.rpt-domain-economic {
    background-color: rgba(220, 53, 69, 0.1);
    color: #dc3545;
}

.rpt-domain-education {
    background-color: rgba(255, 193, 7, 0.1);
    color: #f39c12;
}

.rpt-domain-healthcare {
    background-color: rgba(23, 162, 184, 0.1);
    color: #17a2b8;
}

.rpt-domain-neighborhood {
    background-color: rgba(108, 117, 125, 0.1);
    color: #6c757d;
}

.rpt-domain-social {
    background-color: rgba(13, 110, 253, 0.1);
    color: #0d6efd;
}

.rpt-domain-clinical {
    background-color: rgba(52, 58, 64, 0.1);
    color: #343a40;
}

/* Reporting Appointments Styles - prefixed with "rpt-" */
.rpt-table-apt {
    border-collapse: separate;
    border-spacing: 0;
}

.rpt-bg-primary-cal {
    background-color: #0078d4 !important;
}

.rpt-bg-primary-cal h3 {
    font-size: 1.5rem;
    font-weight: 600;
    letter-spacing: -0.5px;
}

tr.rpt-bg-dark.rpt-bg-opacity-10 {
    background-color: #f0f0f0 !important;
}

tr.rpt-bg-dark.rpt-bg-opacity-10 th {
    color: #323130;
    font-weight: 600;
    font-size: 0.95rem;
    padding: 0.75rem;
    border: 1px solid #e0e0e0;
}

.rpt-table-apt tbody td {
    border: 1px solid #e0e0e0;
    vertical-align: top;
    height: 140px;
}

.rpt-table-apt tbody td.border-2.border-dark.border-opacity-50 {
    background-color: #f8f8f8;
    border-color: #0078d4 !important;
    border-width: 2px !important;
}

.rpt-table-apt tbody td.bg-success.bg-opacity-10 {
    background-color: #e3f2fd !important;
    border-color: #0078d4 !important;
    border-width: 2px !important;
}

.rpt-table-apt tbody td.bg-info.bg-opacity-10 {
    background-color: #fff3cd !important;
    border: 2px solid #ffc107 !important;
}

td[data-date] .mt-3.ms-2 span {
    font-size: 1rem;
    font-weight: 500;
    padding: 0.25rem 0.625rem !important;
}

td[data-date] .mt-3.ms-2 span.bg-success {
    background-color: #0078d4 !important;
    font-weight: 600 !important;
}

td[style*="background-color:#f8f8f8"] {
    background-color: #fafafa !important;
}

td[data-date] .text-bg-info {
    background: linear-gradient(90deg, #0078d4 4px, #e3f2fd 4px) !important;
    color: #003966 !important;
    border: 1px solid #b3d9f2 !important;
    border-left: none !important;
    border-radius: 0 4px 4px 0 !important;
    padding: 0.5rem 0.75rem !important;
    margin: 0.75rem 0.5rem !important;
    font-size: 0.875rem;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
}

td[data-date] .text-bg-info span.fw-bold {
    font-size: 1rem;
    color: #0078d4;
}

td[data-date] .text-bg-info span.small {
    font-size: 0.8125rem;
}

.rpt-opacity-50 {
    opacity: 0.65 !important;
}

#chartreturn {
    background-color: #0078d4;
    border-color: #0078d4;
    font-weight: 500;
    padding: 0.5rem 1.25rem;
    font-size: 0.95rem;
}

#chartreturn:hover {
    background-color: #106ebe;
    border-color: #106ebe;
    transform: translateX(-2px);
}

.rpt-appointments-header {
    background: #0078d4;
    color: white;
    padding: 1rem 1.25rem;
    margin: 0.75rem -1rem 0.75rem -1rem;
    display: flex;
    align-items: center;
    gap: 0.75rem;
}

.rpt-appointments-header h5 {
    margin: 0;
    font-size: 1.1rem;
    font-weight: 600;
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

.rpt-appointment-date {
    font-weight: 400;
}

.rpt-appointments-list {
    margin: 0 -0.5rem;
}

.rpt-appointment-row {
    display: flex;
    align-items: stretch;
    background: white;
    border: 1px solid #e0e0e0;
    border-radius: 6px;
    margin-bottom: 0.5rem;
    transition: all 0.15s ease;
    cursor: pointer;
    overflow: hidden;
}

.rpt-appointment-row:hover {
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    border-color: #0078d4;
    transform: translateX(2px);
}

.rpt-time-block {
    background: #f8f8f8;
    padding: 0.75rem 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-right: 1px solid #e0e0e0;
    min-width: 90px;
    flex-shrink: 0;
}

.rpt-time-text {
    font-weight: 600;
    font-size: 0.95rem;
    color: #0078d4;
    white-space: nowrap;
}

.rpt-appointment-content {
    padding: 0.75rem 1rem;
    flex: 1;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    min-width: 0;
}

.rpt-patient-section {
    flex: 0 0 200px;
    min-width: 0;
}

.rpt-patient-name {
    font-weight: 600;
    font-size: 0.95rem;
    color: #323130;
    margin-bottom: 0.125rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rpt-appointment-type-compact {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}

.rpt-type-text {
    font-size: 0.8125rem;
    color: #0078d4;
    font-weight: 500;
}

.rpt-duration-text {
    font-size: 0.75rem;
    color: #605e5c;
}

.rpt-details-section {
    flex: 1;
    display: flex;
    gap: 2rem;
    font-size: 0.875rem;
    color: #605e5c;
    min-width: 0;
}

.rpt-detail-item {
    display: flex;
    align-items: center;
    gap: 0.375rem;
    min-width: 0;
}

.rpt-detail-item i {
    color: #a19f9d;
    font-size: 0.875rem;
    flex-shrink: 0;
}

.rpt-detail-text {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.rpt-detail-unspecified {
    color: #a19f9d;
    font-style: italic;
}

.rpt-phi-redacted {
    background-color: #323130;
    color: #323130;
    padding: 0 0.375rem;
    border-radius: 3px;
    user-select: none;
    font-size: 0.875rem;
}

.rpt-status-indicator {
    width: 4px;
    background: #0078d4;
    flex-shrink: 0;
}

.rpt-appointment-row:hover .rpt-status-indicator {
    background: #106ebe;
}

.rpt-no-appointments {
    text-align: center;
    padding: 2rem;
    color: #605e5c;
}

.rpt-no-appointments i {
    font-size: 2.5rem;
    color: #a19f9d;
    margin-bottom: 0.75rem;
}

/* ========================================
   Scheduled Jobs Styles
   ======================================== */

/* Monitor Dashboard Cards */
.scheduled-jobs-stats .card {
    transition: transform 0.2s ease-in-out;
}

.scheduled-jobs-stats .card:hover {
    transform: translateY(-5px);
}

.scheduled-jobs-stats .huge {
    font-size: 2.5rem;
    font-weight: 600;
}

/* Legacy panel classes converted to Bootstrap 5 */
.panel-green {
    border-color: #198754;
}

.panel-green > .panel-heading {
    background-color: #198754;
    color: white;
    border-color: #198754;
}

.panel-yellow {
    border-color: #ffc107;
}

.panel-yellow > .panel-heading {
    background-color: #ffc107;
    color: #000;
    border-color: #ffc107;
}

.panel-red {
    border-color: #dc3545;
}

.panel-red > .panel-heading {
    background-color: #dc3545;
    color: white;
    border-color: #dc3545;
}

/* Calendar Styles */
.scheduled-jobs-calendar .calendar-container {
    margin-bottom: 20px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
    padding: 1.5rem;
}

.scheduled-jobs-calendar .calendar-table {
    table-layout: fixed;
    background-color: transparent;
    border: none;
    border-spacing: 4px;
}

.scheduled-jobs-calendar .calendar-table th {
    text-align: center;
    background-color: transparent;
    font-weight: 700;
    padding: 1rem 0.5rem;
    border: none;
    color: #6c757d;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.scheduled-jobs-calendar .calendar-day {
    height: 120px;
    vertical-align: top;
    position: relative;
    padding: 0.75rem;
    border: none;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: all 0.2s ease;
}

.scheduled-jobs-calendar .calendar-day:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    transform: translateY(-2px);
}

.scheduled-jobs-calendar .calendar-day.other-month {
    background-color: #f8f9fa;
    opacity: 0.5;
}

.scheduled-jobs-calendar .calendar-day.today {
    background: linear-gradient(135deg, #ffeaa7 0%, #fff9e6 100%);
    box-shadow: 0 2px 8px rgba(255, 193, 7, 0.3);
}

.scheduled-jobs-calendar .calendar-day.today .day-number {
    background: #ff6b6b;
    color: white;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.scheduled-jobs-calendar .day-header {
    margin-bottom: 0.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.scheduled-jobs-calendar .day-number {
    font-size: 1rem;
    font-weight: 600;
    color: #495057;
}

.scheduled-jobs-calendar .day-content {
    font-size: 0.75rem;
}

.scheduled-jobs-calendar .calendar-job {
    background: linear-gradient(135deg, #e3f2fd 0%, #f0f7ff 100%);
    border-left: 3px solid #2196F3;
    padding: 0.25rem 0.5rem;
    margin-bottom: 0.25rem;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 4px;
    transition: all 0.2s ease;
    font-size: 0.7rem;
}

.scheduled-jobs-calendar .calendar-job:hover {
    transform: translateX(2px);
    box-shadow: 0 2px 4px rgba(33, 150, 243, 0.2);
}

.scheduled-jobs-calendar .calendar-job.report {
    background: linear-gradient(135deg, #e8f5e9 0%, #f1f8f1 100%);
    border-left-color: #4CAF50;
}

.scheduled-jobs-calendar .calendar-job.report:hover {
    box-shadow: 0 2px 4px rgba(76, 175, 80, 0.2);
}

.scheduled-jobs-calendar .calendar-job.maintenance {
    background: linear-gradient(135deg, #fff8e1 0%, #fffbf0 100%);
    border-left-color: #FF9800;
}

.scheduled-jobs-calendar .calendar-job.maintenance:hover {
    box-shadow: 0 2px 4px rgba(255, 152, 0, 0.2);
}

.scheduled-jobs-calendar .calendar-job.datarefresh {
    background: linear-gradient(135deg, #e1f5fe 0%, #f0fafe 100%);
    border-left-color: #03A9F4;
}

.scheduled-jobs-calendar .calendar-job.datarefresh:hover {
    box-shadow: 0 2px 4px rgba(3, 169, 244, 0.2);
}

.scheduled-jobs-calendar .calendar-job.storedprocedure {
    background: linear-gradient(135deg, #f3e5f5 0%, #f8f0fa 100%);
    border-left-color: #9C27B0;
}

.scheduled-jobs-calendar .calendar-job.storedprocedure:hover {
    box-shadow: 0 2px 4px rgba(156, 39, 176, 0.2);
}

.scheduled-jobs-calendar .job-time {
    font-weight: 700;
    margin-right: 0.25rem;
    color: #2c3e50;
    font-size: 0.7rem;
}

.scheduled-jobs-calendar .more-jobs {
    text-align: center;
    margin-top: 0.5rem;
}

.scheduled-jobs-calendar .more-jobs a {
    font-size: 0.7rem;
    color: #0d6efd;
    text-decoration: none;
    font-weight: 600;
    display: inline-block;
    padding: 0.125rem 0.5rem;
    background: rgba(13, 110, 253, 0.08);
    border-radius: 12px;
    transition: all 0.2s ease;
}

.scheduled-jobs-calendar .more-jobs a:hover {
    background: rgba(13, 110, 253, 0.15);
    transform: scale(1.05);
}

/* Weekend styling */
.scheduled-jobs-calendar .calendar-table tbody tr td:first-child .calendar-day,
.scheduled-jobs-calendar .calendar-table tbody tr td:last-child .calendar-day {
    background: linear-gradient(135deg, #fafbfc 0%, #f0f2f5 100%);
}

/* Calendar navigation buttons */
.scheduled-jobs-calendar .calendar-nav {
    transition: all 0.2s ease;
}

.scheduled-jobs-calendar .calendar-nav:hover {
    transform: scale(1.1);
}

/* Calendar header month display */
.scheduled-jobs-calendar .btn-group button[disabled] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    font-weight: 600;
}

/* Job count badge */
.scheduled-jobs-calendar .badge {
    font-size: 0.65rem;
    padding: 0.2rem 0.4rem;
    font-weight: 600;
}

/* Scheduled Jobs List */
.scheduled-jobs-list .status-badge {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.scheduled-jobs-list .job-type-badge {
    font-size: 0.75rem;
    text-transform: uppercase;
}

.scheduled-jobs-list .action-buttons .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

.scheduled-jobs-list .cron-expression {
    font-family: 'Courier New', monospace;
    font-size: 0.875rem;
    background-color: #f8f9fa;
    padding: 0.125rem 0.25rem;
    border-radius: 0.25rem;
}

/* Scheduled Jobs Monitor */
.scheduled-jobs-monitor .stats-card {
    border: none;
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
    transition: box-shadow 0.3s ease;
}

.scheduled-jobs-monitor .stats-card:hover {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.scheduled-jobs-monitor .stats-icon {
    width: 4rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.scheduled-jobs-monitor .duration-counter {
    font-family: 'Courier New', monospace;
    font-weight: 600;
}

.scheduled-jobs-monitor .execution-chart-container {
    height: 300px;
    position: relative;
}

/* Job Status Colors */
.job-status-running {
    color: #0d6efd;
}

.job-status-completed {
    color: #198754;
}

.job-status-failed {
    color: #dc3545;
}

.job-status-cancelled {
    color: #6c757d;
}

.job-status-timeout {
    color: #fd7e14;
}
EOF < /dev/null
/* ========================================
   Scheduled Jobs Styles
   ======================================== */

/* Monitor Dashboard Cards */
.scheduled-jobs-stats .card {
    transition: transform 0.2s ease-in-out;
}

.scheduled-jobs-stats .card:hover {
    transform: translateY(-5px);
}

.scheduled-jobs-stats .huge {
    font-size: 2.5rem;
    font-weight: 600;
}

/* Legacy panel classes converted to Bootstrap 5 */
.panel-green {
    border-color: #198754;
}

.panel-green > .panel-heading {
    background-color: #198754;
    color: white;
    border-color: #198754;
}

.panel-yellow {
    border-color: #ffc107;
}

.panel-yellow > .panel-heading {
    background-color: #ffc107;
    color: #000;
    border-color: #ffc107;
}

.panel-red {
    border-color: #dc3545;
}

.panel-red > .panel-heading {
    background-color: #dc3545;
    color: white;
    border-color: #dc3545;
}

/* Calendar Styles */
.scheduled-jobs-calendar .calendar-container {
    margin-bottom: 20px;
    background: #ffffff;
    border-radius: 12px;
    box-shadow: 0 2px 20px rgba(0, 0, 0, 0.06);
    padding: 1.5rem;
}

.scheduled-jobs-calendar .calendar-table {
    table-layout: fixed;
    background-color: transparent;
    border: none;
    border-spacing: 4px;
}

.scheduled-jobs-calendar .calendar-table th {
    text-align: center;
    background-color: transparent;
    font-weight: 700;
    padding: 1rem 0.5rem;
    border: none;
    color: #6c757d;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.scheduled-jobs-calendar .calendar-day {
    height: 120px;
    vertical-align: top;
    position: relative;
    padding: 0.75rem;
    border: none;
    background: #ffffff;
    border-radius: 8px;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    transition: all 0.2s ease;
}

.scheduled-jobs-calendar .calendar-day:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    transform: translateY(-2px);
}

.scheduled-jobs-calendar .calendar-day.other-month {
    background-color: #f8f9fa;
    opacity: 0.5;
}

.scheduled-jobs-calendar .calendar-day.today {
    background: linear-gradient(135deg, #ffeaa7 0%, #fff9e6 100%);
    box-shadow: 0 2px 8px rgba(255, 193, 7, 0.3);
}

.scheduled-jobs-calendar .calendar-day.today .day-number {
    background: #ff6b6b;
    color: white;
    border-radius: 50%;
    width: 28px;
    height: 28px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
}

.scheduled-jobs-calendar .day-header {
    margin-bottom: 0.5rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.scheduled-jobs-calendar .day-number {
    font-size: 1rem;
    font-weight: 600;
    color: #495057;
}

.scheduled-jobs-calendar .day-content {
    font-size: 0.75rem;
}

.scheduled-jobs-calendar .calendar-job {
    background: linear-gradient(135deg, #e3f2fd 0%, #f0f7ff 100%);
    border-left: 3px solid #2196F3;
    padding: 0.25rem 0.5rem;
    margin-bottom: 0.25rem;
    cursor: pointer;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    border-radius: 4px;
    transition: all 0.2s ease;
    font-size: 0.7rem;
}

.scheduled-jobs-calendar .calendar-job:hover {
    transform: translateX(2px);
    box-shadow: 0 2px 4px rgba(33, 150, 243, 0.2);
}

.scheduled-jobs-calendar .calendar-job.report {
    background: linear-gradient(135deg, #e8f5e9 0%, #f1f8f1 100%);
    border-left-color: #4CAF50;
}

.scheduled-jobs-calendar .calendar-job.report:hover {
    box-shadow: 0 2px 4px rgba(76, 175, 80, 0.2);
}

.scheduled-jobs-calendar .calendar-job.maintenance {
    background: linear-gradient(135deg, #fff8e1 0%, #fffbf0 100%);
    border-left-color: #FF9800;
}

.scheduled-jobs-calendar .calendar-job.maintenance:hover {
    box-shadow: 0 2px 4px rgba(255, 152, 0, 0.2);
}

.scheduled-jobs-calendar .calendar-job.datarefresh {
    background: linear-gradient(135deg, #e1f5fe 0%, #f0fafe 100%);
    border-left-color: #03A9F4;
}

.scheduled-jobs-calendar .calendar-job.datarefresh:hover {
    box-shadow: 0 2px 4px rgba(3, 169, 244, 0.2);
}

.scheduled-jobs-calendar .calendar-job.storedprocedure {
    background: linear-gradient(135deg, #f3e5f5 0%, #f8f0fa 100%);
    border-left-color: #9C27B0;
}

.scheduled-jobs-calendar .calendar-job.storedprocedure:hover {
    box-shadow: 0 2px 4px rgba(156, 39, 176, 0.2);
}

.scheduled-jobs-calendar .job-time {
    font-weight: 700;
    margin-right: 0.25rem;
    color: #2c3e50;
    font-size: 0.7rem;
}

.scheduled-jobs-calendar .more-jobs {
    text-align: center;
    margin-top: 0.5rem;
}

.scheduled-jobs-calendar .more-jobs a {
    font-size: 0.7rem;
    color: #0d6efd;
    text-decoration: none;
    font-weight: 600;
    display: inline-block;
    padding: 0.125rem 0.5rem;
    background: rgba(13, 110, 253, 0.08);
    border-radius: 12px;
    transition: all 0.2s ease;
}

.scheduled-jobs-calendar .more-jobs a:hover {
    background: rgba(13, 110, 253, 0.15);
    transform: scale(1.05);
}

/* Weekend styling */
.scheduled-jobs-calendar .calendar-table tbody tr td:first-child .calendar-day,
.scheduled-jobs-calendar .calendar-table tbody tr td:last-child .calendar-day {
    background: linear-gradient(135deg, #fafbfc 0%, #f0f2f5 100%);
}

/* Calendar navigation buttons */
.scheduled-jobs-calendar .calendar-nav {
    transition: all 0.2s ease;
}

.scheduled-jobs-calendar .calendar-nav:hover {
    transform: scale(1.1);
}

/* Calendar header month display */
.scheduled-jobs-calendar .btn-group button[disabled] {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    border: none;
    font-weight: 600;
}

/* Job count badge */
.scheduled-jobs-calendar .badge {
    font-size: 0.65rem;
    padding: 0.2rem 0.4rem;
    font-weight: 600;
}

/* Scheduled Jobs List */
.scheduled-jobs-list .status-badge {
    font-size: 0.75rem;
    padding: 0.25rem 0.5rem;
}

.scheduled-jobs-list .job-type-badge {
    font-size: 0.75rem;
    text-transform: uppercase;
}

.scheduled-jobs-list .action-buttons .btn {
    padding: 0.25rem 0.5rem;
    font-size: 0.875rem;
}

.scheduled-jobs-list .cron-expression {
    font-family: 'Courier New', monospace;
    font-size: 0.875rem;
    background-color: #f8f9fa;
    padding: 0.125rem 0.25rem;
    border-radius: 0.25rem;
}

/* Scheduled Jobs Monitor */
.scheduled-jobs-monitor .stats-card {
    border: none;
    box-shadow: 0 0.125rem 0.25rem rgba(0,0,0,0.075);
    transition: box-shadow 0.3s ease;
}

.scheduled-jobs-monitor .stats-card:hover {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.15);
}

.scheduled-jobs-monitor .stats-icon {
    width: 4rem;
    height: 4rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}

.scheduled-jobs-monitor .duration-counter {
    font-family: 'Courier New', monospace;
    font-weight: 600;
}

.scheduled-jobs-monitor .execution-chart-container {
    height: 300px;
    position: relative;
}

/* Job Status Colors */
.job-status-running {
    color: #0d6efd;
}

.job-status-completed {
    color: #198754;
}

.job-status-failed {
    color: #dc3545;
}

.job-status-cancelled {
    color: #6c757d;
}

.job-status-timeout {
    color: #fd7e14;
}

/* HEDIS Summary Styles */
.hedis-summary .bg-opacity-10 {
    --bs-bg-opacity: 0.1;
}

.hedis-summary .stats-card {
    transition: all 0.3s ease;
}

.hedis-summary .stats-card:hover {
    transform: translateY(-2px);
}

.hedis-summary .table th {
    font-weight: 600;
    color: #495057;
    border-bottom: 2px solid #dee2e6;
}

.hedis-summary .badge {
    padding: 0.5em 0.75em;
    font-weight: 500;
}

/* Visually hidden class for screen readers */
.visually-hidden {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/* Provider Hub Styles */
.provider-hub-dashboard .stats-card,
.provider-hub-queue .card {
    transition: all 0.3s ease;
    border: none;
    overflow: hidden;
}

.provider-hub-dashboard .stats-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.provider-hub-dashboard .stats-icon {
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    font-size: 1.5rem;
}

.provider-hub-dashboard .card-footer {
    background-color: rgba(0, 0, 0, 0.1);
    border-top: 1px solid rgba(255, 255, 255, 0.2);
    padding: 0.75rem 1.25rem;
    transition: background-color 0.3s ease;
}

.provider-hub-dashboard .stats-card:hover .card-footer {
    background-color: rgba(0, 0, 0, 0.2);
}

.provider-hub-dashboard .stats-card h3 {
    font-size: 2.25rem;
    font-weight: 700;
    margin-bottom: 0.25rem;
}

/* Better contrast for stat labels */
.provider-hub-dashboard .stats-card p {
    font-size: 0.875rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    opacity: 0.9;
}

/* Queue table styles */
.provider-hub-queue .table > :not(caption) > * > * {
    padding: 0.75rem;
}

.provider-hub-queue .badge {
    padding: 0.375em 0.75em;
    font-weight: 500;
}

/* Breadcrumb inline styles */
.breadcrumb.d-inline-flex {
    background: none;
    padding: 0;
    margin: 0;
    font-size: 0.875rem;
}

/* Campaign Detail Action Bar */
.action-bar {
    background: #ffffff;
    border-bottom: 1px solid #dee2e6;
    box-shadow: 0 2px 4px rgba(0,0,0,.04);
    transition: all 0.3s ease;
}

.action-bar.scrolled {
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
}

.action-bar .btn {
    font-weight: 500;
}

.action-bar .btn-primary {
    box-shadow: 0 2px 4px rgba(13,110,253,.3);
}

.action-bar .btn-success {
    box-shadow: 0 2px 4px rgba(25,135,84,.3);
}

.action-bar .btn-danger {
    box-shadow: 0 2px 4px rgba(220,53,69,.3);
}

.action-bar .btn-warning {
    box-shadow: 0 2px 4px rgba(255,193,7,.3);
}

/* Modern User Dropdown Styles */
.user-select-item {
    padding: 0.5rem 1rem;
    transition: background-color 0.2s ease;
}

.user-select-item:hover {
    background-color: #f8f9fa;
}

.user-select-item div:first-child {
    margin-bottom: 0.125rem;
}

.dropdown-menu {
    border: 1px solid rgba(0,0,0,.125);
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,.15);
}

#userDropdownButton {
    height: 38px;
    border: 1px solid #ced4da;
    background-color: white;
}

#userDropdownButton:focus {
    border-color: #86b7fe;
    box-shadow: 0 0 0 0.25rem rgba(13,110,253,.25);
}

/* Credit Banks Report Styles */
.credit-banks-report {
    padding: 20px;
    margin-top: 60px;
}

.bank-card {
    transition: all 0.3s ease;
    border-left-width: 4px !important;
}

.bank-card:hover {
    transform: translateY(-2px);
}

.progress {
    height: 10px;
}

.badge-danger {
    background-color: #e74a3b;
}

.badge-warning {
    background-color: #f6c23e;
}

.badge-success {
    background-color: #1cc88a;
}

.fa-arrow-up {
    color: #1cc88a;
}

.fa-arrow-down {
    color: #e74a3b;
}

.fa-exchange {
    color: #858796;
}

.table-hover tbody tr:hover {
    background-color: rgba(0,123,255,0.05);
}

/* Print-specific styles for Credit Banks Report */
@media print {
    /* Hide navigation, footer, and offcanvas toggles */
    #topnavbar,
    footer,
    div[data-bs-toggle="offcanvas"],
    .btn-group /* Hide view toggle buttons */
    {
        display: none !important;
    }
    
    /* Adjust top padding since navbar is hidden */
    .credit-banks-report {
        margin-top: 0 !important;
        padding-top: 20px !important;
    }
    
    /* Ensure all content is visible */
    #dailySummaryView,
    #detailedView {
        display: block !important;
    }
    
    /* Remove shadows and borders for cleaner print */
    .card {
        box-shadow: none !important;
        border: 1px solid #dee2e6 !important;
    }
    
    /* Ensure tables don't break across pages */
    table {
        page-break-inside: avoid;
    }
    
    /* Hide action buttons in tables */
    .view-details {
        display: none !important;
    }
    
    /* Remove hover effects */
    .bank-card:hover {
        transform: none !important;
        box-shadow: none !important;
    }
}

/* Outreach Modal Styles */
#outreachModal .card {
    border: 1px solid #e0e0e0;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
}

#outreachModal .card-title {
    font-size: 1rem;
    font-weight: 600;
}

#outreachModal .badge.rounded-circle {
    width: 24px;
    height: 24px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

#outreachTypeButtons label {
    transition: all 0.2s ease;
    min-width: 100px;
}

#outreachTypeButtons label:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 8px rgba(0,0,0,0.1);
}

#outreachTypeButtons input:checked + label {
    background-color: #0d6efd;
    color: white;
    border-color: #0d6efd;
}

.form-select-lg {
    font-size: 1.1rem;
    font-weight: 500;
}

#barriersSection .form-check-label {
    cursor: pointer;
    transition: color 0.2s ease;
}

#barriersSection .form-check-input:checked + .form-check-label {
    color: #0d6efd;
    font-weight: 500;
}

#historyCollapse .timeline {
    position: relative;
    padding-left: 15px;
}

#historyCollapse .timeline::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 2px;
    background: #e0e0e0;
}

.quick-action-buttons .btn {
    font-size: 0.875rem;
    padding: 0.5rem 0.75rem;
}

/* Skeleton Loading Screens */
@keyframes skeleton-shimmer {
    0% { 
        background-position: -200% 0; 
    }
    100% { 
        background-position: 200% 0; 
    }
}

.skeleton {
    background: linear-gradient(
        90deg, 
        #f0f0f0 25%, 
        #e0e0e0 50%, 
        #f0f0f0 75%
    );
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
    border-radius: 4px;
}

.skeleton-text { 
    height: 16px; 
    margin-bottom: 8px; 
}

.skeleton-title { 
    height: 24px; 
    width: 60%; 
    margin-bottom: 16px; 
}

.skeleton-row { 
    height: 52px; 
    margin-bottom: 4px;
    border-radius: 4px;
}

.skeleton-table-row {
    display: flex;
    padding: 12px;
    gap: 16px;
    align-items: center;
    border-bottom: 1px solid #f0f0f0;
}

.skeleton-table-row .skeleton-cell {
    background: linear-gradient(
        90deg, 
        #f0f0f0 25%, 
        #e0e0e0 50%, 
        #f0f0f0 75%
    );
    background-size: 200% 100%;
    animation: skeleton-shimmer 1.5s infinite;
    border-radius: 4px;
    height: 20px;
}

.skeleton-table-row .skeleton-cell-small {
    width: 80px;
    flex-shrink: 0;
}

.skeleton-table-row .skeleton-cell-medium {
    width: 150px;
    flex-shrink: 0;
}

.skeleton-table-row .skeleton-cell-large {
    flex: 1;
    max-width: 300px;
}

.skeleton-table-row .skeleton-cell-button {
    width: 100px;
    height: 32px;
    flex-shrink: 0;
}

.skeleton-card { 
    height: 120px; 
    margin-bottom: 16px;
    padding: 16px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
}

.skeleton-card-content {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.skeleton-stats-card {
    padding: 20px;
    border-radius: 8px;
    background: #fff;
    border: 1px solid #e0e0e0;
}

.skeleton-badge {
    width: 60px;
    height: 24px;
    border-radius: 12px;
    display: inline-block;
}

/* Dashboard specific styles */
.provider-hub-dashboard .stats-card {
    transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.provider-hub-dashboard .stats-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 5px 15px rgba(0,0,0,0.2);
}

.provider-hub-dashboard .stats-icon {
    padding: 10px;
    border-radius: 8px;
    font-size: 24px;
}

/* Dashboard refresh animation */
@keyframes dashboard-refresh {
    0% { opacity: 0.7; }
    50% { opacity: 1; }
    100% { opacity: 1; }
}

.provider-hub-dashboard.refresh-success {
    animation: dashboard-refresh 0.5s ease;
}

/* Stats card entrance animation */
@keyframes card-entrance {
    from {
        opacity: 0;
        transform: translateY(20px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.stats-card.animated {
    animation: card-entrance 0.5s ease forwards;
}

/* Dashboard skeleton specific */
.dashboard-skeleton .card {
    min-height: 120px;
}

.dashboard-skeleton .alert {
    min-height: 140px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

/* Fix for Font Awesome icon vertical alignment */
.fa, .fas, .far, .fab {
    vertical-align: middle !important;
}

/* Specific fixes for icons with adjacent text */
.fa.me-2, .fas.me-2, .far.me-2, .fab.me-2,
.fa.me-1, .fas.me-1, .far.me-1, .fab.me-1 {
    vertical-align: middle !important;
    position: relative;
    top: -1px;
}

/* Fix for icons in buttons */
.btn .fa, .btn .fas, .btn .far, .btn .fab,
button .fa, button .fas, button .far, button .fab {
    vertical-align: middle !important;
}

/* Fix for icons in table cells */
td .fa, td .fas, td .far, td .fab,
th .fa, th .fas, th .far, th .fab {
    vertical-align: middle !important;
}

/* Fix for icons in badges */
.badge .fa, .badge .fas, .badge .far, .badge .fab {
    vertical-align: middle !important;
}

/* Fix for Bootstrap 5 spacing with icons */
.d-flex .fa, .d-flex .fas, .d-flex .far, .d-flex .fab {
    align-self: center;
}

/* Home page skeleton screens */
.home-skeleton-metric {
    padding: 20px;
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 2px 8px rgba(0,0,0,0.08);
}

.home-skeleton-chart {
    height: 300px;
    background: #f8f9fa;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.home-skeleton-activity {
    padding: 16px;
    border-bottom: 1px solid #e0e0e0;
}

.home-skeleton-activity:last-child {
    border-bottom: none;
}

/* Campaigns skeleton */
.campaigns-skeleton-row {
    padding: 16px;
    border-bottom: 1px solid #f0f0f0;
}

.campaigns-skeleton-progress {
    height: 8px;
    background: #e0e0e0;
    border-radius: 4px;
    overflow: hidden;
}

/* Reporting skeleton */
.reporting-skeleton-card {
    padding: 20px;
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 8px;
    margin-bottom: 20px;
}

.reporting-skeleton-chart {
    height: 400px;
    background: linear-gradient(to bottom, #f8f9fa, #fff);
    border-radius: 8px;
    position: relative;
    overflow: hidden;
}

.reporting-skeleton-chart::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    animation: skeleton-chart-shimmer 2s infinite;
}

@keyframes skeleton-chart-shimmer {
    0% { left: -100%; }
    100% { left: 100%; }
}

/* Skeleton list items */
.skeleton-list-item {
    padding: 12px 0;
    border-bottom: 1px solid #f0f0f0;
}

.skeleton-list-item:last-child {
    border-bottom: none;
}

/* Skeleton dropdown */
.skeleton-dropdown {
    width: 100%;
    height: 38px;
    border-radius: 4px;
    background: #f0f0f0;
}

/* Loading states for different components */
.loading-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.loading-overlay .skeleton {
    width: 100%;
    max-width: 600px;
}


/* Workload Dashboard Styles */
.bg-gradient-primary {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}

.table th {
    font-weight: 600;
    font-size: 0.875rem;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.progress-bar-striped {
    background-image: linear-gradient(45deg, rgba(255,255,255,.15) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 75%, transparent 75%, transparent);
    background-size: 1rem 1rem;
}

.fw-semibold {
    font-weight: 600 !important;
}

.fs-6 {
    font-size: 1rem !important;
}

/* Provider Contact History Timeline Styles */
.timeline {
    position: relative;
    padding-left: 40px;
}

.timeline-item {
    position: relative;
    padding-bottom: 30px;
    border-left: 2px solid #dee2e6;
    margin-left: 10px;
}

.timeline-item:last-child {
    border-left: none;
}

.timeline-marker {
    position: absolute;
    left: -11px;
    top: 0;
    background: white;
    padding: 2px;
}

.timeline-content {
    padding-left: 20px;
}

/* Skeleton Loading Styles for Patient Medical Summary */
.patient-medical-summary-skeleton {
    animation: skeleton-fade 1.5s ease-in-out infinite;
}

.skeleton {
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 4px;
}

.skeleton-text {
    height: 16px;
    margin-bottom: 8px;
}

.skeleton-text.skeleton-xs {
    height: 12px;
}

.skeleton-text.skeleton-sm {
    height: 14px;
}

.skeleton-text.skeleton-lg {
    height: 24px;
}

.skeleton-header {
    background: linear-gradient(90deg, #28b9b8 25%, #20a5a4 50%, #28b9b8 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
}

.skeleton-table-row {
    height: 40px;
    background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
    background-size: 200% 100%;
    animation: skeleton-loading 1.5s ease-in-out infinite;
    border-radius: 4px;
}

@keyframes skeleton-loading {
    0% {
        background-position: 200% 0;
    }
    100% {
        background-position: -200% 0;
    }
}

@keyframes skeleton-fade {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}


/* Care Team Contact Toggle Animation */
.contact-toggle[aria-expanded="true"] .toggle-icon {
    transform: rotate(90deg);
}

.contact-toggle:hover {
    text-decoration: underline !important;
}

/* Fix for Preventive Care Items Grid Only */
#preventive-care-content .row.g-3 {
    display: flex !important;
    flex-wrap: wrap !important;
    margin-right: -0.5rem;
    margin-left: -0.5rem;
}

#preventive-care-content .row.g-3 > div[class*="col-"] {
    padding-right: 0.5rem;
    padding-left: 0.5rem;
    margin-bottom: 1rem;
}

/* Specific columns for Preventive Care tab content */
@media (min-width: 768px) {
    #preventive-care-content .col-md-6 {
        flex: 0 0 50% !important;
        max-width: 50% !important;
    }
}

@media (min-width: 992px) {
    #preventive-care-content .col-lg-4 {
        flex: 0 0 33.33333333% !important;
        max-width: 33.33333333% !important;
    }
}

/* AI Recommendation Reject Modal - Ensure proper z-index layering */
#rejectRecommendationModal {
    z-index: 9999 !important;
}

#rejectRecommendationModal ~ .modal-backdrop {
    z-index: 9998 !important;
}
