/* ============================================================
   PayNexus Design System v3.0
   企业支付平台 · 全局主题样式
   覆盖范围：首页 · 商户中心 · 管理后台 · 支付页面
   ============================================================ */

/* ---- Web Fonts (自托管 Noto Sans SC，避免外部 CDN 不可达导致 404) ---- */
@font-face{
    font-family:"Noto Sans SC";
    font-style:normal;
    font-weight:400;
    font-display:swap;
    src:url("/static/assets/glass/fonts/noto-sans-sc/noto-sans-sc-400.woff2?v=20260728") format("woff2");
}
@font-face{
    font-family:"Noto Sans SC";
    font-style:normal;
    font-weight:500;
    font-display:swap;
    src:url("/static/assets/glass/fonts/noto-sans-sc/noto-sans-sc-500.woff2?v=20260728") format("woff2");
}
@font-face{
    font-family:"Noto Sans SC";
    font-style:normal;
    font-weight:600;
    font-display:swap;
    src:url("/static/assets/glass/fonts/noto-sans-sc/noto-sans-sc-500.woff2?v=20260728") format("woff2");
}
@font-face{
    font-family:"Noto Sans SC";
    font-style:normal;
    font-weight:700;
    font-display:swap;
    src:url("/static/assets/glass/fonts/noto-sans-sc/noto-sans-sc-700.woff2?v=20260728") format("woff2");
}
@font-face{
    font-family:"Noto Sans SC";
    font-style:normal;
    font-weight:900;
    font-display:swap;
    src:url("/static/assets/glass/fonts/noto-sans-sc/noto-sans-sc-700.woff2?v=20260728") format("woff2");
}

/* ---- Design Tokens · Deep Space Gold Theme ---- */
:root {
    /* Background */
    --pn-bg:              #f8fafc;
    --pn-surface:         #ffffff;
    --pn-surface-raised:  #ffffff;
    --pn-surface-hover:   #f1f5f9;
    --pn-surface-soft:    #fdf6e3;

    /* Primary · Deep Space Navy */
    --pn-primary:         #0a1628;
    --pn-primary-hover:   #112240;
    --pn-primary-light:   #eef2f7;
    --pn-primary-text:    #f8fafc;
    --pn-primary-deep:    #060d18;

    /* Accent · Imperial Gold */
    --pn-accent:          #d4af37;
    --pn-accent-hover:    #b8941f;
    --pn-accent-light:    #fdf6e3;
    --pn-accent-text:     #ffffff;
    --pn-accent-soft:     #f4e5b0;
    --pn-accent-deep:     #b8941f;
    --pn-accent-border:   rgba(212,175,55,0.25);
    --pn-accent-bg:       rgba(212,175,55,0.08);

    /* Accent Secondary · Tech Teal */
    --pn-teal:            #00d4aa;
    --pn-teal-hover:      #00b894;
    --pn-teal-light:      #ecfdf5;

    /* Success · Money Green */
    --pn-success:         #10b981;
    --pn-success-hover:   #059669;
    --pn-success-light:   #ecfdf5;

    /* Warning · Amber Gold */
    --pn-warning:         #f59e0b;
    --pn-warning-hover:   #d97706;
    --pn-warning-light:   #fffbeb;

    /* Danger · Red */
    --pn-danger:          #ef4444;
    --pn-danger-hover:    #dc2626;
    --pn-danger-light:    #fef2f2;

    /* Text */
    --pn-text:            #0f172a;
    --pn-text-secondary:  #475569;
    --pn-text-muted:      #94a3b8;
    --pn-text-inverse:    #f8fafc;
    --pn-text-deep:       #0a1628;

    /* Border */
    --pn-border:          #e2e8f0;
    --pn-border-light:    #f1f5f9;
    --pn-border-focus:    #d4af37;
    --pn-border-gold:     rgba(212,175,55,0.3);

    /* Shadow */
    --pn-shadow-sm:       0 1px 2px rgba(0,0,0,.05);
    --pn-shadow:          0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04);
    --pn-shadow-md:       0 4px 6px -1px rgba(0,0,0,.06),0 2px 4px -2px rgba(0,0,0,.04);
    --pn-shadow-lg:       0 10px 15px -3px rgba(0,0,0,.06),0 4px 6px -4px rgba(0,0,0,.04);
    --pn-shadow-xl:       0 20px 25px -5px rgba(0,0,0,.08),0 8px 10px -6px rgba(0,0,0,.04);
    --pn-shadow-gold:     0 10px 30px -10px rgba(212,175,55,.3);
    --pn-shadow-deep:     0 25px 60px -15px rgba(10,22,40,.25);

    /* Radius */
    --pn-radius-sm:       8px;
    --pn-radius:          12px;
    --pn-radius-lg:       16px;
    --pn-radius-xl:       24px;
    --pn-radius-full:     9999px;

    /* Typography */
    --pn-font-sans:       "Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑","Helvetica Neue",Arial,sans-serif;
    --pn-font-display:    "PingFang SC","Microsoft YaHei","Noto Sans SC",-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
    --pn-font-mono:       "SF Mono","Fira Code","Cascadia Code","Consolas","Menlo",monospace;
    --pn-font-serif:      "Noto Serif SC","Source Han Serif SC","STSong",Georgia,serif;

    /* Transition */
    --pn-transition:      0.2s cubic-bezier(0.4,0,0.2,1);
    --pn-transition-slow: 0.35s cubic-bezier(0.4,0,0.2,1);
    --pn-ease:            cubic-bezier(.2,.8,.2,1);

    /* Spacing scale */
    --pn-space-1: 4px;
    --pn-space-2: 8px;
    --pn-space-3: 12px;
    --pn-space-4: 16px;
    --pn-space-5: 20px;
    --pn-space-6: 24px;
    --pn-space-8: 32px;
    --pn-space-10: 40px;
    --pn-space-12: 48px;
    --pn-space-16: 64px;

    /* Layout */
    --pn-max-width: 1200px;

    /* Gold Gradient */
    --pn-gold-gradient:   linear-gradient(135deg,#b8941f 0%,#d4af37 50%,#f4e5b0 100%);
    --pn-deep-gradient:   linear-gradient(135deg,#0a1628 0%,#112240 100%);
}

/* ============================================================
   Theme Variants · 用户可切换主题
   仅覆盖配色相关变量，结构与 :root 完全一致
   data-theme="default" 即上方深空金（无需再写）
   ============================================================ */

/* ---- 暗夜紫 · 深色底 + 紫调主色 ---- */
[data-theme="night-purple"] {
    --pn-bg:              #15121f;
    --pn-surface:         #1c1830;
    --pn-surface-raised:  #231d3a;
    --pn-surface-hover:   #2a2342;
    --pn-surface-soft:    #241d3a;

    --pn-primary:         #7c5cff;
    --pn-primary-hover:   #906ffa;
    --pn-primary-light:   #2a2342;
    --pn-primary-text:    #ffffff;
    --pn-primary-deep:    #5b3fd6;

    --pn-accent:          #b794f6;
    --pn-accent-hover:    #c9a8f8;
    --pn-accent-light:    #241d3a;
    --pn-accent-text:     #1a1430;
    --pn-accent-soft:     #322a4d;
    --pn-accent-deep:     #9b6fe0;
    --pn-accent-border:   rgba(183,148,246,0.3);
    --pn-accent-bg:       rgba(183,148,246,0.1);

    --pn-teal:            #7be0d3;
    --pn-teal-hover:      #9bece2;
    --pn-teal-light:      #1d2f2c;

    --pn-success:         #34d399;
    --pn-success-hover:   #10b981;
    --pn-success-light:   #14271f;

    --pn-warning:         #fbbf24;
    --pn-warning-hover:   #f59e0b;
    --pn-warning-light:   #2a2310;

    --pn-danger:          #f87171;
    --pn-danger-hover:    #ef4444;
    --pn-danger-light:    #2a1818;

    --pn-text:            #ede9f5;
    --pn-text-secondary:  #b3aacb;
    --pn-text-muted:      #7c739a;
    --pn-text-inverse:    #15121f;
    --pn-text-deep:       #fff;

    --pn-border:          #2e2746;
    --pn-border-light:    #251f3a;
    --pn-border-focus:    #7c5cff;
    --pn-border-gold:     rgba(183,148,246,0.35);

    --pn-shadow-gold:     0 10px 30px -10px rgba(124,92,255,.35);
    --pn-shadow-deep:     0 25px 60px -15px rgba(0,0,0,.5);

    --pn-gold-gradient:   linear-gradient(135deg,#5b3fd6 0%,#7c5cff 50%,#b794f6 100%);
    --pn-deep-gradient:   linear-gradient(135deg,#15121f 0%,#2a2342 100%);
}

/* ---- 极光青 · 深色底 + 青绿主色 ---- */
[data-theme="aurora-teal"] {
    --pn-bg:              #0d1b1e;
    --pn-surface:         #10242a;
    --pn-surface-raised:  #143036;
    --pn-surface-hover:   #173a41;
    --pn-surface-soft:    #102a2e;

    --pn-primary:         #0dd4b1;
    --pn-primary-hover:   #2ee6c6;
    --pn-primary-light:   #113138;
    --pn-primary-text:    #04201b;
    --pn-primary-deep:    #0a9e85;

    --pn-accent:          #5eead4;
    --pn-accent-hover:    #7df0dd;
    --pn-accent-light:    #102a2e;
    --pn-accent-text:     #04201b;
    --pn-accent-soft:     #123b38;
    --pn-accent-deep:     #2dd4bf;
    --pn-accent-border:   rgba(94,234,212,0.3);
    --pn-accent-bg:       rgba(94,234,212,0.1);

    --pn-teal:            #34d399;
    --pn-teal-hover:      #10b981;
    --pn-teal-light:      #0f2a24;

    --pn-success:         #34d399;
    --pn-success-hover:   #10b981;
    --pn-success-light:   #0f2a24;

    --pn-warning:         #fbbf24;
    --pn-warning-hover:   #f59e0b;
    --pn-warning-light:   #2a2310;

    --pn-danger:          #f87171;
    --pn-danger-hover:    #ef4444;
    --pn-danger-light:    #2a1818;

    --pn-text:            #e3f5f1;
    --pn-text-secondary:  #9cc4bd;
    --pn-text-muted:      #5f8a83;
    --pn-text-inverse:    #0d1b1e;
    --pn-text-deep:       #fff;

    --pn-border:          #1a3b40;
    --pn-border-light:    #143036;
    --pn-border-focus:    #0dd4b1;
    --pn-border-gold:     rgba(94,234,212,0.35);

    --pn-shadow-gold:     0 10px 30px -10px rgba(13,212,177,.32);
    --pn-shadow-deep:     0 25px 60px -15px rgba(0,0,0,.5);

    --pn-gold-gradient:   linear-gradient(135deg,#0a9e85 0%,#0dd4b1 50%,#5eead4 100%);
    --pn-deep-gradient:   linear-gradient(135deg,#0d1b1e 0%,#173a41 100%);
}

/* ---- 暖阳橙 · 浅色底 + 橙黄主色 ---- */
[data-theme="sunset-orange"] {
    --pn-bg:              #fff8f3;
    --pn-surface:         #ffffff;
    --pn-surface-raised:  #ffffff;
    --pn-surface-hover:   #fff1e6;
    --pn-surface-soft:    #fff3e8;

    --pn-primary:         #ff7a18;
    --pn-primary-hover:   #ff8f3d;
    --pn-primary-light:   #fff1e6;
    --pn-primary-text:    #ffffff;
    --pn-primary-deep:    #e85f00;

    --pn-accent:          #ffb347;
    --pn-accent-hover:    #ffc266;
    --pn-accent-light:    #fff3e8;
    --pn-accent-text:     #5a2e00;
    --pn-accent-soft:     #ffe9cf;
    --pn-accent-deep:     #f59e0b;
    --pn-accent-border:   rgba(255,179,71,0.35);
    --pn-accent-bg:       rgba(255,179,71,0.12);

    --pn-teal:            #14b8a6;
    --pn-teal-hover:      #0d9488;
    --pn-teal-light:      #e6fbf8;

    --pn-success:         #16a34a;
    --pn-success-hover:   #15803d;
    --pn-success-light:   #e9f8ee;

    --pn-warning:         #f59e0b;
    --pn-warning-hover:   #d97706;
    --pn-warning-light:   #fff7e6;

    --pn-danger:          #ef4444;
    --pn-danger-hover:    #dc2626;
    --pn-danger-light:    #fef2f2;

    --pn-text:            #2a1d12;
    --pn-text-secondary:  #7a6552;
    --pn-text-muted:      #b09a86;
    --pn-text-inverse:    #fff8f3;
    --pn-text-deep:       #ff7a18;

    --pn-border:          #f0dcc8;
    --pn-border-light:    #f8ece0;
    --pn-border-focus:    #ff7a18;
    --pn-border-gold:     rgba(255,179,71,0.4);

    --pn-shadow-gold:     0 10px 30px -10px rgba(255,122,24,.28);
    --pn-shadow-deep:     0 25px 60px -15px rgba(234,88,12,.18);

    --pn-gold-gradient:   linear-gradient(135deg,#e85f00 0%,#ff7a18 50%,#ffb347 100%);
    --pn-deep-gradient:   linear-gradient(135deg,#fff8f3 0%,#ffe9cf 100%);
}

/* ---- 商务蓝 · 浅色底 + 经典蓝主色 ---- */
[data-theme="business-blue"] {
    --pn-bg:              #f5f8fc;
    --pn-surface:         #ffffff;
    --pn-surface-raised:  #ffffff;
    --pn-surface-hover:   #eef4fb;
    --pn-surface-soft:    #eef4fb;

    --pn-primary:         #1e5eff;
    --pn-primary-hover:   #3d72ff;
    --pn-primary-light:   #eef4fb;
    --pn-primary-text:    #ffffff;
    --pn-primary-deep:    #1340c4;

    --pn-accent:          #4f9bff;
    --pn-accent-hover:    #6facff;
    --pn-accent-light:    #eef4fb;
    --pn-accent-text:     #062a6b;
    --pn-accent-soft:     #dceaff;
    --pn-accent-deep:     #2d7bff;
    --pn-accent-border:   rgba(79,155,255,0.3);
    --pn-accent-bg:       rgba(79,155,255,0.1);

    --pn-teal:            #0ea5e9;
    --pn-teal-hover:      #0284c7;
    --pn-teal-light:      #e6f6fd;

    --pn-success:         #16a34a;
    --pn-success-hover:   #15803d;
    --pn-success-light:   #e9f8ee;

    --pn-warning:         #f59e0b;
    --pn-warning-hover:   #d97706;
    --pn-warning-light:   #fff7e6;

    --pn-danger:          #ef4444;
    --pn-danger-hover:    #dc2626;
    --pn-danger-light:    #fef2f2;

    --pn-text:            #0f2447;
    --pn-text-secondary:  #4a5b7a;
    --pn-text-muted:      #93a1bd;
    --pn-text-inverse:    #f5f8fc;
    --pn-text-deep:       #1e5eff;

    --pn-border:          #dbe6f3;
    --pn-border-light:    #eef4fb;
    --pn-border-focus:    #1e5eff;
    --pn-border-gold:     rgba(79,155,255,0.35);

    --pn-shadow-gold:     0 10px 30px -10px rgba(30,94,255,.28);
    --pn-shadow-deep:     0 25px 60px -15px rgba(15,36,71,.18);

    --pn-gold-gradient:   linear-gradient(135deg,#1340c4 0%,#1e5eff 50%,#4f9bff 100%);
    --pn-deep-gradient:   linear-gradient(135deg,#0f2447 0%,#1e3a8a 100%);
}

/* ---- Base Reset ---- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{
    font-family:var(--pn-font-sans);
    font-size:15px;
    line-height:1.65;
    color:var(--pn-text);
    background:var(--pn-bg);
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}

/* ---- Typography ---- */
h1,h2,h3,h4,h5,h6{color:var(--pn-text);line-height:1.25;font-weight:700}
h1{font-size:2rem;letter-spacing:-.02em}
h2{font-size:1.5rem;letter-spacing:-.01em}
h3{font-size:1.2rem}
h4{font-size:1.05rem}
p{margin-bottom:0.75em}
a{color:var(--pn-accent);text-decoration:none;transition:color var(--pn-transition)}
a:hover{color:var(--pn-accent-hover)}
small{font-size:.85em;color:var(--pn-text-secondary)}
strong,b{font-weight:600;color:var(--pn-text)}
code,kbd,pre{font-family:var(--pn-font-mono);font-size:.88em}
img,svg{max-width:100%;height:auto}
hr{border:none;border-top:1px solid var(--pn-border);margin:var(--pn-space-6) 0}

/* ---- Links ---- */
a.pn-link{color:var(--pn-accent);font-weight:500;display:inline-flex;align-items:center;gap:4px}
a.pn-link:hover{color:var(--pn-accent-hover);text-decoration:underline}

/* ---- Buttons ---- */
.pn-btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:10px 20px;font-size:14px;font-weight:600;line-height:1.4;
    border-radius:var(--pn-radius);border:1px solid transparent;cursor:pointer;
    font-family:var(--pn-font-sans);white-space:nowrap;
    transition:all var(--pn-transition);user-select:none;
}
.pn-btn:active{transform:translateY(1px)}
.pn-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
.pn-btn-sm{padding:6px 14px;font-size:13px}
.pn-btn-lg{padding:14px 28px;font-size:16px;border-radius:var(--pn-radius-lg)}
.pn-btn-xl{padding:18px 36px;font-size:17px;border-radius:var(--pn-radius-xl)}

.pn-btn-primary{
    background:linear-gradient(135deg,var(--pn-accent-deep) 0%,var(--pn-accent) 50%,var(--pn-accent-soft) 100%);
    color:#fff;border-color:transparent;
    box-shadow:0 4px 14px rgba(212,175,55,.35);
}
.pn-btn-primary:hover{
    transform:translateY(-2px);
    box-shadow:0 8px 24px rgba(212,175,55,.45);
    color:#fff;
}
.pn-btn-primary:active{transform:translateY(0);box-shadow:0 2px 8px rgba(212,175,55,.25)}

.pn-btn-secondary{
    background:var(--pn-surface);color:var(--pn-text);border-color:var(--pn-border);
    box-shadow:var(--pn-shadow-sm);
}
.pn-btn-secondary:hover{background:var(--pn-surface-hover);border-color:var(--pn-border);color:var(--pn-text)}

.pn-btn-outline{
    background:transparent;color:var(--pn-text);border-color:var(--pn-border);
}
.pn-btn-outline:hover{
    background:var(--pn-accent-bg);
    border-color:var(--pn-accent);
    color:var(--pn-accent-deep);
}

.pn-btn-ghost{
    background:transparent;color:var(--pn-text-secondary);border-color:transparent;
}
.pn-btn-ghost:hover{background:var(--pn-surface-hover);color:var(--pn-text)}

.pn-btn-danger{
    background:var(--pn-danger);color:#fff;border-color:var(--pn-danger);
    box-shadow:0 2px 8px rgba(220,38,38,.25);
}
.pn-btn-danger:hover{background:var(--pn-danger-hover);border-color:var(--pn-danger-hover);color:#fff}

.pn-btn-dark{
    background:var(--pn-primary);color:var(--pn-primary-text);border-color:var(--pn-primary);
    box-shadow:0 2px 8px rgba(10,22,40,.3);
}
.pn-btn-dark:hover{background:var(--pn-primary-hover);border-color:var(--pn-primary-hover);color:var(--pn-primary-text)}

/* ---- Cards ---- */
.pn-card{
    background:var(--pn-surface);border:1px solid var(--pn-border);
    border-radius:var(--pn-radius-lg);box-shadow:var(--pn-shadow);
    transition:box-shadow var(--pn-transition),border-color var(--pn-transition);
}
.pn-card:hover{border-color:var(--pn-border-gold);box-shadow:var(--pn-shadow-gold)}
.pn-card-body{padding:var(--pn-space-6)}
.pn-card-header{
    padding:var(--pn-space-5) var(--pn-space-6);
    border-bottom:1px solid var(--pn-border);
    font-weight:600;font-size:15px;color:var(--pn-text);
    display:flex;align-items:center;justify-content:space-between;
}
.pn-card-footer{
    padding:var(--pn-space-4) var(--pn-space-6);
    border-top:1px solid var(--pn-border);
    background:var(--pn-surface-hover);
    border-radius:0 0 var(--pn-radius-lg) var(--pn-radius-lg);
}

/* ---- Tables ---- */
.pn-table{width:100%;border-collapse:collapse;font-size:14px}
.pn-table th{
    text-align:left;padding:12px 16px;
    font-size:12px;font-weight:700;color:var(--pn-text-muted);
    text-transform:uppercase;letter-spacing:.06em;
    background:var(--pn-surface-hover);
    border-bottom:2px solid var(--pn-border);
}
.pn-table td{padding:14px 16px;border-bottom:1px solid var(--pn-border-light);color:var(--pn-text)}
.pn-table tbody tr:hover td{background:var(--pn-surface-hover)}
.pn-table tbody tr:last-child td{border-bottom:none}
.pn-table-striped tbody tr:nth-child(even) td{background:rgba(0,0,0,.01)}
.pn-table-striped tbody tr:hover td{background:var(--pn-surface-hover)}
.pn-table-sm th,.pn-table-sm td{padding:8px 12px;font-size:13px}

/* ---- Forms ---- */
.pn-input,.pn-select,.pn-textarea{
    display:block;width:100%;padding:10px 14px;
    font-size:14px;font-family:var(--pn-font-sans);color:var(--pn-text);
    background:var(--pn-surface);border:1px solid var(--pn-border);
    border-radius:var(--pn-radius);line-height:1.5;
    transition:border-color var(--pn-transition),box-shadow var(--pn-transition);
}
.pn-input:focus,.pn-select:focus,.pn-textarea:focus{
    outline:none;border-color:var(--pn-border-focus);
    box-shadow:0 0 0 3px rgba(212,175,55,.15);
}
.pn-input::placeholder,.pn-textarea::placeholder{color:var(--pn-text-muted)}
.pn-input:hover,.pn-select:hover,.pn-textarea:hover{border-color:var(--pn-border-focus)}
.pn-input:disabled,.pn-select:disabled,.pn-textarea:disabled{
    background:var(--pn-surface-hover);color:var(--pn-text-muted);cursor:not-allowed;
}
.pn-textarea{min-height:100px;resize:vertical}
.pn-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='12' height='8' viewBox='0 0 12 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2394a3b8' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px;cursor:pointer}
.pn-label{display:block;font-size:13px;font-weight:600;color:var(--pn-text-secondary);margin-bottom:6px}
.pn-label-required::after{content:" *";color:var(--pn-danger)}
.pn-form-group{margin-bottom:20px}
.pn-helper{font-size:12px;color:var(--pn-text-muted);margin-top:4px}
.pn-helper-error{color:var(--pn-danger)}

/* ---- Checkbox / Radio ---- */
.pn-checkbox,.pn-radio{display:inline-flex;align-items:center;gap:8px;font-size:14px;color:var(--pn-text);cursor:pointer}
.pn-checkbox input[type="checkbox"],.pn-radio input[type="radio"]{accent-color:var(--pn-accent);width:16px;height:16px;cursor:pointer}

/* ---- Badges ---- */
.pn-badge{
    display:inline-flex;align-items:center;gap:4px;
    padding:3px 10px;font-size:12px;font-weight:600;line-height:1.5;
    border-radius:var(--pn-radius-full);
    border:1px solid transparent;
}
.pn-badge-blue{background:var(--pn-accent-light);color:var(--pn-accent-deep);border-color:var(--pn-accent-border)}
.pn-badge-green{background:var(--pn-success-light);color:var(--pn-success);border-color:rgba(5,150,105,.2)}
.pn-badge-red{background:var(--pn-danger-light);color:var(--pn-danger);border-color:rgba(220,38,38,.2)}
.pn-badge-warn{background:var(--pn-warning-light);color:var(--pn-warning);border-color:rgba(217,119,6,.2)}
.pn-badge-gray{background:var(--pn-surface-hover);color:var(--pn-text-secondary);border-color:var(--pn-border)}
.pn-badge-dark{background:var(--pn-primary);color:var(--pn-primary-text)}

/* ---- Alerts ---- */
.pn-alert{
    display:flex;align-items:flex-start;gap:12px;
    padding:14px 18px;border-radius:var(--pn-radius);
    border:1px solid transparent;font-size:14px;
}
.pn-alert-info{background:var(--pn-accent-light);border-color:var(--pn-accent-border);color:var(--pn-accent-deep)}
.pn-alert-success{background:var(--pn-success-light);border-color:rgba(5,150,105,.18);color:var(--pn-success)}
.pn-alert-warning{background:var(--pn-warning-light);border-color:rgba(217,119,6,.18);color:var(--pn-warning)}
.pn-alert-error{background:var(--pn-danger-light);border-color:rgba(220,38,38,.18);color:var(--pn-danger)}

/* ---- Skeleton loading ---- */
.pn-skeleton{background:linear-gradient(90deg,var(--pn-border-light) 25%,var(--pn-surface-hover) 50%,var(--pn-border-light) 75%);background-size:200% 100%;animation:pn-shimmer 1.5s infinite;border-radius:var(--pn-radius)}
@keyframes pn-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ---- Utility Classes ---- */
.pn-text-center{text-align:center}
.pn-text-right{text-align:right}
.pn-text-muted{color:var(--pn-text-muted)}
.pn-text-secondary{color:var(--pn-text-secondary)}
.pn-text-success{color:var(--pn-success)}
.pn-text-danger{color:var(--pn-danger)}
.pn-text-warning{color:var(--pn-warning)}
.pn-text-accent{color:var(--pn-accent)}
.pn-font-mono{font-family:var(--pn-font-mono)}
.pn-font-bold{font-weight:700}
.pn-font-semibold{font-weight:600}
.pn-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.pn-flex{display:flex}
.pn-flex-col{flex-direction:column}
.pn-items-center{align-items:center}
.pn-justify-between{justify-content:space-between}
.pn-justify-center{justify-content:center}
.pn-gap-2{gap:var(--pn-space-2)}
.pn-gap-3{gap:var(--pn-space-3)}
.pn-gap-4{gap:var(--pn-space-4)}
.pn-gap-6{gap:var(--pn-space-6)}
.pn-flex-1{flex:1 1 0%}
.pn-flex-wrap{flex-wrap:wrap}

.pn-grid{display:grid}
.pn-grid-cols-2{grid-template-columns:repeat(2,1fr)}
.pn-grid-cols-3{grid-template-columns:repeat(3,1fr)}
.pn-grid-cols-4{grid-template-columns:repeat(4,1fr)}

.pn-w-full{width:100%}
.pn-max-w{max-width:var(--pn-max-width);margin-left:auto;margin-right:auto}

.pn-mt-2{margin-top:var(--pn-space-2)}
.pn-mt-4{margin-top:var(--pn-space-4)}
.pn-mt-6{margin-top:var(--pn-space-6)}
.pn-mt-8{margin-top:var(--pn-space-8)}
.pn-mb-2{margin-bottom:var(--pn-space-2)}
.pn-mb-4{margin-bottom:var(--pn-space-4)}
.pn-mb-6{margin-bottom:var(--pn-space-6)}
.pn-p-4{padding:var(--pn-space-4)}
.pn-p-6{padding:var(--pn-space-6)}
.pn-px-4{padding-left:var(--pn-space-4);padding-right:var(--pn-space-4)}
.pn-px-6{padding-left:var(--pn-space-6);padding-right:var(--pn-space-6)}
.pn-py-2{padding-top:var(--pn-space-2);padding-bottom:var(--pn-space-2)}
.pn-py-4{padding-top:var(--pn-space-4);padding-bottom:var(--pn-space-4)}

.pn-hidden{display:none}
.pn-block{display:block}
.pn-inline{display:inline}

.pn-rounded{border-radius:var(--pn-radius)}
.pn-rounded-lg{border-radius:var(--pn-radius-lg)}
.pn-rounded-xl{border-radius:var(--pn-radius-xl)}
.pn-rounded-full{border-radius:var(--pn-radius-full)}
.pn-border{border:1px solid var(--pn-border)}
.pn-shadow{box-shadow:var(--pn-shadow)}
.pn-shadow-md{box-shadow:var(--pn-shadow-md)}

/* ---- Scrollbar ---- */
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--pn-border);border-radius:3px}
::-webkit-scrollbar-thumb:hover{background:var(--pn-text-muted)}

/* ---- Selection ---- */
::selection{background:rgba(212,175,55,.25);color:var(--pn-text)}

/* ---- Focus visible (a11y) ---- */
:focus-visible{outline:2px solid var(--pn-border-focus);outline-offset:2px}

/* ---- Gold Text Utility ---- */
.pn-gold-text{
    background:linear-gradient(135deg,var(--pn-accent-deep) 0%,var(--pn-accent) 50%,var(--pn-accent-soft) 100%);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
}

/* ---- Deep Background Utility ---- */
.pn-deep-bg{
    background:linear-gradient(135deg,var(--pn-primary) 0%,var(--pn-primary-hover) 100%);
    color:var(--pn-primary-text);
}

/* ---- Card Gold Top Border ---- */
.pn-card-gold{
    position:relative;
    overflow:hidden;
}
.pn-card-gold::before{
    content:'';position:absolute;top:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--pn-accent-deep),var(--pn-accent),var(--pn-accent-soft));
}

/* ---- Shimmer Animation ---- */
@keyframes pn-shimmer-gold{
    0%{background-position:200% 0}
    100%{background-position:-200% 0}
}
.pn-shimmer-gold{
    background:linear-gradient(90deg,var(--pn-accent-light) 25%,var(--pn-surface-soft) 50%,var(--pn-accent-light) 75%);
    background-size:200% 100%;
    animation:pn-shimmer-gold 1.5s infinite;
}

/* ---- Responsive ---- */
@media(max-width:1024px){
    .pn-grid-cols-4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
    :root{--pn-space-6:20px;--pn-space-8:24px;--pn-space-12:32px;--pn-space-16:44px}
    body{font-size:14px}
    .pn-grid-cols-2,.pn-grid-cols-3,.pn-grid-cols-4{grid-template-columns:1fr}
    .pn-hide-mobile{display:none}
}
@media(max-width:480px){
    .pn-card-body{padding:var(--pn-space-4)}
    .pn-btn-lg{padding:12px 22px;font-size:15px}
}

/* ---- Print ---- */
@media print{
    body{background:#fff;color:#000;font-size:12pt}
    .pn-btn,.pn-card{box-shadow:none;border:1px solid #ccc}
    a{color:#000;text-decoration:underline}
}
