:root {
  --orange: #f97316;
  --orange-dark: #ea580c;
  --orange-light: #fff7ed;
  --orange-border: #fed7aa;
  --text: #1c1917;
  --text-2: #78716c;
  --text-3: #a8a29e;
  --bg: #f5f4f2;
  --card: #ffffff;
  --border: #e7e5e4;
  --green: #16a34a;
  --red: #dc2626;
  --shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
  --shadow-lg: 0 10px 30px rgba(0,0,0,.10);
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html,body { height: 100%; }
body {
  font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Segoe UI", sans-serif;
  color: var(--text); background: var(--bg); font-size: 14px; line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { cursor: pointer; text-decoration: none; color: inherit; }
button { font-family: inherit; cursor: pointer; }

/* ---------- 登录 ---------- */
.login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center;
  background: linear-gradient(135deg,#fb923c 0%,#f97316 100%); padding:20px; }
.login-card { background:#fff; border-radius:20px; box-shadow:var(--shadow-lg); padding:44px 48px;
  width:420px; text-align:center; }
.brand { display:flex; align-items:center; gap:14px; justify-content:center; margin-bottom:28px; }
.brand-logo { width:54px; height:54px; border-radius:14px; object-fit:contain;
  box-shadow:0 4px 12px rgba(249,115,22,.35); }
.brand-logo.sm { width:40px; height:40px; border-radius:10px; }
.brand h1 { font-size:24px; font-weight:700; letter-spacing:1px; }
.slogan { color:var(--orange); font-size:13px; margin-top:2px; }
.qr-area { border:1px solid var(--border); border-radius:14px; padding:20px; background:var(--orange-light); }
.qr-img { width:220px; height:220px; display:block; margin:0 auto; border-radius:8px; background:#fff; }
.qr-tip { color:var(--text-2); font-size:13px; margin-top:14px; }
#qr-refresh { margin-top:16px; }
.dev-login { margin-top:20px; }
.dev-login-divider { display:flex; align-items:center; gap:12px; margin-bottom:16px; }
.dev-login-divider::before, .dev-login-divider::after { content:''; flex:1; height:1px; background:var(--border); }
.dev-login-divider span { color:var(--text-3); font-size:13px; }
.login-foot { color:var(--text-3); font-size:12px; margin-top:24px; }

/* ---------- 按钮 ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px;
  background:var(--orange); color:#fff; border:none; border-radius:10px; padding:10px 20px;
  font-size:14px; font-weight:500; transition:.15s; }
.btn:hover { background:var(--orange-dark); }
.btn:disabled { opacity:.5; cursor:not-allowed; }
.btn-ghost { background:transparent; color:var(--text-2); border:1px solid var(--border);
  border-radius:10px; padding:8px 16px; font-size:13px; transition:.15s; }
.btn-ghost:hover { color:var(--orange); border-color:var(--orange); background:var(--orange-light); }
.btn-ghost.block { width:100%; }
.btn-sm { padding:6px 12px; font-size:13px; border-radius:8px; }

/* ---------- 布局：白色侧边栏 ---------- */
.layout { display:flex; min-height:100vh; justify-content:center; background:#f5f5f5; }
.sidebar { width:232px; background:#fff; border-right:1px solid var(--border); display:flex; flex-direction:column; flex-shrink:0;
  position:sticky; top:0; height:100vh; flex-shrink:0; }
.side-brand { display:flex; align-items:center; gap:10px; padding:22px 20px; border-bottom:1px solid var(--border); }
.side-name { color:var(--text); font-weight:700; font-size:15px; }
.side-sub { color:var(--text-3); font-size:12px; }
.nav { flex:1; padding:14px 12px; display:flex; flex-direction:column; gap:2px; }
.nav-item { display:flex; align-items:center; gap:10px; padding:11px 14px; border-radius:9px;
  color:var(--text-2); font-size:14px; transition:.15s; position:relative; }
.nav-item .ni { width:18px; text-align:center; opacity:.8; }
.nav-item:hover { background:var(--orange-light); color:var(--orange); }
.nav-item.active { background:var(--orange); color:#fff; }
.nav-item.active .ni { opacity:1; }
.badge { background:var(--red); color:#fff; font-style:normal; font-size:11px; min-width:18px; height:18px;
  border-radius:9px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px; margin-left:auto;}
.badge.hide { display:none; }
.side-foot { padding:16px; border-top:1px solid var(--border); }
.agency-box { margin-bottom:12px; }
.agency-label { color:var(--text-3); font-size:11px; }
.agency-name { color:var(--text); font-size:13px; font-weight:500; margin-top:2px; }

.content { flex:1; padding:28px 32px; max-width:1400px; width:100%; overflow-y:auto; }
.page-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:22px; }
.page-title { font-size:22px; font-weight:700; }
.page-desc { color:var(--text-2); font-size:13px; margin-top:3px; }

/* ---------- 首页 Hero ---------- */
.home-hero {
  background: linear-gradient(135deg, #fb923c 0%, #f97316 100%);
  border-radius: 16px; padding: 28px 32px; margin-bottom: 20px; color: #fff;
}
.hero-top { display:flex; align-items:center; gap:16px; }
.hero-title-area {}
.hero-title { font-size:26px; font-weight:700; letter-spacing:2px; }
.hero-slogan { font-size:13px; color:rgba(255,255,255,0.88); margin-top:4px; letter-spacing:1px; }
.hero-agency { font-size:12px; color:rgba(255,255,255,0.72); margin-top:12px;
  padding-top:12px; border-top:1px solid rgba(255,255,255,0.2); text-align:center; }

/* ---------- 首页 Tabs ---------- */
.home-tabs { display:flex; background:#fff; border-radius:12px; margin-bottom:16px;
  border:1px solid var(--border); overflow:hidden; }
.home-tab { flex:1; text-align:center; padding:14px 0; font-size:14px; color:var(--text-2);
  position:relative; border-bottom:3px solid transparent; transition:all .2s; cursor:pointer; }
.home-tab.active { color:var(--orange); font-weight:600; border-bottom-color:var(--orange); }
.tab-badge { margin-left:6px; font-size:11px; padding:2px 8px; border-radius:12px;
  background:#f0f0f0; color:var(--text-2); }
.tab-badge.unread { background:var(--red); color:#fff; }
.tab-badge.pending { background:var(--orange); color:#fff; }

/* ---------- 首页文档列表（卡片式，对齐小程序） ---------- */
.doc-list { display:flex; flex-direction:column; gap:10px; }
.doc-item { background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:16px 20px; display:flex; align-items:center; justify-content:space-between;
  transition:box-shadow .15s; }
.doc-item:hover { box-shadow:var(--shadow); }
.doc-info { flex:1; min-width:0; margin-right:16px; }
.doc-name { font-size:14px; font-weight:400; color:var(--text);
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.doc-meta { font-size:12px; color:var(--text-3); margin-top:4px;
  overflow:hidden; white-space:nowrap; text-overflow:ellipsis; }
.doc-right { display:flex; flex-direction:column; align-items:flex-end; gap:4px; }
.days { font-size:13px; font-weight:500; color:#44403c; white-space:nowrap; }
.days.soon { color:var(--orange); font-weight:600; }
.days.over { color:var(--red); font-weight:600; }
.days.urgent { color:var(--red); font-weight:600; background:#fef08a; padding:2px 8px; border-radius:6px; }
.days.expired { color:var(--red); font-weight:600; }
.issued-date { font-size:12px; color:var(--text-3); white-space:nowrap; }
.unread-dot { width:8px; height:8px; border-radius:50%; background:var(--red); align-self:flex-end; }
.claim-btn { background:var(--orange); color:#fff; font-size:12px; padding:6px 16px;
  border-radius:16px; border:none; line-height:1; cursor:pointer; }
.claim-btn:hover { background:var(--orange-dark); }
.empty-doc { background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:40px 20px; text-align:center; color:var(--text-3); font-size:13px; }

/* ---------- 卡片/统计 ---------- */
.card { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:20px; box-shadow:var(--shadow); }
.stats-row { display:grid; grid-template-columns:repeat(5,1fr); gap:12px; margin-bottom:16px; }
.stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-bottom:22px; }
.stat-card { background:#fff; border:1px solid var(--border); border-radius:14px; padding:18px 20px; text-align:center; }
.stat-num { font-size:28px; font-weight:700; color:var(--text); }
.stat-num.orange { color:var(--orange); }
.stat-num.red { color:var(--red); }
.stat-label { color:var(--text-2); font-size:13px; margin-top:4px; }

/* ---------- 上传 ---------- */
.dropzone { border:2px dashed var(--orange-border); border-radius:16px; background:var(--orange-light);
  padding:56px 30px; text-align:center; transition:.15s; cursor:pointer; }
.dropzone.drag { border-color:var(--orange); background:#ffedd5; }
.dropzone .dz-icon { font-size:44px; }
.dropzone h3 { margin:14px 0 6px; font-size:17px; }
.dropzone p { color:var(--text-2); font-size:13px; }
.upload-progress { margin-top:18px; }
.progress-bar { height:8px; background:#f5f5f4; border-radius:4px; overflow:hidden; }
.progress-bar i { display:block; height:100%; background:var(--orange); transition:width .2s; }

.result-section { margin-top:22px; }
.result-summary { display:flex; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.chip { padding:6px 14px; border-radius:20px; font-size:13px; background:#f5f5f4; color:var(--text-2); }
.chip b { color:var(--text); }
.chip.ok { background:#dcfce7; color:#166534; }
.chip.pending { background:#fef3c7; color:#92400e; }
.chip.skip { background:#f1f5f9; color:#475569; }
.chip.fail { background:#fee2e2; color:#991b1b; }

/* ---------- 表格 ---------- */
.table-card { background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; }
table { width:100%; border-collapse:collapse; }
th,td { padding:13px 16px; text-align:left; font-size:13px; border-bottom:1px solid var(--border); }
th { background:#fafaf9; color:var(--text-2); font-weight:500; white-space:nowrap; }
tr:last-child td { border-bottom:none; }
tr:hover td { background:#fafaf9; }
.tag { display:inline-block; padding:2px 10px; border-radius:6px; font-size:12px; background:#f5f5f4; color:var(--text-2); }
.tag.auto { background:#dcfce7; color:#166534; }
.tag.lookup { background:#dbeafe; color:#1e40af; }
.tag.manual { background:#f3e8ff; color:#6b21a8; }
.tag.pending { background:#fef3c7; color:#92400e; }
.muted { color:var(--text-3); }
.empty { text-align:center; padding:60px 20px; color:var(--text-3); }
.empty .e-icon { font-size:40px; opacity:.5; }

/* ---------- 筛选条 ---------- */
.filter-bar { display:flex; gap:10px; margin-bottom:18px; flex-wrap:wrap; align-items:center; }
.input, select.input { border:1px solid var(--border); border-radius:9px; padding:9px 13px; font-size:13px;
  background:#fff; color:var(--text); outline:none; font-family:inherit; }
.input:focus { border-color:var(--orange); }
.input.grow { flex:1; min-width:180px; }

/* ---------- 分页 ---------- */
.pagination { display:flex; gap:6px; justify-content:flex-end; margin-top:16px; align-items:center; }
.pg-btn { min-width:34px; height:34px; border:1px solid var(--border); background:#fff; border-radius:8px;
  font-size:13px; color:var(--text-2); }
.pg-btn.active { background:var(--orange); color:#fff; border-color:var(--orange); }
.pg-btn:disabled { opacity:.4; cursor:not-allowed; }

/* ---------- 弹窗 ---------- */
.modal-mask { position:fixed; inset:0; background:rgba(0,0,0,.45); display:flex; align-items:center;
  justify-content:center; z-index:100; }
.modal { background:#fff; border-radius:16px; padding:26px; width:440px; box-shadow:var(--shadow-lg); }
.modal h3 { font-size:17px; margin-bottom:16px; }
.modal .input { width:100%; margin-bottom:16px; }
.modal-actions { display:flex; gap:10px; justify-content:flex-end; }

/* ---------- 套餐 ---------- */
.plan-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin-top:8px; }
@media(max-width:1100px){.plan-grid{grid-template-columns:repeat(2,1fr)}}
.plan-card { background:#fff; border:2px solid var(--border); border-radius:16px; padding:26px 22px; text-align:center; position:relative; }
.plan-card.hot { border-color:var(--orange); }
.plan-hot-tag { position:absolute; top:-11px; left:50%; transform:translateX(-50%); background:var(--orange);
  color:#fff; font-size:11px; padding:3px 12px; border-radius:10px; }
.plan-name { font-size:16px; font-weight:600; }
.plan-price { font-size:34px; font-weight:700; color:var(--orange); margin:12px 0 4px; }
.plan-price small { font-size:14px; font-weight:400; }
.plan-days { color:var(--text-2); font-size:13px; margin-bottom:18px; }
.status-banner { border-radius:12px; padding:16px 20px; margin-bottom:20px; display:flex; align-items:center; gap:12px; }
.status-banner.ok { background:#dcfce7; color:#166534; }
.status-banner.warn { background:#fff7ed; color:#9a3412; border:1px solid var(--orange-border); }
.status-banner .sb-title { font-weight:600; }
.status-banner .sb-sub { font-size:13px; opacity:.85; }

/* ---------- 我的页面 ---------- */
.profile-card { background:#fff; border:1px solid var(--border); border-radius:16px; padding:28px;
  display:flex; align-items:center; gap:20px; margin-bottom:20px; box-shadow:var(--shadow); }
.profile-avatar { width:64px; height:64px; border-radius:50%; background:var(--orange);
  color:#fff; display:flex; align-items:center; justify-content:center; font-size:24px; font-weight:700; flex-shrink:0; }
.profile-info { flex:1; }
.profile-phone { font-size:18px; font-weight:600; color:var(--text); }
.profile-agency { font-size:13px; color:var(--text-2); margin-top:4px; }
.profile-trial { font-size:12px; color:var(--orange); margin-top:4px; }

.menu-card { background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; margin-bottom:20px; }
.menu-item { display:flex; align-items:center; padding:16px 20px; border-bottom:1px solid var(--border);
  cursor:pointer; transition:background .15s; gap:12px; }
.menu-item:last-child { border-bottom:none; }
.menu-item:hover { background:var(--orange-light); }
.menu-item .mi-ico { font-size:18px; width:24px; text-align:center; }
.menu-item .mi-label { flex:1; font-size:14px; color:var(--text); }
.menu-item .mi-value { font-size:13px; color:var(--text-3); }

.sec-title { font-size:15px; font-weight:600; color:var(--text); margin-bottom:12px; }
.product-card { background:#fff; border:1px solid var(--border); border-radius:14px; overflow:hidden; margin-bottom:20px; }
.prod-row { display:flex; align-items:center; padding:14px 20px; border-bottom:1px solid var(--border);
  gap:12px; cursor:pointer; transition:background .15s; }
.prod-row:last-child { border-bottom:none; }
.prod-row:hover { background:var(--orange-light); }
.prod-row.is-soon { opacity:.5; cursor:default; }
.prod-icon { font-size:20px; width:28px; text-align:center; }
.prod-main { flex:1; }
.prod-line { display:flex; align-items:center; gap:8px; }
.prod-name { font-size:14px; font-weight:500; color:var(--text); }
.prod-tag { font-size:11px; padding:1px 8px; border-radius:4px; background:var(--orange-light); color:var(--orange); }
.prod-desc { font-size:12px; color:var(--text-3); margin-top:2px; }
.prod-arrow { color:var(--text-3); font-size:16px; }

.copyright { text-align:center; color:var(--text-3); font-size:12px; padding:20px 0; }

/* ---------- 官文类型卡片（对齐小程序list页） ---------- */
.type-list { display:flex; flex-direction:column; gap:10px; }
.type-card { background:#fff; border:1px solid var(--border); border-radius:12px;
  padding:16px 20px; display:flex; align-items:center; justify-content:space-between;
  cursor:pointer; transition:box-shadow .15s; }
.type-card:hover { box-shadow:var(--shadow); }
.tc-left { display:flex; align-items:center; gap:14px; }
.tc-icon { width:40px; height:40px; border-radius:10px; background:var(--orange-light);
  color:var(--orange); display:flex; align-items:center; justify-content:center;
  font-size:16px; font-weight:700; }
.tc-info {}
.tc-name { font-size:14px; font-weight:500; color:var(--text); }
.tc-meta { font-size:12px; color:var(--text-3); margin-top:2px; display:flex; gap:8px; }
.tc-meta .ok { color:var(--green); }
.tc-meta .over { color:var(--red); }
.tc-meta .warn { color:var(--orange); }
.tc-right { display:flex; align-items:center; gap:8px; }
.tc-count { font-size:20px; font-weight:700; color:var(--text); }
.tc-arrow { color:var(--text-3); font-size:18px; }

/* ---------- toast ---------- */
.toast { position:fixed; top:24px; left:50%; transform:translateX(-50%); background:#1c1917; color:#fff;
  padding:11px 22px; border-radius:10px; font-size:14px; z-index:200; box-shadow:var(--shadow-lg);
  animation:tin .2s; }
@keyframes tin { from{opacity:0; transform:translate(-50%,-10px);} }

.stat-orange { background: rgba(255,255,255,0.15) !important; border: 1px solid rgba(255,255,255,0.25) !important; }
.stat-orange .stat-num { color: #fff !important; }
.stat-orange .stat-label { color: rgba(255,255,255,0.85) !important; }
.date-label { font-size:11px; color:#999; margin-right:4px; }

.layout-container { display:flex; justify-content:center; width:100%; max-width:1600px; margin:0 auto; background:#fff; border-radius:12px; box-shadow:var(--shadow); overflow:hidden; min-height:100vh; }

.product-card-plain{background:transparent;border:none;box-shadow:none;padding:4px 0;}
.profile-avatar-icon{display:flex;align-items:center;justify-content:center;}

/* ===== 官文送达·桌面表格版 ===== */
.dlv-toolbar{display:flex;align-items:center;gap:14px;margin-bottom:14px;flex-wrap:wrap}
.dlv-search{max-width:280px;height:38px}
.dlv-filters{display:flex;gap:8px}
.chip{height:34px;padding:0 14px;border:1px solid var(--border);background:#fff;border-radius:18px;
  font-size:13px;color:#555;cursor:pointer;transition:all .15s}
.chip:hover{border-color:var(--orange);color:var(--orange)}
.chip.is-active{background:var(--orange);border-color:var(--orange);color:#fff}
.dlv-table td{vertical-align:middle}
.dlv-table th.num,.dlv-table td.num{text-align:center;width:80px}
.dlv-caret{width:34px;text-align:center;color:#bbb;cursor:pointer;font-size:13px}
.dlv-cname{font-weight:600;font-size:14px;color:#222}
.dlv-alias{display:block;font-size:12px;font-weight:400;color:var(--orange);margin-top:2px}
.tag-wrap{display:flex;flex-wrap:wrap;gap:6px}
.tag{display:inline-block;padding:3px 9px;border-radius:6px;font-size:12px;font-weight:500;white-space:nowrap}
.tag-orange{background:#fff3e8;color:#e8690c}
.tag-red{background:#fdecec;color:#d62b2b}
.tag-green{background:#e9f7ef;color:#1f9d57}
.tag-gray{background:#f2f3f5;color:#999}
.dlv-actions{display:flex;gap:8px;justify-content:flex-end}
.btn-xs{height:32px;padding:0 14px;font-size:13px;border-radius:8px}
.btn-plain{background:#fff;color:#666;border:1px solid #ddd}
.btn-plain:hover{border-color:var(--orange);color:var(--orange)}
.dlv-detail-row td{background:#fafafa;padding:0}
.dlv-detail-inner{padding:6px 18px 14px 42px}
.dlv-sub-table th{background:transparent;border-bottom:1px solid #eee;padding:9px 12px;font-size:12px}
.dlv-sub-table td{border-bottom:1px solid #f0f1f3;padding:9px 12px;font-size:13px}
.dlv-sub-table tr:last-child td{border-bottom:none}
.dlv-sub-table tr:hover td{background:transparent}
.dlv-sub-name{font-weight:500;color:#333}
.dlv-sub-no{color:#999;font-size:12.5px}
.sub-note{font-size:12px;margin-top:3px}
.sub-note.red{color:#d62b2b;font-weight:600}
.sub-note.blue{color:#2563eb;font-weight:600}

/* ===== 桌面化：KPI / 子Tab / 首页表格 / 设置表单 ===== */
.kpi-row{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px}
.kpi-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 20px;box-shadow:var(--shadow)}
.kpi-num{font-size:28px;font-weight:700;color:#1f2937;line-height:1.1}
.kpi-num.kpi-orange{color:var(--orange)}
.kpi-num.kpi-red{color:var(--red)}
.kpi-label{font-size:13px;color:#8a8a8a;margin-top:6px}
.sub-tabs{display:flex;gap:6px;margin-bottom:14px;border-bottom:1px solid var(--border)}
.sub-tab{background:none;border:none;padding:10px 16px;font-size:14px;color:#666;cursor:pointer;
  border-bottom:2px solid transparent;margin-bottom:-1px;font-family:inherit}
.sub-tab:hover{color:var(--orange)}
.sub-tab.is-active{color:var(--orange);font-weight:600;border-bottom-color:var(--orange)}
.sub-badge{font-size:12px;color:#aaa}
.home-table .home-doc-name{font-weight:500;color:#1f6feb;cursor:pointer;max-width:420px;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.home-table .home-doc-name:hover{text-decoration:underline}
.home-table td.muted,.home-table .muted{color:#999;font-size:12.5px}
.row-act{text-align:right;white-space:nowrap}
.tag-blue{background:#eaf2fe;color:#1f6feb}
.tag-yellow{background:#fef6d8;color:#b7791f}
.date-label{font-size:11px;color:#aaa;margin-right:4px}

/* 设置/账号表单 */
.setting-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}
.form-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px 22px;box-shadow:var(--shadow);margin-bottom:16px}
.form-card h3{font-size:14px;font-weight:600;margin:0 0 14px;color:#222}
.form-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.form-row:last-child{margin-bottom:0}
.form-row label{width:130px;flex-shrink:0;font-size:13px;color:#666}
.form-row .val{font-size:14px;color:#222;font-weight:500}
.form-card .hint{font-size:12px;color:#999;margin-top:8px}
.lead-row{display:flex;align-items:center;gap:10px}
.logout-line{margin-top:8px}


/* ===== 2026-10-14 表格防换行 + 按钮 + 登录人卡 + 我的页对称布局 ===== */
/* 表格整体节奏：字段间距更舒展，表头/单元格默认不折行（长名称列自行省略） */
table { border-collapse:collapse; }
.table-card table { width:100%; }
.table-card th, .table-card td { padding:13px 16px; white-space:nowrap; }
.table-card td { vertical-align:middle; }
.home-table .home-doc-name { max-width:none; }
.table-card td:nth-child(1) .home-doc-name,
.dlv-table td:nth-child(2) .dlv-cname {
  max-width:360px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.date-label { margin-right:6px; }
/* 小按钮：文字绝不换行 */
.btn-xs { white-space:nowrap; padding:0 14px; flex-shrink:0; }
.dlv-actions { white-space:nowrap; gap:8px; }
.dlv-actions .btn-xs { min-width:74px; }
/* 标签不折行，多个标签允许堆叠但单个不切词 */
.tag { white-space:nowrap; }
.tag-wrap { gap:6px; }

/* 侧边栏：当前登录人卡片 */
.side-user { display:flex; align-items:center; gap:10px; padding:10px; margin-bottom:12px;
  background:#f7f7f8; border-radius:10px; }
.side-user-avatar { width:30px; height:30px; border-radius:50%; flex-shrink:0;
  background:var(--orange); color:#fff; display:flex; align-items:center; justify-content:center; }
.side-user-meta { min-width:0; }
.side-user-phone { font-size:13px; font-weight:600; color:var(--text); line-height:1.3; }
.side-user-role { font-size:11px; color:var(--text-3); line-height:1.3; }

/* 我的页：左右两张设置卡严格对称 */
.setting-grid-v2 { grid-template-columns:1fr 1fr; align-items:stretch; }
.setting-grid-v2 .setting-card { margin-bottom:0; display:flex; flex-direction:column;
  padding:22px 24px; }
.setting-grid-v2 .setting-card h3 { margin-bottom:18px; }
.setting-grid-v2 .form-row { margin-bottom:16px; min-height:24px; }
.setting-grid-v2 .setting-card .hint { margin-top:auto; padding-top:12px; }

/* 下半区：探绩产品 */
.product-section { margin-top:22px; }
.section-head { margin-bottom:14px; }
.section-title { font-size:15px; font-weight:600; color:#222; }
.section-desc { font-size:12px; color:var(--text-3); margin-top:2px; }
.product-grid { display:grid; grid-template-columns:repeat(2, 1fr); gap:16px; }
.product-item { display:flex; align-items:center; gap:14px; background:#fff;
  border:1px solid var(--border); border-radius:12px; padding:18px 20px; box-shadow:var(--shadow); }
.product-item.is-soon { opacity:.65; }
.product-item-icon { width:42px; height:42px; border-radius:10px; flex-shrink:0;
  background:var(--orange-light); display:flex; align-items:center; justify-content:center; font-size:20px; }
.product-item-body { min-width:0; }
.profile-foot { margin-top:22px; display:flex; flex-direction:column; align-items:center; gap:14px; }
.profile-logout-btn { width:300px; }
@media (max-width:1100px) { .product-grid { grid-template-columns:1fr; } }


/* ===== 2026-10-14 送达弹窗：三种途径横向并排 ===== */
.dlv-ways { display:grid; grid-template-columns:repeat(3, 1fr); gap:14px; margin-top:16px; }
.dlv-way { border:1px solid #eee; border-radius:12px; padding:14px; display:flex; flex-direction:column;
  background:#fff; min-width:0; }
.dlv-way-head { display:flex; align-items:flex-start; gap:9px; margin-bottom:12px; }
.dlv-way-head b { font-size:14px; }
.dlv-way-no { background:#f2722b; color:#fff; width:22px; height:22px; border-radius:50%; flex-shrink:0;
  display:inline-flex; align-items:center; justify-content:center; font-size:13px; font-weight:700; }
.dlv-way-sub { font-size:11.5px; color:#999; margin-top:2px; line-height:1.4; }
.dlv-way-area { width:100%; flex:1; min-height:180px; margin-bottom:10px; border:1px solid #e3e5e8;
  border-radius:8px; padding:10px; font-size:12.5px; resize:none; line-height:1.7; font-family:inherit;
  box-sizing:border-box; background:#fafafa; color:#333; }
.dlv-way-img { width:100%; border:1px solid #eee; border-radius:8px; margin-bottom:10px; display:block; }
.dlv-way-link { width:100%; box-sizing:border-box; border:1px solid #e3e5e8; border-radius:8px; padding:9px 10px;
  font-size:12.5px; background:#fafafa; color:#444; margin-bottom:10px; }
@media (max-width:820px) { .dlv-ways { grid-template-columns:1fr; } }

/* 我的页：微信信息模板卡片 */
.tpl-card { margin-bottom:22px; }
.tpl-vars { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.tpl-var { background:#fff3e8; color:#d9611f; border:1px solid #ffd9bd; border-radius:5px;
  padding:2px 8px; font-size:12px; cursor:pointer; user-select:none; }
.tpl-area { width:100%; height:220px; border:1px solid #e3e5e8; border-radius:8px; padding:10px;
  font-size:13px; resize:vertical; line-height:1.7; font-family:inherit; box-sizing:border-box; }
