/* Global admin palette aligned with the original WeCom workspace. */
:root {
  --bg:#f3f7fb; --surface:#fff; --surface-soft:#f7f9fc; --ink:#202a3c; --muted:#7d8797;
  --line:#dfe5ec; --line-soft:#edf1f5; --primary-neutral:#1677ff; --primary-neutral-dark:#1268df;
  --primary-neutral-soft:#eaf3ff; --accent:#1677ff; --accent-dark:#1268df; --accent-soft:#eaf3ff;
}
body,.content,.main-area { background:#f3f7fb; color:#202a3c; }
.topbar,.panel,.table-panel,.record-card,.plan-card,.settings-section,.account-summary>div,
.ip-panel,.ip-commandbar,.ip-history,.tl-card,.tl-list article,.tl-food-table,.te-header,.te-meta,.te-footer { border-color:#dfe5ec; background:#fff; box-shadow:0 5px 18px rgba(33,48,70,.045); }
.topbar { border-bottom:1px solid #e5eaf0; }
.page-head p,.topbar-title p { color:#7d8797; }
.sidebar { border-right:1px solid #dfe5ec; background:#fff; color:#263247; box-shadow:4px 0 18px rgba(33,48,70,.04); }
.sidebar-brand { border-bottom-color:#edf1f5; }
.sidebar-brand .brand-mark,.brand-mark { background:linear-gradient(145deg,#4595ff,#1677ff); box-shadow:0 7px 18px rgba(22,119,255,.20); }
.sidebar-brand strong { color:#202a3c; }
.sidebar-brand span,.sidebar-section-label { color:#8a94a4; }
.main-nav button { color:#59677a; }
.main-nav button:hover { background:#f3f7fb; color:#1677ff; }
.main-nav button.active { background:#eaf3ff !important; color:#1677ff !important; box-shadow:inset 3px 0 #1677ff !important; }
.main-nav button.active::before { display:none; }
.main-nav button.active .nav-icon { color:#1677ff; }
.sidebar-foot { border-color:#dfe5ec; background:#f7f9fc; }
.sidebar-foot span { color:#8a94a4; }
.sidebar-foot strong { color:#526073; }
.sidebar-foot i { background:#14c982 !important; box-shadow:0 0 0 3px #e5faf2 !important; }
.primary-button,.command-button { border-color:#1677ff !important; background:#1677ff !important; color:#fff !important; box-shadow:0 4px 12px rgba(22,119,255,.15) !important; }
.primary-button:hover,.command-button:hover { border-color:#1268df !important; background:#1268df !important; }
.ghost-button,.table-action,.filter-control,.ip-add-row { border-color:#d8e2ee; background:#fff; color:#526073; }
.ghost-button:hover,.table-action:hover,.ip-add-row:hover { border-color:#9bc7f8; background:#f3f7fb; color:#1677ff; }
.panel-action,.table-action,.page-head p,.tl-card header span,.tl-list article>div>span,.te-header>div>span { color:#1677ff !important; }
button.active,.ip-section-nav button.active,.tl-tabs button.active,.te-nav button.active { border-color:#1677ff !important; background:#eaf3ff !important; color:#1677ff !important; box-shadow:inset 0 0 0 1px #cfe0ff !important; }
.te-nav button.active i { border-color:#1677ff; }
.tl-tabs b { background:rgba(22,119,255,.10); }
button.active b { background:rgba(22,119,255,.12); }
input:focus,select:focus,textarea:focus,.ip-field input:focus,.ip-field textarea:focus { border-color:#78acf1 !important; box-shadow:0 0 0 3px rgba(22,119,255,.08) !important; }
.metric-card,.ip-facts>div,.task-column,.detail-metrics div,.review-food,.tl-food-table>div.head { background:#f7f9fc; }
.metric-card,.ip-patient-banner,.tl-hero { border-color:#dfe5ec; background:linear-gradient(125deg,#fff,#f3f7fb); }
.metric-icon,.ip-avatar,.avatar,.user-menu>div:first-child { background:#eaf3ff; color:#1677ff; }
.status-pill.low,.review-pill.reviewed,.binding-pill.bound { background:#e5f7ed !important; color:#10a264 !important; }
.status-pill.medium,.review-pill.pending { background:#fff3df !important; color:#c37813 !important; }
.status-pill.high,.review-pill.rejected { background:#ffebea !important; color:#d44f4f !important; }
.ip-stage-index,.ip-timeline i { background:#eaf3ff; color:#1677ff; }
.ip-macro-check.ok,.ip-publish-checks>div.ok,.ip-publish-checks>div.ok i,.ip-checklist i.done { background:#e5f7ed; color:#10a264; }
.ip-total-kcal strong,.plan-card .plan-metric,.ip-history article>span { color:#1677ff; }
.ip-nutrient-bars b.good { background:#21b978; }
.tl-card header em { background:#eaf3ff; color:#1677ff; }
.login-view { background:radial-gradient(circle at 18% 16%,rgba(22,119,255,.10),transparent 30%),radial-gradient(circle at 84% 82%,rgba(20,201,130,.07),transparent 28%),#f3f7fb; }
.login-panel { border-color:#dfe5ec; background:rgba(255,255,255,.98); box-shadow:0 22px 60px rgba(33,48,70,.12); }
.login-copy>p { color:#1677ff; }
.login-form input { border-color:#dfe5ec; background:#f7f9fc; }
.login-security i { background:#14c982; box-shadow:0 0 0 3px #e5faf2; }
.toast { border-left-color:#1677ff; background:#263247; }

/* Assessment and 24-hour dietary recall. */
.ip-assessment-workspace { gap:18px; }
.ip-assessment-basic { grid-template-columns:repeat(4,minmax(0,1fr)); }
.ip-assessment-basic .ip-field-wide { grid-column:span 2; }
.ip-field select { width:100%; height:42px; padding:0 11px; border:1px solid #d7dee8; border-radius:6px; background:#fff; color:var(--ip-ink); outline:none; }
.ip-field input[readonly] { background:#f4f7fb; color:#526073; cursor:default; }
.ip-recall-table { overflow:hidden; border:1px solid #dce3ec; border-radius:9px; }
.ip-recall-table .head,.ip-recall-table .row { display:grid; grid-template-columns:100px minmax(300px,1fr) 160px; align-items:center; gap:12px; padding:10px 14px; }
.ip-recall-table .head { min-height:42px; background:#f3f7fb; color:#667085; font-size:12px; }
.ip-recall-table .row { min-height:76px; border-top:1px solid #e8edf3; }
.ip-recall-table .row strong { color:#263247; font-size:14px; }
.ip-recall-table textarea { width:100%; min-height:54px; padding:9px 11px; resize:vertical; border:1px solid #d7dee8; border-radius:6px; color:#263247; font:inherit; line-height:1.5; outline:none; }
.ip-recall-table label { position:relative; display:block; }
.ip-recall-table input { width:100%; height:40px; padding:0 48px 0 10px; border:1px solid #d7dee8; border-radius:6px; color:#263247; outline:none; }
.ip-recall-table label span { position:absolute; right:10px; top:12px; color:#8a94a4; font-size:11px; }
.ip-recall-table textarea:focus,.ip-recall-table input:focus,.ip-field select:focus { border-color:#78acf1; box-shadow:0 0 0 3px rgba(22,119,255,.08); }
.ip-recall-summary { margin-top:18px; padding:16px; border:1px solid #dce3ec; border-radius:9px; background:#f9fbfe; }
.ip-recall-summary header { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:12px; }
.ip-recall-summary h4 { margin:0; color:#263247; font-size:15px; }
.ip-recall-summary p { margin:5px 0 0; color:#7d8797; font-size:12px; }
.ip-recall-summary textarea { width:100%; min-height:130px; padding:12px 13px; resize:vertical; border:1px solid #d7dee8; border-radius:7px; background:#fff; color:#263247; font:inherit; line-height:1.7; outline:none; }
.ip-recall-summary>small { display:block; margin-top:8px; color:#8a94a4; font-size:11px; }
.ip-recall-summary .ghost-button { flex:0 0 auto; border-color:#9bc4fb; background:#edf5ff; color:#1677ff; }
.ip-recall-summary .ghost-button:hover { border-color:#1677ff; background:#e5f1ff; }
@media (max-width:1180px) { .ip-assessment-basic { grid-template-columns:repeat(2,minmax(0,1fr)); } }
