:root {
  color-scheme: dark;
  --bg: #070b18;
  --bg-soft: #0c1225;
  --panel: rgba(20, 27, 48, 0.72);
  --panel-solid: #141b30;
  --panel-2: rgba(30, 39, 66, 0.6);
  --line: rgba(120, 140, 200, 0.16);
  --line-strong: rgba(130, 150, 220, 0.32);
  --section-border: rgba(129, 140, 248, 0.44);
  --section-ring: rgba(99, 102, 241, 0.18);
  --section-ring-hover: rgba(129, 140, 248, 0.38);
  --text: #e8ecf8;
  --text-dim: #9aa6c6;
  --text-mute: #6d7a9c;
  --primary: #6366f1;
  --primary-2: #8b5cf6;
  --cyan: #22d3ee;
  --green: #22c55e;
  --amber: #f59e0b;
  --red: #ef4444;
  --pink: #ec4899;
  --radius: 16px;
  --radius-sm: 10px;
  --shadow: 0 18px 50px rgba(4, 8, 20, 0.55);
  --shadow-sm: 0 8px 24px rgba(4, 8, 20, 0.35);
  --font: "PingFang SC", "Microsoft YaHei", "Hiragino Sans GB", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}

html[data-theme="light"] {
  color-scheme: light;
  --bg: #f3f6fc;
  --bg-soft: #eaf0fa;
  --panel: rgba(255, 255, 255, 0.92);
  --panel-solid: #ffffff;
  --panel-2: rgba(242, 246, 253, 0.94);
  --line: rgba(51, 65, 105, 0.14);
  --line-strong: rgba(51, 65, 105, 0.26);
  --section-border: rgba(79, 70, 229, 0.42);
  --section-ring: rgba(79, 70, 229, 0.15);
  --section-ring-hover: rgba(79, 70, 229, 0.3);
  --text: #18213a;
  --text-dim: #53617f;
  --text-mute: #78859d;
  --primary: #4f46e5;
  --primary-2: #7c3aed;
  --cyan: #0891b2;
  --green: #15803d;
  --amber: #b45309;
  --red: #dc2626;
  --pink: #db2777;
  --shadow: 0 18px 50px rgba(50, 65, 100, 0.14);
  --shadow-sm: 0 8px 24px rgba(50, 65, 100, 0.1);
}

* { box-sizing: border-box; }

html, body {
  margin: 0;
  padding: 0;
  height: 100%;
  background: var(--bg);
  color: var(--text);
  font-family: var(--font);
  font-size: 14.5px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}

.site-legal-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  flex-wrap: wrap;
  min-height: 42px;
  padding: 8px 16px;
  border-top: 1px solid var(--line);
  background: rgba(8,12,25,.88);
  color: var(--text-mute);
  font-size: 10.5px;
}
.site-legal-footer[hidden] { display: none; }
.site-legal-footer a { color: var(--text-dim); text-decoration: none; }
.site-legal-footer a:hover { color: var(--cyan); text-decoration: underline; }
.site-legal-footer i { color: var(--text-mute); font-style: normal; }

body::before {
  content: "";
  position: fixed;
  inset: 0;
  background:
    radial-gradient(1000px 600px at 12% -8%, rgba(99, 102, 241, 0.28), transparent 60%),
    radial-gradient(900px 520px at 92% 4%, rgba(34, 211, 238, 0.16), transparent 62%),
    radial-gradient(700px 500px at 60% 105%, rgba(236, 72, 153, 0.12), transparent 65%);
  pointer-events: none;
  z-index: 0;
}

button, input, select, textarea { font-family: inherit; font-size: inherit; color: inherit; }
a { color: var(--cyan); text-decoration: none; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(120, 140, 200, 0.25); border-radius: 8px; border: 2px solid transparent; background-clip: content-box; }
::-webkit-scrollbar-thumb:hover { background: rgba(120, 140, 200, 0.42); background-clip: content-box; }

#app { position: relative; z-index: 1; min-height: 100%; }

/* ---------------- 布局 ---------------- */
.shell { display: grid; grid-template-columns: 264px 1fr; min-height: 100vh; }

.sidebar {
  position: sticky; top: 0; height: 100vh;
  display: flex; flex-direction: column; gap: 18px;
  padding: 22px 16px;
  background: linear-gradient(180deg, rgba(13, 18, 36, 0.94), rgba(9, 13, 28, 0.9));
  border-right: 1px solid var(--line);
  backdrop-filter: blur(14px);
  overflow-y: auto;
}

.brand { display: flex; align-items: center; gap: 11px; padding: 4px 6px 12px; }
.brand-mark {
  width: 38px; height: 38px; border-radius: 11px; flex: none;
  background: linear-gradient(135deg, var(--primary), var(--cyan));
  display: grid; place-items: center; font-size: 19px;
  box-shadow: 0 8px 22px rgba(99, 102, 241, 0.45);
}
.brand-text strong { display: block; font-size: 15px; letter-spacing: .3px; }
.brand-text span { font-size: 11.5px; color: var(--text-mute); letter-spacing: .6px; }

.nav-group { display: flex; flex-direction: column; gap: 3px; }
.nav-label { font-size: 11px; color: var(--text-mute); letter-spacing: 1.4px; padding: 8px 10px 4px; text-transform: uppercase; }
.nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 11px; border-radius: var(--radius-sm);
  color: var(--text-dim); cursor: pointer; border: 1px solid transparent;
  transition: .16s ease; font-size: 13.6px;
}
.nav-item:hover { background: var(--panel-2); color: var(--text); }
.nav-item.active {
  background: linear-gradient(90deg, rgba(99, 102, 241, 0.24), rgba(99, 102, 241, 0.05));
  border-color: rgba(99, 102, 241, 0.42); color: #fff;
}
.nav-item.disabled { opacity: .45; cursor: not-allowed; }
.nav-item .ico { width: 18px; text-align: center; flex: none; }
.nav-item .tag { margin-left: auto; font-size: 10px; padding: 1px 6px; border-radius: 6px; background: rgba(148, 163, 184, .18); color: var(--text-mute); }
.nav-item .nav-count {
  min-width: 19px;
  margin-left: auto;
  padding: 1px 6px;
  border-radius: 999px;
  background: var(--red);
  color: #fff;
  font-size: 9.5px;
  font-weight: 700;
  text-align: center;
}

.sidebar-foot { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.user-chip {
  display: flex; align-items: center; gap: 10px; padding: 10px;
  border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel-2);
}
.avatar {
  width: 34px; height: 34px; border-radius: 50%; flex: none; display: grid; place-items: center;
  background: linear-gradient(135deg, var(--primary), var(--pink)); font-weight: 700; font-size: 13px;
}
.user-chip .meta { min-width: 0; }
.user-chip .meta strong { display: block; font-size: 13.4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.user-chip .meta span { font-size: 11.5px; color: var(--text-mute); }

.main { min-width: 0; display: flex; flex-direction: column; }
.topbar {
  position: sticky; top: 0; z-index: 20;
  display: flex; align-items: center; gap: 14px;
  padding: 14px 26px; border-bottom: 1px solid var(--line);
  background: rgba(8, 12, 26, 0.78); backdrop-filter: blur(14px);
}
.topbar h1 { font-size: 16.5px; margin: 0; font-weight: 650; letter-spacing: .2px; }
.topbar .sub { font-size: 12px; color: var(--text-mute); }
.topbar .spacer { flex: 1; }
.content { padding: 24px 26px 60px; max-width: 1320px; width: 100%; }

/* ---------------- 组件 ---------------- */
.card {
  position: relative;
  background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius);
  box-shadow: 0 12px 30px rgba(4, 8, 20, 0.22), inset 0 1px 0 rgba(255,255,255,.025);
  backdrop-filter: blur(12px);
  transition: border-color .18s ease, box-shadow .18s ease;
}
.card::before {
  content: "";
  position: absolute;
  z-index: 2;
  top: -1px;
  left: 20px;
  width: 58px;
  height: 3px;
  border-radius: 0 0 4px 4px;
  background: linear-gradient(90deg, var(--primary), var(--cyan));
  box-shadow: 0 3px 10px rgba(99,102,241,.25);
  pointer-events: none;
}
.card:hover {
  border-color: var(--line-strong);
}
html[data-theme="light"] .card {
  box-shadow: 0 12px 30px rgba(50, 65, 100, 0.08), inset 0 1px 0 rgba(255,255,255,.85);
}
:where(
  .admin-module-overview-card,
  .admin-category-block,
  .my-summary-card,
  .my-live-metric,
  .my-period-card,
  .bank-card,
  .fan-card,
  .streamer-info-card,
  .benchmark-card,
  .companion-plan-card,
  .companion-report-card,
  .companion-checkin-card,
  .train-card
) {
  border-color: var(--line-strong);
  box-shadow: inset 0 2px 0 rgba(99,102,241,.16);
}
.card.pad { padding: 20px 22px; }
.card + .card { margin-top: 16px; }
.card-head {
  display: flex; align-items: center; gap: 12px; padding: 16px 20px;
  border-bottom: 1px solid var(--line);
  border-radius: var(--radius) var(--radius) 0 0;
  background: linear-gradient(90deg, rgba(99,102,241,.07), rgba(6,182,212,.025) 45%, transparent 75%);
}
.card-head h2 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 15px; font-weight: 650; }
.card-head h2::before { content: ""; width: 4px; height: 15px; border-radius: 999px; background: linear-gradient(180deg, var(--primary), var(--cyan)); }
.card-head .spacer { flex: 1; }
.card-body { padding: 20px; }

.grid { display: grid; gap: 18px; }
.grid.cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.grid.cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }

.stat {
  padding: 16px 18px; border-radius: var(--radius); border: 1px solid var(--line);
  background: linear-gradient(145deg, rgba(99,102,241,.045), var(--panel-2) 62%);
  box-shadow: inset 0 2px 0 rgba(99,102,241,.2);
}
.stat .k { font-size: 12px; color: var(--text-mute); letter-spacing: .5px; }
.stat .v { font-size: 26px; font-weight: 700; margin-top: 4px; letter-spacing: -.5px; }
.stat .v small { font-size: 13px; color: var(--text-mute); font-weight: 500; margin-left: 4px; }
.stat.accent { background: linear-gradient(140deg, rgba(99, 102, 241, .28), rgba(34, 211, 238, .07)); border-color: rgba(99, 102, 241, .4); }

.admin-category-block {
  position: relative; display: flex; align-items: center; gap: 13px; width: 100%; min-height: 92px;
  padding: 15px 18px; border-radius: var(--radius); cursor: pointer; overflow: hidden;
  border: 1px solid var(--line); background: linear-gradient(145deg, var(--panel), var(--panel-2));
  color: var(--text); text-align: left; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.admin-category-block::before {
  content: ""; position: absolute; inset: 0 auto 0 0; width: 3px; background: var(--line-strong); opacity: .55;
}
.admin-category-block:hover { transform: translateY(-2px); border-color: var(--line-strong); box-shadow: var(--shadow-sm); }
.admin-category-block.active {
  border: 2px solid #818cf8;
  background: linear-gradient(140deg, rgba(99, 102, 241, .42), rgba(34, 211, 238, .14));
  box-shadow: 0 0 0 3px rgba(99, 102, 241, .18), 0 12px 28px rgba(45, 55, 140, .24);
  transform: translateY(-1px);
}
.admin-category-block.active::before { background: linear-gradient(180deg, var(--primary), var(--cyan)); opacity: 1; }
.admin-category-block:focus-visible { outline: 2px solid var(--cyan); outline-offset: 3px; }
.admin-category-block .category-icon {
  width: 43px; height: 43px; border-radius: 13px; flex: none; display: grid; place-items: center;
  color: var(--primary); background: rgba(99, 102, 241, .14); border: 1px solid rgba(99, 102, 241, .2);
}
.admin-category-block .category-icon svg { width: 22px; height: 22px; }
.admin-category-block .category-copy { flex: 1; min-width: 0; }
.admin-category-block .category-copy strong { display: block; font-size: 14.2px; letter-spacing: .1px; }
.admin-category-block .category-copy small { display: block; margin-top: 3px; color: var(--text-mute); font-size: 11.5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.admin-category-block .category-count {
  min-width: 38px; text-align: right; font-size: 22px; line-height: 1; font-weight: 720;
  font-variant-numeric: tabular-nums; color: var(--text-dim);
}
.admin-category-block .category-count small { display: block; margin-top: 4px; font-size: 10.5px; font-weight: 500; color: var(--text-mute); }
.admin-category-block.active .category-icon {
  color: #fff;
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  border-color: transparent;
  box-shadow: 0 8px 20px rgba(99, 102, 241, .32);
}
.admin-category-block.active .category-count { color: var(--text); }
.admin-category-block.active .category-count::after {
  content: "已选择"; display: block; margin-top: 7px; font-size: 9.5px; font-weight: 650;
  color: #c7d2fe; letter-spacing: .2px;
}
html[data-theme="light"] .admin-category-block .category-icon {
  background: rgba(79, 70, 229, .09);
  border-color: rgba(79, 70, 229, .16);
}
html[data-theme="light"] .admin-category-block.active {
  border-color: #4f46e5;
  background: linear-gradient(140deg, rgba(79, 70, 229, .24), rgba(8, 145, 178, .12));
  box-shadow: 0 0 0 3px rgba(79, 70, 229, .14), 0 12px 28px rgba(79, 70, 229, .15);
}
html[data-theme="light"] .admin-category-block.active .category-icon {
  color: #fff;
  background: linear-gradient(135deg, #4f46e5, #7c3aed);
}
html[data-theme="light"] .admin-category-block.active .category-count::after { color: #4338ca; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 7px;
  padding: 9px 16px; border-radius: 10px; cursor: pointer;
  border: 1px solid var(--line-strong); background: var(--panel-2); color: var(--text);
  transition: .16s ease; white-space: nowrap; font-size: 13.5px;
}
.btn:hover { border-color: rgba(150, 170, 240, .6); background: rgba(60, 74, 120, .55); }
.btn:disabled { opacity: .45; cursor: not-allowed; }
.btn.primary { background: linear-gradient(135deg, var(--primary), var(--primary-2)); border-color: transparent; color: #fff; box-shadow: 0 10px 26px rgba(99, 102, 241, .35); }
.btn.primary:hover { filter: brightness(1.08); }
.btn.cyan { background: linear-gradient(135deg, #0ea5e9, var(--cyan)); border-color: transparent; color: #05212c; font-weight: 650; }
.btn.ghost { background: transparent; }
.btn.danger { border-color: rgba(239, 68, 68, .5); color: #fca5a5; }
.btn.danger:hover { background: rgba(239, 68, 68, .16); }
.btn.sm { padding: 6px 11px; font-size: 12.5px; border-radius: 8px; }
.btn.lg { padding: 12px 22px; font-size: 15px; }
.btn.block { width: 100%; }

.badge { display: inline-flex; align-items: center; gap: 5px; padding: 2.5px 9px; border-radius: 999px; font-size: 11.5px; border: 1px solid var(--line-strong); color: var(--text-dim); }
.badge.ok { color: #86efac; border-color: rgba(34, 197, 94, .45); background: rgba(34, 197, 94, .12); }
.badge.warn { color: #fcd34d; border-color: rgba(245, 158, 11, .45); background: rgba(245, 158, 11, .12); }
.badge.danger { color: #fca5a5; border-color: rgba(239, 68, 68, .45); background: rgba(239, 68, 68, .12); }
.badge.info { color: #a5b4fc; border-color: rgba(99, 102, 241, .45); background: rgba(99, 102, 241, .14); }
.badge.cyan { color: #67e8f9; border-color: rgba(34, 211, 238, .45); background: rgba(34, 211, 238, .12); }

.field { display: flex; flex-direction: column; gap: 6px; }
.field > label { font-size: 12.5px; color: var(--text-dim); }
.input, .select, .textarea {
  width: 100%; padding: 10px 13px; border-radius: 10px;
  border: 1px solid var(--line-strong); background: rgba(9, 13, 28, .7); color: var(--text);
  outline: none; transition: .16s;
}
.input:focus, .select:focus, .textarea:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(99, 102, 241, .18); }
.textarea { min-height: 110px; resize: vertical; line-height: 1.7; }
.select option { background: #131a2e; }
.fixed-field-tip {
  display: flex;
  align-items: flex-start;
  gap: 7px;
  padding: 7px 9px;
  border-left: 2px solid rgba(34,211,238,.55);
  border-radius: 0 8px 8px 0;
  background: rgba(34,211,238,.055);
  color: var(--text-mute);
  font-size: 10.5px;
  line-height: 1.6;
}
.fixed-field-tip strong {
  flex: 0 0 auto;
  padding: 0 6px;
  border-radius: 5px;
  background: rgba(34,211,238,.13);
  color: var(--cyan);
  font-size: 9.5px;
  line-height: 1.7;
}
.fixed-field-tip span { min-width: 0; }
.fixed-field-tip[hidden] { display: none; }
.hint { font-size: 12px; color: var(--text-mute); }
.form-row { display: grid; gap: 14px; }
.form-row.two { grid-template-columns: 1fr 1fr; }
.form-row.three { grid-template-columns: repeat(3, 1fr); }

.table { width: 100%; border-collapse: collapse; font-size: 13.4px; }
.table th, .table td { text-align: left; padding: 11px 12px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.table th { color: var(--text-mute); font-weight: 500; font-size: 12.2px; letter-spacing: .4px; white-space: nowrap; }
.table tbody tr:hover { background: rgba(99, 102, 241, .07); }
.table .num { font-variant-numeric: tabular-nums; }
.table-wrap { overflow-x: auto; }
.submission-group-filters { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 10px 15px; border-bottom: 1px solid var(--line); background: rgba(99,102,241,.025); }
.submission-group-filters .hint { margin-right: 2px; }
.submission-group-filters .btn span { margin-left: 3px; opacity: .72; font-size: 9.5px; }
.record-status-filters { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 11px 16px; border-bottom: 1px solid var(--line); background: rgba(99,102,241,.03); }
.record-status-filters .hint { margin-right: 2px; }
.record-status-filters .btn span { margin-left: 3px; opacity: .72; font-size: 9.5px; }

.empty { padding: 48px 20px; text-align: center; color: var(--text-mute); }
.empty .big { font-size: 34px; opacity: .5; margin-bottom: 8px; }

.toast-wrap { position: fixed; top: 18px; right: 18px; z-index: 999; display: flex; flex-direction: column; gap: 10px; }
.toast {
  padding: 12px 16px; border-radius: 12px; min-width: 220px; max-width: 380px;
  border: 1px solid var(--line-strong); background: rgba(18, 24, 44, .96); box-shadow: var(--shadow);
  animation: slideIn .22s ease; font-size: 13.4px;
}
.toast.ok { border-left: 3px solid var(--green); }
.toast.err { border-left: 3px solid var(--red); }
.toast.info { border-left: 3px solid var(--cyan); }
@keyframes slideIn { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }

.modal-mask {
  position: fixed; inset: 0; z-index: 900; background: rgba(4, 7, 16, .72);
  backdrop-filter: blur(5px); display: grid; place-items: center; padding: 20px;
  animation: fade .16s ease;
}
@keyframes fade { from { opacity: 0 } to { opacity: 1 } }
.modal {
  width: min(620px, 100%); max-height: 88vh; overflow: auto;
  background: var(--panel-solid); border: 1px solid var(--line-strong);
  border-radius: 18px; box-shadow: var(--shadow); animation: pop .2s ease;
}
.modal.wide { width: min(920px, 100%); }
@keyframes pop { from { transform: translateY(14px) scale(.98); opacity: .6 } to { transform: none; opacity: 1 } }
.modal-head { display: flex; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--line); }
.modal-head h3 { margin: 0; font-size: 15.5px; }
.modal-head .spacer { flex: 1; }
.modal-body { padding: 20px 22px; }
.modal-foot { display: flex; gap: 10px; justify-content: flex-end; padding: 16px 22px; border-top: 1px solid var(--line); }

/* ---------------- 登录 ---------------- */
.login-wrap { min-height: 100vh; display: grid; grid-template-columns: 1.05fr .95fr; }
.login-left { padding: 60px 64px; display: flex; flex-direction: column; justify-content: center; gap: 26px; }
.login-left h1 { font-size: 40px; line-height: 1.25; margin: 0; letter-spacing: -1px; }
.login-left h1 em { font-style: normal; background: linear-gradient(120deg, var(--cyan), var(--primary-2)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.login-left p.lead { color: var(--text-dim); max-width: 520px; font-size: 15px; }
.feature-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 560px; }
.feature { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); font-size: 13px; }
.feature .fi { font-size: 16px; }
.login-right { display: grid; place-items: center; align-content: center; gap: 16px; padding: 40px; border-left: 1px solid var(--line); background: rgba(10, 14, 30, .5); }
.login-card { width: min(400px, 100%); }
.login-card h2 { margin: 0 0 6px; font-size: 21px; }
.code-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; }
.dev-code { margin-top: 12px; padding: 10px 12px; border-radius: 10px; background: rgba(34, 211, 238, .1); border: 1px dashed rgba(34, 211, 238, .45); font-size: 12.6px; color: #a5f3fc; }
.prelaunch-register { border-color: rgba(34,211,238,.28); }
.prelaunch-warning {
  border-color: rgba(245,158,11,.35);
  background: rgba(245,158,11,.06);
  color: var(--text-dim);
  font-size: 11.5px;
  line-height: 1.7;
}
.registration-result {
  margin-top: 12px;
  padding: 13px 14px;
  border: 1px solid rgba(34,211,238,.42);
  border-radius: 11px;
  background: rgba(34,211,238,.07);
}
.registration-result > div:first-child { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.registration-result p { margin: 9px 0 0; color: var(--text-dim); }
.registration-code {
  margin: 8px 0;
  padding: 10px 12px;
  border-radius: 9px;
  background: rgba(9,13,28,.62);
  color: var(--cyan);
  font-size: 24px;
  font-weight: 800;
  letter-spacing: 5px;
  text-align: center;
  user-select: all;
}
.registration-login-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: end;
  margin-top: 14px;
}

/* ---------------- 测评 ---------------- */
.bank-card { display: flex; flex-direction: column; gap: 14px; padding: 20px; border-radius: var(--radius); border: 1px solid var(--line); background: var(--panel); transition: .18s; }
.bank-card:hover { border-color: rgba(99, 102, 241, .5); transform: translateY(-2px); }
.bank-card h3 { margin: 0; font-size: 16px; }
.bank-meta { display: flex; flex-wrap: wrap; gap: 8px; }
.chip { font-size: 11.8px; padding: 3px 9px; border-radius: 8px; background: rgba(148, 163, 184, .14); color: var(--text-dim); border: 1px solid var(--line); }

.exam-shell { display: grid; grid-template-columns: 1fr 280px; gap: 20px; align-items: start; }
.q-card { padding: 26px 28px; }
.q-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.q-index { font-size: 12.5px; color: var(--text-mute); letter-spacing: .6px; }
.q-stem { font-size: 18px; line-height: 1.7; margin: 6px 0 20px; font-weight: 600; }
.opt {
  display: flex; gap: 12px; align-items: flex-start; padding: 13px 15px; margin-bottom: 10px;
  border: 1px solid var(--line); border-radius: 12px; cursor: pointer; transition: .15s; background: rgba(12, 17, 33, .5);
}
.opt:hover { border-color: rgba(140, 160, 235, .55); background: rgba(40, 52, 92, .4); }
.opt.sel { border-color: var(--primary); background: linear-gradient(90deg, rgba(99, 102, 241, .22), rgba(99, 102, 241, .05)); }
.opt.correct { border-color: rgba(34, 197, 94, .6); background: rgba(34, 197, 94, .1); }
.opt.wrong { border-color: rgba(239, 68, 68, .6); background: rgba(239, 68, 68, .1); }
.opt .key {
  width: 26px; height: 26px; flex: none; border-radius: 8px; display: grid; place-items: center;
  background: rgba(148, 163, 184, .18); font-weight: 650; font-size: 12.5px;
}
.opt.sel .key { background: var(--primary); color: #fff; }
.palette { display: grid; grid-template-columns: repeat(6, 1fr); gap: 6px; }
.pnum {
  aspect-ratio: 1; display: grid; place-items: center; border-radius: 8px; cursor: pointer; font-size: 12px;
  border: 1px solid var(--line); background: rgba(12, 17, 33, .6); color: var(--text-dim); transition: .14s;
}
.pnum:hover { border-color: var(--primary); }
.pnum.done { background: rgba(34, 197, 94, .16); border-color: rgba(34, 197, 94, .45); color: #bbf7d0; }
.pnum.cur { outline: 2px solid var(--primary); outline-offset: 1px; color: #fff; background: rgba(99, 102, 241, .3); }
.pnum.subj { border-style: dashed; }
.progress-bar { height: 8px; border-radius: 999px; background: rgba(148, 163, 184, .16); overflow: hidden; }
.progress-bar > i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, var(--primary), var(--cyan)); transition: width .25s; }

/* ---------------- 报告 ---------------- */
.score-hero { display: grid; grid-template-columns: auto 1fr; gap: 28px; align-items: center; padding: 26px 28px; }
.score-big { font-size: 56px; font-weight: 750; line-height: 1; letter-spacing: -2px; background: linear-gradient(120deg, #a5b4fc, var(--cyan)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.report-section { margin-top: 18px; }
.report-section > header { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
.report-section > header .idx {
  width: 26px; height: 26px; border-radius: 8px; display: grid; place-items: center; flex: none;
  background: linear-gradient(135deg, var(--primary), var(--primary-2)); font-size: 12.5px; font-weight: 700; color: #fff;
}
.report-section > header h3 { margin: 0; font-size: 16.5px; }

.personality-highlight-section {
  position: relative;
  overflow: hidden;
  border: 2px solid rgba(99, 102, 241, .48) !important;
  background:
    radial-gradient(circle at top right, rgba(34, 211, 238, .16), transparent 34%),
    linear-gradient(135deg, rgba(99, 102, 241, .14), rgba(236, 72, 153, .055)) !important;
  box-shadow: 0 16px 42px rgba(79, 70, 229, .14);
}
.personality-highlight-section::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 5px;
  background: linear-gradient(180deg, #6366f1, #ec4899, #22d3ee);
}
.personality-highlight-section > header h3 {
  font-size: 20px !important;
  letter-spacing: .01em;
}
.personality-focus-badge {
  margin-left: auto;
  padding: 5px 10px;
  font-size: 12px;
}
.personality-highlight-lead {
  display: flex;
  align-items: flex-start;
  gap: 14px;
  padding: 18px;
  margin-bottom: 18px;
  border: 1px solid rgba(99, 102, 241, .28);
  border-radius: 14px;
  background: rgba(15, 23, 42, .22);
}
.personality-highlight-icon {
  display: grid;
  place-items: center;
  flex: 0 0 46px;
  width: 46px;
  height: 46px;
  border-radius: 14px;
  font-size: 25px;
  background: linear-gradient(135deg, rgba(99, 102, 241, .34), rgba(236, 72, 153, .22));
  border: 1px solid rgba(129, 140, 248, .42);
}
.personality-highlight-content { flex: 1; min-width: 0; }
.personality-highlight-label {
  margin-bottom: 7px;
  color: var(--primary);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
}
.personality-highlight-content p {
  margin: 0;
  font-size: 15.5px;
  line-height: 1.85;
}
.personality-focus-tags { margin-top: 12px; }
.personality-focus-tags span {
  font-size: 13px;
  padding: 6px 11px;
  border-color: rgba(99, 102, 241, .42);
}
html[data-theme="light"] .personality-highlight-section {
  background:
    radial-gradient(circle at top right, rgba(14, 165, 233, .12), transparent 34%),
    linear-gradient(135deg, rgba(99, 102, 241, .1), rgba(236, 72, 153, .045)) !important;
}
html[data-theme="light"] .personality-highlight-lead {
  background: rgba(255, 255, 255, .72);
}
.report-history-panel { border-color: rgba(99,102,241,.38); background: linear-gradient(135deg, rgba(99,102,241,.055), rgba(6,182,212,.02)); }
.report-history-list { display: grid; gap: 11px; }
.report-history-item { padding: 14px; border: 1px solid var(--line); border-left: 3px solid rgba(99,102,241,.55); border-radius: 12px; background: rgba(255,255,255,.02); }
.report-history-item.current { border-color: rgba(34,197,94,.48); border-left-color: var(--green); background: linear-gradient(135deg, rgba(34,197,94,.065), rgba(255,255,255,.018)); }
.report-history-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.report-history-head strong { margin-left: 4px; color: var(--text); font-size: 18px; }
.report-history-metrics { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 7px; margin-top: 11px; }
.report-history-metrics > div { padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: rgba(99,102,241,.025); }
.report-history-metrics span { display: block; color: var(--text-mute); font-size: 9px; }
.report-history-metrics strong { display: block; margin-top: 4px; font-size: 13px; }
.report-history-meta { display: flex; gap: 7px 16px; flex-wrap: wrap; margin-top: 9px; color: var(--text-mute); font-size: 10px; }
.report-history-diff { margin-top: 9px; padding: 9px 10px; border-radius: 8px; background: rgba(245,158,11,.045); }
.report-history-diff strong { color: var(--amber); font-size: 10.5px; }
.report-history-diff p { margin: 4px 0 0; color: var(--text-dim); font-size: 11px; line-height: 1.65; white-space: pre-wrap; }
.report-history-changes { margin-top: 9px; }
.report-history-changes summary { color: var(--cyan); font-size: 11px; cursor: pointer; }
.report-history-change-list { max-height: 300px; overflow-y: auto; margin-top: 7px; border: 1px solid var(--line); border-radius: 8px; }
.report-history-change-list > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; padding: 8px 10px; border-bottom: 1px solid var(--line); font-size: 10.5px; line-height: 1.55; }
.report-history-change-list > div:last-child { border-bottom: 0; }
.report-history-change-list span { color: var(--text-dim); overflow-wrap: anywhere; }
.report-history-change-list strong { color: var(--amber); white-space: nowrap; }
.metric-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.metric { padding: 14px 16px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel-2); }
.metric .k { font-size: 12px; color: var(--text-mute); }
.metric .v { font-size: 21px; font-weight: 700; margin-top: 2px; }
.dim-list { display: flex; flex-direction: column; gap: 10px; }
.dim-row { display: grid; grid-template-columns: 108px 1fr 74px; gap: 12px; align-items: center; font-size: 13px; }
.dim-row .bar { height: 9px; border-radius: 999px; background: rgba(148, 163, 184, .15); overflow: hidden; }
.dim-row .bar > i { display: block; height: 100%; border-radius: 999px; }
.tag-cloud { display: flex; flex-wrap: wrap; gap: 8px; }
.tag-cloud span {
  padding: 5px 12px; border-radius: 999px; font-size: 12.6px;
  border: 1px solid rgba(99, 102, 241, .45); background: rgba(99, 102, 241, .16); color: #c7d2fe;
}
.kv-list { display: flex; flex-direction: column; gap: 10px; }
.kv-list .row { display: grid; grid-template-columns: 96px 1fr; gap: 12px; font-size: 13.4px; }
.kv-list .row .k { color: var(--text-mute); }
.list-clean { margin: 0; padding-left: 18px; }
.list-clean li { margin: 5px 0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.box { padding: 16px 18px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel-2); }
.box.good { border-color: rgba(34, 197, 94, .35); background: rgba(34, 197, 94, .08); }
.box.bad { border-color: rgba(239, 68, 68, .32); background: rgba(239, 68, 68, .07); }
.train-card { padding: 16px 18px; border-radius: 12px; border: 1px solid var(--line); background: var(--panel-2); }
.train-card + .train-card { margin-top: 12px; }
.train-card h4 { margin: 0 0 6px; font-size: 14.5px; }
.accordion { border: 1px solid var(--line); border-radius: 12px; overflow: hidden; }
.accordion > details { border-bottom: 1px solid var(--line); }
.accordion > details:last-child { border-bottom: none; }
.accordion summary { padding: 12px 16px; cursor: pointer; font-size: 13.6px; display: flex; gap: 10px; align-items: center; }
.accordion summary::-webkit-details-marker { display: none; }
.accordion .acc-body { padding: 4px 16px 16px; font-size: 13.2px; color: var(--text-dim); }

/* ---------------- 编辑器 ---------------- */
.option-editor { display: flex; flex-direction: column; gap: 8px; }
.option-row { display: grid; grid-template-columns: 44px 1fr 74px; gap: 8px; align-items: center; }
.option-row .key-input { text-align: center; text-transform: uppercase; }
.q-item { padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(12, 17, 33, .45); }
.q-item + .q-item { margin-top: 10px; }
.q-item .q-top { display: flex; gap: 10px; align-items: center; margin-bottom: 8px; flex-wrap: wrap; }
.q-item .q-text { font-size: 13.8px; }
.rubric-row { display: grid; grid-template-columns: 150px 84px 1fr 36px; gap: 8px; align-items: center; }

.split { display: grid; grid-template-columns: 340px 1fr; gap: 18px; align-items: start; }
.sticky { position: sticky; top: 82px; }
.scroll-y { max-height: 62vh; overflow-y: auto; }

.mode-pick { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mode-card { padding: 18px; border-radius: 14px; border: 1px solid var(--line-strong); background: var(--panel-2); color: var(--text); font-family: var(--font); text-align: left; cursor: pointer; transition: .16s; }
.mode-card:hover { border-color: var(--primary); background: rgba(99, 102, 241, .12); }
.mode-card h4 { margin: 0 0 6px; font-size: 14.5px; }
.mode-card p { margin: 0; font-size: 12.6px; color: var(--text-dim); }

/* ---------------- 浅色主题细节 ---------------- */
html[data-theme="light"] body::before {
  background:
    radial-gradient(1000px 600px at 12% -8%, rgba(99, 102, 241, 0.12), transparent 60%),
    radial-gradient(900px 520px at 92% 4%, rgba(8, 145, 178, 0.08), transparent 62%),
    radial-gradient(700px 500px at 60% 105%, rgba(219, 39, 119, 0.06), transparent 65%);
}
html[data-theme="light"] .sidebar {
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.97), rgba(240, 245, 252, 0.96));
}
html[data-theme="light"] .topbar {
  background: rgba(247, 250, 255, 0.86);
}
html[data-theme="light"] .nav-item.active {
  color: #211c62;
  background: linear-gradient(90deg, rgba(79, 70, 229, 0.15), rgba(79, 70, 229, 0.035));
}
html[data-theme="light"] .btn:not(.primary):not(.cyan):not(.danger):hover {
  background: rgba(224, 232, 246, 0.9);
  border-color: rgba(79, 70, 229, 0.42);
}
html[data-theme="light"] .btn.primary:hover {
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  border-color: transparent;
  color: #fff;
}
html[data-theme="light"] .btn.cyan:hover {
  background: linear-gradient(135deg, #0ea5e9, var(--cyan));
  border-color: transparent;
  color: #05212c;
}
html[data-theme="light"] .btn.danger { color: #b91c1c; }
html[data-theme="light"] .input,
html[data-theme="light"] .select,
html[data-theme="light"] .textarea { background: rgba(255, 255, 255, 0.96); }
html[data-theme="light"] .select option { background: #fff; }
html[data-theme="light"] .toast {
  background: rgba(255, 255, 255, 0.98);
}
html[data-theme="light"] .login-right { background: rgba(235, 241, 251, 0.72); }
html[data-theme="light"] .dev-code { color: #155e75; }
html[data-theme="light"] .opt,
html[data-theme="light"] .pnum,
html[data-theme="light"] .q-item { background: rgba(255, 255, 255, 0.88); }
html[data-theme="light"] .opt:hover { background: rgba(235, 240, 251, 0.96); }
html[data-theme="light"] .pnum.done { color: #166534; }
html[data-theme="light"] .pnum.cur { color: #fff; }
html[data-theme="light"] .tag-cloud span { color: #4338ca; }
html[data-theme="light"] .badge.ok { color: #15803d; }
html[data-theme="light"] .badge.warn { color: #a16207; }
html[data-theme="light"] .badge.danger { color: #b91c1c; }
html[data-theme="light"] .badge.info { color: #4338ca; }
html[data-theme="light"] .badge.cyan { color: #0e7490; }
html[data-theme="light"] .bank-card.stage-highlight {
  border-color: rgba(79, 70, 229, 0.7);
  box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.12), var(--shadow-sm);
}

.bank-card.stage-highlight {
  border-color: rgba(99, 102, 241, 0.72);
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.14), var(--shadow-sm);
}

/* ---------------- 主播陪跑 ---------------- */
.companion-hero,
.companion-student-hero {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  gap: 22px;
  padding: 28px;
  border: 1px solid rgba(99, 102, 241, .42);
  border-radius: var(--radius);
  background:
    linear-gradient(135deg, rgba(99, 102, 241, .24), rgba(34, 211, 238, .08)),
    var(--panel);
  box-shadow: var(--shadow-sm);
}
.companion-hero h2,
.companion-student-hero h2 { margin: 5px 0 8px; font-size: 25px; line-height: 1.3; }
.companion-hero p { margin: 0; color: var(--text-dim); max-width: 720px; }
.companion-hero-actions { display: flex; align-items: flex-start; justify-content: flex-end; gap: 9px; flex-wrap: wrap; }
.companion-eyebrow { color: var(--cyan); font-size: 10.5px; letter-spacing: 1.4px; font-weight: 700; text-transform: uppercase; }
.companion-toolbar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.companion-toolbar h2 { margin: 0; font-size: 18px; }
.companion-toolbar .spacer { flex: 1; }
.companion-plan-card {
  padding: 20px;
  border: 1px solid var(--line-strong);
  border-radius: var(--radius);
  background: linear-gradient(145deg, var(--panel-2), var(--panel));
}
.companion-plan-head { display: flex; align-items: flex-start; gap: 12px; }
.companion-plan-head > div { flex: 1; }
.companion-plan-head h3 { margin: 3px 0 0; font-size: 18px; }
.companion-plan-card > p { color: var(--text-dim); min-height: 44px; }
.companion-meta { display: flex; flex-wrap: wrap; gap: 7px 15px; color: var(--text-mute); font-size: 11.8px; }
.companion-meta span { position: relative; }
.companion-progress { margin-top: 14px; }
.companion-progress > div:first-child { display: flex; justify-content: space-between; font-size: 12px; color: var(--text-dim); margin-bottom: 6px; }
.companion-mini-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; margin-top: 14px;
}
.companion-mini-grid > span {
  padding: 9px; border: 1px solid var(--line); border-radius: 10px; text-align: center;
  color: var(--text-mute); font-size: 11px; background: rgba(99, 102, 241, .05);
}
.companion-mini-grid strong { display: block; color: var(--text); font-size: 18px; }
.companion-filter-row {
  display: grid; grid-template-columns: repeat(3, minmax(150px, 220px)); gap: 12px;
}
.companion-warning-card { border-color: rgba(245, 158, 11, .35); }
.companion-warning-list { display: flex; flex-direction: column; gap: 8px; }
.companion-warning {
  display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px;
  background: rgba(245, 158, 11, .08); border: 1px solid rgba(245, 158, 11, .22); font-size: 13px;
}
.companion-warning.danger { background: rgba(239, 68, 68, .08); border-color: rgba(239, 68, 68, .28); }
.companion-warning .btn { margin-left: auto; }
.companion-dimension-list { display: flex; flex-direction: column; gap: 12px; }
.companion-dimension-list > div { display: grid; grid-template-columns: 120px 1fr 48px; gap: 10px; align-items: center; font-size: 12.6px; }
.companion-dimension-list .bar { height: 9px; border-radius: 999px; background: rgba(148,163,184,.14); overflow: hidden; }
.companion-dimension-list .bar i { display: block; height: 100%; border-radius: inherit; }
.companion-ranking { display: flex; flex-direction: column; gap: 8px; }
.companion-ranking > div { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.companion-ranking .rank {
  width: 25px; height: 25px; border-radius: 8px; display: grid; place-items: center;
  font-size: 11px; font-weight: 700; background: rgba(99,102,241,.15); color: var(--text-dim);
}
.companion-ranking .spacer { flex: 1; }
.companion-row-link { display: flex; align-items: center; gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.companion-row-link:last-child { border-bottom: 0; }
.companion-row-link > div { flex: 1; min-width: 0; }
.companion-action-group { display: flex; gap: 5px; flex-wrap: wrap; }
.companion-check-list {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px;
  max-height: 280px; overflow-y: auto; padding: 4px;
}
.companion-check-list label {
  display: grid; grid-template-columns: auto 1fr; gap: 2px 9px; padding: 10px 12px;
  border: 1px solid var(--line); border-radius: 10px; cursor: pointer;
}
.companion-check-list label .hint { grid-column: 2; }
.companion-editor { display: flex; flex-direction: column; gap: 16px; }
.companion-editor .card + .card { margin-top: 0; }
.companion-section-title { display: flex; align-items: flex-start; gap: 13px; margin-bottom: 16px; }
.companion-section-title > span {
  width: 36px; height: 36px; flex: none; display: grid; place-items: center; border-radius: 11px;
  background: linear-gradient(135deg, var(--primary), var(--primary-2)); color: #fff; font-weight: 750; font-size: 12px;
}
.companion-section-title h2 { margin: 0; font-size: 17px; }
.companion-section-title p { margin: 3px 0 0; color: var(--text-mute); font-size: 12px; }
.companion-quick-periods { display: flex; gap: 8px; }
.companion-quick-periods button {
  padding: 7px 14px; border-radius: 999px; border: 1px solid var(--line-strong);
  background: var(--panel-2); color: var(--text-dim); cursor: pointer; transition: .16s ease;
}
.companion-quick-periods button:hover {
  border-color: rgba(99,102,241,.62); color: var(--text);
}
.companion-quick-periods button.active {
  border-color: transparent;
  background: linear-gradient(135deg, var(--primary), var(--primary-2));
  color: #fff;
  box-shadow: 0 7px 18px rgba(99,102,241,.3);
}
.companion-chip-checks { display: flex; flex-wrap: wrap; gap: 8px; }
.companion-chip-checks label { position: relative; cursor: pointer; }
.companion-chip-checks input { position: absolute; opacity: 0; pointer-events: none; }
.companion-chip-checks span {
  display: block; padding: 7px 12px; border-radius: 999px; border: 1px solid var(--line);
  background: var(--panel-2); font-size: 12.5px;
}
.companion-chip-checks input:checked + span {
  border-color: rgba(99,102,241,.65); background: rgba(99,102,241,.2); color: var(--text);
}
.companion-task-library { display: flex; flex-direction: column; gap: 9px; }
.companion-task-row { border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; background: var(--panel-2); }
.companion-task-row.selected { border-color: rgba(99,102,241,.55); background: rgba(99,102,241,.08); }
.companion-task-row.dragging { opacity: .45; }
.companion-task-main { display: flex; gap: 11px; align-items: flex-start; cursor: pointer; }
.companion-task-main > div { flex: 1; }
.companion-task-title { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.companion-task-main .companion-meta { margin-top: 6px; }
.companion-task-main .companion-meta span { padding: 1px 6px; border-radius: 5px; background: rgba(148,163,184,.12); }
.companion-task-settings {
  display: grid; grid-template-columns: 1.2fr 1fr .7fr .7fr .7fr; gap: 8px;
  margin: 12px 0 0 27px; padding-top: 12px; border-top: 1px dashed var(--line);
}
.companion-task-settings label { font-size: 10.5px; color: var(--text-mute); }
.companion-task-settings .input { margin-top: 3px; padding: 7px 8px; }
.companion-submit-bar {
  position: sticky; bottom: 12px; z-index: 15; display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  padding: 13px 16px; border: 1px solid var(--line-strong); border-radius: 14px;
  background: var(--panel-solid); box-shadow: var(--shadow);
}
.companion-submit-bar .spacer { flex: 1; }
.companion-record-row {
  display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
  padding: 12px 0; border-bottom: 1px solid var(--line);
}
.companion-record-row:last-child { border-bottom: 0; }
.companion-history-task { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; margin-top: 8px; font-size: 12.5px; }
.companion-history-task .hint { flex-basis: 100%; padding-left: 1px; }
.companion-text-record {
  white-space: pre-wrap; margin-top: 7px; padding: 9px 11px; border-radius: 9px;
  background: rgba(148,163,184,.08); color: var(--text-dim); font-size: 12.7px;
}
.companion-review-original { display: grid; gap: 12px; }
.companion-review-original > div { border-left: 2px solid rgba(99,102,241,.5); padding-left: 12px; }
.companion-review-original span { font-size: 11.5px; color: var(--text-mute); }
.companion-review-original p { margin: 4px 0 0; white-space: pre-wrap; color: var(--text-dim); }
.companion-score-editor { display: grid; grid-template-columns: 1fr 1fr; gap: 9px; margin-top: 12px; }
.companion-score-editor label { display: flex; align-items: center; gap: 8px; font-size: 12.3px; }
.companion-score-editor label span { flex: 1; color: var(--text-dim); }
.companion-score-editor .input { width: 84px; padding: 7px 8px; }
.companion-baseline-grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 9px; margin-top: 14px; }
.companion-baseline-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 11.5px; color: var(--text-mute); }
.companion-baseline-grid .input { padding: 7px 8px; }
.companion-inline-check { display: flex; align-items: center; gap: 8px; margin-top: 12px; font-size: 12.5px; color: var(--text-dim); }
.companion-markdown { line-height: 1.85; }
.companion-markdown h1 { font-size: 24px; margin: 4px 0 18px; }
.companion-markdown h2 { font-size: 17px; margin: 22px 0 9px; color: var(--text); }
.companion-markdown h3 { font-size: 15px; margin: 18px 0 7px; }
.companion-markdown p { color: var(--text-dim); }
.companion-markdown blockquote { margin: 16px 0; padding: 10px 14px; border-left: 3px solid var(--cyan); background: rgba(34,211,238,.07); color: var(--text-dim); }
.companion-report-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.companion-report-card { position: relative; padding: 18px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); }
.companion-report-card h3 { margin: 12px 0 6px; font-size: 15.5px; line-height: 1.45; }
.companion-report-top { display: flex; gap: 7px; flex-wrap: wrap; }
.companion-report-check { position: absolute; top: 14px; right: 14px; }
.companion-report-scores { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 12px; }
.companion-report-scores span { padding: 5px 8px; border-radius: 7px; background: var(--panel-2); font-size: 10.8px; color: var(--text-mute); }
.companion-report-scores strong { color: var(--text); }
.companion-report-tools { display: flex; align-items: center; gap: 12px; margin-top: 14px; padding-top: 13px; border-top: 1px dashed var(--line); font-size: 12px; }
.companion-report-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-bottom: 14px; }
.companion-report-actions .spacer { flex: 1; }
.companion-report-actions .select { width: min(360px, 100%); }
.companion-report-cover h1 { font-size: 28px; margin: 6px 0 12px; }
.companion-version-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--line); }
.companion-version-row .btn { margin-left: auto; }
.companion-report-tabs { display: flex; gap: 8px; flex-wrap: wrap; }
.companion-report-tabs button {
  border: 1px solid var(--line); border-radius: 999px; padding: 7px 15px; cursor: pointer;
  background: var(--panel-2); color: var(--text-dim);
}
.companion-report-tabs button.active { border-color: var(--primary); background: rgba(99,102,241,.18); color: var(--text); }
.companion-switch { display: flex; align-items: center; gap: 10px; cursor: pointer; }
.companion-switch input { position: absolute; opacity: 0; pointer-events: none; }
.companion-switch > span {
  width: 42px; height: 23px; border-radius: 999px; background: rgba(148,163,184,.3); position: relative; transition: .18s;
}
.companion-switch > span::after {
  content: ""; position: absolute; width: 17px; height: 17px; top: 3px; left: 3px;
  border-radius: 50%; background: #fff; transition: .18s;
}
.companion-switch input:checked + span { background: var(--primary); }
.companion-switch input:checked + span::after { transform: translateX(19px); }
.companion-today-panel {
  padding: 22px; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel-2);
  display: flex; flex-direction: column; align-items: flex-start;
}
.companion-progress-ring {
  --pct: 0;
  width: 104px; height: 104px; border-radius: 50%; margin: 13px auto;
  display: grid; place-content: center; text-align: center;
  background: radial-gradient(circle at center, var(--panel-solid) 55%, transparent 57%), conic-gradient(var(--primary) calc(var(--pct) * 1%), rgba(148,163,184,.15) 0);
}
.companion-progress-ring strong { font-size: 22px; line-height: 1; }
.companion-progress-ring span { font-size: 10px; color: var(--text-mute); margin-top: 4px; }
.companion-today-tasks { display: flex; flex-direction: column; gap: 9px; }
.companion-today-task {
  display: flex; align-items: center; gap: 12px; padding: 12px 14px;
  border: 1px solid var(--line); border-radius: 11px; background: var(--panel-2);
}
.companion-today-task.done { border-color: rgba(34,197,94,.28); background: rgba(34,197,94,.05); }
.companion-task-state {
  width: 30px; height: 30px; flex: none; border-radius: 9px; display: grid; place-items: center;
  background: rgba(99,102,241,.15); color: var(--cyan); font-weight: 700;
}
.companion-empty-state {
  padding: 54px 30px; border: 1px solid var(--line); border-radius: var(--radius);
  background: var(--panel); text-align: center;
}
.companion-empty-state h2 { margin: 12px 0 6px; }
.companion-empty-state > p { max-width: 650px; margin: 0 auto; color: var(--text-dim); }
.companion-empty-mark { font-size: 52px; }
.companion-offer {
  max-width: 650px; margin: 20px auto 0; padding: 18px; display: flex; align-items: center; gap: 14px;
  text-align: left; border-radius: 13px; border: 1px solid rgba(34,211,238,.3); background: rgba(34,211,238,.07);
}
.companion-offer > div { flex: 1; }
.companion-offer p { margin: 4px 0 0; }
.companion-notice-card {
  display: flex; align-items: center; gap: 14px; padding: 16px 18px;
  border: 1px solid rgba(245,158,11,.42); border-radius: var(--radius);
  background: linear-gradient(135deg, rgba(245,158,11,.12), rgba(99,102,241,.05));
}
.companion-notice-card > span { font-size: 26px; }
.companion-notice-card > div { flex: 1; }
.companion-notice-card p { margin: 3px 0 0; color: var(--text-dim); }
.companion-checkin-card { border: 1px solid var(--line); border-radius: 13px; background: var(--panel-2); }
.companion-checkin-card + .companion-checkin-card { margin-top: 10px; }
.companion-checkin-card.done { border-color: rgba(34,197,94,.32); }
.companion-checkin-head { display: flex; align-items: flex-start; gap: 10px; padding: 14px 16px; }
.companion-task-number {
  width: 29px; height: 29px; border-radius: 8px; display: grid; place-items: center;
  background: rgba(99,102,241,.15); color: var(--text-dim); font-size: 11px; font-weight: 700;
}
.companion-checkin-body { padding: 0 16px 15px 55px; display: flex; flex-direction: column; gap: 9px; }
.companion-checkin-body .input[type="number"] { max-width: 110px; }
.companion-review-form textarea { min-height: 130px; }
.companion-review-intro { display: flex; gap: 14px; align-items: flex-start; }
.companion-review-intro > span { font-size: 30px; }
.companion-review-intro h2 { margin: 0; }
.companion-review-intro p { margin: 5px 0 0; color: var(--text-dim); }
.companion-recommendation { border-color: rgba(34,211,238,.35); background: linear-gradient(145deg, rgba(34,211,238,.07), var(--panel)); }
.companion-recommendation-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin: 14px 0; }
.companion-recommendation-grid > div { padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-2); }
.companion-recommendation-grid strong { display: block; font-size: 12.7px; }
.companion-recommendation-grid span { font-size: 10.8px; color: var(--text-mute); }
html[data-theme="light"] .companion-hero,
html[data-theme="light"] .companion-student-hero {
  background: linear-gradient(135deg, rgba(79,70,229,.11), rgba(8,145,178,.06)), #fff;
}
html[data-theme="light"] .companion-chip-checks input:checked + span { color: #312e81; }

/* ---------------- 对标账号拆解 ---------------- */
.benchmark-hero {
  display: flex; align-items: center; gap: 20px; padding: 26px 28px;
  border-radius: var(--radius); border: 1px solid rgba(34,211,238,.34);
  background: linear-gradient(135deg, rgba(34,211,238,.12), rgba(99,102,241,.1)), var(--panel);
}
.benchmark-hero > div:first-child { flex: 1; }
.benchmark-hero h2 { margin: 5px 0 7px; font-size: 24px; }
.benchmark-hero p { margin: 0; color: var(--text-dim); }
.benchmark-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.benchmark-account-groups { display: grid; gap: 16px; }
.benchmark-account-group { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(99,102,241,.03); }
.benchmark-account-head { display: flex; align-items: center; gap: 11px; flex-wrap: wrap; margin-bottom: 13px; }
.benchmark-account-head h3 { margin: 2px 0; font-size: 18px; }
.benchmark-account-head .spacer { flex: 1; }
.benchmark-account-mark { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: rgba(6,182,212,.13); color: var(--cyan); font-size: 11px; font-weight: 800; }
.benchmark-card {
  padding: 18px; border: 1px solid var(--line); border-radius: var(--radius);
  background: linear-gradient(145deg, var(--panel-2), var(--panel));
}
.benchmark-card-top { display: flex; gap: 7px; flex-wrap: wrap; }
.benchmark-card h3 { margin: 12px 0 5px; font-size: 16px; line-height: 1.45; }
.benchmark-metrics { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 11px; color: var(--text-mute); font-size: 11.5px; }
.benchmark-metrics strong { color: var(--text); }
.benchmark-card-actions { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 14px; }
.benchmark-point-list { display: flex; flex-direction: column; gap: 12px; }
.benchmark-point { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); }
.benchmark-point-head { display: grid; grid-template-columns: 32px 1fr 130px auto; gap: 9px; align-items: center; margin-bottom: 10px; }
.benchmark-point .textarea { min-height: 100px; }
.benchmark-detail-head h1,
.benchmark-report-cover h1 { margin: 5px 0 10px; font-size: 28px; }
.benchmark-detail-points { display: flex; flex-direction: column; gap: 12px; }
.benchmark-detail-point { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); }
.benchmark-detail-point p { margin: 5px 0 0; color: var(--text-dim); white-space: pre-wrap; }
.benchmark-report-body { line-height: 1.9; }
html[data-theme="light"] .benchmark-hero {
  background: linear-gradient(135deg, rgba(8,145,178,.08), rgba(79,70,229,.07)), #fff;
}

/* ---------------- AI 提示词管理 ---------------- */
.prompt-admin-layout { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 16px; align-items: start; }
.prompt-catalog { position: sticky; top: 82px; padding: 18px; max-height: calc(100vh - 110px); overflow-y: auto; }
.prompt-catalog-head h2 { margin: 4px 0 6px; font-size: 20px; }
.prompt-catalog-head p { margin: 0 0 14px; color: var(--text-mute); font-size: 12px; line-height: 1.7; }
.prompt-groups { display: flex; flex-direction: column; gap: 15px; margin-top: 14px; }
.prompt-group-title { display: flex; align-items: center; justify-content: space-between; padding: 0 5px 6px; color: var(--text-mute); font-size: 11px; letter-spacing: .6px; }
.prompt-group-title span { padding: 1px 7px; border-radius: 999px; background: rgba(148,163,184,.13); }
.prompt-list-item {
  width: 100%; display: flex; align-items: flex-start; gap: 8px; padding: 11px 10px; margin-bottom: 5px;
  text-align: left; border: 1px solid transparent; border-radius: 10px; background: transparent; color: var(--text-dim); cursor: pointer;
}
.prompt-list-item:hover { background: var(--panel-2); color: var(--text); }
.prompt-list-item.active { border-color: rgba(99,102,241,.55); background: rgba(99,102,241,.14); color: var(--text); }
.prompt-list-main { flex: 1; min-width: 0; }
.prompt-list-main strong { display: block; font-size: 13px; }
.prompt-list-main small { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; margin-top: 3px; color: var(--text-mute); font-size: 10.8px; line-height: 1.5; }
.prompt-editor { padding: 22px; min-width: 0; }
.prompt-editor-head { display: flex; align-items: flex-start; gap: 16px; }
.prompt-editor-head > div:first-child { flex: 1; }
.prompt-editor-head h2 { margin: 4px 0 6px; }
.prompt-editor-head p { margin: 0; color: var(--text-mute); }
.prompt-editor-status { display: flex; flex-direction: column; align-items: flex-end; gap: 5px; }
.prompt-variable-box { margin-top: 16px; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); }
.prompt-variable-list { display: flex; flex-wrap: wrap; gap: 7px; margin: 9px 0 8px; }
.prompt-variable { padding: 6px 9px; border-radius: 8px; border: 1px solid rgba(99,102,241,.32); background: rgba(99,102,241,.1); color: var(--text); cursor: pointer; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 11px; }
.prompt-variable span { display: block; margin-top: 2px; color: var(--text-mute); font-family: var(--font); font-size: 9.5px; }
.prompt-editor-grid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 14px; margin-top: 16px; }
.prompt-textarea { min-height: 560px; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; line-height: 1.65; }
.prompt-user-textarea { min-height: 660px; }
.prompt-editor-actions { display: flex; align-items: center; gap: 9px; margin-top: 14px; flex-wrap: wrap; }
.prompt-editor-actions .spacer { flex: 1; }
.prompt-preview pre { white-space: pre-wrap; word-break: break-word; padding: 13px; border-radius: 10px; background: var(--panel-2); color: var(--text-dim); font-size: 11.5px; line-height: 1.65; max-height: 36vh; overflow: auto; }

/* ---------------- 粉丝档案 ---------------- */
.fan-hero {
  display: flex; align-items: center; gap: 20px; padding: 26px 28px;
  border-radius: var(--radius); border: 1px solid rgba(236,72,153,.32);
  background: linear-gradient(135deg, rgba(236,72,153,.1), rgba(245,158,11,.08)), var(--panel);
}
.fan-hero > div:first-child { flex: 1; }
.fan-hero h2 { margin: 5px 0 7px; font-size: 24px; }
.fan-hero p { margin: 0; color: var(--text-dim); }
.fan-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 13px; }
.fan-overview-metrics { grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); }
.fan-card {
  padding: 17px; border: 1px solid var(--line); border-radius: var(--radius);
  background: linear-gradient(145deg, var(--panel-2), var(--panel));
}
.fan-card.high-value { border-color: rgba(245,158,11,.48); box-shadow: inset 3px 0 0 rgba(245,158,11,.7); }
.fan-card-head { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.fan-card-head .spacer { flex: 1; }
.fan-card h3 { margin: 12px 0 4px; font-size: 17px; }
.fan-mega-spenders { border-color: rgba(245,158,11,.42); box-shadow: inset 3px 0 0 rgba(245,158,11,.7); }
.fan-owner-stack { display: grid; gap: 16px; }
.fan-owner-section { padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: rgba(99,102,241,.035); }
.fan-owner-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 14px; }
.fan-owner-head h3 { margin: 2px 0; font-size: 18px; }
.fan-owner-head .spacer { flex: 1; }
.fan-owner-mark { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: linear-gradient(135deg, rgba(99,102,241,.22), rgba(6,182,212,.14)); color: var(--accent); font-size: 15px; font-weight: 700; }
.fan-ai-advice { border-color: rgba(6,182,212,.4); background: linear-gradient(135deg, rgba(6,182,212,.05), transparent 55%); }
.fan-daily-update { margin-bottom: 16px; border-color: rgba(245,158,11,.5); background: linear-gradient(135deg, rgba(245,158,11,.1), rgba(99,102,241,.04) 55%, transparent); box-shadow: inset 3px 0 0 rgba(245,158,11,.78); }
.fan-daily-update-head { display: flex; align-items: center; gap: 13px; margin-bottom: 16px; }
.fan-daily-update-head h2 { margin: 3px 0 4px; font-size: 20px; }
.fan-daily-update-head p { margin: 0; color: var(--text-dim); font-size: 12px; line-height: 1.6; }
.fan-daily-update-head .spacer { flex: 1; }
.fan-daily-update-mark { display: grid; place-items: center; flex: 0 0 42px; height: 42px; border-radius: 13px; background: rgba(245,158,11,.16); color: var(--amber); font-size: 17px; font-weight: 800; }
.fan-daily-sync-hint { margin-top: 13px; padding: 9px 11px; border-radius: 9px; background: rgba(245,158,11,.07); color: var(--text-dim); }
.fan-today-record { border-color: rgba(245,158,11,.36); background: linear-gradient(135deg, rgba(245,158,11,.06), transparent 62%); }
.fan-today-record p { margin: 12px 0 0; white-space: pre-wrap; line-height: 1.75; }
.fan-advice-overview { margin: 14px 0 0; line-height: 1.8; color: var(--text); }
.fan-advice-priorities { display: grid; gap: 8px; }
.fan-advice-priorities > div { display: flex; align-items: flex-start; gap: 9px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(99,102,241,.035); }
.fan-advice-priorities p { margin: 0; line-height: 1.65; }
.fan-spend-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 7px; margin: 12px 0; }
.fan-spend-row > div { padding: 8px; border: 1px solid var(--line); border-radius: 9px; background: rgba(99,102,241,.04); }
.fan-spend-row span { display: block; color: var(--text-mute); font-size: 9.5px; }
.fan-spend-row strong { font-size: 13.5px; }
.fan-return-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; margin: 0 0 12px; }
.fan-return-row > div { padding: 8px; border: 1px solid rgba(6,182,212,.2); border-radius: 9px; background: rgba(6,182,212,.045); }
.fan-return-row span { display: block; color: var(--text-mute); font-size: 9.5px; }
.fan-return-row strong { font-size: 13px; color: var(--cyan); }
.fan-birthday-board { border-color: rgba(245,158,11,.42); background: linear-gradient(135deg, rgba(245,158,11,.06), transparent 62%); }
.fan-birthday-list { display: grid; gap: 9px; }
.fan-birthday-item { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: rgba(245,158,11,.035); }
.fan-birthday-item .spacer { flex: 1; }
.fan-birthday-count { display: grid; place-items: center; flex: 0 0 58px; min-height: 54px; border-radius: 11px; background: rgba(245,158,11,.13); color: var(--amber); }
.fan-birthday-count strong { font-size: 20px; line-height: 1; }
.fan-birthday-count span { margin-top: 4px; font-size: 9.5px; }
.fan-milestone-block { margin-top: 15px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: rgba(99,102,241,.035); }
.fan-milestone-head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.fan-level-history-editor { margin-top: 14px; padding: 14px; border: 1px solid rgba(245,158,11,.34); border-radius: 12px; background: rgba(245,158,11,.045); }
.fan-level-history-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.fan-level-history-head strong { display: block; }
.fan-level-history-head .spacer { flex: 1; }
.fan-level-history-row { display: grid; grid-template-columns: minmax(150px, .8fr) minmax(190px, 1fr) auto; align-items: end; gap: 10px; padding: 11px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.018); }
.fan-level-history-row + .fan-level-history-row { margin-top: 8px; }
.fan-level-history-row .field { margin: 0; }
.fan-level-remove { margin-bottom: 1px; }
.fan-level-history-card { border-color: rgba(245,158,11,.37); background: linear-gradient(135deg, rgba(245,158,11,.055), transparent 58%); }
.fan-level-history-list { display: grid; gap: 8px; margin-top: 14px; }
.fan-level-history-item { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.018); }
.fan-level-history-item .spacer { flex: 1; }
.fan-level-history-level { display: flex; align-items: baseline; justify-content: center; min-width: 52px; color: var(--amber); }
.fan-level-history-level strong { font-size: 23px; }
.fan-level-history-level span { font-size: 10px; }
.fan-level-history-days { min-width: 68px; text-align: right; }
.fan-level-history-days strong { color: var(--green); font-size: 21px; }
.fan-level-history-days span { display: block; color: var(--text-mute); font-size: 9px; }
.fan-consumption-overview { border-color: rgba(34,197,94,.42); background: linear-gradient(135deg, rgba(34,197,94,.065), rgba(6,182,212,.025) 58%, transparent); }
.fan-consumption-block + .fan-consumption-block { margin-top: 16px; padding-top: 15px; border-top: 1px dashed var(--line-strong); }
.fan-consumption-block > h4 { margin: 0 0 10px; color: var(--text-dim); font-size: 12px; letter-spacing: .4px; }
.fan-consumption-return { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.fan-consumption-return > div, .fan-consumption-behavior > div { padding: 11px 12px; border: 1px solid rgba(34,197,94,.22); border-radius: 10px; background: rgba(34,197,94,.045); }
.fan-consumption-return span, .fan-consumption-return small, .fan-consumption-behavior span, .fan-consumption-behavior small { display: block; color: var(--text-mute); font-size: 9.5px; }
.fan-consumption-return strong, .fan-consumption-behavior strong { display: block; margin: 5px 0 3px; color: var(--green); font-size: 18px; overflow-wrap: anywhere; }
.fan-consumption-behavior { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.fan-consumption-behavior strong { font-size: 13px; }
.fan-expense-records { border-color: rgba(6,182,212,.36); background: linear-gradient(135deg, rgba(6,182,212,.05), transparent 62%); }
.fan-contact-info { border-color: rgba(99,102,241,.32); }
.fan-contact-grid { align-items: start; }
.fan-expense-list { display: grid; gap: 9px; }
.fan-expense-item { display: flex; align-items: center; gap: 11px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(6,182,212,.035); }
.fan-expense-item .spacer { flex: 1; }
.my-overview-hero { display: grid; grid-template-columns: 1.45fr .75fr; gap: 18px; }
.my-overview-hero-card { position: relative; overflow: hidden; padding: 24px; border: 1px solid rgba(99,102,241,.34); border-radius: 18px; background: linear-gradient(135deg, rgba(99,102,241,.2), rgba(6,182,212,.08)); }
.my-overview-hero-card h2 { margin: 6px 0 8px; font-size: 28px; }
.my-overview-today { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 18px; }
.my-countdown-spotlight { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 16px; }
.my-countdown-heading { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; color: var(--text); font-size: 16px; font-weight: 800; }
.my-countdown-card { display: flex; align-items: center; gap: 14px; min-height: 122px; padding: 18px 20px; border: 1px solid rgba(99,102,241,.42); border-radius: 16px; background: linear-gradient(135deg, rgba(99,102,241,.17), rgba(6,182,212,.06)); box-shadow: 0 12px 28px rgba(30,64,175,.12); }
.my-countdown-card.birthday { border-color: rgba(245,158,11,.44); background: linear-gradient(135deg, rgba(245,158,11,.16), rgba(236,72,153,.055)); }
.my-countdown-card.urgent { border-color: rgba(239,68,68,.68); box-shadow: 0 0 0 1px rgba(239,68,68,.12), 0 12px 30px rgba(239,68,68,.16); }
.my-countdown-icon { display: grid; place-items: center; flex: 0 0 52px; height: 52px; border-radius: 15px; background: rgba(255,255,255,.07); font-size: 27px; }
.my-countdown-label { color: var(--text-dim); font-size: 12px; font-weight: 650; }
.my-countdown-value { margin-top: 5px; color: var(--text); font-size: 29px; font-weight: 850; letter-spacing: -.02em; }
.my-countdown-meta { margin-top: 5px; color: var(--text-mute); font-size: 10.5px; }
.my-countdown-card .spacer { flex: 1; }
.fan-countdown-urgent { box-shadow: 0 0 0 2px rgba(239,68,68,.16), 0 0 16px rgba(239,68,68,.22); }
.my-today-live-card {
  margin-top: 16px; border-color: rgba(245,158,11,.52);
  background: linear-gradient(135deg, rgba(245,158,11,.12), rgba(99,102,241,.055) 48%, rgba(6,182,212,.035));
  box-shadow: inset 4px 0 0 rgba(245,158,11,.76), 0 16px 34px rgba(120,76,8,.08);
}
.my-today-live-head { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.my-today-live-head > div:first-child { flex: 1; min-width: 280px; }
.my-today-live-head h2 { margin: 4px 0; font-size: 23px; }
.my-streamer-type-row { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 14px; padding: 11px 12px; border: 1px solid rgba(99,102,241,.24); border-radius: 11px; background: rgba(99,102,241,.045); }
.my-streamer-type-row strong { display: block; font-size: 12px; }
.my-streamer-type-row .spacer { flex: 1; }
.my-streamer-type-switch { display: flex; gap: 7px; flex-wrap: wrap; }
.my-live-primary-actions { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; margin-top: 12px; padding-top: 12px; border-top: 1px dashed var(--line); }
.my-live-setup-empty { margin-top: 12px; }
.my-today-live-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; margin-top: 16px; }
.my-today-live-grid.entertainment-mode .my-today-live-money:first-child { grid-column: span 2; }
.my-today-live-grid > div { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.022); }
.my-today-live-grid span, .my-today-live-notes span { display: block; color: var(--text-mute); font-size: 9.5px; }
.my-today-live-grid strong { display: block; margin-top: 5px; font-size: 17px; overflow-wrap: anywhere; }
.my-today-live-grid small { color: var(--text-mute); font-size: 9px; font-weight: 500; }
.my-today-live-grid .my-today-live-money { border-color: rgba(245,158,11,.32); background: rgba(245,158,11,.055); }
.my-today-live-grid .my-today-live-money strong { color: var(--amber); font-size: 23px; }
.my-today-live-grid .my-today-live-money small { display: block; margin-top: 4px; }
.my-today-live-notes { display: grid; grid-template-columns: 1fr 1.2fr 1.2fr 1.2fr; gap: 9px; margin-top: 10px; }
.my-today-live-notes > div { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(99,102,241,.028); }
.my-today-live-notes strong, .my-today-live-notes p { display: block; margin: 5px 0 0; overflow-wrap: anywhere; font-size: 12px; line-height: 1.6; }
.my-today-live-notes small { display: block; margin-top: 4px; color: var(--text-mute); font-size: 9.5px; }
.my-today-live-note { margin-top: 10px; padding: 12px; border: 1px solid rgba(245,158,11,.28); border-radius: 11px; background: rgba(245,158,11,.045); }
.my-today-live-note span { display: block; color: var(--text-mute); font-size: 9.5px; }
.my-today-live-note p { margin: 5px 0 0; color: var(--text); font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.my-today-fan-maintenance { margin-top: 10px; padding: 13px; border: 1px solid rgba(34,211,238,.3); border-radius: 11px; background: linear-gradient(135deg, rgba(34,211,238,.055), rgba(99,102,241,.025)); }
.my-today-fan-maintenance-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.my-today-fan-maintenance-head > div { flex: 1; min-width: 180px; }
.my-today-fan-maintenance-head span { display: block; color: var(--text-mute); font-size: 9.5px; }
.my-today-fan-maintenance-head strong { display: block; margin-top: 4px; font-size: 13px; }
.my-today-fan-maintenance-list { display: grid; gap: 8px; margin-top: 10px; }
.my-today-fan-maintenance-item { padding: 10px 11px; border: 1px solid rgba(34,211,238,.2); border-radius: 9px; background: rgba(255,255,255,.02); }
.my-today-fan-maintenance-item > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.my-today-fan-maintenance-item p { margin: 7px 0 0; color: var(--text-dim); font-size: 12px; line-height: 1.65; white-space: pre-wrap; }
.my-today-fan-empty { margin-top: 9px; line-height: 1.65; }
.my-live-career-panel { margin-top: 16px; border-color: rgba(34,197,94,.42); background: linear-gradient(135deg, rgba(34,197,94,.075), rgba(99,102,241,.035) 55%, transparent); box-shadow: inset 4px 0 0 rgba(34,197,94,.66); }
.my-live-career-panel .my-live-metric { border-color: rgba(34,197,94,.2); background: rgba(34,197,94,.035); }
.my-live-info-intro { border-color: rgba(245,158,11,.38); background: rgba(245,158,11,.055); }
.my-live-form-section { margin-top: 15px; padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: rgba(99,102,241,.025); }
.my-live-fan-maintenance-form { border-color: rgba(34,211,238,.32); background: linear-gradient(135deg, rgba(34,211,238,.045), rgba(99,102,241,.02)); }
.my-live-fan-existing { display: grid; gap: 8px; margin-bottom: 13px; padding: 11px; border: 1px solid rgba(34,211,238,.22); border-radius: 10px; background: rgba(6,182,212,.035); }
.my-live-fan-existing-item { padding: 9px 10px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.02); }
.my-live-fan-existing-item > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.my-live-fan-existing-item p { margin: 6px 0 0; color: var(--text-dim); font-size: 12px; line-height: 1.6; white-space: pre-wrap; }
.my-live-daily-quick-record { margin-top: 13px; padding: 14px; border: 1px solid rgba(245,158,11,.28); border-radius: 12px; background: rgba(245,158,11,.035); }
.my-live-daily-quick-record .fan-daily-update-head { align-items: flex-start; }
.my-live-daily-quick-record .fan-daily-update-head h3 { margin: 3px 0 0; font-size: 16px; }
.my-live-daily-quick-record .fan-daily-update-head p { margin: 5px 0 0; color: var(--text-mute); font-size: 10px; line-height: 1.55; }
.my-live-fan-entry-list { display: grid; gap: 11px; margin-top: 13px; }
.my-live-fan-entry-empty { padding: 18px 14px; border: 1px dashed rgba(34,211,238,.26); border-radius: 11px; text-align: center; background: rgba(34,211,238,.025); }
.my-live-fan-entry .fan-daily-update-head > div:nth-child(2) { flex: 1; min-width: 190px; }
.my-live-recent-fans { margin-bottom: 13px; padding: 12px; border: 1px solid rgba(245,158,11,.26); border-radius: 11px; background: rgba(245,158,11,.035); }
.my-live-recent-fans-title { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.my-live-recent-fans-title strong { font-size: 12px; }
.my-live-recent-fans-title span { color: var(--text-mute); font-size: 9.5px; }
.my-live-recent-fans-list { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 9px; }
.my-live-recent-fan { cursor: pointer; }
.my-live-recent-fan small { margin-left: 4px; color: var(--text-mute); font-size: 9px; }
.my-live-fan-search-wrap { position: relative; }
.my-live-fan-search-results { position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 5px); max-height: 280px; overflow-y: auto; padding: 6px; border: 1px solid var(--line-strong); border-radius: 11px; background: var(--panel-solid); box-shadow: 0 18px 42px rgba(0,0,0,.3); }
.my-live-fan-search-item { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(140px, 1.5fr) auto; align-items: center; gap: 8px; width: 100%; padding: 9px 10px; border: 0; border-bottom: 1px solid var(--line); background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.my-live-fan-search-item:last-child { border-bottom: 0; }
.my-live-fan-search-item:hover, .my-live-fan-search-item:focus-visible { border-radius: 8px; background: rgba(99,102,241,.1); }
.my-live-fan-search-item strong { font-size: 12px; }
.my-live-fan-search-item span { color: var(--text-mute); font-size: 10px; }
.my-live-fan-search-item em { color: var(--cyan); font-size: 9.5px; font-style: normal; }
.my-live-fan-search-empty { padding: 14px; color: var(--text-mute); text-align: center; font-size: 11px; }
.my-live-form-heading { display: flex; align-items: center; gap: 10px; margin-bottom: 13px; }
.my-live-form-heading > span { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(245,158,11,.14); color: var(--amber); font-size: 11px; font-weight: 800; }
.my-live-form-heading strong { display: block; }
.my-live-form-heading small { display: block; margin-top: 3px; color: var(--text-mute); font-size: 10px; }
.my-total-dashboard { margin-top: 16px; border-color: rgba(99,102,241,.35); background: linear-gradient(135deg, rgba(99,102,241,.065), rgba(6,182,212,.025)); }
.my-dashboard-kpi-strip { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; margin-top: 15px; }
.my-dashboard-kpi-strip > div { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.018); }
.my-dashboard-kpi-strip span { display: block; color: var(--text-mute); font-size: 10px; }
.my-dashboard-kpi-strip strong { display: block; margin-top: 6px; font-size: 21px; }
.my-dashboard-kpi-strip em { display: block; margin-top: 4px; overflow: hidden; color: var(--text-dim); font-size: 10px; font-style: normal; text-overflow: ellipsis; white-space: nowrap; }
.my-dashboard-income-strip { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; margin-top: 11px; }
.my-dashboard-income-strip > div { min-width: 0; padding: 12px; border: 1px solid rgba(34,197,94,.28); border-radius: 10px; background: linear-gradient(145deg, rgba(34,197,94,.08), rgba(255,255,255,.015) 70%); }
.my-dashboard-income-strip span, .my-dashboard-income-strip small { display: block; color: var(--text-mute); font-size: 9px; }
.my-dashboard-income-strip strong { display: block; margin: 5px 0 3px; color: var(--green); font-size: 19px; overflow-wrap: anywhere; }
.my-dashboard-income-strip small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-dashboard-metric-notes { display: flex; gap: 8px 18px; flex-wrap: wrap; margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: rgba(99,102,241,.035); color: var(--text-mute); font-size: 9.5px; line-height: 1.55; }
.my-dashboard-metric-notes strong { color: var(--text-dim); }
.my-dashboard-kpi.assessment-completion { border-color: rgba(99,102,241,.35); background: linear-gradient(145deg, rgba(99,102,241,.09), rgba(255,255,255,.018) 70%); }
.my-total-dashboard-body { display: grid; grid-template-columns: minmax(300px, .9fr) minmax(320px, 1.1fr); align-items: center; gap: 20px; margin-top: 14px; }
.my-overview-radar { display: flex; justify-content: center; align-items: center; min-height: 330px; }
.my-overview-radar svg { width: min(100%, 340px); height: auto; }
.my-overview-chart-list { display: grid; gap: 12px; }
.my-overview-chart-row > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.my-overview-chart-row span { color: var(--text-dim); font-size: 12px; }
.my-overview-chart-row strong { font-size: 13px; }
.my-overview-chart-row small { display: block; margin-top: 5px; color: var(--text-mute); font-size: 9.5px; line-height: 1.5; }
.my-overview-chart-row .bar { height: 9px; border-radius: 999px; background: rgba(148,163,184,.15); overflow: hidden; }
.my-overview-chart-row .bar i { display: block; height: 100%; border-radius: inherit; }
.my-dashboard-status-line { display: flex; align-items: center; gap: 22px; margin-top: 16px; padding: 14px 16px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.018); }
.my-status-donut { display: grid; place-items: center; flex: 0 0 104px; width: 104px; height: 104px; border-radius: 50%; }
.my-status-donut > div { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; background: var(--bg-soft, #111827); text-align: center; }
.my-status-donut strong { font-size: 20px; }
.my-status-donut span { color: var(--text-mute); font-size: 8px; }
.my-status-legend { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); flex: 1; gap: 10px; }
.my-status-legend > div { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 5px 7px; }
.my-status-legend i { width: 9px; height: 9px; border-radius: 3px; }
.my-status-legend span { color: var(--text-dim); font-size: 11px; }
.my-status-legend strong { grid-column: 2; font-size: 14px; }
.my-dashboard-detail-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.my-dashboard-detail-card { min-width: 0; padding: 14px; border: 1px solid var(--line-strong); border-radius: 12px; background: rgba(255,255,255,.018); box-shadow: inset 0 2px 0 rgba(99,102,241,.14); }
.my-dashboard-detail-card.live-business { border-color: rgba(34,197,94,.35); background: linear-gradient(135deg, rgba(34,197,94,.07), transparent 65%); }
.my-dashboard-detail-card.live-execution { border-color: rgba(6,182,212,.35); background: linear-gradient(135deg, rgba(6,182,212,.07), transparent 65%); }
.my-dashboard-detail-card.assessment { border-color: rgba(99,102,241,.35); }
.my-dashboard-detail-card.companion { border-color: rgba(236,72,153,.32); }
.my-dashboard-detail-card.benchmark { border-color: rgba(245,158,11,.34); }
.my-dashboard-detail-card.fans { border-color: rgba(139,92,246,.34); }
.my-dashboard-detail-card.profile { grid-column: 1 / -1; border-color: rgba(148,163,184,.32); }
.my-dashboard-detail-head { display: flex; align-items: center; gap: 10px; padding-bottom: 10px; border-bottom: 1px solid var(--line); }
.my-dashboard-detail-head > span { display: grid; place-items: center; flex: 0 0 34px; width: 34px; height: 34px; border-radius: 10px; background: rgba(99,102,241,.11); font-size: 18px; }
.my-dashboard-detail-head h3 { margin: 0; font-size: 14.5px; }
.my-dashboard-detail-head small { display: block; margin-top: 2px; color: var(--text-mute); font-size: 9.5px; }
.my-dashboard-detail-values { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.my-dashboard-detail-values > div { min-width: 0; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: rgba(255,255,255,.016); }
.my-dashboard-detail-values span { display: block; color: var(--text-mute); font-size: 9px; }
.my-dashboard-detail-values strong { display: block; margin-top: 4px; overflow-wrap: anywhere; font-size: 12.5px; }
.my-overview-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-top: 16px; }
.my-summary-card { padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: rgba(99,102,241,.035); }
.my-summary-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.my-summary-head h3 { margin: 0; font-size: 17px; }
.my-summary-head .spacer { flex: 1; }
.my-summary-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: rgba(99,102,241,.12); font-size: 19px; }
.my-summary-kpis { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 15px; }
.my-summary-kpis > div { padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.015); }
.my-summary-kpis span { display: block; color: var(--text-mute); font-size: 9.5px; }
.my-summary-kpis strong { display: block; margin-top: 5px; font-size: 16px; }
.my-summary-latest { display: flex; align-items: center; gap: 10px; margin-top: 13px; padding: 11px 12px; border: 1px solid var(--line); border-radius: 10px; }
.my-summary-latest > div:first-child { min-width: 0; }
.my-summary-latest > div:first-child > span { display: block; color: var(--text-mute); font-size: 10px; }
.my-summary-latest > div:first-child > strong { display: block; margin-top: 3px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.my-summary-latest .spacer { flex: 1; }
.my-summary-empty { margin-top: 14px; padding: 13px; border: 1px dashed var(--line); border-radius: 10px; color: var(--text-mute); font-size: 12px; }
.my-birthday-mini { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
.my-birthday-mini button { padding: 10px 11px; text-align: left; border: 1px solid rgba(245,158,11,.25); border-radius: 9px; background: rgba(245,158,11,.045); color: var(--text); }
.my-birthday-mini span, .my-birthday-mini small { display: block; color: var(--text-mute); font-size: 9.5px; }
.my-birthday-mini strong { display: block; margin: 3px 0; }
.my-live-metrics { display: grid; grid-template-columns: repeat(auto-fit, minmax(165px, 1fr)); gap: 12px; margin-top: 16px; }
.my-live-metric { padding: 17px; border: 1px solid var(--line); border-radius: 13px; background: rgba(99,102,241,.035); }
.my-live-metric .k { color: var(--text-mute); font-size: 11px; }
.my-live-metric .v { margin-top: 7px; font-size: 25px; font-weight: 800; }
.my-live-history { display: grid; gap: 8px; }
.my-live-history-row { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; }
.my-period-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.my-period-card { padding: 16px; border: 1px solid var(--line); border-radius: 13px; background: linear-gradient(135deg, rgba(99,102,241,.055), rgba(6,182,212,.025)); }
.my-period-values { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 13px; }
.my-period-values > div { padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: rgba(255,255,255,.015); }
.my-period-values span { display: block; color: var(--text-mute); font-size: 9.5px; }
.my-period-values strong { display: block; margin-top: 5px; font-size: 20px; }
.streamer-info-hero { display: flex; align-items: center; gap: 16px; padding: 22px; border: 1px solid rgba(99,102,241,.3); border-radius: 17px; background: linear-gradient(135deg, rgba(99,102,241,.14), rgba(6,182,212,.05)); }
.streamer-info-hero > div:first-child { flex: 1; }
.streamer-info-hero h2 { margin: 4px 0 7px; font-size: 25px; }
.streamer-info-hero p { margin: 0; color: var(--text-dim); }
.streamer-info-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.streamer-info-card { padding: 17px; border: 1px solid var(--line); border-radius: 14px; background: rgba(99,102,241,.035); }
.streamer-info-head { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.streamer-info-head h3 { margin: 0; font-size: 18px; }
.streamer-info-head .spacer { flex: 1; }
.streamer-avatar { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 12px; background: rgba(99,102,241,.16); color: var(--primary); font-weight: 800; }
.streamer-account-id { display: flex; align-items: center; gap: 10px; margin-top: 13px; padding: 10px 12px; border: 1px solid rgba(6,182,212,.25); border-radius: 10px; background: rgba(6,182,212,.045); }
.streamer-account-id span { color: var(--text-mute); font-size: 10px; }
.streamer-account-id strong { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }
.streamer-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 12px; }
.streamer-info-grid > div { padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; }
.streamer-info-grid span { display: block; color: var(--text-mute); font-size: 9.5px; }
.streamer-info-grid strong { display: block; margin-top: 4px; font-size: 12.5px; }
.streamer-info-foot { display: flex; align-items: center; gap: 10px; margin-top: 12px; }
.streamer-info-foot .spacer { flex: 1; }
.admin-overview-section { border-color: rgba(99,102,241,.3); background: linear-gradient(135deg, rgba(99,102,241,.045), transparent 58%); }
.admin-high-spender-board { border-color: rgba(245,158,11,.55); background: linear-gradient(135deg, rgba(245,158,11,.11), rgba(236,72,153,.035) 48%, transparent); box-shadow: inset 4px 0 0 rgba(245,158,11,.8); }
.admin-threshold-editor { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; padding: 8px 10px; border: 1px solid rgba(245,158,11,.28); border-radius: 10px; background: rgba(245,158,11,.055); }
.admin-threshold-editor label { color: var(--text-dim); font-size: 11px; }
.admin-threshold-editor .input { width: 128px; min-height: 34px; padding: 6px 9px; }
.admin-high-spender-summary { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.admin-high-spender-summary > div { padding: 11px 12px; border: 1px solid rgba(245,158,11,.2); border-radius: 10px; background: rgba(255,255,255,.02); }
.admin-high-spender-summary span { display: block; color: var(--text-mute); font-size: 9.5px; }
.admin-high-spender-summary strong { display: block; margin-top: 5px; color: var(--amber); font-size: 19px; }
.admin-high-spender-list { display: grid; gap: 7px; margin-top: 11px; }
.admin-high-spender-row { display: grid; grid-template-columns: 34px 1.2fr 1fr .85fr .72fr .72fr 1.05fr; align-items: center; gap: 10px; width: 100%; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(99,102,241,.025); color: var(--text); text-align: left; cursor: pointer; }
.admin-high-spender-row:hover { border-color: rgba(245,158,11,.45); background: rgba(245,158,11,.045); }
.admin-high-spender-rank { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 8px; background: rgba(245,158,11,.14); color: var(--amber); font-weight: 800; }
.admin-high-spender-name, .admin-high-spender-owner, .admin-high-spender-money, .admin-high-spender-meta { min-width: 0; }
.admin-high-spender-name strong, .admin-high-spender-name small, .admin-high-spender-owner strong, .admin-high-spender-owner small, .admin-high-spender-money strong, .admin-high-spender-money small, .admin-high-spender-meta small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-high-spender-name small, .admin-high-spender-owner small, .admin-high-spender-money small, .admin-high-spender-meta small { color: var(--text-mute); font-size: 9px; }
.admin-high-spender-owner strong, .admin-high-spender-money strong { margin: 2px 0; font-size: 12px; }
.admin-high-spender-money strong { color: var(--amber); }
.admin-high-spender-meta { color: var(--text-dim); font-size: 11px; }
.admin-user-growth { border-color: rgba(6,182,212,.42); background: linear-gradient(135deg, rgba(6,182,212,.075), rgba(99,102,241,.035) 48%, transparent); box-shadow: inset 4px 0 0 rgba(6,182,212,.7); }
.admin-user-growth-kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.admin-user-growth-kpis > div { min-width: 0; padding: 13px; border: 1px solid rgba(6,182,212,.25); border-radius: 11px; background: linear-gradient(145deg, rgba(6,182,212,.055), rgba(255,255,255,.012)); }
.admin-user-growth-kpis > div > span { display: block; color: var(--text-mute); font-size: 9.5px; }
.admin-user-growth-kpis > div > strong { display: block; margin: 6px 0; color: var(--cyan); font-size: 25px; }
.admin-user-growth-kpis > div > strong small { color: var(--text-mute); font-size: 10px; font-weight: 500; }
.admin-user-growth-comparisons { display: flex; flex-wrap: wrap; gap: 4px 9px; }
.admin-user-growth-comparisons span { color: var(--text-mute); font-size: 9px; }
.admin-user-growth-comparisons em, .admin-user-growth-comparison-table em { color: var(--text-dim); font-style: normal; font-weight: 700; }
.admin-user-growth-comparisons em.good, .admin-user-growth-comparison-table em.good { color: var(--green); }
.admin-user-growth-comparisons em.bad, .admin-user-growth-comparison-table em.bad { color: var(--red); }
.admin-user-growth-main { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(400px, .85fr); gap: 12px; margin-top: 12px; }
.admin-user-growth-trend-card, .admin-user-growth-comparison-card, .admin-user-growth-recent, .admin-user-growth-monthly, .admin-user-growth-active-list { min-width: 0; padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.017); }
.admin-user-growth-chart { display: grid; grid-template-columns: repeat(30, minmax(4px, 1fr)); align-items: end; gap: 4px; height: 188px; margin-top: 14px; }
.admin-user-growth-bar { display: grid; grid-template-rows: 1fr 18px; height: 100%; min-width: 0; }
.admin-user-growth-bar > div { display: flex; align-items: flex-end; justify-content: center; gap: 2px; min-height: 0; }
.admin-user-growth-bar i { display: block; width: 44%; min-height: 2px; border-radius: 3px 3px 1px 1px; }
.admin-user-growth-bar i.new { background: var(--green); }
.admin-user-growth-bar i.active { background: var(--cyan); }
.admin-user-growth-bar small { padding-top: 5px; color: var(--text-mute); font-size: 7.5px; text-align: center; white-space: nowrap; }
.admin-user-growth-legend { display: flex; gap: 12px; margin-top: 9px; color: var(--text-mute); font-size: 9.5px; }
.admin-user-growth-legend span { display: flex; align-items: center; gap: 5px; }
.admin-user-growth-legend i { width: 9px; height: 9px; border-radius: 3px; }
.admin-user-growth-legend i.new { background: var(--green); }
.admin-user-growth-legend i.active { background: var(--cyan); }
.admin-user-growth-comparison-table { display: grid; margin-top: 12px; border: 1px solid var(--line); border-radius: 9px; overflow: hidden; }
.admin-user-growth-comparison-table > div { display: grid; grid-template-columns: minmax(72px, 1fr) 42px minmax(78px, 1fr) minmax(88px, 1fr) 48px 48px; align-items: center; gap: 7px; padding: 8px 9px; border-bottom: 1px solid var(--line); font-size: 10px; }
.admin-user-growth-comparison-table > div:last-child { border-bottom: 0; }
.admin-user-growth-comparison-table .head { color: var(--text-mute); font-size: 8.5px; background: rgba(99,102,241,.04); }
.admin-user-growth-comparison-table small { color: var(--text-mute); }
.admin-user-growth-comparison-table em { text-align: right; }
.admin-user-growth-health { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 10px; }
.admin-user-growth-health > div { padding: 8px; border: 1px solid var(--line); border-radius: 8px; background: rgba(6,182,212,.025); }
.admin-user-growth-health span { display: block; color: var(--text-mute); font-size: 8.5px; }
.admin-user-growth-health strong { display: block; margin-top: 4px; font-size: 12px; }
.admin-user-growth-bottom { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(350px, .85fr); gap: 12px; margin-top: 12px; }
.admin-user-growth-table-wrap { margin-top: 10px; overflow-x: auto; }
.admin-user-growth-table-wrap .table { min-width: 720px; }
.admin-user-growth-table-wrap .admin-income-rank-link small { display: block; }
.admin-user-growth-side { display: grid; gap: 12px; min-width: 0; }
.admin-user-growth-month-row { display: grid; grid-template-columns: 62px repeat(2, 1fr) 50px; align-items: center; gap: 7px; margin-top: 7px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; font-size: 10px; }
.admin-user-growth-month-row span { color: var(--text-mute); }
.admin-user-growth-month-row em { color: var(--cyan); font-style: normal; font-weight: 700; text-align: right; }
.admin-user-growth-active-row { display: grid; grid-template-columns: 26px minmax(110px, 1fr) minmax(90px, .8fr) 82px; align-items: center; gap: 8px; width: 100%; margin-top: 7px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; background: rgba(6,182,212,.025); color: var(--text); text-align: left; cursor: pointer; }
.admin-user-growth-active-row:hover { border-color: rgba(6,182,212,.4); background: rgba(6,182,212,.055); }
.admin-user-growth-active-row > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: rgba(6,182,212,.12); color: var(--cyan); font-size: 9px; font-weight: 800; }
.admin-user-growth-active-row strong, .admin-user-growth-active-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-user-growth-active-row small { color: var(--text-mute); font-size: 8.5px; }
.admin-user-growth-active-row em { color: var(--text-dim); font-size: 9.5px; font-style: normal; text-align: right; }
.admin-income-ranking { border-color: rgba(6,182,212,.38); background: linear-gradient(135deg, rgba(6,182,212,.07), rgba(99,102,241,.035) 52%, transparent); }
.admin-income-growth { border-color: rgba(34,197,94,.4); background: linear-gradient(135deg, rgba(34,197,94,.075), rgba(6,182,212,.045) 50%, transparent); }
.admin-income-data-empty { display: grid; gap: 5px; margin-bottom: 12px; padding: 12px 14px; border: 1px solid rgba(245,158,11,.36); border-radius: 11px; background: rgba(245,158,11,.07); color: var(--text-dim); font-size: 12px; line-height: 1.65; }
.admin-income-data-empty strong { color: var(--amber); }
.admin-income-growth-kpis { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 9px; }
.admin-income-growth-kpis > div { min-width: 0; padding: 12px; border: 1px solid var(--line); border-radius: 11px; background: rgba(255,255,255,.02); }
.admin-income-growth-kpis span, .admin-income-growth-kpis small { display: block; overflow: hidden; color: var(--text-mute); font-size: 9.5px; text-overflow: ellipsis; white-space: nowrap; }
.admin-income-growth-kpis strong { display: block; margin: 6px 0 5px; color: var(--green); font-size: 21px; }
.admin-income-growth-kpis small.good, .admin-income-comparison-row em.good, .admin-income-growth-row em.good { color: var(--green); }
.admin-income-growth-kpis small.bad, .admin-income-comparison-row em.bad, .admin-income-growth-row em.bad { color: var(--red); }
.admin-income-growth-main { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(330px, .85fr); gap: 12px; margin-top: 12px; }
.admin-income-trend-card, .admin-income-comparison-card, .admin-income-coverage, .admin-income-growth-leaders { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: rgba(255,255,255,.017); }
.admin-income-subhead { display: flex; align-items: center; gap: 9px; flex-wrap: wrap; }
.admin-income-subhead h3 { margin: 0; font-size: 15px; }
.admin-income-subhead .spacer { flex: 1; }
.admin-income-trend { display: grid; grid-template-columns: repeat(30, minmax(4px, 1fr)); align-items: end; gap: 4px; height: 176px; margin-top: 16px; padding-top: 8px; }
.admin-income-trend-item { display: grid; grid-template-rows: 1fr 18px; min-width: 0; height: 100%; }
.admin-income-trend-item > div { display: flex; align-items: flex-end; justify-content: center; min-height: 0; border-radius: 5px 5px 2px 2px; background: rgba(148,163,184,.055); }
.admin-income-trend-item i { display: block; width: 100%; min-height: 2px; border-radius: 4px 4px 2px 2px; background: linear-gradient(180deg, var(--green), var(--cyan)); }
.admin-income-trend-item small { padding-top: 5px; color: var(--text-mute); font-size: 7.5px; text-align: center; white-space: nowrap; }
.admin-income-comparison-list { display: grid; gap: 7px; margin-top: 13px; }
.admin-income-comparison-row { display: grid; grid-template-columns: 80px minmax(90px, 1fr) minmax(105px, 1.2fr) 58px; align-items: center; gap: 7px; padding: 8px 9px; border: 1px solid var(--line); border-radius: 8px; }
.admin-income-comparison-row > span { color: var(--text-dim); font-size: 10.5px; }
.admin-income-comparison-row > strong { font-size: 13px; }
.admin-income-comparison-row > small { overflow: hidden; color: var(--text-mute); font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.admin-income-comparison-row > em, .admin-income-growth-row > em { font-size: 11px; font-style: normal; font-weight: 750; text-align: right; }
.admin-income-growth-bottom { display: grid; grid-template-columns: minmax(300px, .75fr) minmax(0, 1.25fr); gap: 12px; margin-top: 12px; }
.admin-income-coverage { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.admin-income-coverage > div { padding: 10px; border: 1px solid var(--line); border-radius: 9px; background: rgba(99,102,241,.03); }
.admin-income-coverage span { display: block; color: var(--text-mute); font-size: 9.5px; }
.admin-income-coverage strong { display: block; margin-top: 5px; font-size: 16px; }
.admin-income-growth-leaders { min-width: 0; }
.admin-income-growth-row { display: grid; grid-template-columns: 26px minmax(120px, 1fr) minmax(130px, .9fr) 112px; align-items: center; gap: 8px; width: 100%; margin-top: 7px; padding: 9px 10px; border: 1px solid var(--line); border-radius: 9px; background: rgba(34,197,94,.025); color: var(--text); text-align: left; cursor: pointer; }
.admin-income-growth-row:hover { border-color: rgba(34,197,94,.4); background: rgba(34,197,94,.055); }
.admin-income-growth-row > span { display: grid; place-items: center; width: 24px; height: 24px; border-radius: 7px; background: rgba(34,197,94,.12); color: var(--green); font-size: 10px; font-weight: 800; }
.admin-income-growth-row strong, .admin-income-growth-row small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-income-growth-row small { color: var(--text-mute); font-size: 9px; }
.admin-income-growth-row em small { margin-top: 3px; }
.admin-income-growth-empty { margin-top: 12px; padding: 16px; border: 1px dashed var(--line); border-radius: 9px; color: var(--text-mute); font-size: 11px; text-align: center; }
.admin-income-filter { display: flex; gap: 7px; flex-wrap: wrap; }
.admin-income-rank-head, .admin-income-rank-row { display: grid; grid-template-columns: 46px minmax(175px, 1.45fr) minmax(120px, .9fr) 92px minmax(120px, .85fr) 118px; align-items: center; gap: 10px; }
.admin-income-rank-head { padding: 8px 12px; color: var(--text-mute); font-size: 9.5px; }
.admin-income-rank-list { display: grid; gap: 7px; }
.admin-income-rank-row { padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: rgba(255,255,255,.018); }
.admin-income-rank-row.top-1 { border-color: rgba(245,158,11,.48); background: linear-gradient(90deg, rgba(245,158,11,.11), rgba(245,158,11,.025)); }
.admin-income-rank-row.top-2 { border-color: rgba(148,163,184,.4); background: linear-gradient(90deg, rgba(148,163,184,.09), rgba(148,163,184,.018)); }
.admin-income-rank-row.top-3 { border-color: rgba(217,119,6,.36); background: linear-gradient(90deg, rgba(217,119,6,.08), rgba(217,119,6,.015)); }
.admin-income-rank-number { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 9px; background: rgba(99,102,241,.1); color: var(--text-dim); font-size: 12px; font-weight: 800; }
.admin-income-rank-row.top-1 .admin-income-rank-number { background: rgba(245,158,11,.2); color: var(--amber); }
.admin-income-rank-row.top-2 .admin-income-rank-number { background: rgba(148,163,184,.18); color: var(--text); }
.admin-income-rank-row.top-3 .admin-income-rank-number { background: rgba(217,119,6,.16); color: #f59e0b; }
.admin-income-rank-name, .admin-income-rank-account, .admin-income-rank-days, .admin-income-rank-money { min-width: 0; }
.admin-income-rank-link { padding: 0; border: 0; background: transparent; color: var(--text); text-align: left; cursor: pointer; }
.admin-income-rank-link:hover strong { color: var(--primary); text-decoration: underline; text-underline-offset: 3px; }
.admin-income-rank-name strong, .admin-income-rank-name small, .admin-income-rank-account small, .admin-income-rank-days small, .admin-income-rank-days strong, .admin-income-rank-money small, .admin-income-rank-money strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.admin-income-rank-name small, .admin-income-rank-account, .admin-income-rank-days small, .admin-income-rank-money small, .admin-income-rank-date { color: var(--text-mute); font-size: 9.5px; }
.admin-income-rank-days strong, .admin-income-rank-money strong { margin-top: 2px; font-size: 12.5px; }
.admin-income-rank-money strong { color: var(--green); font-size: 16px; }
.admin-income-rank-date { text-align: right; }
.admin-income-expand { margin-top: 10px; }
.admin-module-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px; }
.admin-module-overview-card { padding: 15px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.018); }
.admin-module-title { display: flex; align-items: center; gap: 9px; }
.admin-module-title > span { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 10px; background: rgba(99,102,241,.11); font-size: 18px; }
.admin-module-title h3 { margin: 0; font-size: 16px; }
.admin-detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 7px; margin-top: 12px; }
.admin-detail-grid > div { padding: 9px; border: 1px solid var(--line); border-radius: 8px; }
.admin-detail-grid span { display: block; color: var(--text-mute); font-size: 9.5px; }
.admin-detail-grid strong { display: block; margin-top: 4px; font-size: 15px; }
.admin-module-actions { display: flex; gap: 7px; flex-wrap: wrap; margin-top: 12px; }
.admin-activity-trends { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.admin-mini-trend { padding: 12px; border: 1px solid var(--line); border-radius: 11px; }
.admin-mini-trend-title { display: flex; justify-content: space-between; margin-bottom: 9px; color: var(--text-dim); font-size: 11px; }
.admin-mini-trend-title strong { color: var(--text); font-size: 16px; }
.admin-mini-trend-row { display: grid; grid-template-columns: 34px 1fr 24px; align-items: center; gap: 6px; margin-top: 6px; color: var(--text-mute); font-size: 9px; }
.admin-mini-trend-row > div { height: 7px; overflow: hidden; border-radius: 999px; background: rgba(148,163,184,.13); }
.admin-mini-trend-row i { display: block; height: 100%; border-radius: inherit; }
.admin-mini-trend-row strong { color: var(--text-dim); text-align: right; }
.rest-weekday-grid { display: flex; gap: 7px; flex-wrap: wrap; }
.rest-weekday-option { position: relative; cursor: pointer; }
.rest-weekday-option input { position: absolute; opacity: 0; pointer-events: none; }
.rest-weekday-option span { display: block; padding: 7px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--text-dim); background: rgba(255,255,255,.02); font-size: 12px; }
.rest-weekday-option input:checked + span { border-color: rgba(99,102,241,.65); color: var(--primary); background: rgba(99,102,241,.13); }
.fan-due-list { display: flex; flex-direction: column; gap: 5px; }
.fan-detail-head h1 { margin: 10px 0 5px; font-size: 30px; }
.fan-priority-highlights { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 16px; }
.fan-priority-card { display: flex; align-items: center; gap: 13px; min-width: 0; padding: 16px 17px; border: 1px solid var(--line-strong); border-radius: 14px; background: var(--panel); box-shadow: var(--shadow-sm); }
.fan-priority-card.birthday { border-color: rgba(245,158,11,.45); background: linear-gradient(135deg, rgba(245,158,11,.12), rgba(236,72,153,.045)); }
.fan-priority-card.birthday.urgent { border-color: rgba(239,68,68,.7); box-shadow: 0 0 0 2px rgba(239,68,68,.1), var(--shadow-sm); }
.fan-priority-card.level { border-color: rgba(99,102,241,.42); background: linear-gradient(135deg, rgba(99,102,241,.13), rgba(139,92,246,.045)); }
.fan-priority-card.spend { border-color: rgba(34,197,94,.42); background: linear-gradient(135deg, rgba(34,197,94,.12), rgba(6,182,212,.04)); }
.fan-priority-icon { display: grid; place-items: center; flex: 0 0 46px; width: 46px; height: 46px; border-radius: 13px; background: rgba(255,255,255,.06); font-size: 23px; }
.fan-priority-card > div:last-child { min-width: 0; }
.fan-priority-card span, .fan-priority-card small { display: block; color: var(--text-mute); font-size: 10px; }
.fan-priority-card strong { display: block; margin: 4px 0; overflow: hidden; font-size: 20px; text-overflow: ellipsis; white-space: nowrap; }
.fan-priority-card.birthday strong { color: var(--amber); }
.fan-priority-card.level strong { color: var(--primary); }
.fan-priority-card.spend strong { color: var(--green); }
.fan-spending-highlight .stat, .fan-economy-grid .stat { border-color: rgba(34,197,94,.28); background: linear-gradient(145deg, rgba(34,197,94,.09), var(--panel-2) 64%); box-shadow: inset 0 3px 0 rgba(34,197,94,.34); }
.fan-spending-highlight .stat .v, .fan-economy-grid .stat .v { color: var(--green); }
.fan-preference-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; }
.fan-preference-grid > div { padding: 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel-2); }
.fan-preference-grid p { margin: 5px 0 0; color: var(--text-dim); white-space: pre-wrap; font-size: 12.5px; }
.fan-timeline { position: relative; padding-left: 20px; }
.fan-timeline::before { content: ""; position: absolute; left: 5px; top: 4px; bottom: 4px; width: 1px; background: var(--line-strong); }
.fan-timeline-item { position: relative; display: flex; margin-bottom: 17px; }
.fan-timeline-dot { position: absolute; left: -20px; top: 5px; width: 11px; height: 11px; border: 2px solid var(--panel-solid); border-radius: 50%; background: var(--cyan); box-shadow: 0 0 0 1px rgba(34,211,238,.5); }
.fan-timeline-content { flex: 1; padding: 11px 13px; border: 1px solid var(--line); border-radius: 11px; background: var(--panel-2); }
.fan-timeline-content > div:first-child { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.fan-timeline-content p { margin: 8px 0 0; white-space: pre-wrap; color: var(--text-dim); }
html[data-theme="light"] .fan-hero { background: linear-gradient(135deg, rgba(219,39,119,.07), rgba(180,83,9,.06)), #fff; }

/* ---------------- 核心档案与短视频方法 ---------------- */
.fan-known-days-card {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: baseline;
  gap: 7px;
  margin: 10px 0 12px;
  padding: 12px 14px;
  border: 1px solid rgba(236, 72, 153, .4);
  border-radius: 12px;
  background: linear-gradient(135deg, rgba(236,72,153,.12), rgba(99,102,241,.05));
}
.fan-known-days-card > span { color: var(--text-dim); font-size: 11px; }
.fan-known-days-card strong { color: var(--pink); font-size: 24px; line-height: 1; }
.fan-known-days-card strong small { font-size: 11px; }
.fan-known-days-card em { color: var(--text-mute); font-size: 10.5px; font-style: normal; }
.fan-known-days-hero {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 16px;
  padding: 16px 18px;
  border: 1px solid rgba(236,72,153,.4);
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(236,72,153,.11), rgba(99,102,241,.045));
}
.fan-known-days-icon {
  display: grid;
  place-items: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  border-radius: 14px;
  background: rgba(236,72,153,.15);
  font-size: 25px;
}
.fan-known-days-hero > div:last-child { min-width: 0; }
.fan-known-days-hero span { display: block; color: var(--text-dim); font-size: 11px; }
.fan-known-days-hero strong { display: block; margin: 3px 0; color: var(--pink); font-size: 30px; line-height: 1.1; }
.fan-known-days-hero strong small { font-size: 12px; }
.fan-known-days-hero p { margin: 0; color: var(--text-mute); font-size: 11px; }

.core-profile-hero,
.short-video-hero {
  display: flex;
  align-items: center;
  gap: 20px;
  min-height: 150px;
}
.core-profile-hero h2,
.short-video-hero h2 { margin: 5px 0 8px; font-size: 25px; }
.core-profile-hero p,
.short-video-hero p { margin: 0; max-width: 780px; }
.core-profile-completion {
  display: grid;
  place-items: center;
  flex: 0 0 110px;
  height: 110px;
  border: 1px solid rgba(99,102,241,.45);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(99,102,241,.2), rgba(99,102,241,.045));
}
.core-profile-completion strong { color: var(--primary); font-size: 25px; line-height: 1; }
.core-profile-completion span { color: var(--text-mute); font-size: 10px; }
.core-profile-section + .core-profile-section { margin-top: 16px; }

.core-profile-list-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  margin-top: 14px;
}
.core-profile-archive-card {
  position: relative;
  padding: 17px 18px;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(99,102,241,.045), rgba(34,211,238,.025));
  cursor: pointer;
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.core-profile-archive-card::before {
  content: "";
  position: absolute;
  inset: 12px auto 12px 0;
  width: 3px;
  border-radius: 0 4px 4px 0;
  background: transparent;
}
.core-profile-archive-card:hover {
  transform: translateY(-1px);
  border-color: rgba(99,102,241,.55);
  box-shadow: 0 8px 24px rgba(15,23,42,.12);
}
.core-profile-archive-card.selected {
  border-color: rgba(99,102,241,.78);
  background: linear-gradient(145deg, rgba(99,102,241,.13), rgba(34,211,238,.055));
  box-shadow: 0 0 0 2px rgba(99,102,241,.1);
}
.core-profile-archive-card.selected::before { background: var(--primary); }
.core-profile-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.core-profile-card-head strong { display: block; margin-top: 3px; font-size: 16px; }
.core-profile-card-kicker {
  color: var(--primary);
  font-size: 9.5px;
  font-weight: 700;
  letter-spacing: .1em;
}
.core-profile-card-purpose {
  margin-top: 12px;
  padding: 9px 11px;
  border-radius: 9px;
  background: rgba(15,23,42,.16);
  color: var(--text-dim);
  line-height: 1.6;
}
.core-profile-card-purpose span {
  display: inline-block;
  margin-right: 8px;
  color: var(--text-mute);
  font-size: 10px;
}
.core-profile-card-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 13px;
}
.core-profile-archive-shell {
  margin-top: 16px;
  border: 1px solid rgba(99,102,241,.48);
  border-radius: 17px;
  overflow: hidden;
  background: var(--panel-solid);
  box-shadow: 0 10px 34px rgba(15,23,42,.12);
}
.core-profile-archive-header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  padding: 22px 24px;
  border-bottom: 1px solid rgba(99,102,241,.28);
  background:
    radial-gradient(circle at 88% 12%, rgba(34,211,238,.13), transparent 30%),
    linear-gradient(135deg, rgba(99,102,241,.14), rgba(99,102,241,.035));
}
.core-profile-archive-header h2 { margin: 5px 0 10px; font-size: 23px; }
.core-profile-archive-purpose {
  display: flex;
  align-items: baseline;
  gap: 8px;
  color: var(--text-dim);
  line-height: 1.65;
}
.core-profile-archive-purpose strong {
  flex: 0 0 auto;
  color: var(--text-mute);
  font-size: 10px;
}
.core-profile-archive-meta,
.core-profile-archive-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.core-profile-archive-meta {
  flex-direction: column;
  align-items: flex-end;
}
.core-profile-archive-content { padding: 0 22px 8px; }
.core-profile-subsection {
  padding: 22px 2px;
}
.core-profile-subsection + .core-profile-subsection {
  border-top: 1px solid var(--line);
}
.core-profile-subsection .companion-section-title { margin-bottom: 14px; }
.core-profile-field-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}
.core-profile-read-field {
  min-width: 0;
  padding: 12px 14px;
  border-left: 2px solid rgba(99,102,241,.42);
  border-radius: 0 10px 10px 0;
  background: rgba(99,102,241,.035);
}
.core-profile-read-field + .core-profile-read-field { margin-top: 10px; }
.core-profile-field-grid .core-profile-read-field { margin-top: 0; }
.core-profile-read-field strong {
  display: block;
  margin-bottom: 6px;
  color: var(--primary);
  font-size: 11.5px;
}
.core-profile-read-field div {
  color: var(--text-dim);
  line-height: 1.75;
  white-space: normal;
}

.content-library-hero {
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
  min-height: 150px;
}
.content-library-hero > div:first-child { flex: 1; min-width: 280px; }
.content-library-hero h2 { margin: 5px 0 9px; font-size: 25px; }
.content-library-hero p { margin: 0; max-width: 760px; }
.content-library-stats {
  display: flex;
  gap: 10px;
}
.content-library-stats > div {
  min-width: 82px;
  padding: 11px 13px;
  border: 1px solid rgba(99,102,241,.3);
  border-radius: 12px;
  background: rgba(99,102,241,.07);
  text-align: center;
}
.content-library-stats strong { display: block; font-size: 22px; color: var(--primary); }
.content-library-stats span { color: var(--text-mute); font-size: 10px; }
.content-library-guide {
  display: grid;
  grid-template-columns: 1.2fr 1fr;
  gap: 24px;
  margin-top: 16px;
  border-color: rgba(34,211,238,.28);
  background: linear-gradient(135deg, rgba(34,211,238,.055), rgba(99,102,241,.025));
}
.content-library-guide h3 { margin: 5px 0 10px; font-size: 18px; }
.content-library-guide ul { margin: 0; padding-left: 18px; color: var(--text-dim); line-height: 1.8; }
.content-library-guide > div:last-child > strong { display: block; margin-bottom: 10px; }
.content-library-categories {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-bottom: 10px;
}
.content-library-categories .badge {
  border: 1px solid rgba(34,211,238,.25);
  cursor: pointer;
}
.content-library-browser { margin-top: 16px; }
.content-library-toolbar {
  display: grid;
  grid-template-columns: minmax(220px, 1.6fr) minmax(160px, .8fr) minmax(160px, .8fr) auto;
  gap: 12px;
  align-items: end;
  padding: 18px 20px;
  border-bottom: 1px solid var(--line);
}
.content-library-result {
  display: flex;
  align-items: baseline;
  gap: 6px;
  padding-bottom: 8px;
  white-space: nowrap;
}
.content-library-result strong { color: var(--primary); font-size: 21px; }
.content-library-result span { color: var(--text-mute); font-size: 10px; }
.content-library-owner-shortcuts {
  display: flex;
  align-items: flex-start;
  gap: 18px;
  margin-top: 16px;
}
.content-library-owner-shortcuts-title {
  flex: 0 0 210px;
  padding-top: 4px;
}
.content-library-owner-shortcuts-title strong { display: block; font-size: 16px; }
.content-library-owner-shortcuts-title span { color: var(--text-mute); font-size: 10.5px; }
.content-library-owner-shortcuts-list {
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 1;
  flex-wrap: wrap;
}
.content-library-owner-link {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  min-height: 34px;
  padding: 5px 11px 5px 6px;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  color: var(--text);
  font: inherit;
  font-size: 12.5px;
  font-weight: 650;
  cursor: pointer;
  background: var(--panel-2);
}
.content-library-owner-link:hover {
  border-color: rgba(34,211,238,.55);
  color: var(--cyan);
  transform: translateY(-1px);
}
.content-library-owner-link > span {
  display: grid;
  place-items: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  color: #fff;
  font-size: 10px;
  background: linear-gradient(135deg, var(--primary), var(--cyan));
}
.content-library-owner-link small { color: var(--text-mute); font-size: 9px; font-weight: 500; }
.content-library-owner-block {
  scroll-margin-top: 18px;
  transition: box-shadow .22s ease, border-color .22s ease;
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 17px;
  background:
    radial-gradient(circle at 100% 0, rgba(34,211,238,.07), transparent 34%),
    linear-gradient(145deg, var(--panel), var(--panel-2));
}
.content-library-owner-block.owner-jump-highlight {
  border-color: var(--cyan);
  box-shadow: 0 0 0 3px rgba(34,211,238,.14), var(--shadow-sm);
}
.content-library-owner-block + .content-library-owner-block { margin-top: 20px; }
.content-library-owner-head {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 17px 19px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(90deg, rgba(99,102,241,.10), rgba(34,211,238,.025));
}
.content-library-owner-avatar {
  display: grid;
  place-items: center;
  flex: 0 0 44px;
  width: 44px;
  height: 44px;
  border: 1px solid rgba(34,211,238,.3);
  border-radius: 13px;
  color: #fff;
  font-size: 18px;
  font-weight: 750;
  background: linear-gradient(135deg, rgba(99,102,241,.9), rgba(34,211,238,.72));
  box-shadow: 0 8px 22px rgba(34,211,238,.12);
}
.content-library-owner-identity { min-width: 0; }
.content-library-owner-identity h3 { margin: 2px 0 2px; font-size: 18px; }
.content-library-owner-identity > span { color: var(--text-mute); font-size: 10.5px; }
.content-library-owner-metrics {
  display: grid;
  grid-template-columns: auto auto 1px auto auto;
  align-items: baseline;
  gap: 6px;
  color: var(--text-mute);
  white-space: nowrap;
}
.content-library-owner-metrics strong { color: var(--cyan); font-size: 20px; }
.content-library-owner-metrics span { font-size: 10px; }
.content-library-owner-metrics i {
  width: 1px;
  height: 24px;
  margin: 0 4px;
  background: var(--line-strong);
}
.content-library-owner-body { padding: 17px 19px 20px; }
.content-library-type-group + .content-library-type-group {
  margin-top: 24px;
  padding-top: 22px;
  border-top: 1px solid var(--line);
}
.content-library-type-head {
  display: flex;
  align-items: center;
  gap: 9px;
  margin-bottom: 12px;
}
.content-library-type-head strong { font-size: 16px; color: var(--cyan); }
.content-library-type-head span { color: var(--text-mute); font-size: 10px; }
.content-library-entry-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 13px;
}
.content-library-entry {
  position: relative;
  padding: 16px 17px;
  border: 1px solid var(--line-strong);
  border-radius: 13px;
  background: linear-gradient(145deg, rgba(99,102,241,.04), rgba(34,211,238,.02));
}
.content-library-entry::before {
  content: "";
  position: absolute;
  left: 0;
  top: 14px;
  bottom: 14px;
  width: 3px;
  border-radius: 0 4px 4px 0;
  background: rgba(34,211,238,.58);
}
.content-library-entry-head {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.content-library-entry h3 { margin: 11px 0 9px; font-size: 17px; }
.content-library-entry-content {
  color: var(--text-dim);
  line-height: 1.8;
  white-space: normal;
}
.content-library-entry-meta {
  margin-top: 11px;
  padding: 9px 11px;
  border-radius: 9px;
  background: rgba(15,23,42,.14);
}
.content-library-entry-meta strong { display: block; margin-bottom: 3px; color: var(--text-mute); font-size: 9.5px; }
.content-library-entry-meta span { color: var(--text-dim); line-height: 1.65; }
.content-library-entry-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 13px;
}

.featured-article-hero {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  min-height: 145px;
  background:
    radial-gradient(circle at 85% 12%, rgba(236,72,153,.09), transparent 32%),
    linear-gradient(135deg, rgba(99,102,241,.07), rgba(34,211,238,.025));
}
.featured-article-hero > div:first-child { flex: 1; min-width: 280px; }
.featured-article-hero h2 { margin: 5px 0 9px; font-size: 25px; }
.featured-article-hero p { margin: 0; max-width: 780px; }
.featured-article-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.featured-article-card {
  overflow: hidden;
  border: 1px solid var(--line-strong);
  border-radius: 15px;
  background: var(--panel-solid);
  box-shadow: 0 8px 24px rgba(15,23,42,.08);
}
.featured-article-cover {
  height: 190px;
  overflow: hidden;
  background: rgba(99,102,241,.08);
}
.featured-article-cover img { width: 100%; height: 100%; object-fit: cover; display: block; }
.featured-article-card-body { padding: 17px 18px; }
.featured-article-card-head {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.featured-article-card h3 { margin: 13px 0 8px; font-size: 19px; line-height: 1.45; }
.featured-article-card p { margin: 0; color: var(--text-dim); line-height: 1.7; }
.featured-article-card-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  flex-wrap: wrap;
  margin-top: 15px;
}
.featured-article-content-input { min-height: 320px; }
.featured-article-upload-preview,
.featured-article-image-edit-grid { margin-top: 9px; }
.featured-article-upload-cover {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.featured-article-upload-cover img {
  display: block;
  width: 100%;
  max-height: 190px;
  object-fit: cover;
  border-radius: 10px;
}
.featured-article-upload-cover .btn { position: absolute; right: 8px; bottom: 8px; }
.featured-article-image-edit-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.featured-article-image-edit-grid > div { position: relative; }
.featured-article-image-edit-grid img {
  display: block;
  width: 100%;
  height: 105px;
  object-fit: cover;
  border-radius: 9px;
}
.featured-article-image-edit-grid .btn { margin-top: 5px; width: 100%; }
.featured-article-audience {
  padding: 14px 15px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(99,102,241,.035);
}
.featured-article-audience-head {
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
}
.featured-article-audience-head > div:first-child { flex: 1; min-width: 240px; }
.featured-article-user-picker {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 8px;
  margin-top: 12px;
  max-height: 220px;
  overflow-y: auto;
}
.featured-article-user-search {
  grid-column: 1 / -1;
  display: flex;
  align-items: center;
  gap: 10px;
}
.featured-article-user-search .input { flex: 1; }
.featured-article-user-search .hint { flex: 0 0 auto; color: var(--primary); }
.featured-article-user-option {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 9px 10px;
  border: 1px solid var(--line);
  border-radius: 9px;
  background: var(--panel-2);
  cursor: pointer;
}
.featured-article-user-option span { min-width: 0; }
.featured-article-user-option strong,
.featured-article-user-option small { display: block; }
.featured-article-user-option small { margin-top: 2px; color: var(--text-mute); font-size: 10px; }
.featured-notification-item {
  display: flex;
  align-items: center;
  gap: 13px;
  width: 100%;
  margin-bottom: 10px;
  padding: 12px;
  border: 1px solid rgba(99,102,241,.35);
  border-radius: 12px;
  background: rgba(99,102,241,.06);
  color: var(--text);
  text-align: left;
  cursor: pointer;
}
.featured-notification-item:hover { border-color: rgba(99,102,241,.7); background: rgba(99,102,241,.11); }
.featured-notification-item img,
.featured-notification-icon {
  flex: 0 0 74px;
  width: 74px;
  height: 58px;
  border-radius: 9px;
  object-fit: cover;
  display: grid;
  place-items: center;
  background: rgba(34,211,238,.1);
  font-size: 25px;
}
.featured-notification-item span:not(.featured-notification-icon) { flex: 1; min-width: 0; }
.featured-notification-item strong { display: block; margin-bottom: 5px; }
.featured-notification-item small { display: block; overflow: hidden; color: var(--text-dim); text-overflow: ellipsis; white-space: nowrap; }
.featured-notification-item em { flex: none; color: var(--primary); font-style: normal; font-size: 11px; }
.featured-article-reader {
  max-width: 940px;
  margin: 0 auto;
  padding: 24px 28px 36px;
  border: 1px solid var(--line-strong);
  border-radius: 17px;
  background: var(--panel-solid);
  box-shadow: 0 12px 36px rgba(15,23,42,.1);
}
.featured-article-reader-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.featured-article-reader-cover {
  display: block;
  width: 100%;
  max-height: 430px;
  object-fit: cover;
  border-radius: 13px;
  margin-bottom: 22px;
}
.featured-article-reader h1 { margin: 0 0 13px; font-size: 31px; line-height: 1.35; }
.featured-article-reader-summary {
  margin-bottom: 22px;
  padding: 13px 15px;
  border-left: 3px solid var(--primary);
  border-radius: 0 10px 10px 0;
  background: rgba(99,102,241,.055);
  color: var(--text-dim);
  line-height: 1.75;
}
.featured-article-reader-content { color: var(--text); font-size: 15px; line-height: 1.9; }
.featured-article-reader-content h1,
.featured-article-reader-content h2,
.featured-article-reader-content h3 { margin-top: 1.5em; line-height: 1.4; }
.featured-article-reader-content img { max-width: 100%; height: auto; border-radius: 10px; }
.featured-article-reader-images {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin-top: 24px;
}
.featured-article-reader-images img { width: 100%; border-radius: 11px; display: block; }
.featured-article-reader-foot { margin-top: 26px; padding-top: 14px; border-top: 1px solid var(--line); }
.featured-comments {
  margin-top: 28px;
  padding-top: 24px;
  border-top: 1px solid var(--line-strong);
}
.featured-comments-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.featured-comments-head h2 { margin: 0; font-size: 21px; }
.featured-comment-composer {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 10px;
  align-items: end;
  margin-bottom: 20px;
  padding: 13px;
  border: 1px solid rgba(99,102,241,.3);
  border-radius: 12px;
  background: rgba(99,102,241,.035);
}
.featured-comment {
  padding: 13px 14px;
  border: 1px solid var(--line);
  border-radius: 11px;
  background: rgba(99,102,241,.025);
}
.featured-comment + .featured-comment { margin-top: 10px; }
.featured-comment-head {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.featured-comment-avatar {
  width: 28px;
  height: 28px;
  font-size: 11px;
}
.featured-comment-content {
  margin-top: 9px;
  color: var(--text-dim);
  line-height: 1.75;
  white-space: normal;
}
.featured-comment-children {
  margin: 12px 0 0 18px;
  padding-left: 12px;
  border-left: 2px solid rgba(99,102,241,.23);
}
.featured-comment-children .featured-comment { background: rgba(34,211,238,.025); }

.daily-question-hero {
  display: flex;
  align-items: center;
  gap: 18px;
  flex-wrap: wrap;
  min-height: 145px;
  background:
    radial-gradient(circle at 86% 12%, rgba(245,158,11,.1), transparent 31%),
    linear-gradient(135deg, rgba(245,158,11,.055), rgba(99,102,241,.035));
}
.daily-question-hero > div:first-child { flex: 1; min-width: 280px; }
.daily-question-hero h2 { margin: 5px 0 9px; font-size: 25px; }
.daily-question-hero p { margin: 0; max-width: 800px; }
.daily-question-browser { margin-top: 16px; }
.daily-question-toolbar {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 11px;
  align-items: end;
  padding: 17px 20px;
  border-bottom: 1px solid var(--line);
}
.daily-question-count {
  display: flex;
  align-items: baseline;
  gap: 5px;
  padding-bottom: 8px;
  white-space: nowrap;
}
.daily-question-count strong { color: var(--primary); font-size: 21px; }
.daily-question-count span { color: var(--text-mute); font-size: 10px; }
.daily-question-categories {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
  margin-bottom: 16px;
  padding: 10px 12px;
  border: 1px dashed rgba(99,102,241,.28);
  border-radius: 10px;
  color: var(--text-mute);
  font-size: 10.5px;
}
.daily-question-categories .badge { cursor: pointer; }
.daily-question-list { display: grid; gap: 14px; }
.daily-question-card {
  padding: 17px 18px;
  border: 1px solid var(--line-strong);
  border-radius: 14px;
  background: linear-gradient(145deg, rgba(245,158,11,.035), rgba(99,102,241,.025));
}
.daily-question-head {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 13px;
}
.daily-question-layout { display: grid; gap: 11px; }
.daily-question-side {
  display: grid;
  grid-template-columns: 34px minmax(0, 1fr);
  gap: 11px;
  align-items: start;
  padding: 14px 15px;
  border-radius: 11px;
}
.daily-question-side > span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 800;
}
.daily-question-side.question {
  border: 1px solid rgba(245,158,11,.3);
  background: rgba(245,158,11,.06);
}
.daily-question-side.question > span { color: #f59e0b; background: rgba(245,158,11,.14); }
.daily-question-side.question strong { line-height: 1.75; font-size: 16px; }
.daily-question-side.answer {
  border: 1px solid rgba(34,211,238,.25);
  background: rgba(34,211,238,.04);
}
.daily-question-side.answer > span { color: var(--cyan); background: rgba(34,211,238,.13); }
.daily-question-side.answer > div { color: var(--text-dim); line-height: 1.8; }
.daily-question-side.answer em { color: var(--text-mute); font-style: normal; }
.daily-question-action {
  padding: 12px 15px;
  border-left: 3px solid var(--green);
  border-radius: 0 10px 10px 0;
  background: rgba(16,185,129,.045);
}
.daily-question-action strong { display: block; margin-bottom: 5px; color: var(--green); font-size: 11px; }
.daily-question-action div { color: var(--text-dim); line-height: 1.7; }
.daily-question-admin-replies {
  padding: 13px 14px;
  border: 1px solid rgba(99,102,241,.3);
  border-radius: 11px;
  background: rgba(99,102,241,.055);
}
.daily-question-admin-replies-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 9px;
}
.daily-question-admin-replies-head strong { color: var(--primary); }
.daily-question-admin-replies-head span { color: var(--text-mute); font-size: 10px; }
.daily-question-admin-reply {
  padding: 10px 11px;
  border-radius: 9px;
  background: rgba(15,23,42,.13);
}
.daily-question-admin-reply + .daily-question-admin-reply { margin-top: 8px; }
.daily-question-admin-reply > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.daily-question-admin-reply > div span { color: var(--text-mute); font-size: 9.5px; }
.daily-question-admin-reply p { margin: 6px 0 0; color: var(--text-dim); line-height: 1.7; }
.daily-question-actions {
  display: flex;
  justify-content: flex-end;
  gap: 7px;
  margin-top: 13px;
}
.daily-question-editor-intro {
  margin-bottom: 15px;
  padding: 12px 14px;
  border: 1px solid rgba(245,158,11,.3);
  border-radius: 10px;
  background: rgba(245,158,11,.055);
}
.daily-question-editor-intro strong,
.daily-question-editor-intro span { display: block; }
.daily-question-editor-intro span { margin-top: 4px; color: var(--text-dim); font-size: 11px; line-height: 1.65; }

.short-video-editor-intro {
  border-color: rgba(34,211,238,.35);
  background: linear-gradient(135deg, rgba(34,211,238,.08), rgba(99,102,241,.04));
}
.short-video-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  margin-top: 16px;
}
.short-video-card-head {
  display: flex;
  align-items: center;
  gap: 7px;
  flex-wrap: wrap;
}
.short-video-card h3 { margin: 13px 0 8px; font-size: 18px; }
.short-video-result { margin: 0; color: var(--text-dim); line-height: 1.7; }
.short-video-metrics { margin-top: 14px; gap: 8px !important; }
.short-video-metrics > div {
  padding: 10px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(99,102,241,.045);
}
.short-video-metrics span { display: block; color: var(--text-mute); font-size: 9.5px; }
.short-video-metrics strong { display: block; margin-top: 3px; font-size: 16px; }
.short-video-structure {
  margin-top: 14px;
  padding: 13px 14px;
  border: 1px solid rgba(34,211,238,.28);
  border-radius: 11px;
  background: rgba(34,211,238,.04);
}
.short-video-structure p { margin: 5px 0 0; white-space: pre-wrap; color: var(--text-dim); }
.short-video-card-meta {
  display: flex;
  gap: 7px 14px;
  flex-wrap: wrap;
  margin-top: 12px;
  color: var(--text-mute);
  font-size: 10.5px;
}

.admin-archive-field strong { display: block; margin-bottom: 7px; color: var(--primary); }
.admin-archive-field div { white-space: normal; color: var(--text-dim); line-height: 1.75; }
.admin-short-video-list { display: grid; gap: 11px; }
.admin-short-video-item { padding: 0; overflow: hidden; }
.admin-short-video-item > summary {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 13px 15px;
  cursor: pointer;
  list-style: none;
}
.admin-short-video-item > summary::-webkit-details-marker { display: none; }
.admin-short-video-detail {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
  padding: 0 15px 15px;
}
.admin-short-video-detail > div {
  padding: 11px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: rgba(99,102,241,.035);
}
.admin-short-video-detail span { color: var(--text-mute); font-size: 10px; }
.admin-short-video-detail p { margin: 5px 0 0; color: var(--text-dim); white-space: normal; line-height: 1.7; }

/* ---------------- 全站板块边界增强 ---------------- */
:is(
  .card,
  .stat,
  .metric,
  .box,
  .feature,
  .q-item,
  .mode-card,
  .train-card,
  .report-history-item,
  .report-history-metrics > div,
  .admin-category-block,
  .bank-card,
  .companion-plan-card,
  .companion-report-card,
  .companion-checkin-card,
  .companion-task-row,
  .companion-hero,
  .companion-student-hero,
  .benchmark-card,
  .benchmark-account-group,
  .benchmark-report-cover,
  .benchmark-report-body,
  .benchmark-hero,
  .fan-card,
  .fan-owner-section,
  .fan-level-history-editor,
  .fan-level-history-row,
  .fan-level-history-item,
  .fan-priority-card,
  .fan-expense-item,
  .fan-birthday-item,
  .fan-preference-grid > div,
  .fan-timeline-content,
  .fan-known-days-card,
  .fan-known-days-hero,
  .fan-spend-row > div,
  .fan-return-row > div,
  .fan-consumption-return > div,
  .fan-consumption-behavior > div,
  .fan-hero,
  .streamer-info-card,
  .prompt-list-item,
  .prompt-variable-box,
  .prompt-group,
  .core-profile-section,
  .short-video-card,
  .short-video-metrics > div,
  .admin-archive-field,
  .admin-short-video-item,
  .admin-user-growth-trend-card,
  .admin-user-growth-comparison-card,
  .admin-income-trend-card,
  .admin-income-comparison-card,
  .my-live-metric,
  .my-period-card,
  .my-summary-card,
  .my-today-live-session-item,
  .my-dashboard-detail-card,
  .my-dashboard-kpi,
  .my-dashboard-income-item
) {
  border-width: 2px !important;
  border-color: var(--section-border);
  outline: 1px solid var(--section-ring) !important;
  outline-offset: 1px;
  transition: border-color .18s ease, outline-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

:is(
  .admin-category-block,
  .bank-card,
  .mode-card,
  .prompt-list-item,
  .fan-card,
  .fan-priority-card,
  .companion-report-card,
  .benchmark-card
):hover {
  outline-color: var(--section-ring-hover) !important;
}

:is(
  .admin-category-block,
  .bank-card,
  .mode-card,
  .prompt-list-item
):focus-visible {
  outline-width: 2px !important;
  outline-color: var(--cyan) !important;
}

:is(
  .admin-category-block.active,
  .prompt-list-item.active,
  .personality-highlight-section
) {
  border-width: 2px !important;
}


@media (max-width: 1080px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: fixed; left: 0; top: 0; z-index: 60; width: 264px; transform: translateX(-100%); transition: .22s; }
  .sidebar.open { transform: none; }
  .login-wrap { grid-template-columns: 1fr; }
  .login-right { border-left: none; border-top: 1px solid var(--line); }
  .exam-shell { grid-template-columns: 1fr; }
  .split { grid-template-columns: 1fr; }
  .grid.cols-4, .grid.cols-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .grid.cols-3 { grid-template-columns: 1fr; }
  .metric-row { grid-template-columns: repeat(2, 1fr); }
  .two-col { grid-template-columns: 1fr; }
  .companion-hero, .companion-student-hero { grid-template-columns: 1fr; }
  .companion-report-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .benchmark-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .prompt-admin-layout { grid-template-columns: 1fr; }
  .prompt-catalog { position: static; max-height: none; }
  .prompt-editor-grid { grid-template-columns: 1fr; }
  .prompt-textarea, .prompt-user-textarea { min-height: 360px; }
  .fan-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-overview-hero { grid-template-columns: 1fr; }
  .my-countdown-spotlight { grid-template-columns: 1fr; }
  .my-today-live-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-today-live-notes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-total-dashboard-body { grid-template-columns: 1fr; }
  .my-dashboard-kpi-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-dashboard-income-strip { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .my-dashboard-detail-grid { grid-template-columns: 1fr; }
  .my-dashboard-detail-card.profile { grid-column: auto; }
  .admin-income-growth-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-user-growth-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-user-growth-main, .admin-user-growth-bottom { grid-template-columns: 1fr; }
  .admin-income-growth-main, .admin-income-growth-bottom { grid-template-columns: 1fr; }
  .content-library-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .content-library-result { padding-bottom: 0; }
  .daily-question-toolbar { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-overview-radar { min-height: 0; }
  .my-overview-summary-grid { grid-template-columns: 1fr; }
  .admin-module-overview-grid { grid-template-columns: 1fr; }
  .admin-activity-trends { grid-template-columns: 1fr; }
  .my-period-summary-grid { grid-template-columns: 1fr; }
  .streamer-info-list { grid-template-columns: 1fr; }
  .companion-task-settings { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 720px) {
  .content { padding: 16px 14px 50px; }
  .login-left { padding: 36px 22px; }
  .login-right { padding: 28px 16px; }
  .registration-login-row { grid-template-columns: 1fr; }
  .feature-list { grid-template-columns: 1fr; }
  .grid.cols-2, .grid.cols-4, .grid.cols-5 { grid-template-columns: 1fr; }
  .mode-pick { grid-template-columns: 1fr; }
  .score-hero { grid-template-columns: 1fr; }
  .form-row.two, .form-row.three { grid-template-columns: 1fr; }
  .companion-filter-row, .companion-report-grid, .companion-recommendation-grid, .companion-check-list { grid-template-columns: 1fr; }
  .companion-hero, .companion-student-hero { padding: 20px; }
  .companion-task-settings { grid-template-columns: 1fr 1fr; margin-left: 0; }
  .companion-score-editor { grid-template-columns: 1fr; }
  .companion-baseline-grid { grid-template-columns: 1fr 1fr; }
  .companion-mini-grid { grid-template-columns: 1fr 1fr; }
  .benchmark-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
  .benchmark-grid { grid-template-columns: 1fr; }
  .benchmark-point-head { grid-template-columns: 32px 1fr; }
  .prompt-editor { padding: 16px; }
  .prompt-editor-head { flex-direction: column; }
  .prompt-editor-status { align-items: flex-start; }
  .fan-hero { align-items: flex-start; flex-direction: column; padding: 20px; }
  .fan-grid, .fan-preference-grid { grid-template-columns: 1fr; }
  .short-video-grid { grid-template-columns: 1fr; }
  .short-video-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-short-video-detail { grid-template-columns: 1fr; }
  .core-profile-hero, .short-video-hero { align-items: flex-start; flex-direction: column; }
  .core-profile-archive-header { flex-direction: column; padding: 18px; }
  .core-profile-archive-meta { align-items: flex-start; }
  .core-profile-archive-actions { width: 100%; }
  .core-profile-archive-content { padding: 0 16px 6px; }
  .core-profile-field-grid { grid-template-columns: 1fr; }
  .content-library-hero { align-items: flex-start; flex-direction: column; }
  .content-library-stats { width: 100%; }
  .content-library-stats > div { flex: 1; }
  .content-library-guide { grid-template-columns: 1fr; gap: 16px; }
  .content-library-toolbar { grid-template-columns: 1fr; padding: 16px; }
  .content-library-entry-grid { grid-template-columns: 1fr; }
  .content-library-owner-shortcuts { flex-direction: column; gap: 10px; }
  .content-library-owner-shortcuts-title { flex-basis: auto; }
  .content-library-owner-head { align-items: flex-start; flex-wrap: wrap; }
  .content-library-owner-metrics { width: 100%; justify-content: flex-end; padding-top: 8px; }
  .content-library-owner-body { padding: 15px 13px 17px; }
  .featured-article-hero { align-items: flex-start; flex-direction: column; }
  .featured-article-grid { grid-template-columns: 1fr; }
  .featured-article-reader { padding: 18px 17px 28px; }
  .featured-article-reader h1 { font-size: 25px; }
  .featured-article-reader-images { grid-template-columns: 1fr; }
  .featured-article-image-edit-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .featured-comment-composer { grid-template-columns: 1fr; }
  .featured-comment-children { margin-left: 8px; padding-left: 9px; }
  .featured-notification-item { align-items: flex-start; }
  .featured-notification-item img,
  .featured-notification-icon { flex-basis: 58px; width: 58px; height: 50px; }
  .daily-question-hero { align-items: flex-start; flex-direction: column; }
  .daily-question-toolbar { grid-template-columns: 1fr; padding: 16px; }
  .daily-question-card { padding: 14px; }
  .daily-question-side { grid-template-columns: 30px minmax(0, 1fr); padding: 12px; }
  .fan-spend-row { grid-template-columns: 1fr; }
  .my-summary-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .admin-high-spender-summary { grid-template-columns: 1fr; }
  .admin-income-growth-kpis { grid-template-columns: 1fr; }
  .admin-user-growth-kpis, .admin-user-growth-health { grid-template-columns: 1fr; }
  .admin-income-trend { gap: 2px; }
  .admin-user-growth-chart { gap: 2px; }
  .admin-user-growth-comparison-table > div { grid-template-columns: minmax(72px, 1fr) 40px 1fr 1fr; }
  .admin-user-growth-comparison-table > div > em { grid-column: auto; }
  .admin-user-growth-active-row { grid-template-columns: 26px 1fr 1fr; }
  .admin-user-growth-active-row > em { grid-column: 2 / -1; text-align: left; }
  .admin-income-comparison-row { grid-template-columns: 70px 1fr 1fr; }
  .admin-income-comparison-row > em { grid-column: 2 / -1; text-align: left; }
  .admin-income-coverage { grid-template-columns: 1fr; }
  .admin-income-growth-row { grid-template-columns: 26px 1fr 1fr; }
  .admin-income-growth-row > em { grid-column: 2 / -1; text-align: left; }
  .admin-high-spender-row { grid-template-columns: 30px 1fr 1fr; }
  .admin-high-spender-owner { display: none; }
  .admin-high-spender-meta { grid-column: 2 / -1; }
  .admin-income-rank-head { display: none; }
  .admin-income-rank-row { grid-template-columns: 30px 1fr 1fr; }
  .admin-income-rank-account { display: none; }
  .admin-income-rank-date { grid-column: 2 / -1; text-align: left; }
  .my-birthday-mini { grid-template-columns: 1fr; }
  .my-countdown-card { align-items: flex-start; flex-wrap: wrap; }
  .my-dashboard-kpi-strip { grid-template-columns: 1fr; }
  .my-dashboard-income-strip { grid-template-columns: 1fr; }
  .my-dashboard-detail-values { grid-template-columns: 1fr; }
  .my-today-live-grid, .my-today-live-notes { grid-template-columns: 1fr; }
  .report-history-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .my-dashboard-status-line { align-items: flex-start; flex-direction: column; }
  .my-status-legend { width: 100%; grid-template-columns: 1fr; }
  .streamer-info-hero { align-items: flex-start; flex-direction: column; }
  .streamer-info-grid { grid-template-columns: 1fr; }
  .fan-return-row { grid-template-columns: 1fr; }
  .fan-consumption-return, .fan-consumption-behavior { grid-template-columns: 1fr; }
  .fan-birthday-item { align-items: flex-start; }
  .fan-priority-highlights { grid-template-columns: 1fr; }
  .fan-level-history-row { grid-template-columns: 1fr; }
  .fan-level-remove { justify-self: end; }
  .fan-level-history-item { align-items: flex-start; flex-wrap: wrap; }
}

.menu-btn { display: none; }
@media (max-width: 1080px) { .menu-btn { display: inline-flex; } }

@media print {
  body { background: #fff; color: #000; }
  .sidebar, .topbar, .no-print, body::before { display: none !important; }
  .card, .box, .metric, .train-card { border-color: #ccc; background: #fff; box-shadow: none; outline: none !important; }
  .content { padding: 0; max-width: none; }
}
