/* style.css - 软佳门诊管理系统 v5.0 - Bootstrap 风格 */
:root {
    --primary: #005BAC;
    --primary-light: #e6f7ff;
    --primary-gradient: linear-gradient(135deg, #005BAC, #0077cc);
    --danger: #ff4d4f;
    --warning: #faad14;
    --success: #52c41a;
    --text: #2c3e50;
    --text-light: #7f8c8d;
    --bg: #f5faff;
    --card-shadow: 0 10px 30px rgba(0, 91, 172, 0.1);
    --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
    --border-radius: 12px;
}

* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 本地字体 - 藏文支持 */
@font-face {
    font-family: 'TibetanLocal';
    src: url('../fonts/TnonMivi PhyagRgyun-Tembangma Chungbris.ttf') format('truetype');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

/* Inter 字体 */
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 400;
    src: url('../fonts/inter/Inter-Regular.ttf') format('truetype');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 500;
    src: url('../fonts/inter/Inter-Medium.ttf') format('truetype');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 600;
    src: url('../fonts/inter/Inter-SemiBold.ttf') format('truetype');
}
@font-face {
    font-family: 'Inter';
    font-style: normal;
    font-weight: 700;
    src: url('../fonts/inter/Inter-Bold.ttf') format('truetype');
}

body {
    font-family: 'Inter', 'TibetanLocal', 'Microsoft YaHei', 'PingFang SC', sans-serif;
    background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%);
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow-y: auto;
}

/* 背景动画 */
.bg-animation {
    position: fixed;
    top: 0; 
    left: 0; 
    width: 100%; 
    height: 100%;
    z-index: -1;
    background: linear-gradient(135deg, #e6f7ff 0%, #f5faff 100%);
}

.wave {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 200%;
    height: 200px;
    background: url('data:image/svg+xml;utf8,<svg viewBox="0 0 1440 320" xmlns="http://www.w3.org/2000/svg"><path fill="%23005BAC" fill-opacity="0.08" d="M0,96L48,112C96,128,192,160,288,160C384,160,480,128,576,112C672,96,768,96,864,112C960,128,1056,160,1152,160C1248,160,1344,128,1392,112L1440,96L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') repeat-x;
    animation: wave 20s linear infinite;
}

.glow {
    position: absolute;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(0,91,172,0.1) 0%, transparent 70%);
    border-radius: 50%;
    top: 20%;
    left: 50%;
    transform: translateX(-50%);
    animation: pulse-glow 4s ease-in-out infinite;
}

@keyframes wave { 
    0% { transform: translateX(0); } 
    100% { transform: translateX(-50%); } 
}

@keyframes pulse-glow { 
    0%, 100% { 
        transform: translateX(-50%) scale(1); 
        opacity: 0.6; 
    } 
    50% { 
        transform: translateX(-50%) scale(1.1); 
        opacity: 0.8; 
    } 
}

/* Bootstrap Card */
.login-card {
    background: white;
    border-radius: var(--border-radius);
    box-shadow: 0 15px 50px rgba(0, 0, 0, 0.1);
    width: 560px;
    max-width: 90%;
    margin: 20px auto;
    border: 1px solid rgba(0, 91, 172, 0.1);
    transition: var(--transition);
    backdrop-filter: blur(10px);
    overflow: hidden;
}

.login-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 25px 60px rgba(0, 91, 172, 0.15);
}

.card-header-custom {
    background: var(--primary-gradient);
    color: white;
    padding: 1.75rem 2rem;
    border-radius: var(--border-radius) var(--border-radius) 0 0 !important;
    text-align: center;
    position: relative;
    overflow: hidden;
}

.card-header-custom::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.card-header-custom:hover::before {
    left: 100%;
}

.card-header-custom h1 {
    font-size: 1.75rem;
    font-weight: 700;
    margin: 0;
    position: relative;
}

.card-header-custom p {
    font-size: 0.95rem;
    opacity: 0.9;
    margin: 0.75rem 0 0;
    font-weight: 500;
}

/* 输入框 */
.form-control-custom {
    padding: 0.875rem 1.25rem;
    border: 2px solid #e8e8e8;
    border-radius: 10px;
    font-size: 1rem;
    background: #fafbfc;
    transition: var(--transition);
    font-weight: 500;
}

.form-control-custom:focus {
    outline: none;
    border-color: var(--primary);
    background: white;
    box-shadow: 0 0 0 4px rgba(0, 91, 172, 0.15);
    transform: translateY(-1px);
}

.form-control-custom::placeholder {
    color: #a0aec0;
    font-weight: 400;
}

/* 按钮 */
.btn-login {
    background: var(--primary-gradient);
    color: white;
    padding: 0.875rem;
    border: none;
    border-radius: 10px;
    font-size: 1.1rem;
    font-weight: 600;
    transition: var(--transition);
    position: relative;
    overflow: hidden;
    box-shadow: 0 6px 20px rgba(0, 91, 172, 0.3);
}

.btn-login::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.3), transparent);
    transition: left 0.5s ease;
}

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

.btn-login:hover {
	color: white;
    background: linear-gradient(135deg, #0077cc, #005bac);
    transform: translateY(-1px);
    box-shadow: 0 10px 25px rgba(0, 91, 172, 0.4);	
}

.btn-login:disabled {
    background: linear-gradient(135deg, #a0d8ef, #8bc9e1);
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* 忘记密码链接 */
.forgot-link {
    text-align: right;
    margin-bottom: 1.25rem;
}

.forgot-link a {
    color: var(--primary);
    font-size: 0.9rem;
    text-decoration: none;
    font-weight: 500;
    transition: var(--transition);
}

.forgot-link a:hover {
    text-decoration: underline;
    color: #0077cc;
}

/* 注册链接 */
.register-link {
    text-align: center;
    margin-top: 1.75rem;
    padding-top: 1.5rem;
    border-top: 1px dashed #e8e8e8;
    font-size: 0.9rem;
    color: var(--text-light);
}

.register-link a {
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: var(--transition);
}

.register-link a:hover {
    text-decoration: underline;
    color: #0077cc;
}

/* 错误通知 */
.notification-container {
    position: fixed;
    top: 20px;
    left: 50%;
    transform: translateX(-50%) translateY(-120%);
    z-index: 9999;
    max-width: 500px;
    width: 90%;
    transition: transform 0.5s cubic-bezier(0.68, -0.55, 0.27, 1.55);
}

.notification-container.show {
    transform: translateX(-50%) translateY(0);
}

.notification {
    background: linear-gradient(135deg, var(--danger), #ff6b6b);
    color: white;
    border-radius: 12px;
    padding: 1.25rem 1.5rem;
    display: flex;
    align-items: center;
    box-shadow: 0 15px 35px rgba(255, 77, 79, 0.3);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.2);
}

.notification span {
    flex: 1;
    font-weight: 600;
    font-size: 0.95rem;
}

.notification-close {
    background: rgba(255, 255, 255, 0.2);
    border: none;
    color: white;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    cursor: pointer;
    font-size: 0.9rem;
    margin-left: 1rem;
    transition: var(--transition);
    display: flex;
    align-items: center;
    justify-content: center;
}

.notification-close:hover {
    background: rgba(255, 255, 255, 0.3);
    transform: scale(1.1);
}

/* 版权信息 - 一行固定底部 */
.footer-fixed {
    position: fixed;
    bottom: 0;
    left: 0;
    width: 100%;
    background: rgba(255, 255, 255, 0.95);
    backdrop-filter: blur(10px);
    padding: 1rem 2rem;
    font-size: 0.8rem;
    color: var(--text-light);
    text-align: center;
    z-index: 1000;
    border-top: 1px solid rgba(0, 91, 172, 0.1);
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 1.5rem;
    flex-wrap: wrap;
    font-weight: 500;
}

.footer-fixed a {
    color: var(--primary);
    text-decoration: none;
    transition: var(--transition);
    font-weight: 600;
}

.footer-fixed a:hover {
    text-decoration: underline;
    color: #0077cc;
}

.footer-fixed img {
    height: 16px;
    vertical-align: middle;
    margin: 0 6px;
    transition: var(--transition);
}

.footer-fixed img:hover {
    transform: scale(1.1);
}

/* 导航栏样式 */
.navbar-left {
    display: flex;
    align-items: center;
    gap: 1rem;
}

/* 返回主页按钮 */
.back-to-home {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.625rem 1.25rem;
    background: linear-gradient(135deg, #f8f9fa, #e9ecef);
    border: 1px solid #dee2e6;
    border-radius: 10px;
    color: var(--primary);
    text-decoration: none;
    font-weight: 600;
    transition: var(--transition);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.back-to-home:hover {
    background: var(--primary-gradient);
    color: white;
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 0 6px 20px rgba(0, 91, 172, 0.3);
}

.back-to-home i {
    font-size: 0.9rem;
    transition: transform 0.3s ease;
}

.back-to-home:hover i {
    transform: translateX(-2px);
}

/* 角色标签样式 - 无背景 */
.role-badge {
    display: inline-block;
    padding: 0.375rem 0.75rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--primary);
    border: 1px solid var(--primary);
    border-radius: 8px;
    background: transparent;
    transition: var(--transition);
}

@keyframes innerGlow {
    0% {
        box-shadow: inset 0 0 8px rgba(0, 128, 0, 0.3);
    }
    50% {
        box-shadow: inset 0 0 16px rgba(0, 128, 0, 0.6);
    }
    100% {
        box-shadow: inset 0 0 8px rgba(0, 128, 0, 0.3);
    }
}

/* ================= 在线状态标签动态效果 ================= */

/* 基础样式 */
.role-online {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #059669;
    border: 1px solid #10b981;
    border-radius: 10px;
    
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    position: relative;
    overflow: hidden;
}

/* 效果1：呼吸光晕效果 */
.role-online.breathing {
    animation: breathingGlow 3s ease-in-out infinite;
    box-shadow: 
        0 0 0 rgba(16, 185, 129, 0),
        inset 0 0 8px rgba(16, 185, 129, 0.1);
}

@keyframes breathingGlow {
    0%, 100% {
        box-shadow: 
            0 0 0 rgba(16, 185, 129, 0),
            inset 0 0 8px rgba(16, 185, 129, 0.1);
        transform: scale(1);
    }
    50% {
        box-shadow: 
            0 0 20px rgba(16, 185, 129, 0.4),
            inset 0 0 12px rgba(16, 185, 129, 0.2);
        transform: scale(1.02);
    }
}

/* 效果2：脉冲波纹效果 */
.role-online.pulse-wave {
    animation: pulseWave 2.5s ease-out infinite;
}

@keyframes pulseWave {
    0% {
        box-shadow: 
            0 0 0 0 rgba(16, 185, 129, 0.4),
            inset 0 0 8px rgba(16, 185, 129, 0.1);
    }
    70% {
        box-shadow: 
            0 0 0 10px rgba(16, 185, 129, 0),
            inset 0 0 8px rgba(16, 185, 129, 0.1);
    }
    100% {
        box-shadow: 
            0 0 0 0 rgba(16, 185, 129, 0),
            inset 0 0 8px rgba(16, 185, 129, 0.1);
    }
}

/* 效果3：扫光效果 */
.role-online.sweep-light {
    position: relative;
    overflow: hidden;
}

.role-online.sweep-light::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(
        90deg,
        transparent,
        rgba(255, 255, 255, 0.6),
        transparent
    );
    transition: left 0.7s ease;
}

.role-online.sweep-light:hover::before {
    left: 100%;
}

.role-online.sweep-light:hover {
    background: rgba(16, 185, 129, 0.15);
    transform: translateY(-2px);
    box-shadow: 
        0 4px 15px rgba(16, 185, 129, 0.3),
        inset 0 0 12px rgba(16, 185, 129, 0.2);
}

/* 效果4：浮动粒子效果 */
.role-online.floating-dots {
    background: linear-gradient(135deg, rgba(16, 185, 129, 0.1), rgba(5, 150, 105, 0.05));
    position: relative;
}

.role-online.floating-dots::before,
.role-online.floating-dots::after {
    content: '';
    position: absolute;
    width: 4px;
    height: 4px;
    background: #10b981;
    border-radius: 50%;
    opacity: 0;
    animation: floatDot 3s ease-in-out infinite;
}

.role-online.floating-dots::before {
    top: 20%;
    left: 15%;
    animation-delay: 0s;
}

.role-online.floating-dots::after {
    bottom: 20%;
    right: 15%;
    animation-delay: 1.5s;
}

@keyframes floatDot {
    0%, 100% {
        opacity: 0;
        transform: translateY(0) scale(0.5);
    }
    50% {
        opacity: 1;
        transform: translateY(-8px) scale(1);
    }
}

/* 效果5：霓虹闪烁效果 */
.role-online.neon-flicker {
    background: transparent;
    border: 1px solid #10b981;
    color: #10b981;
    text-shadow: 0 0 5px rgba(16, 185, 129, 0.5);
    animation: neonFlicker 4s ease-in-out infinite;
    box-shadow: 
        0 0 10px rgba(16, 185, 129, 0.3),
        inset 0 0 10px rgba(16, 185, 129, 0.1);
}

@keyframes neonFlicker {
    0%, 18%, 22%, 25%, 53%, 57%, 100% {
        box-shadow: 
            0 0 10px rgba(16, 185, 129, 0.3),
            inset 0 0 10px rgba(16, 185, 129, 0.1);
        text-shadow: 0 0 5px rgba(16, 185, 129, 0.5);
    }
    20%, 24%, 55% {
        box-shadow: 
            0 0 15px rgba(16, 185, 129, 0.6),
            inset 0 0 15px rgba(16, 185, 129, 0.2);
        text-shadow: 0 0 10px rgba(16, 185, 129, 0.8);
    }
}

/* 效果6：3D浮动效果 */
.role-online.floating-3d {
    background: linear-gradient(145deg, #f0fdf4, #dcfce7);
    border: 1px solid #bbf7d0;
    box-shadow: 
        5px 5px 15px rgba(16, 185, 129, 0.2),
        -5px -5px 15px rgba(255, 255, 255, 0.8),
        inset 1px 1px 2px rgba(255, 255, 255, 0.8),
        inset -1px -1px 2px rgba(16, 185, 129, 0.1);
    animation: floating3d 4s ease-in-out infinite;
    transform-style: preserve-3d;
    perspective: 100px;
}

@keyframes floating3d {
    0%, 100% {
        transform: translateY(0px) rotateX(0deg);
        box-shadow: 
            5px 5px 15px rgba(16, 185, 129, 0.2),
            -5px -5px 15px rgba(255, 255, 255, 0.8);
    }
    50% {
        transform: translateY(-5px) rotateX(5deg);
        box-shadow: 
            8px 8px 20px rgba(16, 185, 129, 0.3),
            -8px -8px 20px rgba(255, 255, 255, 0.9);
    }
}

/* 效果7：渐变流光效果 */
.role-online.gradient-flow {
    background: linear-gradient(
        135deg,
        rgba(16, 185, 129, 0.1) 0%,
        rgba(5, 150, 105, 0.2) 50%,
        rgba(16, 185, 129, 0.1) 100%
    );
    background-size: 200% 100%;
    animation: gradientFlow 3s ease-in-out infinite;
    border: 1px solid rgba(16, 185, 129, 0.5);
}

@keyframes gradientFlow {
    0%, 100% {
        background-position: 0% 50%;
    }
    50% {
        background-position: 100% 50%;
    }
}

/* 效果8：心跳效果 */
.role-online.heartbeat {
    animation: heartbeat 2s ease-in-out infinite;
}

@keyframes heartbeat {
    0%, 100% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(16, 185, 129, 0.3);
    }
    25% {
        transform: scale(1.05);
        box-shadow: 0 0 15px rgba(16, 185, 129, 0.5);
    }
    50% {
        transform: scale(1);
        box-shadow: 0 0 0 rgba(16, 185, 129, 0.3);
    }
    75% {
        transform: scale(1.03);
        box-shadow: 0 0 10px rgba(16, 185, 129, 0.4);
    }
}

/* 效果9：旋转光环效果 */
.role-online.rotating-ring {
    position: relative;
    overflow: visible;
}

.role-online.rotating-ring::before {
    content: '';
    position: absolute;
    top: -2px;
    left: -2px;
    right: -2px;
    bottom: -2px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(45deg, transparent, #10b981, transparent) border-box;
    -webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
    -webkit-mask-composite: xor;
    mask-composite: exclude;
    animation: rotateRing 2s linear infinite;
}

@keyframes rotateRing {
    0% {
        transform: rotate(0deg);
    }
    100% {
        transform: rotate(360deg);
    }
}

/* 效果10：打字机效果 */
.role-online.typewriter {
    position: relative;
    overflow: hidden;
}

.role-online.typewriter::after {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 2px;
    height: 100%;
    background: #10b981;
    animation: typewriterBlink 1s step-end infinite;
}

@keyframes typewriterBlink {
    0%, 50% {
        opacity: 1;
    }
    51%, 100% {
        opacity: 0;
    }
}

/* 状态图标动画 */
.role-online i {
    transition: all 0.3s ease;
}

.role-online:hover i {
    transform: scale(1.2);
}

/* 响应式调整 */
@media (max-width: 768px) {
    .role-online {
        padding: 0.375rem 0.75rem;
        font-size: 0.75rem;
    }
    
    /* 在移动端减少动画强度 */
    .role-online.breathing,
    .role-online.pulse-wave,
    .role-online.floating-3d {
        animation-duration: 4s;
    }
}

/* 其他状态变体 */
.role-offline {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #6b7280;
    border: 1px solid #9ca3af;
    border-radius: 10px;
    background: rgba(156, 163, 175, 0.08);
    transition: all 0.3s ease;
}

.role-busy {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #dc2626;
    border: 1px solid #ef4444;
    border-radius: 10px;
    background: rgba(239, 68, 68, 0.08);
    animation: pulseWave 3s ease-out infinite;
}

.role-away {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.375rem;
    padding: 0.5rem 1rem;
    font-size: 0.8rem;
    font-weight: 600;
    color: #d97706;
    border: 1px solid #f59e0b;
    border-radius: 10px;
    background: rgba(245, 158, 11, 0.08);
    animation: breathingGlow 4s ease-in-out infinite;
}

/* ===== 用户头像下拉菜单 - 优化版本 ===== */
/* ===== 用户头像下拉菜单 - 医疗优雅配色 ===== */
.user-avatar-dropdown {
    position: relative;
}

.user-avatar-btn {
    display: flex;
    align-items: center;
    gap: 0.75rem;
	background: linear-gradient(135deg, #00CDAC, #02AAB0);
    /*background: linear-gradient(135deg, #f8f9fa, #e9ecef);*/
    border: 1px solid rgba(255, 255, 255, 0.8);
    border-radius: 25px;
    padding: 0.5rem 1rem;
    color: var(--text);
    cursor: pointer;
    transition: var(--transition);
    font-size: 0.875rem;
    font-weight: 600;
    box-shadow: 
        0 2px 8px rgba(0, 0, 0, 0.08),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
    position: relative;
    overflow: hidden;
    backdrop-filter: blur(10px);
}

/* 流光效果 - 与系统风格一致 */
.user-avatar-btn::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
	background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.4), transparent); 
    transition: left 0.5s ease;
}

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

/* 悬浮效果 - 使用系统主色调 */
.user-avatar-btn:hover {
    background: linear-gradient(135deg, #8e8e8e, #f1f3f4);
    border-color: var(--primary);
    transform: translateY(-2px);
    box-shadow: 
        0 8px 25px rgba(0, 91, 172, 0.15),
        0 2px 4px rgba(0, 91, 172, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    color: var(--primary);
}

/* 点击效果 */
.user-avatar-btn:active {
    transform: translateY(0);
    box-shadow: 
        0 2px 8px rgba(0, 91, 172, 0.1),
        inset 0 1px 0 rgba(255, 255, 255, 0.6);
}

/* 头像图标 - 医疗优雅配色方案 */
.avatar-icon {
    width: 36px;
    height: 36px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-size: 1rem;
    flex-shrink: 0;
    box-shadow: 
        0 4px 12px rgba(0, 0, 0, 0.15),
        inset 0 1px 0 rgba(255, 255, 255, 0.3);
    transition: var(--transition);
    position: relative;
    z-index: 2;
    border: 2px solid rgba(255, 255, 255, 0.8);
}

/* 医生配色 - 专业蓝色系 */
.avatar-icon.doctor {
    background: linear-gradient(135deg, #00B4DB, #0083B0);
}

/* 护士配色 - 温柔粉色系 */
.avatar-icon.nurse {
    background: linear-gradient(135deg, #FF9A9E, #FECFEF);
}

/* 药剂师配色 - 治愈绿色系 */
.avatar-icon.pharmacist {
    background: linear-gradient(135deg, #56CCF2, #2F80ED);
}

/* 管理员配色 - 权威紫色系 */
.avatar-icon.admin {
    background: linear-gradient(135deg, #8E2DE2, #4A00E0);
}

/* 收费员配色 - 温暖橙色系 */
.avatar-icon.cashier {
    background: linear-gradient(135deg, #FFA62E, #EA4C2C);
}

/* 默认配色 - 医疗清新蓝绿 */
.avatar-icon.default {
    background: linear-gradient(135deg, #00CDAC, #02AAB0);
}

/* 头像悬浮效果 */
.user-avatar-btn:hover .avatar-icon {
    transform: scale(1.05);
    box-shadow: 
        0 6px 20px rgba(0, 0, 0, 0.25),
        inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

/* 医生悬浮效果 */
.user-avatar-btn:hover .avatar-icon.doctor {
    background: linear-gradient(135deg, #0083B0, #00B4DB);
}

/* 护士悬浮效果 */
.user-avatar-btn:hover .avatar-icon.nurse {
    background: linear-gradient(135deg, #FECFEF, #FF9A9E);
}

/* 药剂师悬浮效果 */
.user-avatar-btn:hover .avatar-icon.pharmacist {
    background: linear-gradient(135deg, #2F80ED, #56CCF2);
}

/* 管理员悬浮效果 */
.user-avatar-btn:hover .avatar-icon.admin {
    background: linear-gradient(135deg, #4A00E0, #8E2DE2);
}

/* 收费员悬浮效果 */
.user-avatar-btn:hover .avatar-icon.cashier {
    background: linear-gradient(135deg, #EA4C2C, #FFA62E);
}

/* 默认悬浮效果 */
.user-avatar-btn:hover .avatar-icon.default {
    background: linear-gradient(135deg, #02AAB0, #00CDAC);
}

/* 用户信息区域 */
.user-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    position: relative;
    z-index: 2;
}

.user-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--text);
    line-height: 1.2;
}

.user-role {
    font-size: 0.75rem;
    color: var(--text-light);
    font-weight: 500;
    line-height: 1.2;
}

/* 下拉箭头 */
.dropdown-arrow {
    margin-left: 0.25rem;
    transition: transform 0.3s ease;
    color: var(--text-light);
    font-size: 0.8rem;
    position: relative;
    z-index: 2;
}

.user-avatar-btn:hover .dropdown-arrow {
    color: var(--primary);
    transform: translateY(1px);
}

/* 下拉菜单打开时的状态 */
.user-avatar-btn.dropdown-open {
    background: linear-gradient(135deg, #ffffff, #f8f9fa);
    border-color: var(--primary);
    box-shadow: 
        0 4px 15px rgba(0, 91, 172, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.user-avatar-btn.dropdown-open .dropdown-arrow {
    transform: rotate(180deg);
    color: var(--primary);
}

/* 徽章样式 - 医疗风格通知 */
.avatar-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, #FF6B6B, #FF8E8E);
    border: 2px solid #ffffff;
    font-size: 0.6rem;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
    animation: pulse 2s infinite;
    font-weight: 700;
}

/* 紧急通知徽章 */
.avatar-badge.urgent {
    background: linear-gradient(135deg, #FF416C, #FF4B2B);
    animation: pulseUrgent 1s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 2px 12px rgba(255, 107, 107, 0.6);
        transform: scale(1.1);
    }
    100% {
        box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
        transform: scale(1);
    }
}

@keyframes pulseUrgent {
    0%, 100% {
        box-shadow: 0 2px 8px rgba(255, 65, 108, 0.6);
        transform: scale(1);
    }
    50% {
        box-shadow: 0 2px 16px rgba(255, 65, 108, 0.8);
        transform: scale(1.15);
    }
}

/* 状态指示器 */
.status-indicator {
    position: absolute;
    bottom: -2px;
    right: -2px;
    width: 12px;
    height: 12px;
    border-radius: 50%;
    border: 2px solid white;
    z-index: 3;
}

.status-online {
    background: linear-gradient(135deg, #00F260, #0575E6);
}

.status-busy {
    background: linear-gradient(135deg, #FFA62E, #EA4C2C);
}

.status-away {
    background: linear-gradient(135deg, #FFD200, #F7971E);
}

.status-offline {
    background: linear-gradient(135deg, #BDBDBD, #9E9E9E);
}

/* 用户信息区域 */
.user-info {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.125rem;
    position: relative;
    z-index: 2;
}

.user-name {
    font-weight: 700;
    font-size: 0.9rem;
    color: var(--text);
    line-height: 1.2;
}

.user-role {
    font-size: 0.75rem;
    color: var(--text-light);
    font-weight: 500;
    line-height: 1.2;
}

/* 下拉箭头 */
.dropdown-arrow {
    margin-left: 0.25rem;
    transition: transform 0.3s ease;
    color: var(--text-light);
    font-size: 0.8rem;
    position: relative;
    z-index: 2;
}

.user-avatar-btn:hover .dropdown-arrow {
    color: var(--primary);
    transform: translateY(1px);
}

/* 下拉菜单打开时的状态 */
.user-avatar-btn.dropdown-open {
    background: linear-gradient(135deg, #ffffff, #f8f9fa);
    border-color: var(--primary);
    box-shadow: 
        0 4px 15px rgba(0, 91, 172, 0.2),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
}

.user-avatar-btn.dropdown-open .dropdown-arrow {
    transform: rotate(180deg);
    color: var(--primary);
}

/* 徽章样式 - 用于显示通知等 */
.avatar-badge {
    position: absolute;
    top: -4px;
    right: -4px;
    width: 16px;
    height: 16px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--danger), #ff6b6b);
    border: 2px solid #ffffff;
    font-size: 0.6rem;
    color: white;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 3;
    box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0% {
        box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
    }
    50% {
        box-shadow: 0 2px 12px rgba(255, 107, 107, 0.6);
    }
    100% {
        box-shadow: 0 2px 6px rgba(255, 107, 107, 0.4);
    }
}

/* 下拉菜单 */
.dropdown-menu {
    position: absolute;
    top: 100%;
    right: 0;
    background: white;
    border-radius: 12px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
    min-width: 280px;
    padding: 0.75rem 0;
    z-index: 1000;
    display: none;
    opacity: 0;
    visibility: hidden;
    margin-top: 0.75rem;
    border: 1px solid rgba(232, 232, 232, 0.8);
    transform: translateY(-10px);
    transition: var(--transition);
    backdrop-filter: blur(10px);
}

.dropdown-menu.show {
    display: block;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

/* 下拉菜单项 */
.dropdown-item {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.875rem 1.5rem;
    color: var(--text);
    text-decoration: none;
    transition: var(--transition);
    border: none;
    background: none;
    width: 100%;
    text-align: left;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 500;
    position: relative;
    overflow: hidden;
}

.dropdown-item::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, rgba(0, 91, 172, 0.1), transparent);
    transition: width 0.3s ease;
}

.dropdown-item:hover::before {
    width: 4px;
}

.dropdown-item:hover {
    background: linear-gradient(135deg, var(--primary-light), #e6f7ff);
    color: var(--primary);
    transform: translateX(5px);
}

.dropdown-item i {
    width: 18px;
    text-align: center;
    color: var(--text-light);
    font-size: 0.9rem;
    transition: var(--transition);
}

.dropdown-item:hover i {
    color: var(--primary);
    transform: scale(1.1);
}

/* 退出登录表单特殊处理 */
.dropdown-item form {
    width: 100%;
    margin: 0;
}

.dropdown-item form button {
    background: none;
    border: none;
    padding: 0;
    color: inherit;
    text-align: left;
    width: 100%;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 0.75rem;
    font: inherit;
}

/* 分隔线 */
.dropdown-divider {
    height: 1px;
    background: linear-gradient(to right, transparent, #e8e8e8, transparent);
    margin: 0.5rem 0;
    border: none;
}

/* 到期统计区域 */
.expiry-stats {
    padding: 1rem 1.5rem;
    background: linear-gradient(135deg, #f8f9fa, #f1f3f4);
    border-radius: 10px;
    margin: 0.75rem 1rem;
    border: 1px solid #e9ecef;
    box-shadow: inset 0 2px 8px rgba(0, 0, 0, 0.05);
}

.expiry-stat-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 0.85rem;
    margin-bottom: 0.75rem;
    padding: 0.25rem 0;
}

.expiry-stat-item:last-child {
    margin-bottom: 0;
}

.expiry-stat-label {
    color: var(--text-light);
    font-weight: 600;
}

.expiry-stat-value {
    font-weight: 700;
    color: var(--primary);
}

.expiry-stat-value.danger {
    color: var(--danger);
    animation: pulseWarning 2s infinite;
}

.expiry-stat-value.warning {
    color: var(--warning);
    animation: pulseWarning 2s infinite;
}

@keyframes pulseWarning {
    0%, 100% {
        opacity: 1;
    }
    50% {
        opacity: 0.7;
    }
}

/* 响应式设计 */
@media (max-width: 576px) {
    .login-card { 
        width: 95%; 
        margin: 15px auto; 
    }
    
    .card-header-custom h1 { 
        font-size: 1.5rem; 
    }
    
    .footer-fixed { 
        font-size: 0.75rem; 
        padding: 0.875rem 1rem; 
        flex-direction: column; 
        gap: 0.5rem; 
    }
    
    /* 移动端头像下拉菜单优化 */
    .user-avatar-btn span {
        display: none;
    }
    
    .user-avatar-btn {
        padding: 0.5rem;
        border-radius: 50%;
        width: 44px;
        height: 44px;
        justify-content: center;
    }
    
    .user-avatar-btn .dropdown-arrow {
        display: none;
    }
    
    .dropdown-menu {
        min-width: 280px;
        right: -50px;
    }
    
    .user-info {
        display: none;
    }
}

@media (max-width: 768px) {
    .dropdown-menu {
        position: fixed;
        top: auto;
        bottom: 0;
        left: 0;
        right: 0;
        min-width: auto;
        border-radius: 20px 20px 0 0;
        margin: 0;
        transform: translateY(100%);
    }
    
    .dropdown-menu.show {
        transform: translateY(0);
    }
    
    .user-avatar-btn {
        padding: 0.5rem 1rem;
        gap: 0.5rem;
    }
    
    .user-avatar-btn span {
        max-width: 100px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
    }
    
    .avatar-icon {
        width: 32px;
        height: 32px;
        font-size: 0.9rem;
    }
    
    .back-to-home {
        padding: 0.5rem 1rem;
        font-size: 0.875rem;
    }
}

/* 暗色主题支持 */
@media (prefers-color-scheme: dark) {
    .dropdown-menu {
        background: #2d3748;
        border-color: #4a5568;
        color: white;
    }
    
    .dropdown-item {
        color: #e2e8f0;
    }
    
    .dropdown-item:hover {
        background: #4a5568;
        color: white;
    }
    
    .dropdown-item i {
        color: #a0aec0;
    }
    
    .expiry-stats {
        background: #4a5568;
        border-color: #718096;
    }
    
    .expiry-stat-label {
        color: #a0aec0;
    }
    
    /* 暗色主题下的用户头像按钮 */
    .user-avatar-btn {
        background: linear-gradient(135deg, #2d3748, #4a5568);
        border-color: rgba(255, 255, 255, 0.1);
        color: #e2e8f0;
        box-shadow: 
            0 2px 8px rgba(0, 0, 0, 0.3),
            inset 0 1px 0 rgba(255, 255, 255, 0.1);
    }
    
    .user-avatar-btn:hover {
        background: linear-gradient(135deg, #4a5568, #2d3748);
        border-color: var(--primary);
        color: #63b3ed;
    }
    
    .user-name {
        color: #e2e8f0;
    }
    
    .user-role {
        color: #a0aec0;
    }
}

/* 无障碍支持 */
.user-avatar-btn:focus {
    outline: 2px solid var(--primary);
    outline-offset: 2px;
}

.user-avatar-btn:focus:not(:focus-visible) {
    outline: none;
}

