/* ====================================================================
 * 餐饮运维工单管理系统 - 亮色清新主题
 * ==================================================================== */

/* ==================== 基础重置 ==================== */
*{margin:0;padding:0;box-sizing:border-box;}
:root{
    /* 主题强调色 */
    --primary:#0ea5e9;
    --primary-rgb:14,165,233;
    --primary-light:#38bdf8;
    --primary-dark:#0284c7;
    --primary-glow:rgba(var(--primary-rgb),.12);
    --primary-glow-strong:rgba(var(--primary-rgb),.25);
    --primary-lighter:rgba(var(--primary-rgb),.06);
    /* 辅助色（用于渐变和装饰） */
    --secondary:#8b5cf6;
    --secondary-rgb:139,92,246;
    --success:#10b981;
    --success-light:rgba(16,185,129,.06);
    --success-glow:rgba(16,185,129,.2);
    --warning:#f59e0b;
    --warning-light:rgba(245,158,11,.06);
    --warning-glow:rgba(245,158,11,.2);
    --danger:#ef4444;
    --danger-light:rgba(239,68,68,.06);
    --danger-glow:rgba(239,68,68,.2);
    --info:#06b6d4;
    --info-light:rgba(6,182,212,.06);
    --purple:#8b5cf6;
    --purple-light:rgba(139,92,246,.06);
    --purple-glow:rgba(139,92,246,.2);
    /* 亮色背景体系 */
    --bg:#f0f4f8;
    --bg-secondary:#e8eef5;
    --bg-tertiary:#ffffff;
    --card-bg:#ffffff;
    --card-bg-solid:#ffffff;
    --card-border:rgba(0,0,0,.06);
    --card-border-hover:rgba(var(--primary-rgb),.25);
    --text:#1e293b;
    --text-secondary:#64748b;
    --text-light:#94a3b8;
    --border:rgba(0,0,0,.08);
    --border-light:rgba(0,0,0,.04);
    /* 侧边栏 */
    --sidebar-bg:#ffffff;
    --sidebar-bg-2:#f8fafc;
    --sidebar-hover:rgba(var(--primary-rgb),.06);
    --sidebar-active:linear-gradient(135deg,rgba(var(--primary-rgb),.1),rgba(var(--secondary-rgb),.06));
    --sidebar-active-border:rgba(var(--primary-rgb),.3);
    /* 主题渐变 */
    --gradient-primary:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 100%);
    --gradient-primary-3:linear-gradient(135deg,var(--primary) 0%,var(--secondary) 50%,var(--purple) 100%);
    /* 阴影 */
    --shadow-sm:0 1px 3px rgba(0,0,0,.06),0 1px 2px rgba(0,0,0,.04);
    --shadow:0 2px 8px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.04);
    --shadow-md:0 4px 16px rgba(0,0,0,.08),0 2px 6px rgba(0,0,0,.04);
    --shadow-lg:0 8px 28px rgba(0,0,0,.1),0 4px 12px rgba(0,0,0,.06);
    --shadow-xl:0 16px 48px rgba(0,0,0,.12),0 8px 24px rgba(0,0,0,.08);
    --glow-primary:0 0 0 3px var(--primary-glow);
    --glow-primary-strong:0 0 0 4px var(--primary-glow-strong);
    --radius-sm:6px;
    --radius:10px;
    --radius-lg:14px;
    --transition:all .25s cubic-bezier(.4,0,.2,1);
}
body{
    font-family:'Segoe UI','Microsoft YaHei','PingFang SC','Helvetica Neue',sans-serif;
    background:var(--bg);
    color:var(--text);
    font-size:14px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
}

/* ==================== 自定义滚动条 ==================== */
::-webkit-scrollbar{width:6px;height:6px;}
::-webkit-scrollbar-track{background:transparent;}
::-webkit-scrollbar-thumb{background:rgba(0,0,0,.12);border-radius:3px;}
::-webkit-scrollbar-thumb:hover{background:rgba(var(--primary-rgb),.4);}
.sidebar ::-webkit-scrollbar-thumb{background:rgba(0,0,0,.08);}

/* ==================== 登录页（亮色科技风格） ==================== */
.login-page{
    min-height:100vh;
    display:flex;
    background:#eef2f7;
    position:relative;
    overflow:hidden;
}

/* --- 科技背景层 --- */
.tech-bg{
    position:absolute;inset:0;
    z-index:0;pointer-events:none;
    overflow:hidden;
}
.tech-grid{
    position:absolute;inset:-50%;
    background-image:
        linear-gradient(rgba(var(--primary-rgb),.06) 1px,transparent 1px),
        linear-gradient(90deg,rgba(var(--primary-rgb),.06) 1px,transparent 1px);
    background-size:50px 50px;
    transform:perspective(500px) rotateX(0deg);
    animation:gridMove 20s linear infinite;
    opacity:.6;
}
@keyframes gridMove{
    0%{transform:translateY(0);}
    100%{transform:translateY(50px);}
}
/* 扫描线 */
.tech-scanline{
    position:absolute;left:0;right:0;height:2px;
    background:linear-gradient(90deg,transparent,rgba(var(--primary-rgb),.5),transparent);
    box-shadow:0 0 16px rgba(var(--primary-rgb),.3);
    animation:scanline 4s linear infinite;
    top:0;
}
@keyframes scanline{
    0%{top:0;opacity:0;}
    10%{opacity:1;}
    90%{opacity:1;}
    100%{top:100%;opacity:0;}
}
/* 粒子 */
.tech-particles{position:absolute;inset:0;}
.tech-particles span{
    position:absolute;
    width:4px;height:4px;
    border-radius:50%;
    background:rgba(var(--primary-rgb),.4);
    box-shadow:0 0 6px rgba(var(--primary-rgb),.5);
    animation:particleFloat 15s linear infinite;
}
.tech-particles span:nth-child(1){left:5%;top:80%;animation-delay:0s;animation-duration:12s;}
.tech-particles span:nth-child(2){left:15%;top:60%;animation-delay:2s;animation-duration:18s;}
.tech-particles span:nth-child(3){left:25%;top:90%;animation-delay:4s;animation-duration:14s;}
.tech-particles span:nth-child(4){left:35%;top:70%;animation-delay:1s;animation-duration:16s;}
.tech-particles span:nth-child(5){left:45%;top:85%;animation-delay:3s;animation-duration:20s;}
.tech-particles span:nth-child(6){left:55%;top:65%;animation-delay:5s;animation-duration:13s;}
.tech-particles span:nth-child(7){left:65%;top:75%;animation-delay:7s;animation-duration:17s;}
.tech-particles span:nth-child(8){left:75%;top:55%;animation-delay:2s;animation-duration:15s;}
.tech-particles span:nth-child(9){left:85%;top:80%;animation-delay:6s;animation-duration:19s;}
.tech-particles span:nth-child(10){left:92%;top:50%;animation-delay:8s;animation-duration:14s;}
.tech-particles span:nth-child(11){left:10%;top:40%;animation-delay:3s;animation-duration:21s;width:3px;height:3px;}
.tech-particles span:nth-child(12){left:30%;top:30%;animation-delay:9s;animation-duration:16s;width:3px;height:3px;}
.tech-particles span:nth-child(13){left:50%;top:20%;animation-delay:4s;animation-duration:18s;width:2px;height:2px;}
.tech-particles span:nth-child(14){left:70%;top:35%;animation-delay:7s;animation-duration:22s;width:3px;height:3px;}
.tech-particles span:nth-child(15){left:90%;top:25%;animation-delay:10s;animation-duration:15s;width:2px;height:2px;}
@keyframes particleFloat{
    0%{transform:translateY(0) translateX(0);opacity:0;}
    10%{opacity:1;}
    90%{opacity:.8;}
    100%{transform:translateY(-100vh) translateX(30px);opacity:0;}
}
/* 光球 */
.tech-orb{
    position:absolute;
    border-radius:50%;
    filter:blur(60px);
    animation:orbPulse 8s ease-in-out infinite;
}
.orb-1{
    width:400px;height:400px;
    top:-100px;left:-50px;
    background:radial-gradient(circle,rgba(var(--primary-rgb),.12),transparent 70%);
}
.orb-2{
    width:300px;height:300px;
    bottom:-80px;right:30%;
    background:radial-gradient(circle,rgba(var(--secondary-rgb),.1),transparent 70%);
    animation-delay:3s;
}
.orb-3{
    width:350px;height:350px;
    top:30%;right:-100px;
    background:radial-gradient(circle,rgba(var(--primary-rgb),.08),transparent 70%);
    animation-delay:5s;
}
@keyframes orbPulse{
    0%,100%{transform:scale(1);opacity:.6;}
    50%{transform:scale(1.2);opacity:1;}
}

/* --- 顶部状态栏 --- */
.tech-topbar{
    position:absolute;top:0;left:0;right:0;
    z-index:10;
    display:flex;align-items:center;justify-content:space-between;
    padding:14px 30px;
    font-family:'Courier New','Consolas',monospace;
    font-size:12px;
    letter-spacing:1.5px;
    color:var(--text-secondary);
}
.tech-status{display:flex;align-items:center;gap:8px;}
.status-dot{
    width:8px;height:8px;border-radius:50%;
    background:#22c55e;
    box-shadow:0 0 8px rgba(34,197,94,.6);
    animation:statusBlink 2s ease-in-out infinite;
}
@keyframes statusBlink{
    0%,100%{opacity:1;}
    50%{opacity:.4;}
}
.tech-clock{
    font-variant-numeric:tabular-nums;
    color:var(--primary-dark);
    text-shadow:0 0 8px rgba(var(--primary-rgb),.2);
}

/* --- 左侧品牌区 --- */
.login-brand{
    flex:1;
    display:flex;
    align-items:center;
    justify-content:center;
    position:relative;
    overflow:hidden;
    padding:80px 50px 80px;
    z-index:1;
    background:linear-gradient(135deg,rgba(var(--primary-rgb),.06) 0%,rgba(var(--secondary-rgb),.04) 50%,rgba(var(--primary-rgb),.06) 100%);
    border-right:1px solid rgba(var(--primary-rgb),.15);
}
.login-brand::before{
    content:'';
    position:absolute;inset:0;
    background:
        radial-gradient(ellipse at 20% 30%,rgba(var(--primary-rgb),.08),transparent 50%),
        radial-gradient(ellipse at 80% 70%,rgba(var(--secondary-rgb),.06),transparent 50%);
    pointer-events:none;
}
/* 电路装饰 */
.circuit-deco{
    position:absolute;
    top:20px;right:20px;
    width:200px;height:200px;
    color:var(--primary);
    opacity:.3;
    z-index:1;
    animation:circuitGlow 4s ease-in-out infinite;
}
.circuit-deco svg{width:100%;height:100%;}
@keyframes circuitGlow{
    0%,100%{opacity:.15;filter:drop-shadow(0 0 4px rgba(var(--primary-rgb),.2));}
    50%{opacity:.35;filter:drop-shadow(0 0 8px rgba(var(--primary-rgb),.4));}
}
.brand-decoration{
    position:absolute;
    top:-30%;right:-20%;
    width:500px;height:500px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(var(--primary-rgb),.06),transparent 70%);
    pointer-events:none;
    animation:decoPulse 6s ease-in-out infinite;
}
.brand-decoration::before{
    content:'';position:absolute;
    bottom:-150px;left:-80px;
    width:350px;height:350px;
    border-radius:50%;
    background:radial-gradient(circle,rgba(var(--secondary-rgb),.06),transparent 70%);
    animation:decoPulse 8s ease-in-out infinite reverse;
}
@keyframes decoPulse{
    0%,100%{transform:scale(1);opacity:.5;}
    50%{transform:scale(1.15);opacity:.9;}
}
.brand-content{position:relative;z-index:2;max-width:400px;text-align:center;color:var(--text);}

/* Logo */
.brand-logo{
    position:relative;
    width:120px;height:120px;
    margin:0 auto 28px;
    display:flex;align-items:center;justify-content:center;
    border-radius:24px;
    background:rgba(255,255,255,.6);
    backdrop-filter:blur(10px);
    border:1px solid rgba(var(--primary-rgb),.25);
    box-shadow:0 8px 32px rgba(var(--primary-rgb),.18),inset 0 1px 0 rgba(255,255,255,.6);
    animation:logoGlow 3s ease-in-out infinite;
    overflow:hidden;
}
.logo-image{
    width:96px;height:96px;
    object-fit:contain;
    border-radius:12px;
    z-index:2;
}
@keyframes logoGlow{
    0%,100%{box-shadow:0 8px 32px rgba(var(--primary-rgb),.18),inset 0 1px 0 rgba(255,255,255,.6);}
    50%{box-shadow:0 8px 48px rgba(var(--primary-rgb),.3),inset 0 1px 0 rgba(255,255,255,.8);}
}

.brand-title{
    font-size:34px;font-weight:800;
    line-height:1.3;margin-bottom:12px;
    letter-spacing:1px;
    color:var(--text);
    text-shadow:0 0 20px rgba(var(--primary-rgb),.15);
}
.brand-subtitle{
    font-size:15px;color:var(--text-secondary);
    margin-bottom:0;
    letter-spacing:.5px;
}
.brand-features{display:flex;flex-direction:column;gap:14px;}
.brand-meta{
    display:flex;align-items:center;gap:0;
    padding:14px 20px;border-radius:12px;
    background:rgba(255,255,255,.6);
    backdrop-filter:blur(8px);
    border:1px solid rgba(var(--primary-rgb),.12);
    margin-top:36px;
    box-shadow:var(--shadow-sm);
}
.meta-item{
    display:flex;flex-direction:column;align-items:center;
    gap:4px;flex:1;
}
.meta-label{
    font-size:10px;font-weight:600;
    color:var(--text-light);
    letter-spacing:1.5px;text-transform:uppercase;
}
.meta-value{
    font-size:13px;font-weight:600;
    color:var(--text);
    font-family:'Courier New','Consolas',monospace;
}
.meta-online{color:#16a34a !important;text-shadow:0 0 6px rgba(34,197,94,.3);}
.meta-divider{
    width:1px;height:28px;
    background:rgba(var(--primary-rgb),.15);
}
.brand-security{
    position:absolute;bottom:40px;left:50%;
    transform:translateX(-50%);
    z-index:2;
    display:flex;align-items:center;gap:8px;
    font-size:11px;
    color:var(--text-light);
    letter-spacing:.5px;
    white-space:nowrap;
}
.security-icon{font-size:13px;}

/* --- 右侧登录区 --- */
.login-form-side{
    width:480px;flex-shrink:0;
    display:flex;align-items:center;
    justify-content:center;
    padding:40px;
    z-index:1;
    position:relative;
    background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(255,255,255,.9));
}
.login-card{
    width:100%;max-width:380px;
    position:relative;
    padding:40px 36px;
    background:rgba(255,255,255,.85);
    backdrop-filter:blur(20px);
    border-radius:18px;
    border:1px solid rgba(var(--primary-rgb),.15);
    box-shadow:
        0 8px 32px rgba(0,0,0,.06),
        0 2px 8px rgba(var(--primary-rgb),.08),
        inset 0 1px 0 rgba(255,255,255,.8);
}
/* 卡片光晕 */
.login-card-glow{
    position:absolute;inset:-1px;
    border-radius:18px;
    background:linear-gradient(135deg,rgba(var(--primary-rgb),.2),transparent 40%,rgba(var(--secondary-rgb),.2));
    z-index:-1;
    opacity:.4;
    animation:cardGlowPulse 4s ease-in-out infinite;
}
@keyframes cardGlowPulse{
    0%,100%{opacity:.2;}
    50%{opacity:.5;}
}

/* 登录头部 */
.login-header{text-align:center;margin-bottom:32px;}
.login-header-icon{
    font-size:28px;margin:0 auto 14px;
    width:56px;height:56px;
    display:flex;align-items:center;justify-content:center;
    border-radius:14px;
    background:linear-gradient(135deg,rgba(var(--primary-rgb),.1),rgba(var(--secondary-rgb),.06));
    border:1px solid rgba(var(--primary-rgb),.2);
    box-shadow:0 4px 16px rgba(var(--primary-rgb),.12);
}
.login-header h2{
    font-size:24px;font-weight:800;color:var(--text);margin-bottom:6px;
    letter-spacing:1px;
    text-shadow:0 0 12px rgba(var(--primary-rgb),.1);
}
.login-header p{font-size:13px;color:var(--text-secondary);letter-spacing:.5px;}
.login-form{margin-bottom:28px;}
.form-group{margin-bottom:20px;}
.form-group label{
    display:block;font-size:12px;font-weight:600;
    color:var(--primary-dark);margin-bottom:8px;
    letter-spacing:1px;text-transform:uppercase;
}
.input-wrap{position:relative;}
.input-icon{
    position:absolute;left:14px;top:50%;
    transform:translateY(-50%);font-size:16px;
    opacity:.4;pointer-events:none;
    transition:var(--transition);
    z-index:2;
}
.input-wrap input{padding-left:42px !important;}
.form-group input,
.form-group select,
.form-group textarea{
    width:100%;padding:12px 14px;
    border:1px solid rgba(var(--primary-rgb),.15);
    border-radius:var(--radius);
    font-size:14px;font-family:inherit;
    transition:var(--transition);
    background:rgba(255,255,255,.7);
    color:var(--text);
}
.form-group input::placeholder,
.form-group textarea::placeholder{color:var(--text-light);}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus{
    outline:none;
    border-color:var(--primary);
    background:#fff;
    box-shadow:0 0 0 3px rgba(var(--primary-rgb),.12),0 0 16px rgba(var(--primary-rgb),.1);
}
.form-group input:focus + .input-icon,
.form-group select:focus + .input-icon{opacity:1;color:var(--primary);}
.form-group input:focus ~ .input-icon{opacity:1;}
.form-group textarea{resize:vertical;min-height:80px;}
.form-group input[type="date"],
.form-group input[type="time"]{color-scheme:light;cursor:pointer;}
.form-group input[type="date"]::-webkit-calendar-picker-indicator,
.form-group input[type="time"]::-webkit-calendar-picker-indicator{cursor:pointer;opacity:.6;}
.form-group input[type="date"]::-webkit-calendar-picker-indicator:hover,
.form-group input[type="time"]::-webkit-calendar-picker-indicator:hover{opacity:1;}

/* 登录按钮 */
.tech-login-btn{
    background:linear-gradient(135deg,var(--primary),var(--primary-dark)) !important;
    color:#fff !important;
    font-size:15px !important;
    font-weight:700 !important;
    letter-spacing:2px;
    padding:13px 20px !important;
    border:1px solid rgba(var(--primary-rgb),.3) !important;
    box-shadow:0 4px 16px rgba(var(--primary-rgb),.25);
    position:relative;overflow:hidden;
}
.tech-login-btn:hover{
    box-shadow:0 6px 24px rgba(var(--primary-rgb),.35) !important;
    transform:translateY(-2px);
}
/* 按钮扫描光效 */
.tech-login-btn::after{
    content:'';position:absolute;top:0;left:-100%;
    width:100%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);
    transition:left .6s;
}
.tech-login-btn:hover::after{left:100%;}

/* 登录错误 */
.login-error{
    background:rgba(239,68,68,.06);color:var(--danger);
    padding:10px 14px;border-radius:var(--radius);
    font-size:13px;margin-bottom:16px;
    border:1px solid rgba(239,68,68,.2);
    box-shadow:0 2px 8px rgba(239,68,68,.08);
    animation:shake .3s ease;
}
@keyframes shake{
    0%,100%{transform:translateX(0);}
    25%{transform:translateX(-6px);}
    75%{transform:translateX(6px);}
}

/* 演示账号区 */
.login-demo{border-top:1px solid rgba(var(--primary-rgb),.1);padding-top:20px;}
.demo-title{font-size:11px;color:var(--text-light);margin-bottom:10px;text-align:center;letter-spacing:1px;text-transform:uppercase;}
.demo-accounts{display:flex;flex-direction:column;gap:8px;}
.demo-account{
    display:flex;align-items:center;gap:10px;
    padding:9px 14px;
    background:rgba(255,255,255,.5);
    border-radius:var(--radius);cursor:pointer;
    font-size:13px;transition:var(--transition);
    border:1px solid rgba(var(--primary-rgb),.08);
    color:var(--text-secondary);
}
.demo-account:hover{
    background:rgba(var(--primary-rgb),.06);
    border-color:rgba(var(--primary-rgb),.25);
    transform:translateX(4px);
    color:var(--text);
    box-shadow:0 2px 12px rgba(var(--primary-rgb),.1);
}
.demo-role{
    padding:2px 8px;border-radius:4px;
    font-size:11px;font-weight:600;color:#fff;
}
.demo-role.admin{background:linear-gradient(135deg,var(--primary),var(--primary-dark));box-shadow:0 2px 6px rgba(var(--primary-rgb),.25);}
.demo-role.supervisor{background:linear-gradient(135deg,var(--secondary),var(--secondary-dark));box-shadow:0 2px 6px rgba(var(--secondary-rgb),.25);}
.demo-role.engineer{background:linear-gradient(135deg,#06b6d4,#0891b2);box-shadow:0 2px 6px rgba(6,182,212,.25);}
.demo-role.requester{background:linear-gradient(135deg,#64748b,#475569);}

/* 底部信息 */
.tech-footer{
    position:absolute;bottom:0;left:0;right:0;
    z-index:10;
    text-align:center;
    padding:12px;
    font-family:'Courier New','Consolas',monospace;
    font-size:11px;
    color:var(--text-light);
    letter-spacing:1px;
}
.tech-footer-sep{margin:0 8px;color:rgba(var(--primary-rgb),.3);}

/* ==================== 按钮 ==================== */
.btn{
    padding:9px 20px;border:none;border-radius:var(--radius);
    font-size:14px;font-weight:600;cursor:pointer;
    transition:var(--transition);display:inline-flex;
    align-items:center;gap:6px;font-family:inherit;
    white-space:nowrap;position:relative;overflow:hidden;
    letter-spacing:.3px;
}
.btn::before{
    content:'';position:absolute;top:0;left:-100%;
    width:100%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
    transition:left .5s;
}
.btn:hover::before{left:100%;}
.btn-primary{
    background:linear-gradient(135deg,var(--primary),var(--primary-dark));
    color:#fff;
    box-shadow:0 2px 8px rgba(var(--primary-rgb),.25);
}
.btn-primary:hover{
    background:linear-gradient(135deg,var(--primary-light),var(--primary));
    box-shadow:0 4px 16px rgba(var(--primary-rgb),.35);
    transform:translateY(-1px);
}
.btn-success{
    background:linear-gradient(135deg,#10b981,#059669);
    color:#fff;
    box-shadow:0 2px 8px rgba(16,185,129,.2);
}
.btn-success:hover{
    background:linear-gradient(135deg,#34d399,#10b981);
    box-shadow:0 4px 16px rgba(16,185,129,.3);
    transform:translateY(-1px);
}
.btn-warning{
    background:linear-gradient(135deg,#f59e0b,#d97706);
    color:#fff;
    box-shadow:0 2px 8px rgba(245,158,11,.2);
}
.btn-warning:hover{
    background:linear-gradient(135deg,#fbbf24,#f59e0b);
    box-shadow:0 4px 16px rgba(245,158,11,.3);
    transform:translateY(-1px);
}
.btn-danger{
    background:linear-gradient(135deg,#ef4444,#dc2626);
    color:#fff;
    box-shadow:0 2px 8px rgba(239,68,68,.2);
}
.btn-danger:hover{
    background:linear-gradient(135deg,#f87171,#ef4444);
    box-shadow:0 4px 16px rgba(239,68,68,.3);
    transform:translateY(-1px);
}
.btn-info{
    background:linear-gradient(135deg,#06b6d4,#0891b2);
    color:#fff;
    box-shadow:0 2px 8px rgba(6,182,212,.2);
}
.btn-info:hover{
    background:linear-gradient(135deg,#22d3ee,#06b6d4);
    box-shadow:0 4px 16px rgba(6,182,212,.3);
    transform:translateY(-1px);
}
.btn-default{
    background:#f1f5f9;
    color:var(--text-secondary);
    border:1px solid var(--border);
}
.btn-default:hover{
    background:var(--primary-lighter);
    border-color:var(--card-border-hover);
    color:var(--primary-dark);
}
.btn-sm{padding:6px 12px;font-size:12px;border-radius:var(--radius-sm);}
.btn-block{width:100%;justify-content:center;padding:13px;font-size:15px;letter-spacing:2px;}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none !important;box-shadow:none !important;}

/* ==================== 主应用布局 ==================== */
.main-app{display:flex;min-height:100vh;}

/* 侧边栏 */
.sidebar{
    width:250px;
    background:var(--sidebar-bg);
    color:var(--text-secondary);display:flex;flex-direction:column;
    position:fixed;top:0;bottom:0;left:0;z-index:100;
    transition:transform .3s cubic-bezier(.4,0,.2,1);
    border-right:1px solid var(--border);
    box-shadow:2px 0 12px rgba(0,0,0,.04);
}
.sidebar-header{
    padding:22px 24px;display:flex;align-items:center;gap:12px;
    border-bottom:1px solid var(--border);
    position:relative;
}
.sidebar-logo{
    width:36px;height:36px;
    border-radius:8px;
    object-fit:contain;
    background:#fff;
    border:1px solid var(--border);
    padding:4px;
    box-shadow:0 2px 8px rgba(var(--primary-rgb),.15);
}
.sidebar-title{
    font-size:14px;font-weight:700;
    background:var(--gradient-primary);
    -webkit-background-clip:text;
    -webkit-text-fill-color:transparent;
    background-clip:text;
    letter-spacing:.5px;
    flex:1;
}
.sidebar-collapse-btn{
    width:24px;height:24px;border-radius:6px;
    background:#f1f5f9;
    border:1px solid var(--border);
    color:var(--text-secondary);font-size:12px;
    cursor:pointer;transition:var(--transition);
    display:flex;align-items:center;justify-content:center;
    flex-shrink:0;
}
.sidebar-collapse-btn:hover{
    background:var(--primary-lighter);
    border-color:var(--card-border-hover);
    color:var(--primary);
}
.sidebar.collapsed .sidebar-collapse-btn{transform:rotate(180deg);}
.sidebar-nav{flex:1;padding:16px 12px;overflow-y:auto;overflow-x:hidden;}
.nav-section-label{
    font-size:10px;font-weight:600;
    color:var(--text-light);
    text-transform:uppercase;letter-spacing:2px;
    padding:0 12px;margin-bottom:8px;margin-top:12px;
}
.nav-section-label:first-child{margin-top:0;}
.nav-item{
    display:flex;align-items:center;gap:12px;
    padding:11px 14px;cursor:pointer;
    color:var(--text-secondary);font-size:14px;font-weight:500;
    transition:var(--transition);
    border-radius:var(--radius);
    margin-bottom:3px;position:relative;
    border:1px solid transparent;
}
.nav-item::before{
    content:'';position:absolute;left:0;top:50%;
    transform:translateY(-50%);
    width:3px;height:0;border-radius:0 3px 3px 0;
    background:var(--primary);
    transition:var(--transition);
}
.nav-item:hover{
    background:var(--sidebar-hover);
    color:var(--text);
    border-color:var(--card-border);
}
.nav-item:hover::before{height:50%;}
.nav-item.active{
    background:var(--sidebar-active);
    color:var(--primary-dark);
    border-color:var(--sidebar-active-border);
    font-weight:600;
}
.nav-item.active::before{height:60%;box-shadow:0 0 8px var(--primary-glow-strong);}
.nav-item .nav-icon{font-size:18px;width:24px;text-align:center;flex-shrink:0;}
.sidebar-footer{
    padding:16px;
    border-top:1px solid var(--border);
}
.user-info{
    display:flex;align-items:center;gap:12px;
    margin-bottom:14px;padding:10px;
    border-radius:var(--radius);
    background:var(--bg-secondary);
    border:1px solid var(--border);
}
.user-avatar{
    width:38px;height:38px;border-radius:10px;
    background:var(--gradient-primary);
    color:#fff;display:flex;align-items:center;justify-content:center;
    font-weight:700;font-size:15px;flex-shrink:0;
    box-shadow:0 2px 8px rgba(var(--primary-rgb),.2);
}
.user-name{font-size:13px;font-weight:600;color:var(--text);}
.user-role{font-size:11px;color:var(--text-light);}
.btn-logout{
    width:100%;padding:9px;
    border:1px solid rgba(239,68,68,.2);
    background:var(--danger-light);color:var(--danger);
    border-radius:var(--radius);cursor:pointer;
    font-size:13px;font-weight:500;transition:var(--transition);
    font-family:inherit;
}
.btn-logout:hover{
    background:rgba(239,68,68,.12);
    border-color:var(--danger);
    box-shadow:0 2px 8px rgba(239,68,68,.15);
}

/* 主内容区 */
.main-content{
    flex:1;margin-left:250px;
    display:flex;flex-direction:column;
    min-height:100vh;
    background:var(--bg);
}
.topbar{
    height:60px;
    background:rgba(255,255,255,.9);
    backdrop-filter:blur(12px);
    display:flex;align-items:center;
    padding:0 28px;gap:16px;
    box-shadow:var(--shadow-sm);
    position:sticky;top:0;z-index:50;
    border-bottom:1px solid var(--border);
}
.topbar-left{display:flex;align-items:center;gap:14px;flex:1;min-width:0;}
.topbar h2{
    font-size:18px;font-weight:700;letter-spacing:.5px;
    color:var(--text);white-space:nowrap;
}
.topbar-breadcrumb{
    display:flex;align-items:center;gap:6px;
    font-size:12px;color:var(--text-light);
    padding:4px 12px;
    background:var(--bg-secondary);
    border-radius:20px;
    white-space:nowrap;
}
.topbar-breadcrumb .bc-link{
    color:var(--text-secondary);
    cursor:pointer;
    transition:var(--transition);
    text-decoration:none;
}
.topbar-breadcrumb .bc-link:hover{
    color:var(--primary);
    text-decoration:underline;
}
.topbar-breadcrumb .bc-sep{
    color:var(--text-light);
    opacity:.5;
    user-select:none;
}
.topbar-breadcrumb .bc-current{color:var(--primary-dark);font-weight:600;}
.topbar-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;}
.topbar-btn{
    width:36px;height:36px;border-radius:10px;
    border:1px solid var(--border);
    background:var(--bg-secondary);
    color:var(--text-secondary);font-size:16px;
    cursor:pointer;transition:var(--transition);
    display:flex;align-items:center;justify-content:center;
}
.topbar-btn:hover{
    background:var(--primary-lighter);
    border-color:var(--card-border-hover);
    color:var(--primary);
    transform:translateY(-1px);
}
.menu-toggle{
    display:none;background:none;border:none;
    font-size:22px;cursor:pointer;color:var(--text);
    padding:4px;
}
.topbar-right{
    font-size:12px;color:var(--text-secondary);
    display:flex;align-items:center;gap:6px;
    padding:6px 14px;
    background:var(--primary-lighter);
    border:1px solid var(--card-border);
    border-radius:20px;
    white-space:nowrap;
}
.page-container{
    padding:24px 28px;flex:1;
    animation:fadeIn .3s ease;
    max-width:1600px;width:100%;margin:0 auto;
}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}

/* ==================== 仪表盘 ==================== */
/* 欢迎横幅 */
.welcome-banner{
    background:var(--gradient-primary-3);
    border-radius:var(--radius-lg);
    padding:28px 32px;margin-bottom:20px;
    color:#fff;position:relative;overflow:hidden;
    display:flex;align-items:center;justify-content:space-between;gap:20px;
    box-shadow:0 4px 20px rgba(var(--primary-rgb),.2);
}
.welcome-banner::before{
    content:'';position:absolute;top:-50%;right:-10%;
    width:300px;height:300px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.1),transparent 70%);
    pointer-events:none;
}
.welcome-banner::after{
    content:'';position:absolute;bottom:-60%;right:20%;
    width:200px;height:200px;border-radius:50%;
    background:radial-gradient(circle,rgba(255,255,255,.08),transparent 70%);
    pointer-events:none;
}
.welcome-text{position:relative;z-index:1;flex:1;min-width:0;}
.welcome-text h3{
    font-size:22px;font-weight:800;margin-bottom:6px;
    letter-spacing:.5px;
}
.welcome-text p{
    font-size:13px;color:rgba(255,255,255,.85);letter-spacing:.3px;
}
.welcome-quick-actions{
    display:flex;gap:10px;position:relative;z-index:1;flex-shrink:0;
    flex-wrap:wrap;justify-content:flex-end;
}
.quick-action-btn{
    display:flex;align-items:center;gap:6px;
    padding:10px 16px;border-radius:var(--radius);
    background:rgba(255,255,255,.15);
    backdrop-filter:blur(6px);
    border:1px solid rgba(255,255,255,.25);
    color:#fff;font-size:13px;font-weight:600;
    cursor:pointer;transition:var(--transition);font-family:inherit;
    white-space:nowrap;
}
.quick-action-btn:hover{
    background:rgba(255,255,255,.28);
    transform:translateY(-2px);
    box-shadow:0 4px 12px rgba(0,0,0,.1);
}

.stats-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:14px;margin-bottom:20px;
}
.stat-card{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    padding:20px;
    box-shadow:var(--shadow);
    display:flex;align-items:center;gap:14px;
    transition:var(--transition);
    border:1px solid var(--card-border);
    position:relative;overflow:hidden;
    cursor:pointer;
}
.stat-card-clickable{cursor:pointer;}
.stat-card-hint{
    position:absolute;bottom:6px;right:10px;
    font-size:11px;color:var(--text-light);
    opacity:0;transition:var(--transition);
}
.stat-card:hover .stat-card-hint{opacity:1;}
.stat-card::before{
    content:'';position:absolute;top:0;left:0;
    width:4px;height:100%;border-radius:4px 0 0 4px;
    transition:var(--transition);
}
.stat-card:hover{
    transform:translateY(-3px);
    border-color:var(--card-border-hover);
    box-shadow:var(--shadow-lg);
}
.stat-card:hover::before{width:6px;}
.stat-card.sc-blue::before{background:var(--primary);}
.stat-card.sc-green::before{background:var(--success);}
.stat-card.sc-orange::before{background:var(--warning);}
.stat-card.sc-red::before{background:var(--danger);}
.stat-card.sc-purple::before{background:var(--purple);}
.stat-card.sc-cyan::before{background:var(--info);}
.stat-icon{
    width:48px;height:48px;border-radius:12px;
    display:flex;align-items:center;justify-content:center;
    font-size:22px;flex-shrink:0;
}
.stat-icon.blue{background:rgba(var(--primary-rgb),.1);color:var(--primary);}
.stat-icon.green{background:rgba(16,185,129,.1);color:var(--success);}
.stat-icon.orange{background:rgba(245,158,11,.1);color:var(--warning);}
.stat-icon.red{background:rgba(239,68,68,.1);color:var(--danger);}
.stat-icon.purple{background:rgba(139,92,246,.1);color:var(--purple);}
.stat-icon.cyan{background:rgba(6,182,212,.1);color:var(--info);}
.stat-value{
    font-size:26px;font-weight:800;color:var(--text);line-height:1.2;letter-spacing:-.5px;
    font-family:'SF Mono','Consolas','Courier New',monospace;
}
.stat-label{font-size:12px;color:var(--text-secondary);letter-spacing:.3px;}

/* 图表布局：大屏三列，中屏两列，小屏一列 */
.chart-row{
    display:grid;grid-template-columns:1fr 1fr;
    gap:16px;margin-bottom:20px;
}
.chart-row-3{
    display:grid;
    grid-template-columns:1fr 1fr 1fr;
    gap:16px;margin-bottom:20px;
}
.chart-card{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    padding:22px;box-shadow:var(--shadow);
    border:1px solid var(--card-border);
    transition:var(--transition);
}
.chart-card:hover{
    border-color:var(--card-border-hover);
    box-shadow:var(--shadow-md);
}
.chart-card h3{
    font-size:14px;font-weight:700;margin-bottom:16px;
    color:var(--text);display:flex;align-items:center;gap:8px;
    letter-spacing:.5px;
}
.chart-card h3::before{
    content:'';width:3px;height:16px;border-radius:2px;
    background:var(--primary);
}
.chart-wrapper{position:relative;height:260px;}

/* ==================== 工单列表 ==================== */
.page-toolbar{
    display:flex;justify-content:space-between;
    align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px;
}
.filter-bar{
    display:flex;gap:10px;flex-wrap:wrap;align-items:center;
}
.filter-bar select,
.filter-bar input{
    padding:8px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius);font-size:13px;
    background:#f8fafc;color:var(--text);font-family:inherit;
    transition:var(--transition);
}
.filter-bar select option{background:#fff;color:var(--text);}
.filter-bar select:focus,
.filter-bar input:focus{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 3px var(--primary-glow);
    background:#fff;
}
.filter-bar input::placeholder{color:var(--text-light);}

/* 内联搜索框 */
.search-input-wrap{
    position:relative;display:inline-flex;align-items:center;
}
.search-input-wrap .search-icon{
    position:absolute;left:12px;
    font-size:14px;color:var(--text-light);
    pointer-events:none;transition:var(--transition);
}
.search-input-wrap input{
    padding-left:34px !important;
}
.search-input-wrap input:focus ~ .search-icon{
    color:var(--primary);
}

.table-card{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    box-shadow:var(--shadow);overflow:hidden;
    border:1px solid var(--card-border);
}
.table-wrap{overflow-x:auto;max-height:560px;}
table{width:100%;border-collapse:collapse;}
thead{
    background:var(--bg-secondary);
    position:sticky;top:0;z-index:10;
}
th{
    padding:12px 14px;text-align:left;
    font-size:11px;font-weight:700;
    color:var(--primary-dark);
    white-space:nowrap;text-transform:uppercase;
    letter-spacing:1px;
    border-bottom:1px solid var(--border);
}
td{
    padding:12px 14px;font-size:13px;
    border-top:1px solid var(--border-light);
    color:var(--text);
}
tbody tr{transition:var(--transition);}
tbody tr:hover{
    background:var(--primary-lighter);
    box-shadow:inset 3px 0 0 var(--primary);
}
.text-center{text-align:center;}
.text-right{text-align:right;}
.col-code{min-width:110px;}
.col-desc{max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.col-time{white-space:nowrap;}
.col-actions{white-space:nowrap;}

/* 状态标签 */
.badge{
    display:inline-flex;align-items:center;gap:5px;
    padding:4px 12px;border-radius:20px;
    font-size:12px;font-weight:600;
}
.badge::before{content:'';width:6px;height:6px;border-radius:50%;}
.badge-pending{
    background:var(--warning-light);color:var(--warning);
    border:1px solid rgba(245,158,11,.2);
}
.badge-pending::before{background:var(--warning);}
.badge-progress{
    background:var(--primary-lighter);color:var(--primary-dark);
    border:1px solid rgba(var(--primary-rgb),.2);
}
.badge-progress::before{background:var(--primary);animation:blink 1.5s infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.4;}}
.badge-completed{
    background:var(--success-light);color:var(--success);
    border:1px solid rgba(16,185,129,.2);
}
.badge-completed::before{background:var(--success);}
.badge-closed{
    background:rgba(100,116,139,.08);color:var(--text-secondary);
    border:1px solid rgba(100,116,139,.15);
}
.badge-closed::before{background:var(--text-secondary);}
.badge-transferred{
    background:rgba(139,92,246,.08);color:#7c3aed;
    border:1px solid rgba(139,92,246,.2);
}
.badge-transferred::before{background:#8b5cf6;}

/* 优先级标签 */
.priority{display:inline-flex;align-items:center;gap:5px;font-weight:600;font-size:13px;}
.priority-urgent{color:var(--danger);}
.priority-high{color:var(--warning);}
.priority-medium{color:var(--info);}
.priority-low{color:var(--text-secondary);}
.priority::before{content:'';width:7px;height:7px;border-radius:50%;}
.priority-urgent::before{background:var(--danger);animation:blink 1s infinite;}
.priority-high::before{background:var(--warning);}
.priority-medium::before{background:var(--info);}
.priority-low::before{background:var(--text-light);}

.empty-row td{
    text-align:center;padding:56px;
    color:var(--text-light);font-size:14px;
}
.empty-icon{font-size:40px;display:block;margin-bottom:8px;opacity:.3;}

/* 操作按钮组 */
.action-btns{display:flex;gap:5px;justify-content:center;flex-wrap:nowrap;}

/* ==================== 分页 ==================== */
.pagination{
    display:flex;justify-content:center;
    align-items:center;gap:6px;
    padding:14px;border-top:1px solid var(--border);
}
.pagination button{
    padding:7px 14px;
    border:1px solid var(--border);
    background:#f8fafc;
    color:var(--text-secondary);
    border-radius:var(--radius-sm);
    cursor:pointer;font-size:13px;font-weight:500;
    transition:var(--transition);font-family:inherit;
}
.pagination button:hover{
    border-color:var(--primary);
    color:var(--primary);
    background:var(--primary-lighter);
}
.pagination button.active{
    background:var(--primary);
    color:#fff;
    border-color:var(--primary);
    box-shadow:0 2px 8px rgba(var(--primary-rgb),.25);
}
.pagination button:disabled{opacity:.3;cursor:not-allowed;}
.pagination .page-info{
    font-size:13px;color:var(--text-secondary);
    margin:0 12px;padding:4px 12px;
    background:var(--bg-secondary);border-radius:20px;
}

/* ==================== 模态框 ==================== */
.modal-overlay{
    position:fixed;top:0;left:0;right:0;bottom:0;
    background:rgba(0,0,0,.4);
    backdrop-filter:blur(4px);
    z-index:1000;display:flex;align-items:center;justify-content:center;
    padding:20px;animation:overlayIn .2s ease;
}
@keyframes overlayIn{from{opacity:0;}to{opacity:1;}}
.modal{
    background:#fff;
    border-radius:var(--radius-lg);
    width:100%;max-width:600px;max-height:90vh;
    display:flex;flex-direction:column;
    box-shadow:var(--shadow-xl);
    animation:modalIn .3s cubic-bezier(.4,0,.2,1);
    border:1px solid var(--card-border);
}
@keyframes modalIn{
    from{opacity:0;transform:scale(.95) translateY(20px);}
    to{opacity:1;transform:scale(1) translateY(0);}
}
.modal.modal-lg{max-width:820px;}
.modal-header{
    padding:20px 24px;display:flex;
    justify-content:space-between;align-items:center;
    border-bottom:1px solid var(--border);
}
.modal-header h3{font-size:17px;font-weight:700;color:var(--text);letter-spacing:.5px;}
.modal-close{
    width:32px;height:32px;border-radius:8px;
    background:none;border:none;font-size:20px;
    cursor:pointer;color:var(--text-secondary);
    display:flex;align-items:center;justify-content:center;
    transition:var(--transition);
}
.modal-close:hover{
    background:var(--danger-light);
    color:var(--danger);
}
.modal-body{padding:24px;overflow-y:auto;}

/* 表单网格 */
.form-grid{
    display:grid;grid-template-columns:1fr 1fr;
    gap:16px;
}
.form-grid .full{grid-column:1/-1;}
.modal-footer{
    padding:16px 0;border-top:1px solid var(--border);
    display:flex;justify-content:flex-end;gap:10px;
    margin-top:8px;
}

/* ==================== 工单详情 ==================== */
.detail-section{margin-bottom:24px;}
.detail-section h4{
    font-size:12px;font-weight:700;color:var(--primary-dark);
    margin-bottom:12px;padding-bottom:8px;
    border-bottom:1px solid var(--border);
    text-transform:uppercase;letter-spacing:1px;
    display:flex;align-items:center;gap:6px;
}
.detail-section h4::before{
    content:'';width:3px;height:12px;border-radius:2px;
    background:var(--primary);
}
.detail-grid{
    display:grid;grid-template-columns:1fr 1fr;
    gap:14px 24px;
}
.detail-item{display:flex;flex-direction:column;gap:4px;}
.detail-label{font-size:12px;color:var(--text-light);font-weight:500;}
.detail-value{font-size:14px;color:var(--text);font-weight:500;}

/* 时间线 */
.timeline{position:relative;padding-left:28px;}
.timeline::before{
    content:'';position:absolute;left:8px;top:8px;bottom:8px;
    width:2px;
    background:linear-gradient(180deg,var(--primary),rgba(var(--primary-rgb),.1));
    border-radius:1px;
}
.timeline-item{position:relative;padding-bottom:22px;}
.timeline-item:last-child{padding-bottom:0;}
.timeline-dot{
    position:absolute;left:-24px;top:4px;
    width:14px;height:14px;border-radius:50%;
    background:var(--primary);border:3px solid #fff;
    box-shadow:0 0 0 3px var(--primary-glow);
}
.timeline-item.completed .timeline-dot{
    background:var(--success);
    box-shadow:0 0 0 3px var(--success-glow);
}
.timeline-time{
    font-size:12px;color:var(--text-light);margin-bottom:4px;
    font-family:'SF Mono','Consolas','Courier New',monospace;
}
.timeline-content{font-size:13px;color:var(--text);line-height:1.5;}

/* ==================== 月度报表 ==================== */
.report-toolbar{
    display:flex;gap:12px;align-items:center;
    margin-bottom:16px;flex-wrap:wrap;
    padding:14px 20px;
    background:var(--card-bg);
    border-radius:var(--radius-lg);box-shadow:var(--shadow);
    border:1px solid var(--card-border);
}
.report-toolbar label{font-weight:600;font-size:14px;color:var(--text);}
.report-toolbar input[type="month"]{
    padding:8px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius);font-size:14px;
    background:#f8fafc;
    color:var(--text);font-family:inherit;
    color-scheme:light;
}
.report-toolbar input[type="month"]:focus{
    outline:none;
    border-color:var(--primary);
    box-shadow:0 0 0 3px var(--primary-glow);
}
.report-summary{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(160px,1fr));
    gap:14px;margin-bottom:20px;
}
.summary-card{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    padding:22px 16px;box-shadow:var(--shadow);
    text-align:center;
    border:1px solid var(--card-border);
    transition:var(--transition);
    position:relative;overflow:hidden;
}
.summary-card::after{
    content:'';position:absolute;bottom:0;left:0;right:0;
    height:3px;border-radius:0 0 var(--radius-lg) var(--radius-lg);
    opacity:.8;
}
.summary-card.blue::after{background:var(--primary);}
.summary-card.green::after{background:var(--success);}
.summary-card.orange::after{background:var(--warning);}
.summary-card.purple::after{background:var(--purple);}
.summary-card.cyan::after{background:var(--info);}
.summary-card:hover{
    transform:translateY(-3px);
    border-color:var(--card-border-hover);
    box-shadow:var(--shadow-md);
}
.summary-value{
    font-size:30px;font-weight:800;margin-bottom:4px;letter-spacing:-1px;
    font-family:'SF Mono','Consolas','Courier New',monospace;
}
.summary-label{font-size:12px;color:var(--text-secondary);}
.summary-card.blue .summary-value{color:var(--primary);}
.summary-card.green .summary-value{color:var(--success);}
.summary-card.orange .summary-value{color:var(--warning);}
.summary-card.purple .summary-value{color:var(--purple);}
.summary-card.cyan .summary-value{color:var(--info);}

/* ==================== 用户管理 ==================== */
.role-badge{
    display:inline-block;padding:4px 10px;
    border-radius:6px;font-size:12px;font-weight:600;
}
.role-admin{
    background:var(--primary-lighter);color:var(--primary-dark);
    border:1px solid rgba(var(--primary-rgb),.2);
}
.role-supervisor{
    background:var(--purple-light);color:var(--purple);
    border:1px solid rgba(139,92,246,.2);
}
.role-engineer{
    background:var(--info-light);color:var(--info);
    border:1px solid rgba(6,182,212,.2);
}
.role-requester{
    background:rgba(100,116,139,.08);color:var(--text-secondary);
    border:1px solid rgba(100,116,139,.15);
}

.status-dot{
    display:inline-flex;align-items:center;gap:6px;font-size:13px;
}
.status-dot::before{content:'';width:8px;height:8px;border-radius:50%;}
.status-dot.active::before{background:var(--success);box-shadow:0 0 0 3px var(--success-glow);}
.status-dot.inactive::before{background:var(--text-light);}

/* ==================== Toast ==================== */
.toast{
    position:fixed;top:24px;right:24px;
    padding:14px 24px;border-radius:var(--radius);
    font-size:14px;font-weight:600;
    z-index:2000;
    backdrop-filter:blur(10px);
    animation:toastIn .35s cubic-bezier(.4,0,.2,1);
    max-width:400px;display:flex;align-items:center;gap:8px;
    border:1px solid;
}
.toast::before{font-size:18px;}
.toast.success{
    background:rgba(16,185,129,.1);
    border-color:rgba(16,185,129,.3);
    color:var(--success);
}
.toast.success::before{content:'\2713';}
.toast.error{
    background:rgba(239,68,68,.1);
    border-color:rgba(239,68,68,.3);
    color:var(--danger);
}
.toast.error::before{content:'\2715';}
.toast.info{
    background:rgba(6,182,212,.1);
    border-color:rgba(6,182,212,.3);
    color:var(--info);
}
.toast.info::before{content:'\2139';}
@keyframes toastIn{from{transform:translateX(120%);opacity:0;}to{transform:translateX(0);opacity:1;}}
@keyframes toastOut{to{transform:translateX(120%);opacity:0;}}

/* ==================== 提交报修页 ==================== */
.create-card{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    padding:28px;max-width:760px;margin:0 auto;
    box-shadow:var(--shadow);
    border:1px solid var(--card-border);
}
.create-card h3{
    margin-bottom:20px;font-size:20px;font-weight:700;
    display:flex;align-items:center;gap:8px;
    color:var(--text);letter-spacing:.5px;
}
.create-card h3::before{
    content:'';width:4px;height:20px;border-radius:2px;
    background:var(--primary);
}
.form-section-label{
    font-size:12px;font-weight:700;
    color:var(--primary-dark);
    text-transform:uppercase;letter-spacing:1.5px;
    margin-bottom:14px;padding-bottom:8px;
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;gap:6px;
}
.form-section-label::before{
    content:'';width:3px;height:12px;border-radius:2px;
    background:var(--primary);
}
.form-section + .form-section{margin-top:24px;}

/* ==================== 响应式 ==================== */
@media(max-width:1280px){
    .chart-row-3{grid-template-columns:1fr 1fr;}
    .chart-row-3 .chart-card:last-child{grid-column:1/-1;}
}
@media(max-width:1024px){
    .login-brand{display:none;}
    .login-form-side{width:100%;flex:1;}
    .circuit-deco{display:none;}
    .chart-row-3{grid-template-columns:1fr;}
    .chart-row-3 .chart-card:last-child{grid-column:auto;}
}
@media(max-width:768px){
    .sidebar{transform:translateX(-100%);width:250px;}
    .sidebar.collapsed{transform:translateX(-100%);width:250px;}
    .sidebar.collapsed .sidebar-title{display:block;}
    .sidebar.collapsed .nav-item span:not(.nav-icon){display:inline;}
    .sidebar.collapsed .nav-section-label{display:block;}
    .sidebar.collapsed .sidebar-header{padding:22px 24px;justify-content:flex-start;}
    .sidebar.collapsed .sidebar-logo{margin:0;}
    .sidebar.collapsed .sidebar-collapse-btn{position:static;}
    .sidebar.collapsed .user-info .user-detail{display:block;}
    .sidebar.collapsed .btn-logout{font-size:13px;padding:9px;}
    .sidebar.collapsed .btn-logout::before{content:'';}
    .sidebar.open{transform:translateX(0);}
    .main-content, .main-content.sidebar-collapsed{margin-left:0;}
    .menu-toggle{display:flex;}
    .chart-row{grid-template-columns:1fr;}
    .form-grid{grid-template-columns:1fr;}
    .detail-grid{grid-template-columns:1fr;}
    .stats-grid{grid-template-columns:1fr 1fr;}
    .stat-card{padding:16px;gap:12px;}
    .stat-icon{width:44px;height:44px;font-size:20px;}
    .stat-value{font-size:22px;}
    th,td{padding:10px 12px;font-size:12px;}
    .page-container{padding:16px;}
    .topbar{padding:0 16px;height:56px;}
    .topbar h2{font-size:16px;}
    .topbar-breadcrumb{display:none;}
    .topbar-actions{display:none;}
    .welcome-banner{flex-direction:column;align-items:flex-start;padding:20px;}
    .welcome-quick-actions{width:100%;justify-content:flex-start;}
}
@media(max-width:480px){
    .stats-grid{grid-template-columns:1fr;}
    .report-summary{grid-template-columns:1fr 1fr;}
    .filter-bar{width:100%;}
    .filter-bar select,.filter-bar input{flex:1;min-width:120px;}
    .page-toolbar{flex-direction:column;align-items:stretch;}
    .page-toolbar .btn{width:100%;justify-content:center;}
    .welcome-text h3{font-size:18px;}
    .quick-action-btn{font-size:12px;padding:8px 12px;}
}

/* ====================================================================
 * 个性化设置页面
 * ==================================================================== */
.settings-page{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:20px;}

.settings-card{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow);
    overflow:hidden;
    transition:var(--transition);
}
.settings-card:hover{border-color:var(--card-border-hover);}
.settings-card-header{
    display:flex;align-items:center;gap:14px;
    padding:20px 24px;
    border-bottom:1px solid var(--border);
}
.settings-icon{
    font-size:22px;width:44px;height:44px;
    display:flex;align-items:center;justify-content:center;
    border-radius:12px;
    background:var(--primary-lighter);
    border:1px solid var(--card-border);
    flex-shrink:0;
}
.settings-card-header h3{font-size:15px;font-weight:700;color:var(--text);letter-spacing:.3px;}
.settings-card-header p{font-size:12px;color:var(--text-secondary);margin-top:2px;}
.settings-body{padding:20px 24px;}

/* === 主题色选择器 === */
.color-picker-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(120px,1fr));
    gap:12px;
}
.color-swatch{
    display:flex;flex-direction:column;align-items:center;gap:8px;
    padding:16px 8px;border-radius:var(--radius);
    background:var(--bg-secondary);
    border:1.5px solid transparent;
    cursor:pointer;transition:var(--transition);
    position:relative;
}
.color-swatch:hover{
    background:var(--primary-lighter);
    transform:translateY(-2px);
}
.color-swatch.active{
    border-color:var(--swatch-color);
    background:var(--primary-lighter);
    box-shadow:0 2px 12px var(--swatch-glow);
}
.swatch-circle{
    width:36px;height:36px;border-radius:50%;
    background:var(--swatch-color);
    box-shadow:0 2px 8px var(--swatch-glow);
}
.color-swatch.active .swatch-circle{
    box-shadow:0 4px 16px var(--swatch-glow);
}
.swatch-name{font-size:12px;color:var(--text-secondary);font-weight:500;}
.color-swatch.active .swatch-name{color:var(--text);font-weight:600;}
.swatch-check{
    position:absolute;top:8px;right:8px;
    width:20px;height:20px;border-radius:50%;
    background:var(--swatch-color);
    color:#fff;font-size:12px;
    display:flex;align-items:center;justify-content:center;
    box-shadow:0 2px 6px var(--swatch-glow);
}

/* === 辅助色选择器 === */
.secondary-color-row{
    display:flex;align-items:center;gap:16px;
    padding:16px;border-radius:var(--radius);
    background:var(--bg-secondary);
    border:1px solid var(--border);
}
.secondary-color-preview{
    width:56px;height:56px;border-radius:var(--radius);
    flex-shrink:0;
    box-shadow:0 2px 12px rgba(0,0,0,.1);
}
.secondary-color-info{
    flex:1;display:flex;flex-direction:column;gap:2px;
}
.secondary-color-controls{
    display:flex;align-items:center;gap:10px;flex-shrink:0;
}
.secondary-color-controls input[type="color"]{
    width:44px;height:44px;
    border:2px solid var(--border);
    border-radius:var(--radius);
    cursor:pointer;background:none;padding:2px;
}
.secondary-color-controls input[type="color"]::-webkit-color-swatch-wrapper{padding:0;}
.secondary-color-controls input[type="color"]::-webkit-color-swatch{border:none;border-radius:6px;}

/* === 布局密度选择器 === */
.density-options{display:flex;gap:16px;flex-wrap:wrap;}
.density-option{
    display:flex;flex-direction:column;align-items:center;gap:10px;
    padding:16px 20px;border-radius:var(--radius);
    background:var(--bg-secondary);
    border:1.5px solid transparent;
    cursor:pointer;transition:var(--transition);
    min-width:100px;
}
.density-option:hover{background:var(--primary-lighter);transform:translateY(-2px);}
.density-option.active{
    border-color:var(--primary);
    background:var(--primary-lighter);
    box-shadow:0 2px 8px var(--primary-glow);
}
.density-option span{font-size:13px;color:var(--text-secondary);font-weight:500;}
.density-option.active span{color:var(--text);font-weight:600;}
.density-preview{display:flex;flex-direction:column;gap:3px;width:48px;}
.density-preview.compact div{height:6px;border-radius:2px;background:rgba(var(--primary-rgb),.3);}
.density-preview.compact div:nth-child(1){width:100%;}
.density-preview.compact div:nth-child(2){width:70%;}
.density-preview.compact div:nth-child(3){width:85%;}
.density-preview.comfortable div{height:8px;border-radius:3px;background:rgba(var(--primary-rgb),.3);}
.density-preview.comfortable{gap:5px;}
.density-preview.comfortable div:nth-child(1){width:100%;}
.density-preview.comfortable div:nth-child(2){width:70%;}
.density-preview.comfortable div:nth-child(3){width:85%;}
.density-preview.spacious div{height:10px;border-radius:4px;background:rgba(var(--primary-rgb),.3);}
.density-preview.spacious{gap:8px;}
.density-preview.spacious div:nth-child(1){width:100%;}
.density-preview.spacious div:nth-child(2){width:70%;}
.density-preview.spacious div:nth-child(3){width:85%;}

/* === 开关切换 === */
.toggle-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:14px 0;
    border-bottom:1px solid var(--border-light);
}
.toggle-row:last-child{border-bottom:none;}
.toggle-info{display:flex;flex-direction:column;gap:2px;}
.toggle-label{font-size:14px;font-weight:600;color:var(--text);}
.toggle-desc{font-size:12px;color:var(--text-light);}
.toggle-switch{
    width:46px;height:26px;border-radius:13px;
    background:var(--bg-secondary);
    border:1px solid var(--border);
    cursor:pointer;transition:var(--transition);
    position:relative;flex-shrink:0;
}
.toggle-switch.on{
    background:var(--primary);
    border-color:var(--primary);
    box-shadow:0 2px 8px var(--primary-glow);
}
.toggle-knob{
    position:absolute;top:2px;left:2px;
    width:20px;height:20px;border-radius:50%;
    background:#fff;
    transition:var(--transition);
    box-shadow:0 2px 4px rgba(0,0,0,.15);
}
.toggle-switch.on .toggle-knob{transform:translateX(20px);}
.toggle-switch.mini{width:38px;height:22px;border-radius:11px;}
.toggle-switch.mini .toggle-knob{width:16px;height:16px;}
.toggle-switch.mini.on .toggle-knob{transform:translateX(16px);}

/* === 选择行 === */
.select-row{
    display:flex;justify-content:space-between;align-items:center;
    padding:14px 0;gap:16px;
    border-bottom:1px solid var(--border-light);
}
.select-row:last-child{border-bottom:none;}

/* 分段控件 */
.segment-control{
    display:flex;gap:0;
    background:var(--bg-secondary);
    border:1px solid var(--border);
    border-radius:var(--radius);overflow:hidden;
}
.segment-btn{
    padding:8px 14px;border:none;background:transparent;
    color:var(--text-secondary);font-size:13px;font-weight:500;
    cursor:pointer;transition:var(--transition);font-family:inherit;
}
.segment-btn:hover{color:var(--text);background:rgba(0,0,0,.02);}
.segment-btn.active{
    background:var(--primary);
    color:#fff;
    box-shadow:0 2px 6px var(--primary-glow);
}

.settings-select{
    padding:8px 14px;
    border:1px solid var(--border);
    border-radius:var(--radius);font-size:13px;
    background:#f8fafc;color:var(--text);font-family:inherit;
    transition:var(--transition);min-width:160px;
    color-scheme:light;
}
.settings-select option{background:#fff;color:var(--text);}
.settings-select:focus{
    outline:none;border-color:var(--primary);
    box-shadow:0 0 0 3px var(--primary-glow);
}

/* === 仪表盘卡片开关网格 === */
.card-toggle-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(180px,1fr));
    gap:12px;
}
.card-toggle-item{
    display:flex;align-items:center;gap:10px;
    padding:12px 14px;border-radius:var(--radius);
    background:var(--bg-secondary);
    border:1.5px solid transparent;
    cursor:pointer;transition:var(--transition);
}
.card-toggle-item:hover{background:var(--primary-lighter);}
.card-toggle-item.active{
    border-color:var(--card-border-hover);
    background:var(--primary-lighter);
}
.card-toggle-icon{
    width:32px;height:32px;border-radius:8px;
    display:flex;align-items:center;justify-content:center;
    font-size:16px;flex-shrink:0;
}
.card-toggle-icon.blue{background:rgba(var(--primary-rgb),.1);color:var(--primary);}
.card-toggle-icon.orange{background:rgba(245,158,11,.1);color:var(--warning);}
.card-toggle-icon.cyan{background:rgba(6,182,212,.1);color:var(--info);}
.card-toggle-icon.green{background:rgba(16,185,129,.1);color:var(--success);}
.card-toggle-icon.purple{background:rgba(139,92,246,.1);color:var(--purple);}
.card-toggle-icon.red{background:rgba(239,68,68,.1);color:var(--danger);}
.card-toggle-label{font-size:13px;color:var(--text);font-weight:500;flex:1;}

/* ====================================================================
 * 密度模式
 * ==================================================================== */
body.density-compact .stat-card{padding:16px;gap:12px;}
body.density-compact .stat-icon{width:44px;height:44px;font-size:20px;}
body.density-compact .stat-value{font-size:24px;}
body.density-compact th,body.density-compact td{padding:9px 12px;font-size:12px;}
body.density-compact .chart-card{padding:18px;}
body.density-compact .page-container{padding:20px;}
body.density-compact .create-card{padding:24px;}
body.density-compact .nav-item{padding:9px 12px;font-size:13px;}

body.density-spacious .stat-card{padding:28px;gap:20px;}
body.density-spacious .stat-icon{width:56px;height:56px;font-size:26px;}
body.density-spacious .stat-value{font-size:32px;}
body.density-spacious th,body.density-spacious td{padding:16px 18px;font-size:14px;}
body.density-spacious .chart-card{padding:30px;}
body.density-spacious .page-container{padding:36px;}
body.density-spacious .create-card{padding:40px;}
body.density-spacious .nav-item{padding:13px 16px;font-size:15px;}

/* ====================================================================
 * 侧边栏折叠模式
 * ==================================================================== */
.sidebar.collapsed{width:68px;}
.sidebar.collapsed .sidebar-title{display:none;}
.sidebar.collapsed .nav-item span:not(.nav-icon){display:none;}
.sidebar.collapsed .nav-section-label{display:none;}
.sidebar.collapsed .sidebar-header{padding:22px 14px;justify-content:center;gap:0;}
.sidebar.collapsed .sidebar-logo{margin:0;}
.sidebar.collapsed .sidebar-collapse-btn{position:absolute;top:22px;right:8px;}
.sidebar.collapsed .user-info{justify-content:center;padding:8px;}
.sidebar.collapsed .user-info .user-detail{display:none;}
.sidebar.collapsed .btn-logout{font-size:0;padding:9px;}
.sidebar.collapsed .btn-logout::before{content:'\23FB';font-size:16px;}
.main-content.sidebar-collapsed{margin-left:68px;}

/* 折叠状态hover显示tooltip */
.sidebar.collapsed .nav-item{justify-content:center;padding:11px;}
.sidebar.collapsed .nav-item .nav-icon{font-size:20px;}

/* ====================================================================
 * 动画关闭
 * ==================================================================== */
body.no-animations *{
    transition:none !important;
    animation:none !important;
}
body.no-animations .page-container{animation:none;}

/* ====================================================================
 * 网格背景关闭
 * ==================================================================== */
body.no-grid{background-image:none;}
body.no-grid .main-content{background-image:none;}
body.no-grid .tech-grid{display:none;}
body.no-grid .tech-particles{display:none;}

/* ====================================================================
 * 系统查询页面
 * ==================================================================== */
.search-page{display:flex;flex-direction:column;gap:16px;}

/* 搜索面板 */
.search-panel{
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow);
    overflow:hidden;
    transition:var(--transition);
}
.search-panel:hover{border-color:var(--card-border-hover);}
.search-panel-header{
    display:flex;align-items:center;gap:14px;
    padding:20px 24px;
    border-bottom:1px solid var(--border);
    background:linear-gradient(135deg,var(--primary-lighter),transparent);
}
.search-panel-icon{
    font-size:24px;width:48px;height:48px;
    display:flex;align-items:center;justify-content:center;
    border-radius:12px;
    background:var(--primary-lighter);
    border:1px solid var(--card-border);
    flex-shrink:0;
}
.search-panel-header h3{font-size:17px;font-weight:700;color:var(--text);letter-spacing:.5px;}
.search-panel-header p{font-size:12px;color:var(--text-secondary);margin-top:2px;}
.search-panel-body{padding:20px 24px;}

/* 关键词搜索行 */
.search-keyword-row{
    display:flex;gap:10px;align-items:center;
    margin-bottom:20px;
}
.search-keyword-row .search-input-wrap{flex:1;}
.search-keyword-row .search-input-wrap input{
    width:100%;padding:12px 14px 12px 38px;
    border:1.5px solid var(--border);
    border-radius:var(--radius);
    font-size:14px;font-family:inherit;
    background:#f8fafc;color:var(--text);
    transition:var(--transition);
}
.search-keyword-row .search-input-wrap input:focus{
    outline:none;
    border-color:var(--primary);
    background:#fff;
    box-shadow:0 0 0 3px var(--primary-glow);
}

/* 快速预设标签 */
.search-presets{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    margin-bottom:20px;
    padding-bottom:16px;
    border-bottom:1px solid var(--border-light);
}
.preset-label{
    font-size:12px;font-weight:600;
    color:var(--text-secondary);
    letter-spacing:.5px;
    margin-right:4px;
}
.preset-tag{
    padding:6px 14px;
    border-radius:20px;
    border:1px solid var(--border);
    background:var(--bg-secondary);
    color:var(--text-secondary);
    font-size:12px;font-weight:500;
    cursor:pointer;transition:var(--transition);
    font-family:inherit;
}
.preset-tag:hover{
    background:var(--primary-lighter);
    border-color:var(--card-border-hover);
    color:var(--primary-dark);
    transform:translateY(-1px);
    box-shadow:0 2px 8px var(--primary-glow);
}

/* 高级筛选网格 */
.search-advanced{
    display:grid;
    grid-template-columns:repeat(auto-fill,minmax(200px,1fr));
    gap:14px;
}
.search-field{display:flex;flex-direction:column;gap:6px;}
.search-field label{
    font-size:11px;font-weight:600;
    color:var(--primary-dark);
    text-transform:uppercase;
    letter-spacing:1px;
}
.search-field select,
.search-field input{
    padding:9px 12px;
    border:1px solid var(--border);
    border-radius:var(--radius);
    font-size:13px;font-family:inherit;
    background:#f8fafc;color:var(--text);
    transition:var(--transition);
    color-scheme:light;
}
.search-field select option{background:#fff;color:var(--text);}
.search-field select:focus,
.search-field input:focus{
    outline:none;
    border-color:var(--primary);
    background:#fff;
    box-shadow:0 0 0 3px var(--primary-glow);
}

/* 结果统计条 */
.search-stats{
    display:flex;align-items:center;gap:0;flex-wrap:wrap;
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow);
    padding:16px 24px;
}
.search-stat-item{
    display:flex;flex-direction:column;align-items:center;
    gap:2px;padding:0 20px;
    min-width:80px;
}
.search-stat-num{
    font-size:24px;font-weight:800;
    color:var(--text);
    font-family:'SF Mono','Consolas','Courier New',monospace;
    line-height:1.2;
}
.search-stat-label{
    font-size:11px;color:var(--text-secondary);
    letter-spacing:.3px;
}
.search-stat-divider{
    width:1px;height:36px;
    background:var(--border);
    margin:0 4px;
}

/* 筛选条件摘要 */
.search-filter-summary{
    display:flex;align-items:center;gap:8px;flex-wrap:wrap;
    padding:12px 20px;
    background:var(--primary-lighter);
    border-radius:var(--radius);
    border:1px solid var(--card-border);
}
.filter-summary-icon{font-size:14px;}
.filter-tag{
    display:inline-flex;align-items:center;
    padding:4px 10px;
    border-radius:16px;
    background:rgba(255,255,255,.7);
    border:1px solid var(--card-border-hover);
    font-size:12px;font-weight:500;
    color:var(--primary-dark);
}

/* 结果工具栏 */
.search-results-toolbar{
    display:flex;justify-content:space-between;align-items:center;
    padding:0 4px;
}
.results-count{font-size:13px;color:var(--text-secondary);}
.results-count strong{color:var(--primary-dark);font-size:15px;}

/* 来源标识 */
.source-badge{
    display:inline-flex;align-items:center;
    padding:3px 10px;border-radius:6px;
    font-size:11px;font-weight:600;
}
.source-badge.active{
    background:var(--primary-lighter);
    color:var(--primary-dark);
    border:1px solid rgba(var(--primary-rgb),.2);
}
.source-badge.archived{
    background:var(--purple-light);
    color:var(--purple);
    border:1px solid rgba(139,92,246,.2);
}

/* 系统查询响应式 */
@media(max-width:768px){
    .search-stats{justify-content:center;gap:8px;}
    .search-stat-divider{display:none;}
    .search-stat-item{padding:8px 12px;}
    .search-advanced{grid-template-columns:1fr 1fr;}
    .search-keyword-row{flex-direction:column;align-items:stretch;}
    .search-keyword-row .btn{width:100%;justify-content:center;}
}
@media(max-width:480px){
    .search-advanced{grid-template-columns:1fr;}
    .search-stat-num{font-size:20px;}
}

/* ====================================================================
 * 系统日志页面
 * ==================================================================== */

/* 模块分布条 */
.log-module-bar{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:20px;
    padding:16px 20px;
    background:var(--card-bg);
    border-radius:var(--radius-lg);
    border:1px solid var(--card-border);
    box-shadow:var(--shadow-sm);
}
.log-module-chip{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:8px 14px;
    background:var(--bg-secondary);
    border:1px solid var(--border);
    border-radius:20px;
    font-size:13px;
    color:var(--text-secondary);
    cursor:pointer;
    transition:var(--transition);
    user-select:none;
}
.log-module-chip:hover{
    background:var(--primary-glow);
    border-color:var(--card-border-hover);
    color:var(--primary);
    transform:translateY(-1px);
}
.log-module-chip.active{
    background:linear-gradient(135deg,var(--primary),var(--secondary));
    border-color:transparent;
    color:#fff;
    box-shadow:0 2px 8px rgba(var(--primary-rgb),.3);
}
.log-module-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    background:rgba(0,0,0,.08);
    border-radius:11px;
    font-size:11px;
    font-weight:700;
}
.log-module-chip.active .log-module-count{
    background:rgba(255,255,255,.25);
}

/* 操作类型标签 */
.log-action-tag{
    display:inline-block;
    padding:3px 10px;
    border-radius:4px;
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
}
.log-login    { background:rgba(16,185,129,.1);  color:#059669; }
.log-logout   { background:rgba(100,116,139,.1);  color:#475569; }
.log-create   { background:rgba(var(--primary-rgb),.1); color:var(--primary); }
.log-update   { background:rgba(245,158,11,.1);   color:#d97706; }
.log-delete   { background:rgba(239,68,68,.1);    color:#dc2626; }
.log-archive  { background:rgba(139,92,246,.1);   color:#7c3aed; }
.log-restore  { background:rgba(16,185,129,.1);   color:#059669; }
.log-toggle   { background:rgba(6,182,212,.1);    color:#0891b2; }
.log-export   { background:rgba(100,116,139,.08); color:#475569; }
.log-settings { background:rgba(var(--secondary-rgb),.1); color:var(--secondary); }
.log-transfer { background:rgba(139,92,246,.1);   color:#7c3aed; }
.log-default  { background:rgba(0,0,0,.06);       color:var(--text-secondary); }

/* ====================================================================
 * 服务商信息卡片 & 转单时间线
 * ==================================================================== */
.provider-info-card{
    padding:14px 16px;background:rgba(var(--primary-rgb),.04);
    border:1px solid rgba(var(--primary-rgb),.12);border-radius:var(--radius);
}
.provider-info-row{
    display:flex;align-items:baseline;gap:12px;padding:4px 0;font-size:13px;
}
.provider-info-label{
    color:var(--text-light);min-width:60px;flex-shrink:0;
}
.timeline-item.transferred .timeline-content{
    background:rgba(139,92,246,.05);border-left:3px solid #8b5cf6;
    padding-left:10px;
}

/* ====================================================================
 * 设置页响应式
 * ==================================================================== */
@media(max-width:768px){
    .select-row{flex-direction:column;align-items:flex-start;gap:10px;}
    .segment-control{width:100%;}
    .segment-btn{flex:1;text-align:center;}
    .settings-select{width:100%;}
    .card-toggle-grid{grid-template-columns:1fr 1fr;}
    .color-picker-grid{grid-template-columns:1fr 1fr 1fr;}
}
@media(max-width:480px){
    .card-toggle-grid{grid-template-columns:1fr;}
    .color-picker-grid{grid-template-columns:1fr 1fr;}
    .density-options{justify-content:center;}
}
