:root { --brand-blue: #0d6efd; --brand-deep: #0a3d91; }
body {
    background: #f5f7fb;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC",
                 "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.app-navbar {
    background: linear-gradient(135deg, #0a3d91 0%, #0d6efd 100%);
    box-shadow: 0 2px 8px rgba(0,0,0,.1);
}
.app-navbar .nav-link { color: rgba(255,255,255,.85); padding-left: 14px; padding-right: 14px; border-radius: 6px; transition: all .2s; }
.app-navbar .nav-link:hover, .app-navbar .nav-link.active { color: #fff; background: rgba(255,255,255,.15); }
.app-navbar .navbar-brand { color: #fff !important; }
.app-navbar .dropdown-toggle::after { margin-left: .5em; }
.main-content { min-height: calc(100vh - 56px); }
.login-wrap { min-height: 100vh; background: linear-gradient(135deg, #0a3d91 0%, #0d6efd 50%, #20c997 100%); display: flex; align-items: center; justify-content: center; padding: 20px; }
.login-card { background: #fff; border-radius: 16px; overflow: hidden; width: 100%; max-width: 420px; }
.login-header { background: linear-gradient(135deg, #0a3d91 0%, #0d6efd 100%); color: #fff; padding: 30px 20px; }
.login-body { padding: 30px; }
.card { border: none; border-radius: 10px; }
.card-header { background: #fff; border-bottom: 1px solid #eef0f5; font-weight: 600; }
.stat-card { transition: all .2s; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(0,0,0,.06); }
.stat-card .h4 { font-weight: 700; }
.kpi-card { color: #fff; border-radius: 12px; overflow: hidden; }
.kpi-card .card-body { padding: 18px 20px; }
.kpi-label { font-size: 13px; opacity: .9; margin-bottom: 4px; }
.kpi-value { font-size: 28px; font-weight: 700; line-height: 1.1; }
.kpi-blue   { background: linear-gradient(135deg, #4c8bf5, #0d6efd); }
.kpi-green  { background: linear-gradient(135deg, #38d39f, #198754); }
.kpi-cyan   { background: linear-gradient(135deg, #4dd4ac, #20c997); }
.kpi-purple { background: linear-gradient(135deg, #b07bf3, #6610f2); }
.kpi-orange { background: linear-gradient(135deg, #ffb673, #fd7e14); }
.table th { font-weight: 600; color: #495057; }
.tabulator .tabulator-header { background: #f8f9fa; border-bottom: 2px solid #dee2e6; }
.tabulator .tabulator-header .tabulator-col { font-weight: 600; }
.tabulator .tabulator-cell { padding: 4px 6px; }
.tabulator .tabulator-row:hover { background: #f6f9ff !important; }
.btn { border-radius: 6px; }
.btn-primary { background: #0d6efd; border-color: #0d6efd; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #c0c4cc; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #909399; }
::-webkit-scrollbar-track { background: transparent; }
