/* ============ 设计变量 ============ */
:root {
  --ink: #0c2427;          /* 侧边栏底色：深松绿 */
  --ink-2: #143338;
  --ink-3: #1d444a;
  --brass: #c99a3e;        /* 唯一的强调色：黄铜 */
  --brass-ink: #8f6410;
  --primary: #0f766e;
  --primary-600: #0b5f59;
  --primary-50: #e7f4f2;
  --bg: #f3f5f6;
  --surface: #ffffff;
  --line: #e2e8ea;
  --line-2: #eef2f3;
  --text: #15262a;
  --muted: #66787c;
  --ok: #15803d;      --ok-bg: #e6f5eb;
  --warn: #b45309;    --warn-bg: #fef3e2;
  --danger: #b42318;  --danger-bg: #fdecea;
  --info: #1d4ed8;    --info-bg: #e8efff;
  --side-w: 232px;
  --radius: 10px;
  --font: "PingFang SC", "HarmonyOS Sans SC", "MiSans", "Microsoft YaHei UI", "Microsoft YaHei",
    "Noto Sans CJK SC", "Source Han Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0; font-family: var(--font); background: var(--bg); color: var(--text);
  font-size: 14px; line-height: 1.55; font-variant-numeric: tabular-nums;
}
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-600); text-decoration: underline; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; }
h1 { font-size: 22px; font-weight: 650; letter-spacing: .01em; margin: 0 0 16px; line-height: 1.3; }
h1 + .muted, h1 + p.muted { margin: -10px 0 18px; }
h2 { font-size: 15px; font-weight: 650; margin: 0 0 14px; }
p { margin: 0 0 10px; }
.muted { color: var(--muted); }
.hint { color: var(--muted); font-size: 12.5px; }
svg.i { width: 18px; height: 18px; flex: none; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }

/* ============ 应用外壳：左侧导航 + 右侧内容 ============ */
.shell { display: grid; grid-template-columns: var(--side-w) minmax(0, 1fr); min-height: 100vh; transition: grid-template-columns .18s ease; }
.side {
  position: sticky; top: 0; height: 100vh; display: flex; flex-direction: column;
  background: var(--ink); color: #b7c9c9; z-index: 30;
}
.side .brand { display: flex; align-items: center; gap: 10px; height: 60px; padding: 0 18px; color: #fff; font-weight: 650; font-size: 15px; letter-spacing: .04em; white-space: nowrap; }
.side .brand:hover { text-decoration: none; color: #fff; }
.brand-mark { width: 26px; height: 26px; border-radius: 7px; background: var(--brass); color: var(--ink); display: grid; place-items: center; flex: none; }
.brand-mark svg.i { width: 16px; height: 16px; stroke-width: 2.2; }
.side nav { flex: 1; padding: 8px 10px; overflow-y: auto; }
.side nav a {
  position: relative; display: flex; align-items: center; gap: 12px; height: 40px; padding: 0 12px; margin: 2px 0;
  border-radius: 8px; color: #b7c9c9; white-space: nowrap;
}
.side nav a:hover { background: var(--ink-2); color: #fff; text-decoration: none; }
.side nav a.active { background: var(--ink-3); color: #fff; font-weight: 600; }
.side nav a.active::before { content: ""; position: absolute; left: -10px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--brass); }
.side .nav-badge { margin-left: auto; min-width: 20px; padding: 0 6px; height: 20px; line-height: 20px; border-radius: 10px; background: var(--brass); color: var(--ink); font-size: 12px; font-weight: 650; text-align: center; }
.side-foot { padding: 10px; border-top: 1px solid rgba(255, 255, 255, .08); }
.side-foot button { display: flex; align-items: center; gap: 12px; width: 100%; height: 38px; padding: 0 12px; border: 0; border-radius: 8px; background: none; color: #8fa6a6; cursor: pointer; white-space: nowrap; }
.side-foot button:hover { background: var(--ink-2); color: #fff; }
body.side-collapsed { --side-w: 68px; }
body.side-collapsed .side .label, body.side-collapsed .side .brand-text, body.side-collapsed .side .nav-badge { display: none; }
body.side-collapsed .side nav a, body.side-collapsed .side-foot button { justify-content: center; padding: 0; }
body.side-collapsed .side .brand { justify-content: center; padding: 0; }
body.side-collapsed .side nav a.active::before { left: -10px; }

.main-col { min-width: 0; display: flex; flex-direction: column; }
.top {
  position: sticky; top: 0; z-index: 20; display: flex; align-items: center; gap: 12px; height: 60px; padding: 0 28px;
  background: rgba(255, 255, 255, .92); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--line);
}
.top .crumb { font-weight: 600; font-size: 15px; }
.top .grow { flex: 1; }
.icon-btn { display: none; width: 36px; height: 36px; padding: 0; border: 0; background: none; border-radius: 8px; place-items: center; color: var(--text); cursor: pointer; }
.icon-btn:hover { background: var(--line-2); }
.usermenu { position: relative; }
.usermenu > button { display: flex; align-items: center; gap: 10px; padding: 4px 8px 4px 4px; height: 40px; border: 0; background: none; border-radius: 22px; cursor: pointer; color: var(--text); }
.usermenu > button:hover { background: var(--line-2); }
.avatar { width: 32px; height: 32px; border-radius: 50%; background: var(--ink); color: var(--brass); display: grid; place-items: center; font-weight: 650; font-size: 14px; }
.who-text { text-align: left; line-height: 1.25; }
.who-text b { display: block; font-size: 13.5px; font-weight: 600; }
.who-text span { font-size: 12px; color: var(--muted); }
.menu-pop { position: absolute; right: 0; top: 46px; min-width: 200px; padding: 6px; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 10px 30px rgba(12, 36, 39, .14); display: none; }
.menu-pop.open { display: block; }
.menu-pop .meta { padding: 8px 10px 10px; border-bottom: 1px solid var(--line-2); margin-bottom: 4px; font-size: 12.5px; color: var(--muted); }
.menu-pop .meta b { display: block; color: var(--text); font-size: 14px; }
.menu-pop button { display: flex; align-items: center; gap: 10px; width: 100%; height: 36px; padding: 0 10px; border: 0; background: none; border-radius: 7px; cursor: pointer; color: var(--text); font: inherit; }
.menu-pop button:hover { background: var(--line-2); }
main { flex: 1; width: 100%; max-width: 1400px; padding: 24px 28px 56px; }
.scrim { display: none; }

/* ============ 面板、表单、按钮 ============ */
.card { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 20px; margin-bottom: 16px; }
.card.narrow { max-width: 420px; margin: 48px auto; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(340px, 1fr)); gap: 16px; align-items: start; }
.grid2 > .card { margin-bottom: 0; }
.row { display: flex; align-items: center; gap: 12px; }
.row.between { justify-content: space-between; flex-wrap: wrap; }
.stack { display: flex; flex-direction: column; gap: 14px; }
label { display: flex; flex-direction: column; gap: 5px; font-size: 12.5px; color: var(--muted); font-weight: 500; }
label.check { flex-direction: row; align-items: center; gap: 7px; font-size: 14px; color: var(--text); font-weight: 400; cursor: pointer; }
input, select, textarea, button { font: inherit; color: var(--text); }
input:not([type=checkbox]):not([type=radio]), select, textarea {
  height: 34px; padding: 0 11px; border: 1px solid #cbd5d8; border-radius: 7px; background: #fff; font-size: 14px;
  transition: border-color .12s, box-shadow .12s;
}
textarea { height: auto; padding: 8px 11px; line-height: 1.5; }
input:not([type=checkbox]):not([type=radio]):focus, select:focus, textarea:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px var(--primary-50); }
input[type=checkbox], input[type=radio] { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); cursor: pointer; }
input[type=search] { min-width: 220px; }
fieldset { border: 1px solid var(--line); border-radius: 8px; display: flex; flex-wrap: wrap; gap: 8px 18px; padding: 10px 14px 12px; margin: 0; }
legend { font-size: 12.5px; padding: 0 6px; color: var(--muted); }
button, .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px; height: 34px; padding: 0 14px;
  border: 1px solid #cbd5d8; border-radius: 7px; background: #fff; cursor: pointer; font-size: 14px; white-space: nowrap;
  transition: background .12s, border-color .12s;
}
button:hover, .btn:hover { background: #f4f7f7; border-color: #b6c3c7; text-decoration: none; color: var(--text); }
button.primary, .btn.primary { background: var(--primary); border-color: var(--primary); color: #fff; font-weight: 550; }
button.primary:hover, .btn.primary:hover { background: var(--primary-600); border-color: var(--primary-600); color: #fff; }
button.danger { color: var(--danger); border-color: #efc2bd; }
button.danger:hover { background: var(--danger-bg); border-color: #e3a29a; color: var(--danger); }
button.danger-solid, .btn.danger-solid { background: var(--danger); border-color: var(--danger); color: #fff; font-weight: 550; }
button.danger-solid:hover { background: #8f1c12; border-color: #8f1c12; color: #fff; }
button.link { border: 0; background: none; height: auto; padding: 0; color: var(--primary); }
button.link:hover { background: none; text-decoration: underline; }
button:disabled { opacity: .55; cursor: not-allowed; }
button.loading { position: relative; color: transparent !important; pointer-events: none; }
button.loading::after { content: ""; position: absolute; width: 14px; height: 14px; border-radius: 50%; border: 2px solid #9fb3b6; border-top-color: var(--primary); animation: spin .7s linear infinite; }
button.primary.loading::after { border-color: rgba(255, 255, 255, .45); border-top-color: #fff; }
@keyframes spin { to { transform: rotate(360deg); } }
form.inline { display: inline-flex; gap: 6px; margin: 2px 0; align-items: center; }
form.inline input { width: 128px; height: 30px; }
form.inline button { height: 30px; padding: 0 11px; font-size: 13px; }
.filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px 14px; }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-bottom: 14px; }
.checks { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.quick button { height: 28px; padding: 0 11px; font-size: 13px; }

/* ============ 表格 ============ */
.table-wrap { overflow-x: auto; margin: 0 -4px; padding: 0 4px; }
table { width: 100%; border-collapse: collapse; }
th, td { padding: 11px 14px; border-bottom: 1px solid var(--line-2); text-align: left; white-space: nowrap; }
th { font-size: 12.5px; font-weight: 550; color: var(--muted); background: #f7f9fa; border-bottom: 1px solid var(--line); }
th:first-child { border-radius: 8px 0 0 8px; } th:last-child { border-radius: 0 8px 8px 0; }
tbody tr:hover td { background: #f8fbfb; }
tbody tr:last-child td { border-bottom: 0; }
td.note { white-space: normal; min-width: 160px; max-width: 320px; color: var(--muted); }
td.actions { white-space: normal; }
tr.unassigned td { background: #fdf8ea; }
tr.warn-row td { background: var(--warn-bg); }
tr.hot td { background: var(--danger-bg); }
tr.row-selected td { background: var(--primary-50) !important; }
table.matrix td, table.matrix th { text-align: center; }
.empty { padding: 36px 12px; text-align: center; color: var(--muted); }

.badge { display: inline-flex; align-items: center; gap: 6px; height: 22px; padding: 0 9px; border-radius: 11px; font-size: 12.5px; background: #eceff0; color: #4a5a5e; }
.badge::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.badge.s-contacted { background: var(--info-bg); color: var(--info); }
.badge.s-interested { background: var(--warn-bg); color: var(--warn); }
.badge.s-won { background: var(--ok-bg); color: var(--ok); }
.badge.s-declined { background: var(--danger-bg); color: var(--danger); }
.tag { display: inline-block; margin-left: 6px; padding: 0 7px; border-radius: 5px; font-size: 12px; line-height: 20px; background: #eef2f3; color: #4a5a5e; vertical-align: 1px; }
.tag.warn { background: var(--warn-bg); color: var(--warn); }

.pager { display: flex; align-items: center; gap: 14px; margin-top: 14px; color: var(--muted); font-size: 13px; }
.pager a { display: inline-flex; align-items: center; height: 30px; padding: 0 12px; border: 1px solid #cbd5d8; border-radius: 7px; background: #fff; color: var(--text); }
.pager a:hover { background: #f4f7f7; text-decoration: none; }

/* ============ 数据条、标签页 ============ */
.stat-row, .summary {
  display: grid; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); margin-bottom: 16px;
  background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden;
}
.stat, .summary > div { padding: 16px 20px; display: flex; flex-direction: column; gap: 2px; border-left: 1px solid var(--line-2); background: none; border-top: 0; border-right: 0; border-bottom: 0; text-align: left; }
.stat:first-child, .summary > div:first-child { border-left: 0; }
.stat b, .summary b { font-size: 26px; font-weight: 650; line-height: 1.2; letter-spacing: -.01em; }
.stat span, .summary span { color: var(--muted); font-size: 12.5px; }
.stat-todo b { color: var(--brass-ink); }
.stat-hot b { color: var(--danger); }
.tabs { display: inline-flex; gap: 2px; padding: 3px; margin-bottom: 14px; background: #e6ecee; border-radius: 9px; }
.tabs a { padding: 6px 16px; border-radius: 7px; color: var(--muted); font-weight: 500; }
.tabs a:hover { color: var(--text); text-decoration: none; }
.tabs a.active { background: #fff; color: var(--text); box-shadow: 0 1px 2px rgba(12, 36, 39, .12); }
ul.todo { margin: 0; padding: 0; list-style: none; }
ul.todo li { position: relative; padding: 9px 0 9px 20px; border-bottom: 1px solid var(--line-2); }
ul.todo li:last-child { border-bottom: 0; }
ul.todo li::before { content: ""; position: absolute; left: 2px; top: 17px; width: 6px; height: 6px; border-radius: 50%; background: var(--brass); }
ul.todo li.muted::before { background: #c4ced0; }
dl { display: grid; grid-template-columns: 96px 1fr; gap: 10px 14px; margin: 0; }
dt { color: var(--muted); }
dd { margin: 0; }
details > summary { cursor: pointer; font-weight: 600; margin-bottom: 10px; }
.reveal-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.reveal-row .value { font-weight: 600; letter-spacing: .5px; }
.reveal-row button { height: 28px; font-size: 13px; padding: 0 10px; }

/* ============ 成员选择器 ============ */
.group-box { border: 1px solid var(--line); border-radius: 9px; margin: 10px 0; padding: 6px 14px 12px; display: block; }
.group-box legend { padding: 0 6px; color: var(--text); font-size: 13.5px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.chip { min-width: 86px; }

/* ============ 批量操作条 ============ */
.bulkbar {
  position: sticky; bottom: 18px; z-index: 15; display: none; align-items: center; flex-wrap: wrap; gap: 10px 12px;
  margin: 16px auto 0; width: fit-content; max-width: 100%; padding: 10px 14px; border-radius: 12px; background: var(--ink); color: #fff;
  box-shadow: 0 12px 32px rgba(12, 36, 39, .28);
}
.bulkbar.show { display: flex; animation: rise .16s ease-out; }
.bulkbar b { font-size: 15px; }
.bulkbar select { min-width: 150px; }
.bulkbar button { border-color: transparent; }
.bulkbar .ghost { background: transparent; color: #cfe0e0; border-color: rgba(255, 255, 255, .22); }
.bulkbar .ghost:hover { background: rgba(255, 255, 255, .1); color: #fff; }
@keyframes rise { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: none; } }

/* ============ 通知与确认弹窗 ============ */
.toasts { position: fixed; top: 72px; right: 20px; z-index: 10000; display: flex; flex-direction: column; gap: 10px; width: min(380px, calc(100vw - 32px)); pointer-events: none; }
.toast { pointer-events: auto; display: flex; gap: 10px; align-items: flex-start; padding: 12px 12px 12px 14px; border-radius: 10px; background: var(--surface); border: 1px solid var(--line); border-left: 4px solid var(--ok); box-shadow: 0 10px 28px rgba(12, 36, 39, .16); animation: slidein .22s ease-out; }
.toast.error { border-left-color: var(--danger); }
.toast.warn { border-left-color: var(--warn); }
.toast .msg { flex: 1; word-break: break-word; }
.toast .x { height: 24px; width: 24px; padding: 0; border: 0; background: none; color: var(--muted); }
.toast.leaving { opacity: 0; transform: translateX(16px); transition: all .2s; }
@keyframes slidein { from { opacity: 0; transform: translateX(16px); } to { opacity: 1; transform: none; } }
dialog.modal { border: 0; padding: 0; border-radius: 14px; width: min(420px, calc(100vw - 32px)); box-shadow: 0 24px 60px rgba(12, 36, 39, .3); color: var(--text); }
dialog.modal::backdrop { background: rgba(12, 36, 39, .5); }
dialog.modal .body { padding: 22px 24px 8px; }
dialog.modal h3 { margin: 0 0 8px; font-size: 16px; }
dialog.modal p { margin: 0; color: var(--muted); }
dialog.modal .foot { display: flex; justify-content: flex-end; gap: 10px; padding: 16px 24px 20px; }
.flash { padding: 10px 14px; border-radius: 8px; margin-bottom: 12px; border: 1px solid; }

/* ============ 登录页 ============ */
.auth { display: grid; grid-template-columns: minmax(320px, 1.05fr) minmax(360px, 1fr); min-height: 100vh; }
.auth-brand { background: var(--ink); color: #dce8e8; padding: 56px 56px 48px; display: flex; flex-direction: column; justify-content: space-between; position: relative; overflow: hidden; }
.auth-brand::after { content: ""; position: absolute; right: -90px; bottom: -90px; width: 360px; height: 360px; border-radius: 50%; border: 1px solid rgba(201, 154, 62, .35); box-shadow: 0 0 0 36px rgba(201, 154, 62, .05), 0 0 0 84px rgba(201, 154, 62, .03); }
.auth-brand .brand { display: flex; align-items: center; gap: 10px; color: #fff; font-weight: 650; font-size: 16px; letter-spacing: .04em; }
.auth-brand h2 { font-size: 30px; line-height: 1.35; font-weight: 650; color: #fff; margin: 0 0 14px; letter-spacing: .02em; }
.auth-brand p { color: #9db3b3; max-width: 360px; }
.auth-form { display: grid; place-items: center; padding: 32px; background: var(--surface); }
.auth-form .box { width: min(360px, 100%); }
.auth-form h1 { font-size: 24px; margin-bottom: 6px; }
.auth-form h1 + .muted { margin: 0; }
.auth-form .stack { margin-top: 22px; }
.auth-form button.primary { height: 40px; font-size: 15px; }
.auth-form .toasts { top: 20px; }
.bare { padding: 24px; }

.watermark { position: fixed; inset: 0; z-index: 9999; pointer-events: none; background-repeat: repeat; }

/* ============ 窄屏 ============ */
@media (max-width: 900px) {
  .shell { grid-template-columns: minmax(0, 1fr); }
  .side { position: fixed; left: 0; top: 0; width: 248px; transform: translateX(-100%); transition: transform .2s ease; }
  body.side-open .side { transform: none; box-shadow: 0 0 40px rgba(0, 0, 0, .35); }
  body.side-open .scrim { display: block; position: fixed; inset: 0; background: rgba(12, 36, 39, .45); z-index: 25; }
  body.side-collapsed { --side-w: 232px; }
  body.side-collapsed .side .label, body.side-collapsed .side .brand-text { display: inline; }
  body.side-collapsed .side nav a, body.side-collapsed .side-foot button { justify-content: flex-start; padding: 0 12px; }
  .icon-btn { display: grid; }
  .top { padding: 0 14px; }
  main { padding: 16px 14px 48px; }
  .who-text { display: none; }
  .auth { grid-template-columns: 1fr; }
  .auth-brand { padding: 28px; min-height: 200px; }
  .auth-brand h2 { font-size: 22px; }
  th, td { padding: 10px 9px; }
}
@media (prefers-reduced-motion: reduce) { * { animation: none !important; transition: none !important; } }
dl + .hint, dl + p { margin-top: 16px; }

.banner-warn{background:#fff7e6;border:1px solid #f0d28a;color:#7a5200;padding:10px 14px;border-radius:8px;margin-bottom:16px;font-size:14px}
.banner-warn a{margin-left:8px;font-weight:600}
.menu-pop .menu-link{display:block;padding:9px 14px;color:inherit;text-decoration:none;font-size:14px}
.menu-pop .menu-link:hover{background:rgba(15,118,110,.08)}
.slider-cap{width:320px;max-width:100%;user-select:none;-webkit-user-select:none}
.cap-stage{position:relative;width:320px;height:160px;border-radius:8px;overflow:hidden;background:#e8eeee;border:1px solid #d7dfdf}
.cap-stage img{position:absolute;left:0;top:0;-webkit-user-drag:none;pointer-events:none}
.cap-stage #cap-bg{width:320px;height:160px}
.cap-refresh{position:absolute;right:6px;top:6px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(0,0,0,.45);color:#fff;font-size:16px;line-height:1;cursor:pointer;padding:0}
.cap-bar{position:relative;margin-top:10px;height:40px;border-radius:20px;background:#eef2f2;border:1px solid #d7dfdf}
.cap-fill{position:absolute;left:0;top:0;height:100%;width:0;border-radius:20px;background:rgba(15,118,110,.18)}
.cap-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:13px;color:#667;pointer-events:none}
.cap-handle{position:absolute;left:0;top:-1px;width:40px;height:40px;border-radius:50%;background:#0f766e;color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:grab;touch-action:none;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.cap-handle:active{cursor:grabbing}
.slider-cap.ok .cap-handle{background:#15803d}.slider-cap.ok .cap-hint{color:#15803d}
.slider-cap.bad .cap-handle{background:#b91c1c}.slider-cap.bad .cap-hint{color:#b91c1c}
.tag.lock{background:#fde8e8;color:#9b1c1c}

/* 团队与账号 */
.page-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.page-head h1{margin-bottom:4px}.page-head p{margin:0;max-width:640px}
.head-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.head-actions input[type=search]{width:220px}
.team-card{padding:0}
.team-card details>.table-wrap,.card details>.table-wrap{border-top:1px solid var(--line-2)}
summary.team-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap;padding:14px 20px;cursor:pointer;list-style:none}
summary.team-head::-webkit-details-marker{display:none}
summary.team-head::before{content:"›";display:inline-block;transition:transform .15s;color:var(--muted);font-size:18px;width:12px}
details[open]>summary.team-head::before{transform:rotate(90deg)}
.team-name{font-weight:650;font-size:16px}
.grow{flex:1}
button.sm,.btn.sm{height:30px;padding:0 11px;font-size:13px}
th.r,td.r{text-align:right}
section.card:has(> details) {padding:0}
section.card > details > .empty{border-top:1px solid var(--line-2)}
dialog.form-dialog{width:min(460px,calc(100vw - 32px))}
dialog.form-dialog form.stack{gap:0}
dialog.form-dialog .body{display:flex;flex-direction:column;gap:14px;padding-bottom:4px}
dialog.form-dialog label{display:flex;flex-direction:column;gap:6px;font-size:13px}
dialog.form-dialog fieldset{border:1px solid var(--line);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:12px;margin:0}
dialog.form-dialog legend{padding:0 6px;font-size:12.5px;color:var(--muted)}
.page-head p{margin:4px 0 0 !important}
.team-card td,.team-card th{padding-top:9px;padding-bottom:9px}
.qr{margin:14px 0;display:inline-block;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px}
.qr svg{display:block;width:240px;height:240px}
ol.steps-list{margin:8px 0 0;padding-left:20px;color:var(--text)}
ol.steps-list li{margin:6px 0}

.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 12px}
.filter-bar input[type=search]{flex:1 1 260px;max-width:380px}
.filter-bar .chk{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}

.data-filter .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px 14px}
.data-filter .form-actions{margin-top:12px;display:flex;gap:10px;align-items:center}
dl.kv{display:grid;grid-template-columns:96px 1fr;gap:6px 12px;margin:10px 0;font-size:14px}
dl.kv dt{color:var(--muted)}
dl.kv dd{margin:0;word-break:break-all;user-select:text}
#dlg-lead{width:min(560px,calc(100vw - 32px))}
