/* ============================================================
   机动车尾气检测举证系统 · 专业企业级 UI（全局统一）
   设计语言：深蓝主色 + 藏青侧边栏 + 浅灰蓝内容底 + 克制辅助色
   ============================================================ */
:root{
  --primary:#2563eb; --primary-d:#1e40af; --primary-l:#60a5fa; --primary-50:#eff6ff;
  --grad:linear-gradient(135deg,#0b1e4b 0%,#1d4ed8 55%,#38bdf8 100%);
  --side-grad:linear-gradient(180deg,#0e1d3f 0%,#13274f 60%,#162c59 100%);
  --top-grad:linear-gradient(120deg,#12275a 0%,#1d4ed8 70%,#2563eb 100%);
  --bg:#f0f4fa; --card:#fff; --line:#dfe7f1; --ink:#16233f; --muted:#64748b;
  --green:#059669; --red:#dc2626; --orange:#d97706; --amber:#f59e0b; --purple:#7c3aed; --cyan:#0891b2;
  --r:14px; --r-sm:9px;
  --sh:0 1px 2px rgba(16,42,90,.05),0 6px 22px rgba(16,42,90,.07);
  --sh2:0 8px 18px rgba(15,40,95,.10),0 22px 52px rgba(15,40,95,.16);
  --side-w:220px;
  --focus-ring:0 0 0 3px rgba(37,99,235,.16);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:"Microsoft YaHei","PingFang SC","Segoe UI",Arial,sans-serif;
  color:var(--ink);font-size:14.5px;line-height:1.6;min-height:100vh;
  background:
    radial-gradient(1100px 520px at 92% -8%,rgba(56,189,248,.14),transparent 60%),
    radial-gradient(820px 460px at -4% 4%,rgba(124,58,237,.07),transparent 55%),
    var(--bg);
}
a{color:var(--primary);text-decoration:none}
a:hover{text-decoration:none;color:var(--primary-d)}
::selection{background:rgba(37,99,235,.18)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:#c4d0e2;border-radius:6px;border:2px solid transparent;background-clip:content-box}
::-webkit-scrollbar-thumb:hover{background:#9fb0cc;background-clip:content-box;border:2px solid transparent}
::-webkit-scrollbar-track{background:transparent}

/* ===== 左侧导航（藏青深色） ===== */
.app-side{position:fixed;left:0;top:0;bottom:0;width:var(--side-w);background:var(--side-grad);
  z-index:700;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:3px 0 22px rgba(8,22,52,.22)}
.app-side .s-logo{height:64px;display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.05);
  padding:0 15px;position:relative;flex-shrink:0;border-bottom:1px solid rgba(255,255,255,.08)}
.app-side .s-logo::after{content:"";position:absolute;left:14px;right:14px;bottom:-1px;height:1px;
  background:linear-gradient(90deg,transparent,rgba(96,165,250,.55),transparent)}
.app-side .s-logo img{width:34px;height:34px;border-radius:9px;object-fit:cover;flex-shrink:0;
  background:rgba(255,255,255,.14);box-shadow:0 0 0 1px rgba(255,255,255,.18),0 4px 10px rgba(0,0,0,.25)}
.app-side .s-logo-txt{min-width:0;flex:1}
.app-side .s-logo-txt b{font-size:13px;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:.3px;color:#fff;line-height:1.45}
.app-side .s-logo-txt small{font-size:10.5px;opacity:.68;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;color:#b9c7e4}
.app-side .s-body{flex:1;overflow-y:auto;padding:12px 10px 16px}
.app-side .s-caption{font-size:11px;font-weight:800;color:#6f83ad;letter-spacing:2px;margin:12px 12px 7px;text-transform:uppercase}
.app-side .s-item{display:flex;align-items:center;gap:11px;padding:10px 13px;border-radius:9px;font-size:13.5px;font-weight:600;
  color:#c3cfe8;text-decoration:none;margin-bottom:3px;position:relative;transition:all .15s;border:1px solid transparent}
.app-side .s-item svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;color:#7f94bf;transition:color .15s}
.app-side .s-item span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.app-side .s-item:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.07);text-decoration:none}
.app-side .s-item:hover svg{color:#93b4f5}
.app-side .s-item.on{background:linear-gradient(90deg,rgba(37,99,235,.38),rgba(37,99,235,.14));color:#fff;font-weight:800;
  border-color:rgba(96,165,250,.28);box-shadow:inset 0 0 18px rgba(37,99,235,.18)}
.app-side .s-item.on::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3.5px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#60a5fa,#2563eb)}
.app-side .s-item.on svg{color:#9cc2ff}
.app-side .s-foot{border-top:1px solid rgba(255,255,255,.08);padding:13px 14px;background:rgba(6,14,34,.35);flex-shrink:0}
.app-side .s-user{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.app-side .s-user-name{font-size:13.5px;font-weight:800;color:#fff}
.app-side .s-user-role{font-size:11.5px;color:#8ea3cd}
.app-side .s-user-acts{display:flex;gap:8px}
.app-side .s-user-acts a{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:700;color:#b9c7e4;
  border:1px solid rgba(255,255,255,.16);border-radius:8px;padding:6px 10px;transition:.13s;text-decoration:none;background:rgba(255,255,255,.04)}
.app-side .s-user-acts a svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.app-side .s-user-acts a:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.28)}
.app-side .s-user-acts a.logout:hover{background:rgba(220,38,38,.24);color:#ffd6d3;border-color:rgba(248,113,113,.4)}

/* ===== 顶部栏 ===== */
.app-top{position:sticky;top:0;z-index:600;height:56px;margin-left:var(--side-w);display:flex;align-items:center;gap:12px;
  background:var(--top-grad);color:#fff;padding:0 24px;
  box-shadow:0 3px 16px rgba(8,30,80,.28)}
.app-top::before{content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,rgba(255,255,255,.06),rgba(255,255,255,.65),rgba(255,255,255,.06));pointer-events:none}
.app-crumb{font-size:13px;color:rgba(255,255,255,.85);display:flex;gap:8px;align-items:center;font-weight:600}
.app-crumb a{color:#fff;font-weight:800;text-decoration:none;text-shadow:0 1px 2px rgba(0,0,0,.2)}
.app-crumb a:hover{text-decoration:underline}
.app-crumb .sep{color:rgba(255,255,255,.45)}
.app-spacer{flex:1}
.app-user{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.16);color:#fff;border:1px solid rgba(255,255,255,.30);
  border-radius:22px;padding:5px 15px;font-size:12.5px;font-weight:700;white-space:nowrap;text-shadow:0 1px 2px rgba(0,0,0,.15);backdrop-filter:blur(4px)}
.app-user .dot{width:7px;height:7px;border-radius:50%;background:#34d399;box-shadow:0 0 0 3px rgba(52,211,153,.35)}

/* ===== 演示环境横幅 ===== */
.demo-ribbon{background:linear-gradient(90deg,#fef3c7,#fde68a);color:#92400e;padding:7px 24px;font-size:13.5px;font-weight:800;text-align:center;border-bottom:1px solid #f59e0b;margin-left:var(--side-w)}
@media(max-width:760px){.demo-ribbon{margin-left:56px;font-size:12px;padding:6px 8px}}
@media print{.demo-ribbon{display:none!important}}

/* ===== 内容区 ===== */
.container{max-width:1460px;margin:22px 0 22px var(--side-w);padding:0 26px}
.flash{padding:13px 18px;border-radius:12px;margin-bottom:16px;background:linear-gradient(135deg,#e9f4ff,#f4f9ff);
  border:1px solid #a6ccf4;color:#0b4384;font-weight:700;box-shadow:var(--sh);display:flex;align-items:center;gap:8px}
.flash-error{background:#fff0ef;border-color:#f0a9a4;color:#a3261e}

.card{background:var(--card);border-radius:var(--r);padding:20px 22px;margin-bottom:18px;
  box-shadow:var(--sh);border:1px solid rgba(215,223,234,.75);position:relative}
.card h2{margin:0 0 15px;font-size:16px;font-weight:800;color:var(--primary-d);padding:5px 0 5px 12px;border-left:4px solid var(--primary);
  display:flex;align-items:center;gap:9px;letter-spacing:.3px;line-height:1.4}
.card h2 small{font-weight:500;color:var(--muted);font-size:12.5px}
.card h3{font-size:14.5px;color:#243b63;margin:16px 0 9px;font-weight:800;letter-spacing:.2px}

/* ===== 页签（管理后台） ===== */
.tabs{display:flex;gap:4px;margin-bottom:16px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:5px;box-shadow:var(--sh);width:max-content;max-width:100%;flex-wrap:wrap}
.tab{display:inline-flex;align-items:center;gap:7px;padding:9px 18px;border-radius:8px;font-size:13.5px;font-weight:700;color:#52637f;
  transition:.15s;text-decoration:none;border:1px solid transparent}
.tab:hover{background:#f0f5ff;color:var(--primary-d);text-decoration:none}
.tab.on{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 4px 12px rgba(37,99,235,.30)}

/* ===== 表格 ===== */
table.grid{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);
  border-radius:12px;overflow:hidden;box-shadow:0 1px 4px rgba(20,50,110,.05)}
table.grid th{background:linear-gradient(180deg,#f6f8fd,#edf1fa);color:#33476b;font-weight:800;font-size:12.8px;
  letter-spacing:.5px;padding:11px 14px;border-bottom:2px solid #d7e1f1;border-right:1px solid #edf1f8;white-space:nowrap;text-align:left}
table.grid th:last-child{border-right:none}
table.grid td{padding:11px 14px;font-size:14px;border-bottom:1px solid #eef1f7;color:#2b3a55;vertical-align:middle}
table.grid tbody tr:last-child td{border-bottom:none}
table.grid tbody tr{transition:background .12s}
table.grid tbody tr:nth-child(even) td{background:#fafcff}
table.grid tbody tr:hover td{background:#eff5ff}
table.grid td b{color:#14294b}
table.grid .btn{white-space:nowrap}
.center{text-align:center}

/* ===== 徽标 ===== */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3.5px 12px;border-radius:20px;font-size:12px;font-weight:800;
  border:1px solid;white-space:nowrap;letter-spacing:.3px;line-height:1.6}
.badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;opacity:.85;flex-shrink:0}
.b-pending_review  {background:#fdf4d8;color:#92600a;border-color:#ecd489}
.b-returned_worker {background:#ffece0;color:#b4530a;border-color:#f2b37c}
.b-pending_tech    {background:#f3ecfd;color:#6d28d9;border-color:#cdb3f3}
.b-returned_reviewer{background:#e6f1ff;color:#075985;border-color:#9cc6f1}
.b-approved         {background:#e2f6ec;color:#0f7a3d;border-color:#92d8b4}
.b-archived         {background:#e9edf3;color:#42506b;border-color:#c1cbd9}

/* ===== 按钮体系 ===== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:9px 17px;border:1px solid transparent;
  border-radius:var(--r-sm);cursor:pointer;font-size:13.5px;font-weight:700;transition:all .15s;text-decoration:none;letter-spacing:.3px;line-height:1.5;user-select:none}
.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.btn:hover{text-decoration:none;transform:translateY(-1px);box-shadow:0 6px 16px rgba(20,50,100,.18)}
.btn:active{transform:translateY(0);box-shadow:none}
.btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
/* 主操作 */
.btn-blue{background:linear-gradient(135deg,#2563eb,#1e40af);color:#fff;border-color:rgba(29,78,216,.5)}
.btn-blue:hover{box-shadow:0 8px 18px rgba(37,99,235,.34)}
/* 成功 */
.btn-green{background:linear-gradient(135deg,#059669,#10b981);color:#fff;border-color:rgba(5,150,105,.5)}
.btn-green:hover{box-shadow:0 8px 18px rgba(5,150,105,.32)}
/* 危险 */
.btn-red{background:linear-gradient(135deg,#dc2626,#f0433b);color:#fff;border-color:rgba(220,38,38,.5)}
.btn-red:hover{box-shadow:0 8px 18px rgba(220,38,38,.30)}
/* 次级 */
.btn-gray{background:#f1f4f9;color:#3d4c66;border-color:#d8e0ec}
.btn-gray:hover{background:#e6ecf6;color:#243b63;box-shadow:0 4px 10px rgba(20,50,100,.10)}
/* 警告渐变（兼容旧引用） */
.btn-orange{background:linear-gradient(135deg,#ea860c,#f5b942);color:#fff;border-color:rgba(234,134,12,.5)}
.btn-orange:hover{box-shadow:0 8px 18px rgba(234,134,12,.32)}
/* 紫色（兼容旧引用） */
.btn-purple{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#fff;border-color:rgba(124,58,237,.5)}
.btn-purple:hover{box-shadow:0 8px 18px rgba(124,58,237,.32)}
/* ===== 重置密码按钮（专属 · 醒目专业） ===== */
.btn-reset{background:#fff;color:#b45309;border:1.5px solid #f0b95e;
  box-shadow:0 2px 6px rgba(217,119,6,.10),inset 0 0 0 1px rgba(255,255,255,.6)}
.btn-reset svg{color:#d97706}
.btn-reset:hover{background:linear-gradient(135deg,#f59e0b,#fbbf24);color:#fff;border-color:#f59e0b;
  box-shadow:0 7px 16px rgba(217,119,6,.32);text-shadow:0 1px 2px rgba(120,53,15,.25)}
.btn-reset:hover svg{color:#fff}
.btn-reset:active{box-shadow:0 2px 6px rgba(217,119,6,.18)}
.btn-sm{padding:5.5px 11px;font-size:12.3px;border-radius:7px;font-weight:700;letter-spacing:.2px}
.btn-sm svg{width:13.5px;height:13.5px}
.btn-lg{padding:14px 22px;font-size:16px;border-radius:11px}

/* ===== 表单 ===== */
label.field{display:block;margin-bottom:13px;font-weight:700;color:#2a3a50;font-size:13.5px;letter-spacing:.2px}
label.field small{font-weight:400;color:var(--muted);font-size:12px}
input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{
  width:100%;padding:9.5px 13px;border:1px solid #c6d2e2;border-radius:var(--r-sm);font-size:14px;background:#fff;color:var(--ink);
  transition:border .15s,box-shadow .15s;line-height:1.5}
input::placeholder,textarea::placeholder{color:#9aa9c0}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--primary);box-shadow:var(--focus-ring);background:#fff}
select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:34px}
.form-grid{display:grid;grid-template-columns:repeat(12,1fr);gap:8px 20px}
.form-grid .full{grid-column:1/-1}
.form-hint{font-size:12.5px;color:var(--muted);margin-top:4px}
@media(max-width:760px){.form-grid{grid-template-columns:1fr}}

/* ===== 筛选 / 工具条 ===== */
.toolbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;background:#f6f9fd;
  border:1px solid var(--line);border-radius:12px;padding:10px 12px;box-shadow:0 1px 3px rgba(20,50,110,.04)}
.toolbar select,.toolbar input[type=text]{width:auto;min-width:112px}
.toolbar label{font-size:13px;font-weight:700;color:var(--muted);margin-right:2px}
.toolbar .btn{margin-left:2px}

/* ===== 提示条 ===== */
.alert{display:flex;align-items:center;gap:9px;border-radius:12px;padding:11px 15px;margin-bottom:14px;
  font-size:13.5px;font-weight:600;border:1px solid;line-height:1.6}
.alert b{font-weight:800}
.alert a{font-weight:800;white-space:nowrap}
.alert-warn{background:#fff7e0;border-color:#f0d46b;color:#8a5a00}
.alert-info{background:#eef6ff;border-color:#b6d4f5;color:#0b4d8f}
.alert-tip{background:#f0f9ff;border-color:#bae0fd;color:#0369a1;border-left:4px solid #0ea5e9}
.alert-err{background:#fff0ef;border-color:#f0b4af;color:#a3261e}

/* ===== 分页条 ===== */
.pager{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:14px;padding-top:12px;border-top:1px dashed var(--line)}
.pager.centered{justify-content:center;border-top:none;padding-top:0;margin-top:8px}
.pager .info{color:var(--muted);font-size:13px;margin-right:auto}
.pager.centered .info{margin-right:0}
.pager .btn{min-width:34px}

/* ===== 弹窗 ===== */
.modal-mask{display:none;position:fixed;inset:0;background:rgba(11,24,48,.58);backdrop-filter:blur(3px);z-index:99;align-items:center;justify-content:center;padding:16px}
.modal-mask.show{display:flex}
.modal{background:#fff;border-radius:16px;box-shadow:var(--sh2);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;animation:modal-in .18s ease}
@keyframes modal-in{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1;border-radius:16px 16px 0 0}
.modal-head b{font-size:16px;color:var(--primary-d);font-weight:800}
.modal-x{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:18px;color:var(--muted);background:#f2f5fa;transition:.13s}
.modal-x:hover{background:#fee2e2;color:#b91c1c}
.modal-body{padding:18px 20px}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 16px 16px}

/* ===== 复选项目组 ===== */
.pgrp{font-weight:800;color:var(--primary-d);margin:14px 0 8px;padding:6px 10px;background:#eef4ff;border-radius:8px;border-left:4px solid var(--primary)}
.opt{display:flex;align-items:flex-start;gap:9px;padding:9px 11px;border:1px solid transparent;border-radius:10px;font-weight:500;transition:.13s}
.opt:hover{background:#f1f6ff;border-color:#dbe6f5}
.opt input{margin-top:3px;width:18px;height:18px;accent-color:var(--primary)}
.opt .extra{margin-top:6px}
.opt .extra input{padding:7px 10px;font-size:14px}

/* ===== 双栏审批 ===== */
.dual{display:grid;grid-template-columns:330px 1fr;gap:18px;align-items:start}
@media(max-width:900px){.dual{grid-template-columns:1fr}}
.queue-item{display:block;border:1px solid var(--line);border-radius:12px;padding:12px 15px;margin-bottom:9px;background:#fff;transition:.14s}
.queue-item:hover{border-color:#9cc0f0;box-shadow:var(--sh);text-decoration:none;transform:translateY(-1px)}
.queue-item.sel{border-color:var(--primary);box-shadow:0 0 0 3px rgba(37,99,235,.16)}
.queue-item .q-plate{font-weight:800;font-size:15.5px;color:var(--primary-d);display:flex;align-items:center;gap:8px}
.queue-item .q-meta{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.6}

/* ===== 举证预览 ===== */
.evi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.evi-item{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff;box-shadow:var(--sh);transition:.15s}
.evi-item:hover{transform:translateY(-2px);box-shadow:var(--sh2);border-color:#bcd3f2}
.evi-item img,.evi-item video{width:100%;height:170px;object-fit:cover;display:block;background:#0b1530}
.evi-item .m{padding:7px 10px;font-size:12px;color:#55647a;border-top:1px solid var(--line);background:#fafcff}
.tag{display:inline-block;padding:2px 9px;border-radius:11px;font-size:11.5px;font-weight:800;margin:6px 0 0 6px}
.tag-photo{background:#e6f2ff;color:#0b4d8f}
.tag-video{background:#ffeceb;color:#a3261e}

/* ===== 大上传按钮（手机） ===== */
.big-upload{display:block;text-align:center;font-size:18px;padding:20px;margin-bottom:14px;border-radius:14px;
  background:linear-gradient(135deg,#2563eb,#38bdf8);color:#fff;font-weight:800;box-shadow:var(--sh)}
.big-upload:hover{text-decoration:none;transform:translateY(-2px);box-shadow:var(--sh2)}

/* ===== 统计卡 ===== */
.stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px}
.stat{background:#fff;border-radius:14px;padding:15px 18px;box-shadow:var(--sh);border:1px solid var(--line);position:relative;overflow:hidden;transition:.16s;text-decoration:none;color:#fff;border:none}
.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:rgba(255,255,255,.35);opacity:.6}
.stat:hover{text-decoration:none;transform:translateY(-3px);box-shadow:var(--sh2)}
.stat .n{font-size:28px;font-weight:900;color:#fff;line-height:1.2;text-shadow:0 1px 3px rgba(0,0,0,.18);background:none;-webkit-text-fill-color:initial}
.stat .l{font-size:13px;color:rgba(255,255,255,.92);margin-top:3px;font-weight:600;letter-spacing:.3px;text-shadow:0 1px 2px rgba(0,0,0,.14)}
.stat.st-pending_review   {background:linear-gradient(135deg,#f59e0b 0%,#fbbf24 100%);box-shadow:0 6px 18px rgba(245,158,11,.32)}
.stat.st-returned_worker  {background:linear-gradient(135deg,#ea580c 0%,#fb923c 100%);box-shadow:0 6px 18px rgba(234,88,12,.32)}
.stat.st-pending_tech     {background:linear-gradient(135deg,#7c3aed 0%,#a78bfa 100%);box-shadow:0 6px 18px rgba(124,58,237,.32)}
.stat.st-returned_reviewer{background:linear-gradient(135deg,#1d4ed8 0%,#60a5fa 100%);box-shadow:0 6px 18px rgba(29,78,216,.32)}
.stat.st-approved         {background:linear-gradient(135deg,#0e9f6e 0%,#34d399 100%);box-shadow:0 6px 18px rgba(16,185,129,.32)}
.stat.st-archived         {background:linear-gradient(135deg,#475569 0%,#94a3b8 100%);box-shadow:0 6px 18px rgba(71,85,105,.32)}

/* ===== 登录 / 激活页（独立全屏，风格统一） ===== */
.auth-body{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;margin:0;
  background:
    radial-gradient(1000px 520px at 85% -10%,rgba(56,189,248,.30),transparent 60%),
    radial-gradient(760px 460px at 0% 110%,rgba(124,58,237,.16),transparent 55%),
    linear-gradient(140deg,#12306e 0%,#1e40af 52%,#2563eb 100%);}
.auth-wrap{width:100%;max-width:470px;background:#fff;border-radius:22px;padding:46px 44px 36px;
  box-shadow:0 30px 80px rgba(4,14,40,.45);position:relative;overflow:hidden;animation:auth-in .3s ease}
@keyframes auth-in{from{transform:translateY(16px);opacity:0}to{transform:none;opacity:1}}
.auth-wrap::before{content:"";position:absolute;inset:0 0 auto 0;height:6px;background:var(--grad)}
.auth-logo{width:76px;height:76px;border-radius:20px;margin:0 auto 16px;background:var(--grad);color:#fff;font-size:34px;
  display:flex;align-items:center;justify-content:center;box-shadow:0 12px 30px rgba(29,78,216,.42);overflow:hidden}
.auth-logo img{width:100%;height:100%;object-fit:cover}
.auth-wrap h1{font-size:21px;color:var(--primary-d);margin:0 0 6px;text-align:center;font-weight:800;letter-spacing:.4px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.auth-wrap .sub{color:var(--muted);font-size:13.5px;margin-bottom:28px;text-align:center}
.auth-wrap .field{margin-bottom:20px}
.auth-wrap .field label{display:block;margin-bottom:8px;color:#4a5b76;font-size:14px;font-weight:700}
.auth-wrap input[type=text],.auth-wrap input[type=password],.auth-wrap input[type=number],.auth-wrap select{
  padding:13px 16px;font-size:15px;border-radius:11px}
.auth-wrap .btn{width:100%;padding:14px;font-size:16px;margin-top:10px;border-radius:11px}
.auth-code-box{background:#f4f8ff;padding:17px;border-radius:11px;margin:18px 0;text-align:center;border:1px dashed #b8d0f2}
.auth-code{font-size:25px;font-weight:800;letter-spacing:3px;color:#1e3a8a;font-family:Consolas,monospace;margin-top:4px}
.auth-err{background:#fef2f2;color:#b91c1c;padding:12px 15px;border-radius:10px;margin-bottom:18px;text-align:center;font-weight:600;border:1px solid #f4c7c4}
.auth-info{background:#eff6ff;color:#1d4ed8;padding:12px 15px;border-radius:10px;margin-bottom:18px;text-align:center;font-weight:600;border:1px solid #bfdbfe}
.auth-ok{background:#ecfdf5;color:#047857;padding:12px 15px;border-radius:10px;margin-bottom:18px;text-align:center;font-weight:600;border:1px solid #a7f3d0}
.auth-note{background:#f8fafc;border:1px dashed #cbd5e1;color:#64748b;padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:13px;line-height:1.7}
.auth-code-row{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:4px}
.auth-code-row .auth-code{margin-top:0}
.auth-copy{background:#e0edff;border:1px solid #b8d0f2;color:#1e3a8a;border-radius:8px;padding:5px 14px;font-size:12.5px;cursor:pointer;font-weight:700}
.auth-copy:hover{background:#cfe2ff}
.lic-bar{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #86efac;color:#065f46;
  padding:11px 16px;border-radius:10px;margin-bottom:16px;font-weight:700;font-size:13.5px;display:flex;align-items:center;gap:10px}
.lic-bar.warn{background:linear-gradient(135deg,#fffbeb,#fef3c7);border-color:#fcd34d;color:#92400e}
.lic-bar.err{background:linear-gradient(135deg,#fef2f2,#fee2e2);border-color:#fca5a5;color:#b91c1c}
.lic-bar .lic-act{margin-left:auto;color:inherit;text-decoration:underline;font-weight:800;font-size:12.5px}
.lic-bar.warn .lic-act{color:#b4530a}
.lic-bar.err .lic-act{color:#b91c1c}
.lic-bar .lic-renew{background:linear-gradient(135deg,#fb923c,#ea580c);color:#fff!important;text-decoration:none!important;padding:3px 12px;border-radius:7px;font-size:12px;font-weight:800;margin-left:10px}
.lic-bar.warn .lic-renew{background:linear-gradient(135deg,#fb923c,#ea580c)}
.lic-bar.err .lic-renew{background:linear-gradient(135deg,#ef4444,#dc2626);margin-left:4px}
.auth-warn{background:#fffbeb;color:#b4530a;padding:12px 15px;border-radius:10px;margin-bottom:18px;text-align:center;font-weight:600;border:1px solid #fcd34d}
.btn-orange{background:linear-gradient(135deg,#fb923c,#ea580c);color:#fff;border:none;width:100%;padding:13px;border-radius:11px;font-size:15px;font-weight:800;cursor:pointer;margin-bottom:12px;letter-spacing:1px}
.btn-orange:hover{filter:brightness(1.07)}
.renew-box{display:none}
.renew-box.open{display:block;animation:renewIn .25s ease}
@keyframes renewIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.perm-note{background:linear-gradient(135deg,#ecfdf5,#d1fae5);border:1px solid #a7f3d0;color:#065f46}
.fz-mask{position:fixed;inset:0;background:rgba(8,15,35,.88);z-index:9999;display:flex;align-items:center;justify-content:center}
.fz-body{max-width:92vw;max-height:92vh;position:relative;display:flex;flex-direction:column;align-items:center;gap:14px}
.fz-img{max-width:92vw;max-height:82vh;object-fit:contain;border-radius:8px;box-shadow:0 20px 60px rgba(0,0,0,.5);background:#000}
.fz-close{position:fixed;top:18px;right:22px;background:rgba(255,255,255,.15);color:#fff;border:none;width:42px;height:42px;border-radius:50%;font-size:17px;cursor:pointer;z-index:10;line-height:1}
.fz-close:hover{background:rgba(255,255,255,.32)}
.fz-nav{display:flex;align-items:center;gap:18px;color:#fff}
.fz-nav button{background:rgba(255,255,255,.15);color:#fff;border:none;width:44px;height:44px;border-radius:50%;font-size:22px;cursor:pointer;line-height:1}
.fz-nav button:hover{background:rgba(255,255,255,.32)}
.fz-count{font-size:14px;font-weight:700;min-width:64px;text-align:center}
.auth-back{display:block;text-align:center;margin-top:20px;color:var(--primary);font-size:13.5px;font-weight:600}
.auth-back:hover{color:var(--primary-d)}
.auth-foot{text-align:center;margin-top:24px;color:#94a3b8;font-size:12px}

/* ===== 打印 A4 ===== */
@media print{
  .app-side,.app-top,.foot,.no-print,.flash,.lic-bar,.fz-mask,body > footer{display:none!important}
  body{background:#fff}
  .container{margin:0;padding:0;max-width:none}
  .card{box-shadow:none;border:none;padding:0;margin:0}
}
.print-sheet{background:#fff;padding:24px;border:1px solid #ccc;border-radius:6px}
.print-sheet h1{text-align:center;font-size:19px;margin:4px 0}
.print-sheet .veh{border-collapse:collapse;width:100%;margin:10px 0}
.print-sheet .veh th,.print-sheet .veh td{border:1px solid #000;padding:5px 7px;font-size:12.5px}
.print-sheet .veh th{background:#f2f5f9;width:120px}
.pframes{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;margin:8px 0}
.pframes img{width:100%;height:110px;object-fit:cover;border:1px solid #333;display:block}
.sig-row{display:flex;gap:30px;margin-top:20px}
.sig{border-top:1px solid #000;width:180px;padding-top:5px;font-size:13px;text-align:center}

/* ===== 页脚 ===== */
.foot{text-align:center;color:var(--muted);font-size:13px;padding:22px 0 36px}
body > footer{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 26px 20px var(--side-w);background:var(--top-grad);color:#fff;
  padding:14px 22px;border-radius:12px;box-shadow:var(--sh)}
body > footer a{color:#cfe0ff}
@media(max-width:760px){body > footer{margin-left:56px;padding:12px 14px}}
.muted{color:var(--muted)}
.mw60{max-width:600px}

/* ===== 窄屏适配 ===== */
@media(max-width:1024px){
  :root{--side-w:200px}
  .container{padding:0 18px}
}
@media(max-width:760px){
  :root{--side-w:56px}
  .app-side .s-logo{padding:0 8px;justify-content:center}
  .app-side .s-logo img{width:30px;height:30px}
  .app-side .s-logo-txt{display:none}
  .app-side .s-caption{display:none}
  .app-side .s-item{justify-content:center;padding:11px 0}
  .app-side .s-item span{display:none}
  .app-side .s-item.on::before{left:-6px}
  .app-side .s-user-acts span{display:none}
  .app-side .s-user-acts a{justify-content:center;padding:7px}
  .app-side .s-user-acts a svg{width:16px;height:16px}
  .app-side .s-user{padding:0 2px}
  .container{padding:0 12px;margin-top:14px}
  .app-top{padding:0 14px}
  .app-crumb{font-size:12px}
  .card{padding:14px}
  .pframes{grid-template-columns:repeat(12,1fr)}
}

/* 审核补充证据徽标 */
.tag-uploader{ background:#fff3cd !important; color:#8a6d00 !important; border:1px solid #e6c969 !important; font-size:11px; }

/* ============ 演示版专属样式（车检通产品展示 / 演示横幅 / 二维码弹窗 / 演示提醒） ============ */
.app-topline{display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;color:rgba(255,255,255,.95)}
.app-topline .atl-label{color:#fde68a;letter-spacing:.5px;font-weight:800}
.app-topline a{color:#fff;padding:3px 12px;border-radius:14px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.32);text-decoration:none;white-space:nowrap;transition:.13s}
.app-topline a:hover{background:rgba(255,255,255,.30);text-decoration:none}
.app-topline a.atl-qr{background:linear-gradient(135deg,#059669,#34d399);border-color:rgba(255,255,255,.4);font-weight:800}
.app-topline a.atl-qr:hover{background:linear-gradient(135deg,#047857,#10b981)}
.qr-modal{max-width:360px}
.qr-body{text-align:center;padding:26px 20px}
.qr-body img{width:230px;height:230px;border-radius:14px;box-shadow:var(--sh)}
.qr-body p{margin:14px 0 4px;color:var(--muted);font-size:14px;font-weight:600}
@media(max-width:900px){.app-topline .atl-label{display:none}}
@media(max-width:700px){.app-topline{display:none}}
.demo-ribbon{background:linear-gradient(90deg,#fef3c7,#fde68a);color:#92400e;padding:7px 24px;font-size:13.5px;font-weight:800;text-align:center;border-bottom:1px solid #f59e0b;margin-left:var(--side-w)}
.demo-ribbon .buy-link{display:inline-block;margin-left:14px;padding:3px 16px;border-radius:20px;background:linear-gradient(135deg,#f97316,#ef4444);color:#fff;font-size:13px;text-decoration:none;box-shadow:0 2px 8px rgba(239,68,68,.35);vertical-align:1px}
.demo-ribbon .buy-link:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(239,68,68,.45);text-decoration:none}
@media(max-width:760px){.demo-ribbon{margin-left:56px;font-size:12px;padding:6px 8px}.demo-ribbon .buy-link{margin-left:8px;padding:2px 12px;font-size:12px}}
@media print{.demo-ribbon{display:none!important}}

/* 弹窗 */
.modal-mask{display:none;position:fixed;inset:0;background:rgba(15,32,62,.55);backdrop-filter:blur(2px);z-index:99;align-items:center;justify-content:center;padding:16px}
.modal-mask.show{display:flex}
.modal{background:#fff;border-radius:16px;box-shadow:var(--sh2);width:100%;max-width:560px;max-height:88vh;overflow-y:auto;animation:modal-in .18s ease}
@keyframes modal-in{from{transform:translateY(14px);opacity:0}to{transform:none;opacity:1}}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:1;border-radius:16px 16px 0 0}
.modal-head b{font-size:16px;color:var(--primary-d);font-weight:800}
.modal-x{cursor:pointer;width:30px;height:30px;display:flex;align-items:center;justify-content:center;border-radius:8px;font-size:18px;color:var(--muted);background:#f2f5fa;transition:.13s}
.modal-x:hover{background:#fee2e2;color:#b91c1c}
.modal-body{padding:18px 20px}
.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 20px;border-top:1px solid var(--line);background:#fafbfd;border-radius:0 0 16px 16px}

/* 演示环境提醒框（上传页等） */
.demo-tip{margin-bottom:14px;padding:12px 16px;border-radius:12px;background:linear-gradient(135deg,#fff7ed,#fef3c7);border:1px solid #fcd34d;color:#92400e;font-size:13.5px;font-weight:700;line-height:1.6;box-shadow:var(--sh)}