/* ==========================================================================
   PDSA 投资咨询管理平台 · 设计系统 v2
   设计参考: 离线版 PDSA 投资咨询管理平台
   核心风格: 深海军蓝侧边栏 + 暖米白主区 + 古铜金品牌色
   ========================================================================== */

:root {
    /* ==================== 色彩系统 · 主色 ==================== */
    /* 品牌主色:古铜金 (Logo P字 / 强调元素 / 高亮状态) */
    --pdsa-brand-50:  #FAF6E9;
    --pdsa-brand-100: #F4EAD0;
    --pdsa-brand-200: #E8D399;
    --pdsa-brand-300: #DBBC6A;
    --pdsa-brand-400: #C9A961;   /* 主品牌色 */
    --pdsa-brand-500: #A9854F;   /* hover/active */
    --pdsa-brand-600: #8F6B1E;   /* pressed */
    --pdsa-brand-700: #6B5020;

    /* 海军蓝:侧边栏 / 深色文字 / 标题 */
    --pdsa-navy-50:   #E6EAF0;
    --pdsa-navy-100:  #C2CADA;
    --pdsa-navy-200:  #8595B0;
    --pdsa-navy-300:  #5D6B82;
    --pdsa-navy-400:  #1C3355;
    --pdsa-navy-500:  #14243D;
    --pdsa-navy-600:  #1D2433;   /* 主文字 */
    --pdsa-navy-700:  #141B29;   /* 卡片底 / 深背景 */
    --pdsa-navy-800:  #101E33;   /* 侧边栏顶 */
    --pdsa-navy-900:  #0C1728;   /* 侧边栏底 */

    /* ==================== 色彩系统 · 中性色 ==================== */
    --pdsa-bg-app:    #F5F4F0;   /* 整页背景:暖米白 */
    --pdsa-bg-card:   #FFFFFF;   /* 卡片背景 */
    --pdsa-bg-soft:   #FAF9F5;   /* 浅卡片 */
    --pdsa-bg-tint:   #F3F2ED;   /* 输入框 / 胶囊按钮底 */
    --pdsa-bg-warm:   #ECEAE2;   /* hover 状态 */
    --pdsa-bg-cream:  #F2EFE7;   /* 深底上的浅文字 */
    --pdsa-bg-line:   #F4F2EC;   /* 极细分隔线 */
    --pdsa-bg-elev:   #E9E7E0;   /* 分隔线/侧栏分隔 */
    --pdsa-bg-dark:   #1D2433;   /* 暗卡片 */

    /* ==================== 色彩系统 · 文字 ==================== */
    --pdsa-text-1:    #1D2433;   /* 主文字 (深蓝黑) */
    --pdsa-text-2:    #4A4639;   /* 次文字 (深暖灰) */
    --pdsa-text-3:    #6B675C;   /* 辅助文字 */
    --pdsa-text-4:    #8B877C;   /* 占位/弱化 */
    --pdsa-text-5:    #A8A49A;   /* 面包屑/弱化 (暖灰) */
    --pdsa-text-on-dark-1: #F2EFE7;  /* 深底上的主文字 (暖白) */
    --pdsa-text-on-dark-2: #C9C5BA;  /* 深底上的次文字 */
    --pdsa-text-on-dark-3: #A8A9A4;  /* 深底上的弱化 */
    --pdsa-text-on-brand: #FFFFFF;   /* 金色按钮上的文字 */
    --pdsa-text-link:  #14243D;      /* 链接默认色 */
    --pdsa-text-link-hover: #A9854F; /* 链接 hover */

    /* ==================== 色彩系统 · 边框 ==================== */
    --pdsa-border-1:  #E9E7E0;   /* 浅边框 */
    --pdsa-border-2:  #DAD6CA;   /* 普通边框 */
    --pdsa-border-3:  #C9C5BA;   /* 加深边框 */
    --pdsa-border-on-dark: rgba(255, 255, 255, 0.08);  /* 深底上的边框 */
    --pdsa-border-brand-soft: rgba(201, 169, 97, 0.45);  /* 品牌色软边框 */

    /* ==================== 色彩系统 · 状态 ==================== */
    /* 成功:深绿 */
    --pdsa-success:        #2E6E48;
    --pdsa-success-bg:     #E9F3EC;
    --pdsa-success-dot:    #57A578;
    /* 信息:海军蓝 */
    --pdsa-info:           #1C3355;
    --pdsa-info-bg:        #E6EAF0;
    --pdsa-info-dot:       #6684B3;
    /* 警告:古铜橙 */
    --pdsa-warning:        #C0563B;
    --pdsa-warning-bg:     #F8EBE8;
    --pdsa-warning-dot:    #D8806A;
    /* 错误 */
    --pdsa-danger:         #B23A3A;
    --pdsa-danger-bg:      #F8E8E8;

    /* ==================== 渐变 ==================== */
    --pdsa-gradient-sidebar: linear-gradient(180deg, #101E33 0%, #0C1728 100%);
    --pdsa-gradient-brand:   linear-gradient(145deg, #C9A961 0%, #A9854F 100%);
    --pdsa-gradient-brand-soft: linear-gradient(90deg, rgba(201,169,97,0.35) 0%, rgba(201,169,97,0) 100%);
    --pdsa-gradient-card:    linear-gradient(180deg, #FFFFFF 0%, #FAF9F5 100%);
    --pdsa-gradient-highlight: linear-gradient(145deg, #1C3355, #101E33);

    /* ==================== 阴影 ==================== */
    --pdsa-shadow-xs: 0 1px 2px rgba(16, 30, 51, 0.04);
    --pdsa-shadow-sm: 0 1px 3px rgba(16, 30, 51, 0.06), 0 1px 2px rgba(16, 30, 51, 0.04);
    --pdsa-shadow-md: 0 4px 12px rgba(16, 30, 51, 0.08), 0 2px 4px rgba(16, 30, 51, 0.04);
    --pdsa-shadow-lg: 0 12px 32px rgba(16, 30, 51, 0.12), 0 4px 8px rgba(16, 30, 51, 0.06);
    --pdsa-shadow-card: 0 1px 0 rgba(255, 255, 255, 0.6) inset, 0 1px 3px rgba(20, 27, 41, 0.04);
    --pdsa-shadow-brand: 0 6px 18px rgba(201, 169, 97, 0.25);

    /* ==================== 圆角 ==================== */
    --pdsa-radius-xs: 4px;
    --pdsa-radius-sm: 6px;
    --pdsa-radius-md: 8px;
    --pdsa-radius-lg: 10px;
    --pdsa-radius-xl: 14px;
    --pdsa-radius-2xl: 18px;
    --pdsa-radius-pill: 99px;

    /* ==================== 字体 ==================== */
    --pdsa-font-sans: 'Noto Sans SC', -apple-system, BlinkMacSystemFont, 'PingFang SC', 'Microsoft YaHei', 'Helvetica Neue', Arial, sans-serif;
    --pdsa-font-serif: 'Noto Serif SC', Georgia, 'Times New Roman', serif;
    --pdsa-font-mono: 'JetBrains Mono', 'Cascadia Code', Consolas, 'Source Code Pro', monospace;

    /* ==================== 字号 ==================== */
    --pdsa-text-2xs: 10.5px;
    --pdsa-text-xs:  11px;
    --pdsa-text-sm:  12px;
    --pdsa-text-md:  13px;
    --pdsa-text-base: 14px;
    --pdsa-text-lg:  15px;
    --pdsa-text-xl:  16px;
    --pdsa-text-2xl: 18px;
    --pdsa-text-3xl: 21px;
    --pdsa-text-4xl: 27px;
    --pdsa-text-5xl: 31px;

    /* ==================== 字重 ==================== */
    --pdsa-weight-regular: 400;
    --pdsa-weight-medium:  500;
    --pdsa-weight-semibold: 600;
    --pdsa-weight-bold:    700;

    /* ==================== 字距 ==================== */
    --pdsa-tracking-tight:  -0.01em;
    --pdsa-tracking-normal:  0;
    --pdsa-tracking-wide:   0.05em;
    --pdsa-tracking-wider:  0.15em;
    --pdsa-tracking-widest: 0.22em;

    /* ==================== 间距 ==================== */
    --pdsa-space-1:  4px;
    --pdsa-space-2:  8px;
    --pdsa-space-3:  12px;
    --pdsa-space-4:  16px;
    --pdsa-space-5:  20px;
    --pdsa-space-6:  24px;
    --pdsa-space-8:  32px;
    --pdsa-space-10: 40px;
    --pdsa-space-12: 48px;
    --pdsa-space-16: 64px;

    /* ==================== 布局尺寸 ==================== */
    --pdsa-sidebar-width: 244px;
    --pdsa-header-height: 64px;
    --pdsa-content-max-width: 1200px;

    /* ==================== 动效 ==================== */
    --pdsa-ease:    cubic-bezier(0.4, 0, 0.2, 1);
    --pdsa-ease-out: cubic-bezier(0.0, 0, 0.2, 1);
    --pdsa-dur-fast:   0.12s;
    --pdsa-dur-normal: 0.18s;
    --pdsa-dur-slow:   0.32s;
}

/* ==========================================================================
   兼容旧版 Tailwind 风格类 (过渡期使用)
   ========================================================================== */
.bg-ink-50   { background-color: var(--pdsa-bg-app) !important; }
.bg-ink-100  { background-color: var(--pdsa-bg-tint) !important; }
.bg-ink-200  { background-color: var(--pdsa-bg-elev) !important; }
.bg-ink-700  { background-color: var(--pdsa-text-1) !important; }
.bg-ink-900  { background-color: var(--pdsa-text-1) !important; }
.text-ink-500 { color: var(--pdsa-text-5) !important; }
.text-ink-700 { color: var(--pdsa-text-1) !important; }
.text-ink-900 { color: var(--pdsa-text-1) !important; }
.text-primary-600 { color: var(--pdsa-brand-500) !important; }
.text-primary-700 { color: var(--pdsa-brand-500) !important; }
.bg-primary-700  { background-color: var(--pdsa-brand-400) !important; }
.border-ink-100  { border-color: var(--pdsa-border-1) !important; }
.border-ink-200  { border-color: var(--pdsa-border-2) !important; }
.border-primary-700 { border-color: var(--pdsa-brand-400) !important; }

/* ==========================================================================
   基础排版覆盖
   ========================================================================== */
html, body {
    background: var(--pdsa-bg-app);
    color: var(--pdsa-text-1);
    font-family: var(--pdsa-font-sans);
    font-size: var(--pdsa-text-md);
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

a {
    color: var(--pdsa-text-link);
    text-decoration: none;
    transition: color var(--pdsa-dur-fast) var(--pdsa-ease);
}
a:hover { color: var(--pdsa-text-link-hover); }

h1, h2, h3, h4, h5, h6 {
    color: var(--pdsa-text-1);
    font-family: var(--pdsa-font-serif);
    font-weight: 700;
    letter-spacing: 0.02em;
}

/* ==========================================================================
   工具类
   ========================================================================== */
/* 卡片 */
.pdsa-card {
    background: var(--pdsa-bg-card);
    border: 1px solid var(--pdsa-border-1);
    border-radius: var(--pdsa-radius-xl);
    box-shadow: var(--pdsa-shadow-card);
    padding: var(--pdsa-space-5);
    transition: box-shadow var(--pdsa-dur-normal) var(--pdsa-ease), transform var(--pdsa-dur-normal) var(--pdsa-ease);
}
.pdsa-card:hover {
    box-shadow: var(--pdsa-shadow-md);
}
.pdsa-card-soft {
    background: var(--pdsa-bg-soft);
    border: 1px solid var(--pdsa-border-1);
    border-radius: var(--pdsa-radius-xl);
    padding: var(--pdsa-space-5);
}

/* 按钮 (主) */
.pdsa-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    height: 36px;
    padding: 0 18px;
    font-size: var(--pdsa-text-md);
    font-weight: var(--pdsa-weight-medium);
    border: 1px solid transparent;
    border-radius: var(--pdsa-radius-pill);
    cursor: pointer;
    transition: all var(--pdsa-dur-fast) var(--pdsa-ease);
    user-select: none;
    -webkit-tap-highlight-color: transparent;
}
.pdsa-btn-primary {
    background: var(--pdsa-gradient-brand);
    color: var(--pdsa-text-on-brand);
    box-shadow: var(--pdsa-shadow-brand);
}
.pdsa-btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 22px rgba(201, 169, 97, 0.35);
}
.pdsa-btn-ghost {
    background: var(--pdsa-bg-tint);
    color: var(--pdsa-text-1);
    border-color: transparent;
}
.pdsa-btn-ghost:hover {
    background: var(--pdsa-bg-warm);
}
.pdsa-btn-outline {
    background: transparent;
    color: var(--pdsa-text-1);
    border-color: var(--pdsa-border-2);
}
.pdsa-btn-outline:hover {
    border-color: var(--pdsa-brand-400);
    color: var(--pdsa-brand-500);
}
.pdsa-btn-sm { height: 28px; padding: 0 12px; font-size: var(--pdsa-text-sm); }
.pdsa-btn-lg { height: 44px; padding: 0 22px; font-size: var(--pdsa-text-base); }

/* 输入框 */
.pdsa-input {
    height: 36px;
    padding: 0 14px;
    font-size: var(--pdsa-text-md);
    color: var(--pdsa-text-1);
    background: var(--pdsa-bg-tint);
    border: 1px solid transparent;
    border-radius: var(--pdsa-radius-pill);
    transition: all var(--pdsa-dur-fast) var(--pdsa-ease);
    outline: none;
    width: 100%;
}
.pdsa-input:hover { background: var(--pdsa-bg-warm); }
.pdsa-input:focus {
    background: var(--pdsa-bg-card);
    border-color: var(--pdsa-brand-400);
    box-shadow: 0 0 0 3px rgba(201, 169, 97, 0.12);
}
.pdsa-input::placeholder { color: var(--pdsa-text-5); }

/* 状态徽章 */
.pdsa-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    height: 22px;
    padding: 0 10px;
    font-size: var(--pdsa-text-xs);
    font-weight: var(--pdsa-weight-medium);
    border-radius: var(--pdsa-radius-pill);
}
.pdsa-badge-success { background: var(--pdsa-success-bg); color: var(--pdsa-success); }
.pdsa-badge-info    { background: var(--pdsa-info-bg);    color: var(--pdsa-info); }
.pdsa-badge-warning { background: var(--pdsa-warning-bg); color: var(--pdsa-warning); }
.pdsa-badge-danger  { background: var(--pdsa-danger-bg);  color: var(--pdsa-danger); }
.pdsa-badge-neutral { background: var(--pdsa-bg-elev);    color: var(--pdsa-text-3); }

/* 分隔线 */
.pdsa-divider {
    height: 1px;
    background: var(--pdsa-bg-elev);
    margin: var(--pdsa-space-4) 0;
}
.pdsa-divider-v {
    width: 1px;
    background: var(--pdsa-bg-elev);
    align-self: stretch;
    margin: 0 var(--pdsa-space-3);
}

/* 大写英文标识 */
.pdsa-eyebrow {
    font-size: 10.5px;
    font-weight: var(--pdsa-weight-semibold);
    letter-spacing: var(--pdsa-tracking-widest);
    color: var(--pdsa-text-5);
    text-transform: uppercase;
}

/* 标题 (Serif) */
.pdsa-page-title {
    font-family: var(--pdsa-font-serif);
    font-size: var(--pdsa-text-4xl);
    font-weight: var(--pdsa-weight-bold);
    color: var(--pdsa-text-1);
    letter-spacing: 0.02em;
    margin: 0;
}
.pdsa-section-title {
    font-family: var(--pdsa-font-serif);
    font-size: var(--pdsa-text-2xl);
    font-weight: var(--pdsa-weight-bold);
    color: var(--pdsa-text-1);
}

/* 数据卡片(KPI) */
.pdsa-kpi {
    background: var(--pdsa-bg-card);
    border: 1px solid var(--pdsa-border-1);
    border-radius: var(--pdsa-radius-xl);
    padding: var(--pdsa-space-6);
    display: flex;
    flex-direction: column;
    gap: var(--pdsa-space-3);
    transition: all var(--pdsa-dur-normal) var(--pdsa-ease);
}
.pdsa-kpi:hover {
    border-color: var(--pdsa-brand-400);
    box-shadow: var(--pdsa-shadow-md);
}
.pdsa-kpi-label {
    font-size: var(--pdsa-text-sm);
    color: var(--pdsa-text-3);
    letter-spacing: 0.05em;
}
.pdsa-kpi-value {
    font-family: var(--pdsa-font-serif);
    font-size: var(--pdsa-text-5xl);
    font-weight: var(--pdsa-weight-bold);
    color: var(--pdsa-text-1);
    line-height: 1.1;
}
.pdsa-kpi-trend {
    font-size: var(--pdsa-text-xs);
    color: var(--pdsa-text-5);
}
.pdsa-kpi-trend.up   { color: var(--pdsa-success); }
.pdsa-kpi-trend.down { color: var(--pdsa-danger);  }

/* Logo P 标识 */
.pdsa-logo-p {
    width: 38px;
    height: 38px;
    border-radius: var(--pdsa-radius-lg);
    border: 1px solid var(--pdsa-border-brand-soft);
    background: rgba(201, 169, 97, 0.08);
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: var(--pdsa-font-serif);
    font-size: var(--pdsa-text-xl);
    font-weight: var(--pdsa-weight-bold);
    color: var(--pdsa-brand-400);
    flex-shrink: 0;
}
