/* ============================================================
   桁北送达云 — 小红书风格 v3（RED · 樱桃红 × 白卡片）
   全站共用：白底工作台 / 去边框白色卡片 / 白侧栏红高亮 / 胶囊樱桃红主按钮
   ============================================================ */
:root {
    --grad-primary: linear-gradient(135deg,#ff1733 0%,#FF2442 55%,#ff5c73 100%);
    --grad-success: linear-gradient(135deg,#23c343 0%,#00b42a 100%);
    --grad-danger: linear-gradient(135deg,#ff7d75 0%,#f53f3f 100%);
    --grad-warning: linear-gradient(135deg,#ff9a40 0%,#ff7d00 100%);
    --grad-top: linear-gradient(90deg,#e6002e 0%,#FF2442 50%,#ff5c73 100%);
}
* { margin:0; padding:0; box-sizing:border-box; }
:root {
    --primary: #FF2442;
    --primary-light: #ff5c73;
    --primary-lighter: #ffe6ea;
    --primary-dark: #e6002e;
    --accent: #FF2442;
    --ink: #17181e;          /* 政务公文近黑墨色（标题/强调文字） */
    --paper: #fbfaf8;        /* 文纸底（彩纸感，去整屏灰白） */
    --line: #eae6df;         /* hairline 细分隔线（公文质感） */
    --bg: #f7f7f7;
    --bg-alt: #fafafa;
    --card: #ffffff;
    --card-hover: #ffffff;
    --text: #212121;
    --text-secondary: #666666;
    --muted: #999999;
    --border: #f0f0f0;
    --border-light: #f5f5f5;
    --success: #00b42a;
    --success-bg: #e8ffea;
    --info: #FF2442;
    --info-bg: #ffe6ea;
    --danger: #f53f3f;
    --danger-bg: #ffece8;
    --warning: #ff9a2e;
    --warning-bg: #fff7e8;
    --sidebar-bg: #ffffff;
    --sidebar-text: #666666;
    --sidebar-hover: #fff0f2;
    --sidebar-active: #FF2442;
    --shadow-sm: 0 1px 2px rgba(33,33,33,.05);
    --shadow: 0 2px 12px rgba(33,33,33,.06);
    --shadow-md: 0 4px 20px rgba(33,33,33,.08);
    --shadow-lg: 0 8px 28px rgba(33,33,33,.12);
    --glow: none;
    --glow-soft: 0 4px 18px rgba(255,36,66,.16);
    --radius-sm: 12px;
    --radius: 14px;
    --radius-lg: 20px;
    --radius-pill: 999px;
    --font: "PingFang SC", "Microsoft YaHei", "SimHei", "Noto Sans SC", sans-serif;
    --font-mono: "Consolas", "Courier New", monospace;
    --glass: #ffffff;
    --glass-edge: 1px solid #f0f0f0;
}
[data-theme="dark"] {
    --ink: #f2f2f3;
    --paper: #141416;
    --line: rgba(255,255,255,.10);
    --bg: #141416;
    --bg-alt: #1c1c1e;
    --card: #1f1f21;
    --card-hover: #262628;
    --text: #ededed;
    --text-secondary: #b0b0b0;
    --muted: #737373;
    --border: rgba(255,255,255,.14);
    --border-light: rgba(255,255,255,.08);
    --sidebar-bg: #17171a;
    --sidebar-text: rgba(255,255,255,.72);
    --sidebar-hover: rgba(255,36,66,.14);
    --primary-lighter: rgba(255,36,66,.20);
    --success-bg: rgba(0,180,42,.16);
    --info-bg: rgba(255,36,66,.18);
    --danger-bg: rgba(245,63,63,.16);
    --warning-bg: rgba(255,154,46,.16);
    --glass: #1f1f21;
    --glass-edge: 1px solid rgba(255,255,255,.10);
    --shadow-sm: 0 1px 2px rgba(0,0,0,.3);
    --shadow: 0 2px 8px rgba(0,0,0,.35);
    --shadow-md: 0 4px 16px rgba(0,0,0,.4);
    --shadow-lg: 0 8px 24px rgba(0,0,0,.5);
}

/* ===== 全站背景（纯色工作台） ===== */
body {
    font-family:var(--font); background:var(--paper); color:var(--text);
    font-size:14px; line-height:1.7;
    -webkit-font-smoothing:antialiased;
}
body::before, body::after { content:none; }

a { color:var(--primary); text-decoration:none; }
a:hover { color:var(--primary-light); text-decoration:underline; }

/* ===== 登录页 ===== */
.login-wrap {
    min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px;
    position:relative; background:linear-gradient(180deg, #fff0f2 0%, var(--bg) 100%);
}
.login-card {
    width:420px; max-width:100%; background:var(--card); border:var(--glass-edge);
    box-shadow:var(--shadow-md);
    padding:40px; border-radius:var(--radius-lg); position:relative; z-index:1;
}
.login-card::before {
    content:""; position:absolute; top:0; left:0; right:0; height:3px;
    background:var(--grad-primary); border-radius:var(--radius-lg) var(--radius-lg) 0 0;
}
.login-head { text-align:center; margin-bottom:32px; }
.login-head .logo { display:flex; align-items:center; justify-content:center; gap:10px; margin-bottom:8px; }
.login-head .logo-icon {
    width:48px; height:48px;
    background:var(--grad-primary);
    display:flex; align-items:center; justify-content:center; color:#fff;
    font-size:21px; font-weight:700; border-radius:14px;
    box-shadow:0 6px 16px rgba(255,36,66,.22);
}
.login-head h1 { font-size:22px; color:var(--text); font-weight:700; margin:0; letter-spacing:1px; }
.login-head p { font-size:12px; color:var(--muted); margin-top:6px; }
.login-body .form-item { margin-bottom:20px; }
.login-body label { display:block; font-size:13px; color:var(--text-secondary); margin-bottom:6px; font-weight:500; }
.login-body .input {
    width:100%; height:44px; padding:0 14px; border:1px solid var(--border); border-radius:var(--radius);
    font-size:14px; color:var(--text); background:var(--card); outline:none;
    transition:border-color .2s, box-shadow .2s;
}
.login-body .input:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(255,36,66,.12); }
.login-body .input::placeholder { color:var(--muted); }
.btn-login {
    width:100%; height:46px; border:none; cursor:pointer;
    background:var(--grad-primary);
    color:#fff; font-size:15px; font-weight:600; letter-spacing:2px; font-family:inherit;
    border-radius:var(--radius-pill);
    box-shadow:0 6px 16px rgba(255,36,66,.22);
    transition:background .2s, transform .15s, box-shadow .2s;
}
.btn-login::after { content:none; }
.btn-login:hover { background:var(--grad-primary); filter:brightness(1.06); box-shadow:0 8px 20px rgba(255,36,66,.30); }
.btn-login:active { background:var(--grad-primary); transform:scale(.98); filter:brightness(.96); box-shadow:none; }
.login-foot { text-align:center; margin-top:20px; padding-top:16px; border-top:1px solid var(--border-light); font-size:11px; color:var(--muted); }

/* ===== 后台框架 ===== */
.app { display:flex; min-height:100vh; }
.sidebar {
    width:210px; background:var(--sidebar-bg); flex-shrink:0; display:flex; flex-direction:column;
    border-right:1px solid var(--border-light);
}
.sidebar-overlay { display:none; }
.sidebar .brand {
    padding:18px 16px; border-bottom:1px solid var(--border-light); display:flex; align-items:center; gap:10px;
}
.sidebar .brand .brand-icon {
    width:32px; height:32px; background:var(--primary);
    display:flex; align-items:center; justify-content:center; color:#fff; font-size:14px; font-weight:700;
    flex-shrink:0; border-radius:10px; box-shadow:var(--glow-soft);
    position:relative;
}
.sidebar .brand .brand-icon::after {
    content:""; position:absolute; inset:3px; border-radius:8px;
    border:1.5px solid rgba(255,255,255,.55); pointer-events:none;
}
.sidebar .brand .brand-txt { min-width:0; }
.sidebar .brand .b1 { color:var(--text); font-size:14px; font-weight:700; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sidebar .brand .b2 { color:var(--muted); font-size:10px; }
.sidebar nav { flex:1; padding:8px 0; overflow-y:auto; }
.sidebar nav .nav-group { padding:12px 16px 4px; font-size:11px; color:var(--muted); }
.sidebar nav a {
    display:flex; align-items:center; gap:8px; padding:9px 16px; color:var(--sidebar-text); font-size:13px;
    border-left:3px solid transparent; border-radius:10px; margin:2px 10px; transition:all .15s;
}
.sidebar nav a:hover { background:var(--sidebar-hover); color:var(--primary); }
.sidebar nav a.active {
    background:var(--primary-lighter); color:var(--primary); border-left-color:var(--primary);
    font-weight:700;
}
.sidebar nav a .ico { width:18px; text-align:center; font-size:13px; flex-shrink:0; }
.sidebar .sidebar-foot { padding:10px 16px; border-top:1px solid var(--border-light); font-size:10px; color:var(--muted); text-align:center; }
.main { flex:1; display:flex; flex-direction:column; min-width:0; }
.topbar {
    background:var(--card);
    padding:0 24px; height:50px; display:flex; align-items:center; justify-content:space-between;
    border-bottom:1px solid var(--border);
    position:relative;
}
.topbar::after { content:none; }
.topbar .topbar-left { display:flex; align-items:center; gap:12px; min-width:0; }
.topbar .page-title {
    font-size:15px; font-weight:600; color:var(--text);
    display:flex; align-items:center; gap:10px;
}
.topbar .page-title::before {
    content:""; width:3px; height:16px; border-radius:2px; flex-shrink:0;
    background:var(--grad-primary);
}
.menu-btn {
    display:none; background:transparent; border:1px solid var(--border); padding:4px 10px;
    color:var(--text); font-size:14px; cursor:pointer; border-radius:var(--radius-sm);
}
.topbar .user-box { display:flex; align-items:center; gap:10px; }
.topbar .user-box .uname { font-size:13px; color:var(--text); }
.topbar .user-box .urole {
    font-size:11px; color:var(--primary); background:var(--primary-lighter);
    border:1px solid transparent; padding:2px 10px; border-radius:var(--radius-sm);
}
.topbar .user-box .user-badge {
    display:inline-block; padding:3px 10px; border-radius:20px;
    font-size:11px; font-weight:500; white-space:nowrap;
}
.topbar .user-box .user-badge.badge-admin {
    background:var(--primary); color:#fff;
}
.topbar .user-box .user-badge.badge-staff {
    background:#fff0f2; color:#ff2442; border:1px solid #ffcdd6;
}
/* 认证V标识：红=平台管理员 / 蓝=企业官方认证 / 黄=个人认证 */
.v-badge {
    display:inline-flex; align-items:center; justify-content:center;
    width:16px; height:16px; border-radius:50%;
    background:linear-gradient(135deg,#ff1733,#ff5c73); color:#fff; font-size:10px;
    font-weight:700; font-style:italic; margin-left:4px;
    vertical-align:middle; line-height:1;
}
.v-badge.v-blue { background:linear-gradient(135deg,#3b7cff,#6aa0ff); }
.v-badge.v-red { background:linear-gradient(135deg,#ff1733,#ff5c73); }
.v-badge.v-yellow { background:linear-gradient(135deg,#ffc53d,#faad14); }
.topbar .user-box a { color:var(--text-secondary); font-size:13px; }
.topbar .user-box a:hover { color:var(--primary); }
.topbar .user-box a.top-link {
    padding:4px 12px; border:1px solid var(--border); font-size:12px;
    border-radius:var(--radius-pill); color:var(--text-secondary); text-decoration:none;
    transition:border-color .18s, color .18s, background .18s;
}
.topbar .user-box a.top-link:hover { color:var(--primary); border-color:var(--primary); background:var(--primary-lighter); }
.content { padding:20px 24px; flex:1; }
.content-inner { max-width:1200px; }
.page-desc { color:var(--muted); font-size:13px; margin-top:2px; }

/* ===== 按钮（标准企业矩形按钮） ===== */
.btn {
    display:inline-flex; align-items:center; justify-content:center; gap:4px; cursor:pointer;
    font-size:13px; padding:7px 20px; font-family:inherit;
    border:1px solid transparent; border-radius:var(--radius);
    transition:background .18s, border-color .18s, color .18s, transform .15s, box-shadow .18s;
}
.btn:active { transform:scale(.97); }
.btn[disabled] { opacity:.45; cursor:not-allowed; transform:none !important; }

.btn-primary, .btn-info, .btn-success, .btn-seal, .btn-login, .btn-block.btn-primary { }
.btn-primary {
    background:var(--grad-primary);
    color:#fff; font-weight:600;
    border-radius:var(--radius-pill); padding:8px 22px;
}
.btn-primary::after { content:none; }
.btn-primary:hover { background:var(--grad-primary); filter:brightness(1.06); }
.btn-info { background:var(--grad-primary); color:#fff; font-weight:500; border-radius:var(--radius-pill); }
.btn-info:hover { background:var(--grad-primary); filter:brightness(1.06); }
.btn-success { background:var(--grad-success); color:#fff; font-weight:600; border-radius:var(--radius-pill); }
.btn-success:hover { background:var(--grad-success); filter:brightness(1.06); }

.btn-gray, .btn-seal-ghost { }
.btn-gray {
    background:var(--card);
    color:var(--text-secondary);
    border:1px solid var(--border);
}
.btn-gray:hover { background:var(--bg-alt); color:var(--text); border-color:var(--primary); }
.btn-seal-ghost {
    display:inline-flex; align-items:center; gap:6px; background:transparent;
    color:var(--primary); font-size:13px; cursor:pointer; text-decoration:none;
    border:1px solid var(--primary); border-radius:var(--radius);
}
.btn-seal-ghost:hover { background:var(--primary-lighter); color:var(--primary); text-decoration:none; }

.btn-danger { background:var(--grad-danger); color:#fff; font-weight:600; border-radius:var(--radius-pill); }
.btn-danger:hover { background:var(--grad-danger); filter:brightness(1.06); }
.btn-warning { background:var(--grad-warning); color:#fff; font-weight:600; border-radius:var(--radius-pill); }
.btn-warning:hover { background:var(--grad-warning); filter:brightness(1.06); }

.btn-block { width:100%; display:flex; height:44px; }
.btn-sm { padding:5px 14px; font-size:12px; }
.btn-lg { padding:10px 32px; font-size:15px; }

/* ===== 分页 ===== */
.pagination { display:flex; gap:6px; padding:14px 18px; align-items:center; flex-wrap:wrap; }
.pagination a, .pagination span {
    padding:5px 12px; border:1px solid var(--border); font-size:13px; color:var(--text-secondary);
    background:var(--card); border-radius:var(--radius-pill);
}
.pagination a:hover { border-color:var(--primary); color:var(--primary); text-decoration:none; }
.pagination span.current { background:var(--grad-primary); border-color:transparent; color:#fff; font-weight:600; }

/* ===== 筛选 ===== */
.filter-bar { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.filter-bar .input { width:auto; min-width:130px; }
.filter-bar .input.wide { width:200px; }

/* ===== 提示 ===== */
.alert {
    padding:10px 14px; margin-bottom:14px; font-size:13px; line-height:1.6; display:flex; align-items:center; gap:8px;
    border:1px solid transparent; border-left:3px solid transparent; border-radius:var(--radius);
}
.alert-success { background:var(--success-bg); color:var(--success); border-left-color:var(--success); }
.alert-danger { background:var(--danger-bg); color:var(--danger); border-left-color:var(--danger); }
.alert-info { background:var(--info-bg); color:var(--info); border-left-color:var(--info); }
.alert-warning { background:var(--warning-bg); color:var(--warning); border-left-color:var(--warning); }

/* ===== 详情网格 ===== */
.detail-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:0; }
.detail-item { padding:10px 0; border-bottom:1px solid var(--border-light); margin-right:16px; }
.detail-item .k { font-size:11px; color:var(--muted); margin-bottom:2px; }
.detail-item .v { font-size:14px; color:var(--text); word-break:break-all; font-weight:500; }

/* ===== 弹窗 ===== */
.modal-mask { position:fixed; inset:0; background:rgba(15,20,28,.45); z-index:100; display:none; align-items:center; justify-content:center; padding:20px; }
.modal-mask.show { display:flex; }
.modal {
    background:var(--card); border:var(--glass-edge); max-width:500px; width:100%; max-height:90vh; overflow-y:auto;
    box-shadow:var(--shadow-lg);
    border-radius:var(--radius-lg);
}
.modal .modal-head { padding:14px 18px; border-bottom:1px solid var(--border-light); display:flex; justify-content:space-between; align-items:center; }
.modal .modal-head h3 { font-size:15px; font-weight:600; }
.modal .modal-head .close { cursor:pointer; font-size:18px; color:var(--muted); }
.modal .modal-head .close:hover { color:var(--danger); }
.modal .modal-body { padding:16px 18px; }
.modal .modal-foot { padding:12px 18px; border-top:1px solid var(--border-light); display:flex; justify-content:flex-end; gap:8px; }

/* ===== 空状态 ===== */
.empty { text-align:center; color:var(--muted); padding:40px 20px; font-size:14px; }

/* ===== 深色模式切换 ===== */
.theme-toggle {
    background:transparent; border:1px solid var(--border); padding:3px 12px; cursor:pointer;
    color:var(--text-secondary); font-size:12px; display:inline-flex; align-items:center; gap:5px; border-radius:var(--radius-sm);
}
.theme-toggle:hover { background:var(--primary-lighter); color:var(--primary); border-color:var(--primary); }

/* ===== 滚动条 ===== */
::-webkit-scrollbar { width:7px; height:7px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:#c9cdd4; border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:#a9aeb8; }

/* ===== 首页 Landing Page ===== */
.landing {
    min-height:100vh; position:relative; overflow-x:hidden;
    background:linear-gradient(180deg, #f7f9fc 0%, var(--bg) 100%);
}
.landing .land-nav {
    background:var(--card); border-bottom:1px solid var(--border); display:flex; align-items:center;
    justify-content:space-between; padding:0 20px; height:56px; max-width:1100px; margin:0 auto;
    position:relative; z-index:1;
}
.landing .brand { display:flex; align-items:center; gap:10px; }
.landing .brand-seal {
    width:32px; height:32px; background:var(--primary);
    display:flex; align-items:center; justify-content:center; color:#fff; font-size:15px; font-weight:700;
    flex-shrink:0; border-radius:var(--radius);
}
.landing .brand-txt { display:flex; flex-direction:column; }
.landing .brand-name { color:var(--text); font-size:14px; font-weight:600; white-space:nowrap; }
.landing .brand-txt small { color:var(--muted); font-size:10px; }
.landing .land-nav-side { display:flex; align-items:center; gap:10px; }
.landing .land-nav-side .co { color:var(--muted); font-size:12px; }
.landing .land-nav-side .sep { width:1px; height:14px; background:var(--border); }
.landing .land-nav-side .staff-link {
    color:var(--primary); font-size:12px; padding:5px 18px; text-decoration:none;
    background:var(--primary-lighter); border:1px solid var(--primary); border-radius:var(--radius);
    transition:all .2s;
}
.landing .land-nav-side .staff-link:hover { background:var(--primary); color:#fff; text-decoration:none; }
.landing .land-main { max-width:1100px; margin:0 auto; display:flex; align-items:center; gap:50px; min-height:calc(100vh - 56px - 80px); padding:40px 20px; position:relative; z-index:1; }
.landing .land-copy { flex:1; min-width:0; }
.landing .land-copy .eyebrow { font-size:12px; letter-spacing:3px; color:var(--primary); margin-bottom:12px; font-family:var(--font-mono); }
.landing .land-copy h1 {
    font-size:44px; font-weight:700; letter-spacing:6px; margin-bottom:10px; line-height:1.25;
    color:var(--text);
}
.landing .land-copy .tagline { font-size:16px; color:var(--text-secondary); margin-bottom:20px; }
.landing .land-copy .desc { font-size:14px; color:var(--muted); line-height:1.9; }
.landing .land-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:24px; }
.landing .land-steps .step {
    background:var(--card); border:1px solid var(--border); border-radius:var(--radius-lg);
    padding:16px; text-align:center;
    transition:border-color .2s, box-shadow .2s;
}
.landing .land-steps .step:hover { border-color:var(--primary-light); box-shadow:var(--shadow); }
.landing .land-steps .step .no {
    display:block; font-size:30px; font-weight:700; line-height:1; margin-bottom:6px; font-family:var(--font-mono);
    color:var(--primary); opacity:.28;
}
.landing .land-steps .step .st { display:block; font-size:15px; color:var(--text); font-weight:600; margin-bottom:4px; }
.landing .land-steps .step .sd { display:block; font-size:12px; color:var(--muted); line-height:1.4; }
.landing .land-visual { flex:0 0 340px; }
.landing .paper-sheet {
    position:relative; padding:24px; border-radius:var(--radius-lg);
    background:var(--card);
    border:1px solid var(--border);
    box-shadow:var(--shadow-md);
}
.landing .paper-sheet::before { content:none; }
.landing .paper-sheet .ps-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; padding-bottom:10px; border-bottom:2px solid var(--primary); }
.landing .paper-sheet .ps-co { font-size:11px; color:var(--primary); font-weight:600; }
.landing .paper-sheet .ps-title { font-size:13px; color:var(--text); font-weight:700; letter-spacing:4px; }
.landing .paper-sheet .ps-rows { display:flex; flex-direction:column; gap:8px; }
.landing .paper-sheet .ps-row { display:flex; font-size:12px; color:var(--text-secondary); }
.landing .paper-sheet .ps-row b { width:70px; flex-shrink:0; color:var(--text-secondary); }
.landing .paper-sheet .ps-row .blank {
    display:inline-block; width:80px; height:12px;
    background:var(--border-light); border-radius:2px;
}
.landing .paper-sheet .ps-row .blank.short { width:50px; }
.landing .paper-sheet .ps-foot { font-size:10px; color:var(--muted); margin-top:14px; padding-top:10px; border-top:1px solid var(--border-light); text-align:center; }
.landing .paper-sheet .ps-seal { position:absolute; right:16px; bottom:50px; width:72px; height:72px; color:var(--primary); opacity:.35; pointer-events:none; }
.landing .paper-sheet .seal-svg { width:100%; height:100%; }
.landing .land-foot { background:var(--card); padding:24px 20px; text-align:center; position:relative; z-index:1; border-top:1px solid var(--border); }
.landing .land-foot .foot-row { margin-bottom:8px; }
.landing .land-foot .fine { font-size:12px; color:var(--muted); line-height:1.8; }
.landing .land-foot .mono { font-family:var(--font-mono); font-size:10px; letter-spacing:2px; color:var(--muted); opacity:.7; }
@media (max-width:768px) {
    .landing .land-main { flex-direction:column; gap:30px; padding:20px 16px; }
    .landing .land-copy h1 { font-size:32px; letter-spacing:4px; text-align:center; }
    .landing .land-copy .eyebrow { text-align:center; }
    .landing .land-copy .tagline { text-align:center; font-size:14px; }
    .landing .land-copy .desc { text-align:center; }
    .landing .land-visual { flex:0 0 auto; width:100%; max-width:320px; }
    .landing .land-steps { grid-template-columns:1fr; gap:12px; }
    .landing .land-nav { padding:0 12px; }
    .landing .land-nav-side .co { display:none; }
}

/* ===== 公共页面样式（view.php） ===== */
.vw-wrap { max-width:800px; margin:0 auto; padding:40px 16px; }
.vw-header { text-align:center; margin-bottom:28px; }
.vw-header .vw-brand-icon {
    width:36px; height:36px; margin:0 auto 10px; background:var(--primary);
    display:flex; align-items:center; justify-content:center; color:#fff; font-size:16px; font-weight:700;
    border-radius:var(--radius);
}
.vw-header h1 { font-size:20px; color:var(--text); font-weight:700; }
.vw-header p { font-size:13px; color:var(--muted); }
.vw-card {
    background:var(--card); border:var(--glass-edge); margin-bottom:16px; border-radius:var(--radius-lg);
    transition:box-shadow .2s, border-color .2s;
}
.vw-card:hover { box-shadow:var(--shadow); }
.vw-card-head { padding:14px 18px; border-bottom:1px solid var(--border-light); font-weight:600; font-size:14px; color:var(--text); display:flex; justify-content:space-between; align-items:center; }
.vw-card-body { padding:18px; }
.vw-info { display:grid; grid-template-columns:1fr 1fr; gap:10px 20px; }
.vw-info .i { display:flex; flex-direction:column; }
.vw-info .i .k { font-size:11px; color:var(--muted); margin-bottom:2px; }
.vw-info .i .v { font-size:14px; color:var(--text); font-weight:500; word-break:break-all; }
.vw-info .i.full { grid-column:1/-1; }
.vw-doc { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border-light); }
.vw-doc:last-child { border-bottom:none; }
.vw-doc .ico {
    width:34px; height:34px; background:var(--primary-lighter); color:var(--primary); display:flex;
    align-items:center; justify-content:center; font-size:10px; font-weight:700; flex-shrink:0;
    font-family:var(--font-mono); border-radius:var(--radius-sm);
}
.vw-doc .info { flex:1; min-width:0; }
.vw-doc .info .name { font-size:14px; color:var(--text); font-weight:500; word-break:break-all; }
.vw-doc .info .meta { font-size:12px; color:var(--muted); }
.vw-doc .actions { display:flex; gap:8px; flex-shrink:0; }
.vw-doc .actions a {
    padding:5px 16px; font-size:12px; text-decoration:none;
    border-radius:var(--radius);
}
.vw-doc .actions .preview { background:var(--primary); color:#fff; font-weight:600; }
.vw-doc .actions .preview:hover { background:var(--primary-light); }
.vw-doc .actions .download { background:var(--card); color:var(--text-secondary); border:1px solid var(--border); }
.vw-doc .actions .download:hover { color:var(--primary); border-color:var(--primary); }
.vw-sign-area { border-top:1px solid var(--border-light); margin-top:14px; padding-top:14px; text-align:center; }
.vw-sign-area p { font-size:13px; color:var(--text-secondary); margin-bottom:10px; }
.vw-reject-form textarea { width:100%; min-height:60px; padding:8px; border:1px solid var(--border); border-radius:var(--radius); font-size:13px; resize:vertical; outline:none; font-family:inherit; background:var(--card); color:var(--text); }
.vw-reject-form textarea:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(255,36,66,.12); }
.vw-status { text-align:center; padding:20px; }
.vw-status .icon { font-size:40px; margin-bottom:6px; display:block; }
.vw-status .msg { font-size:16px; font-weight:600; }
.vw-status .sub { font-size:13px; color:var(--muted); margin-top:2px; }

/* ===== 送达回证 ===== */
.receipt-tbl td.rc-label { width:100px;padding:6px 12px 6px 0;font-size:12px;color:var(--muted);vertical-align:top;white-space:nowrap; }
.receipt-tbl td.rc-value { padding:6px 12px 6px 0;font-size:14px;color:var(--text);vertical-align:top;word-break:break-all; }
.receipt-tbl tr { border-bottom:1px solid var(--border-light); }
.receipt-tbl tr:last-child { border-bottom:none; }

/* ===== 文书送达页面（index.php 收件人视图） ===== */
.doc-page { max-width:720px; margin:30px auto; padding:0 16px; position:relative; z-index:1; }
.doc-page .doc-header { text-align:center; padding:24px 0 20px; border-bottom:2px solid var(--primary); margin-bottom:0; position:relative; }
.doc-page .doc-header .dh-co { display:block; font-size:13px; color:var(--primary); font-weight:600; margin-bottom:6px; }
.doc-page .doc-header .dh-title {
    font-size:24px; font-weight:700; letter-spacing:8px; margin-bottom:6px;
    color:var(--text);
}
.doc-page .doc-header .dh-sub { font-size:11px; color:var(--muted); letter-spacing:3px; margin-bottom:4px; }
.doc-page .doc-header .dh-no { font-size:11px; color:var(--muted); font-family:var(--font-mono); }
.doc-body { padding:0 0 16px; }
.doc-panel {
    background:var(--card); border:var(--glass-edge); border-radius:var(--radius-lg);
    box-shadow:var(--shadow);
}
.doc-panel .dp-head { padding:14px 18px; border-bottom:1px solid var(--border-light); display:flex; align-items:center; justify-content:space-between; }
.doc-panel .dp-head .dp-title { font-size:14px; font-weight:600; color:var(--text); }
.doc-panel .dp-body { padding:18px; }
.doc-panel .dp-notice {
    background:var(--info-bg); padding:12px 16px; font-size:13px; color:var(--text-secondary); line-height:1.8;
    margin-bottom:14px; border-left:3px solid var(--primary); border-radius:var(--radius);
}
.doc-list .doc-row { display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--border-light); }
.doc-list .doc-row:last-child { border-bottom:none; }
.doc-list .doc-ico {
    width:36px; height:36px; background:var(--primary-lighter); color:var(--primary); display:flex;
    align-items:center; justify-content:center; font-size:10px; font-weight:700; font-family:var(--font-mono);
    flex-shrink:0; border-radius:var(--radius-sm);
}
.doc-list .doc-name { flex:1; min-width:0; font-size:14px; color:var(--text); word-break:break-all; }
.doc-list .doc-meta { font-size:12px; color:var(--muted); white-space:nowrap; font-family:var(--font-mono); }
.doc-list .doc-actions { display:flex; gap:8px; flex-shrink:0; }
.doc-list .doc-actions a {
    padding:4px 15px; font-size:12px; background:var(--primary); color:#fff;
    font-weight:600; text-decoration:none; border-radius:var(--radius);
}
.doc-list .doc-actions a:hover { background:var(--primary-light); text-decoration:none; }
.doc-row .dn-t { font-size:14px; color:var(--text); font-weight:600; }
.doc-row .dn-s { font-size:12px; color:var(--muted); margin:2px 0 6px; }
.sign-zone { margin-top:16px; padding-top:16px; border-top:1px solid var(--border-light); text-align:center; }
.sign-zone .sz-done { font-size:14px; font-weight:600; color:var(--success); margin-bottom:10px; }
.sign-zone .sz-warn { font-size:14px; font-weight:600; color:var(--danger); margin-bottom:4px; }
.sign-zone .sz-reason { font-size:13px; color:var(--text-secondary); margin-bottom:6px; }
.sign-zone .sz-hint { font-size:13px; color:var(--muted); margin-bottom:14px; }
.btn-seal {
    background:var(--success);
    color:#fff; padding:11px 52px; font-size:15px; font-weight:600; letter-spacing:3px; border:none;
    cursor:pointer; font-family:inherit; border-radius:var(--radius);
    transition:background .2s, transform .15s;
}
.btn-seal::after { content:none; }
.btn-seal:hover { background:#23c343; }
.btn-seal:active { background:#009a29; transform:scale(.98); }
.reject-toggle { display:inline-block; margin-top:12px; font-size:12px; color:var(--muted); text-decoration:underline; cursor:pointer; }
.reject-toggle:hover { color:var(--danger); }
.reject-form { display:none; margin-top:12px; text-align:left; }
.reject-form.show { display:block; }
.reject-form .rf-title { font-size:13px; color:var(--text-secondary); margin-bottom:4px; }
.reject-form textarea { width:100%; min-height:60px; padding:8px; border:1px solid var(--border); border-radius:var(--radius); font-size:13px; resize:vertical; outline:none; font-family:inherit; background:var(--card); color:var(--text); }
.reject-form textarea:focus { border-color:var(--primary); box-shadow:0 0 0 2px rgba(255,36,66,.12); }
.reject-form .rf-btns { display:flex; gap:10px; justify-content:flex-end; margin-top:6px; }
.doc-page .doc-foot { text-align:center; padding:16px; font-size:12px; color:var(--muted); line-height:1.6; }

/* ===== 主题增强 ===== */
::selection { background:var(--primary); color:#fff; }

/* ===== 响应式 ===== */
@media (min-width:901px) {
    .menu-btn { display:none !important; }
}
@media (max-width:900px) {
    .sidebar { position:fixed; left:0; top:0; bottom:0; width:220px; transform:translateX(-105%); box-shadow:var(--shadow-lg); z-index:200; }
    .app.sidebar-open .sidebar { transform:translateX(0); }
    .menu-btn { display:inline-flex; }
    .topbar { padding:0 12px; height:44px; }
    .topbar .page-title { font-size:14px; max-width:50vw; }
    .content { padding:14px 12px; }
    .cards { grid-template-columns:repeat(2,1fr); gap:8px; }
    .card .card-head { padding:12px 14px; }
    .card .card-body { padding:14px; }
    .form-grid { grid-template-columns:1fr; gap:10px; }
    .tbl thead { display:none; }
    .tbl tbody tr { display:block; border:1px solid var(--border); margin-bottom:10px; background:var(--card); border-radius:var(--radius); }
    .tbl td { display:flex; align-items:center; gap:6px; flex-wrap:wrap; border-bottom:1px solid var(--border-light); padding:8px 12px; }
    .tbl td:last-child { border-bottom:none; }
    .tbl td::before { content:attr(data-label); color:var(--muted); font-size:11px; min-width:60px; flex:0 0 auto; }
    .pagination { padding:10px 14px; }
    .modal-mask { padding:12px; align-items:flex-end; }
    .modal { max-height:90vh; }
    .vw-wrap { padding:20px 12px; }
    .vw-info { grid-template-columns:1fr; }
}
@media (max-width:480px) {
    .topbar { padding:0 8px; height:40px; }
    .topbar .page-title { font-size:13px; }
    .content { padding:10px 8px; }
    .card .card-head { padding:10px 12px; }
    .card .card-body { padding:12px; }
    .vw-wrap { padding:14px 8px; }
}
@media print {
    .sidebar, .topbar, .form-actions, .card-head form, .theme-toggle { display:none !important; }
    body, .landing, .doc-page { background:#fff !important; background-image:none !important; }
    body::before, body::after { display:none !important; }
    .card, .vw-card, .doc-panel { border:1px solid #ccc; box-shadow:none !important; background:#fff !important; }
    .card-head h3, .card-body, .tbl, .detail-item .v { color:#000 !important; }
    .doc-page .doc-header .dh-title, .landing .land-copy h1 { -webkit-text-fill-color:#000; color:#000 !important; filter:none !important; }
}

/* ===== 文书查看页背景（企业版：保持干净留白） ===== */
.dossier-bg { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
.dossier-mark {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:60vw; font-weight:900; color:var(--primary); opacity:.03; line-height:1; user-select:none;
}
.dossier-grain { display:none; }
.dossier-bg::after { content:none; }

/* ===== 首页背景（企业版：保持干净留白） ===== */
.land-bg { position:fixed; inset:0; overflow:hidden; pointer-events:none; z-index:0; }
.land-mark {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    font-size:50vw; font-weight:900; color:var(--primary); opacity:.025; line-height:1; user-select:none;
}
.land-grain { display:none; }
.land-bg::before { content:none; }
.land-bg::after { content:none; }
.landing .theme-toggle .ico { font-size:16px; }
.landing .theme-toggle .txt { font-size:12px; }

/* ============================================================
   组件样式补全（企业版）：统计卡片 / 通用卡片 / 表格 / 徽章 /
   表单 / 弹窗Toast / 确认弹窗 / 页面动画 / 响应式
   ============================================================ */

/* ===== 页面动画 ===== */
@keyframes fadeIn { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
@keyframes slideInRight { from { opacity:0; transform:translateX(60px); } to { opacity:1; transform:none; } }
@keyframes popIn { from { opacity:0; transform:scale(.92); } to { opacity:1; transform:none; } }

/* ===== 统计卡片网格 ===== */
.cards { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:16px; margin-bottom:20px; }

/* ===== 统计卡片 ===== */
.stat-card {
    position:relative; background:var(--card); border:var(--glass-edge); border-radius:var(--radius-lg);
    padding:18px 20px; display:flex; flex-direction:column; justify-content:center; gap:4px;
    box-shadow:var(--shadow-sm); overflow:hidden;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    animation:fadeIn .4s ease both;
}
.stat-card::before {
    content:""; position:absolute; left:0; top:0; bottom:0; width:4px;
    background:var(--grad-primary);
}
.stat-card:hover { transform:translateY(-2px); border-color:var(--primary-light); box-shadow:var(--shadow); }
.stat-card .lbl { font-size:13px; color:var(--text-secondary); font-weight:500; display:flex; align-items:center; justify-content:space-between; }
.stat-card .lbl .ico { color:var(--primary); font-size:16px; opacity:.85; }
.stat-card .num {
    font-size:28px; font-weight:700; color:var(--text); line-height:1.2;
    font-variant-numeric:tabular-nums;
}
.stat-card .num .unit { font-size:14px; font-weight:600; color:var(--muted); margin-left:3px; }
.stat-card .num.warn { color:var(--warning); }
.stat-card .num.danger { color:var(--danger); }
.stat-card .num.success { color:var(--success); }
.stat-card .extra { font-size:12px; color:var(--muted); }

/* ===== 通用卡片 ===== */
.card {
    background:var(--card); border:var(--glass-edge); border-radius:var(--radius-lg);
    box-shadow:var(--shadow-sm); overflow:hidden; margin-bottom:18px;
    transition:box-shadow .2s ease, border-color .2s ease; animation:fadeIn .4s ease both;
}
.card:hover { box-shadow:var(--shadow); }
.card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; padding:16px 20px; border-bottom:1px solid var(--border-light); }
.card-head h3 { font-size:15px; font-weight:700; color:var(--ink); margin:0; }
.card-head h3::before {
    content:""; display:inline-block; width:4px; height:14px;
    background:var(--grad-primary); border-radius:2px;
    margin-right:10px; vertical-align:-2px;
}
.card-head .sub { font-size:12px; }
.card-body { padding:20px; }

/* ===== 表格外层容器 ===== */
.table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; background:transparent; }
.table-wrap .tbl { min-width:720px; }
.table-wrap::-webkit-scrollbar { height:8px; }

/* ===== 表格 ===== */
.tbl { width:100%; border-collapse:collapse; font-size:13px; }
.tbl thead th {
    background:var(--bg-alt); color:var(--ink); font-weight:600; text-align:left;
    padding:12px 14px; white-space:nowrap;
    border-bottom:1px solid var(--border);
}
.tbl tbody td { padding:12px 14px; border-bottom:1px solid var(--border-light); color:var(--text); vertical-align:middle; }
.tbl tbody tr { transition:background .15s ease; }
.tbl tbody tr:hover { background:var(--primary-lighter); }
.tbl tbody tr:last-child td { border-bottom:none; }
.tbl tbody tr:nth-child(even) { background:var(--bg-alt); }
.tbl tbody tr:nth-child(even):hover { background:var(--primary-lighter); }
.tbl td .sub { display:block; font-size:12px; }

/* ===== 徽章（企业标签） ===== */
.badge {
    display:inline-flex; align-items:center; gap:4px; padding:3px 11px; font-size:12px; font-weight:600;
    line-height:1.4; border-radius:var(--radius-pill); white-space:nowrap;
}
.badge-success { background:var(--success-bg); color:var(--success); }
.badge-danger { background:var(--danger-bg); color:var(--danger); }
.badge-warning { background:var(--warning-bg); color:var(--warning); }
.badge-info { background:var(--info-bg); color:var(--info); }
.badge-default { background:var(--bg-alt); color:var(--text-secondary); border:1px solid var(--border-light); }

/* ===== 次要灰色文字 ===== */
.sub { color:var(--muted); font-size:12px; }

/* ===== 表单网格 ===== */
.form-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }
.form-item { display:flex; flex-direction:column; gap:6px; }
.form-item label { font-size:13px; color:var(--text-secondary); font-weight:500; }
.form-item label .req { color:var(--danger); margin-left:2px; }
.form-item .hint { font-size:12px; color:var(--muted); }
.form-item .sub { margin-top:2px; }

/* ===== 输入框 / 下拉 / 文本域 ===== */
.input, select, textarea {
    width:100%; height:44px; padding:0 14px; border:1px solid var(--border); border-radius:var(--radius);
    font-size:14px; color:var(--text); background:var(--card); outline:none; font-family:inherit;
    transition:border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
textarea { height:auto; min-height:90px; padding:10px 14px; resize:vertical; line-height:1.6; }
select {
    appearance:none; -webkit-appearance:none; cursor:pointer; padding-right:34px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2386909c' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 12px center;
}
.input::placeholder, textarea::placeholder { color:var(--muted); }
.input:focus, select:focus, textarea:focus {
    border-color:var(--primary);
    box-shadow:0 0 0 2px rgba(255,36,66,.12);
}
.input:hover:not(:focus), select:hover:not(:focus), textarea:hover:not(:focus) { border-color:var(--primary-light); }
.input[readonly], input[disabled], select[disabled], textarea[disabled] { background:var(--bg-alt); color:var(--muted); cursor:not-allowed; }

/* ===== 表单操作区 ===== */
.form-actions { display:flex; gap:10px; justify-content:flex-end; flex-wrap:wrap; margin-top:22px; padding-top:18px; border-top:1px solid var(--border-light); }
.form-actions.center { justify-content:center; }

/* ===== Toast 通知（右上角滑入） ===== */
.toast-container { position:fixed; top:18px; right:18px; z-index:9999; display:flex; flex-direction:column; gap:10px; max-width:340px; pointer-events:none; }
.toast {
    pointer-events:auto; display:flex; align-items:center; gap:10px; padding:12px 16px;
    background:var(--card); color:var(--text); border:var(--glass-edge);
    border-left:4px solid var(--info); border-radius:var(--radius);
    box-shadow:var(--shadow-lg); font-size:13px;
    animation:slideInRight .3s ease both;
}
.toast .t-ico { font-size:16px; flex-shrink:0; }
.toast .t-msg { flex:1; word-break:break-all; }
.toast .t-close { cursor:pointer; color:var(--muted); font-size:14px; flex-shrink:0; }
.toast .t-close:hover { color:var(--danger); }
.toast.hide { animation:slideInRight .3s ease reverse both; }
.toast-success { border-left-color:var(--success); } .toast-success .t-ico { color:var(--success); }
.toast-danger { border-left-color:var(--danger); } .toast-danger .t-ico { color:var(--danger); }
.toast-warning { border-left-color:var(--warning); } .toast-warning .t-ico { color:var(--warning); }
.toast-info { border-left-color:var(--info); } .toast-info .t-ico { color:var(--info); }

/* ===== 确认弹窗 ===== */
.confirm-mask { position:fixed; inset:0; background:rgba(15,20,28,.45); z-index:1000; display:none; align-items:center; justify-content:center; padding:20px; }
.confirm-mask.show { display:flex; }
.confirm-box {
    background:var(--card); border:var(--glass-edge); width:100%; max-width:380px; border-radius:var(--radius-lg);
    box-shadow:var(--shadow-lg);
    overflow:hidden; animation:popIn .25s ease both; position:relative;
}
.confirm-box::before { content:none; }
.confirm-box .cb-head { padding:18px 20px 0; }
.confirm-box .cb-head .cb-icon { font-size:38px; line-height:1; display:block; margin-bottom:10px; text-align:center; }
.confirm-box .cb-head .cb-icon.warn { color:var(--warning); }
.confirm-box .cb-head .cb-icon.info { color:var(--primary); }
.confirm-box .cb-title { font-size:17px; font-weight:700; color:var(--text); text-align:center; }
.confirm-box .cb-body { padding:10px 20px 20px; font-size:13px; color:var(--text-secondary); text-align:center; line-height:1.7; word-break:break-all; }
.confirm-box .cb-foot { display:flex; justify-content:flex-end; gap:10px; padding:14px 20px; border-top:1px solid var(--border-light); background:var(--bg-alt); }

/* ===== .content 进入动画 ===== */
.content { animation:fadeIn .45s ease both; }

/* ===== 移动端表单间距优化 ===== */
@media (max-width:600px) {
    .form-actions .btn { flex:1 1 auto; }
    .stat-card .num { font-size:24px; }
    .toast-container { left:12px; right:12px; max-width:none; top:12px; }
    .confirm-box { max-width:92vw; }
    .btn-seal { padding:11px 36px; letter-spacing:3px; }
}

/* ===== 官网文书查询页 ===== */
.qinput {
    width:100%; padding:12px 16px; border:1px solid var(--border); border-radius:var(--radius);
    font-size:15px; color:var(--text); background:var(--card); box-sizing:border-box;
    transition:border-color .2s, box-shadow .2s; outline:none;
}
.qinput:focus { outline:none; border-color:var(--primary); box-shadow:0 0 0 2px rgba(255,36,66,.12); }
.qinput::placeholder { color:var(--muted); }
.qmsg {
    padding:12px 16px; border-radius:var(--radius); font-size:14px; margin-bottom:14px;
}
.qerr { background:var(--danger-bg); color:var(--danger); }
.qok  { background:var(--success-bg); color:var(--success); }
