/* Modern Hacker / Glassmorphism Dark Theme for Ops-Hub */
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600;700&display=swap');

:root {
  --bg-main: #090a0f;
  --card-bg: rgba(18, 20, 29, 0.85);
  --card-border: rgba(255, 255, 255, 0.08);
  --card-hover-border: rgba(99, 102, 241, 0.4);
}

body {
  background-color: var(--bg-main);
  color: #e2e8f0;
  font-family: 'Inter', system-ui, -apple-system, sans-serif;
}

code, .font-mono {
  font-family: 'JetBrains Mono', monospace;
}

/* Glassmorphism Card */
.glass-panel {
  background: var(--card-bg);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border: 1px solid var(--card-border);
  transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.glass-panel:hover {
  border-color: var(--card-hover-border);
}

/* Custom Scrollbar */
::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}
::-webkit-scrollbar-track {
  background: #090a0f;
}
::-webkit-scrollbar-thumb {
  background: #27272a;
  border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
  background: #3f3f46;
}

/* Pulse animation for critical deadlines */
@keyframes pulse-danger {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(239, 68, 68, 0.5);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(239, 68, 68, 0);
  }
}

.danger-pulse {
  animation: pulse-danger 2s infinite;
}

/* Tab Active Indicator */
.tab-btn.active {
  background-color: #1e1b4b;
  color: #818cf8;
  border-color: #6366f1;
}

/* ============================================================
   Light Theme (Day Mode) — 日间主题覆盖层
   暗色为默认（<html class="dark">），移除 dark 类即进入日间模式。
   以下规则系统性重映射页面用到的 Tailwind 色阶，切换状态持久化于
   localStorage（key: ops_theme），由 js/app.js 的 initTheme() 驱动。
   ============================================================ */
html:not(.dark) body {
  background-color: #f1f5f9;
  color: #1e293b;
}

html:not(.dark) .glass-panel {
  background: rgba(255, 255, 255, 0.78);
  border-color: rgba(15, 23, 42, 0.08);
}
html:not(.dark) .glass-panel:hover {
  border-color: rgba(99, 102, 241, 0.45);
}

/* --- 结构背景（zinc 系 → 浅色） --- */
html:not(.dark) .bg-zinc-950\/80 { background-color: rgba(255, 255, 255, 0.85); }
html:not(.dark) .bg-zinc-950\/60 { background-color: rgba(255, 255, 255, 0.72); }
html:not(.dark) .bg-zinc-950\/50 { background-color: rgba(255, 255, 255, 0.6); }
html:not(.dark) .bg-zinc-900    { background-color: #ffffff; }
html:not(.dark) .bg-zinc-900\/30 { background-color: rgba(15, 23, 42, 0.03); }
html:not(.dark) .bg-zinc-900\/50 { background-color: rgba(15, 23, 42, 0.04); }
html:not(.dark) .bg-zinc-900\/60 { background-color: #f4f4f5; }
html:not(.dark) .bg-zinc-900\/70 { background-color: #f4f4f5; }
html:not(.dark) .bg-zinc-900\/80 { background-color: #fafafa; }
html:not(.dark) .bg-zinc-900\/90 { background-color: #ffffff; }
html:not(.dark) .bg-zinc-800    { background-color: #e4e4e7; }
html:not(.dark) .bg-zinc-800\/80 { background-color: rgba(228, 228, 231, 0.8); }

/* --- 深色调色板面板（950 系徽章/卡片 → 浅色 50/100 系） --- */
html:not(.dark) .bg-indigo-950      { background-color: #e0e7ff; }
html:not(.dark) .bg-indigo-950\/10  { background-color: rgba(99, 102, 241, 0.06); }
html:not(.dark) .bg-indigo-950\/40  { background-color: rgba(99, 102, 241, 0.1); }
html:not(.dark) .bg-indigo-950\/60  { background-color: #e0e7ff; }
html:not(.dark) .bg-emerald-950     { background-color: #d1fae5; }
html:not(.dark) .bg-emerald-950\/30 { background-color: rgba(16, 185, 129, 0.08); }
html:not(.dark) .bg-emerald-950\/40 { background-color: rgba(16, 185, 129, 0.1); }
html:not(.dark) .bg-emerald-950\/80 { background-color: #d1fae5; }
html:not(.dark) .bg-emerald-900\/50 { background-color: rgba(6, 95, 70, 0.12); }
html:not(.dark) .bg-sky-950         { background-color: #e0f2fe; }
html:not(.dark) .bg-sky-950\/10     { background-color: rgba(14, 165, 233, 0.06); }
html:not(.dark) .bg-sky-950\/80     { background-color: #e0f2fe; }
html:not(.dark) .bg-rose-950        { background-color: #ffe4e6; }
html:not(.dark) .bg-rose-950\/20    { background-color: rgba(244, 63, 94, 0.06); }
html:not(.dark) .bg-rose-950\/40    { background-color: rgba(244, 63, 94, 0.1); }
html:not(.dark) .bg-rose-950\/60    { background-color: #ffe4e6; }
html:not(.dark) .bg-rose-900\/60    { background-color: rgba(159, 18, 57, 0.15); }
html:not(.dark) .bg-amber-950\/30   { background-color: rgba(245, 158, 11, 0.08); }
html:not(.dark) .bg-amber-950\/60   { background-color: #fef3c7; }
html:not(.dark) .bg-amber-950\/80   { background-color: #fef3c7; }

/* --- 悬停态 --- */
html:not(.dark) .hover\:bg-zinc-800:hover    { background-color: #e4e4e7; }
html:not(.dark) .hover\:bg-zinc-800\/80:hover { background-color: rgba(228, 228, 231, 0.85); }
html:not(.dark) .hover\:text-white:hover     { color: #0f172a; }
html:not(.dark) .hover\:border-zinc-700:hover { border-color: #a1a1aa; }
html:not(.dark) .hover\:bg-rose-900\/60:hover { background-color: #fecdd3; }

/* --- 文字（深底浅字 → 浅底深字） --- */
html:not(.dark) .text-white      { color: #0f172a; }
html:not(.dark) .text-slate-100  { color: #0f172a; }
html:not(.dark) .text-slate-200  { color: #1e293b; }
html:not(.dark) .text-slate-300  { color: #334155; }
html:not(.dark) .text-slate-400  { color: #475569; }
html:not(.dark) .text-slate-400\/90 { color: rgba(71, 85, 105, 0.9); }
html:not(.dark) .text-zinc-300   { color: #3f3f46; }
html:not(.dark) .text-zinc-400   { color: #52525b; }

/* --- 强调色文字（提升浅底对比度） --- */
html:not(.dark) .text-indigo-300    { color: #4f46e5; }
html:not(.dark) .text-indigo-300\/80 { color: rgba(79, 70, 229, 0.85); }
html:not(.dark) .text-indigo-400    { color: #4f46e5; }
html:not(.dark) .text-emerald-200   { color: #047857; }
html:not(.dark) .text-emerald-300   { color: #059669; }
html:not(.dark) .text-emerald-400   { color: #059669; }
html:not(.dark) .text-sky-300       { color: #0284c7; }
html:not(.dark) .text-sky-400       { color: #0284c7; }
html:not(.dark) .text-rose-200\/80  { color: rgba(190, 18, 60, 0.85); }
html:not(.dark) .text-rose-300      { color: #e11d48; }
html:not(.dark) .text-rose-300\/80  { color: rgba(225, 29, 72, 0.85); }
html:not(.dark) .text-rose-400      { color: #e11d48; }
html:not(.dark) .text-amber-200\/80 { color: rgba(180, 83, 9, 0.85); }
html:not(.dark) .text-amber-300     { color: #b45309; }
html:not(.dark) .text-amber-400     { color: #d97706; }

/* --- 边框 --- */
html:not(.dark) .border-zinc-800    { border-color: #e4e4e7; }
html:not(.dark) .border-zinc-800\/50 { border-color: rgba(15, 23, 42, 0.06); }
html:not(.dark) .border-zinc-800\/60 { border-color: rgba(15, 23, 42, 0.08); }
html:not(.dark) .border-zinc-800\/80 { border-color: rgba(15, 23, 42, 0.1); }
html:not(.dark) .border-zinc-700    { border-color: #d4d4d8; }
html:not(.dark) .border-zinc-700\/80 { border-color: rgba(212, 212, 216, 0.8); }
html:not(.dark) .border-indigo-800\/40 { border-color: rgba(99, 102, 241, 0.25); }
html:not(.dark) .border-indigo-800\/50 { border-color: rgba(99, 102, 241, 0.3); }
html:not(.dark) .border-indigo-800\/60 { border-color: rgba(99, 102, 241, 0.35); }
html:not(.dark) .border-emerald-800    { border-color: #a7f3d0; }
html:not(.dark) .border-emerald-800\/40 { border-color: rgba(16, 185, 129, 0.25); }
html:not(.dark) .border-emerald-800\/50 { border-color: rgba(16, 185, 129, 0.3); }
html:not(.dark) .border-emerald-800\/60 { border-color: rgba(16, 185, 129, 0.35); }
html:not(.dark) .border-emerald-600    { border-color: #6ee7b7; }
html:not(.dark) .border-rose-800\/40  { border-color: rgba(244, 63, 94, 0.25); }
html:not(.dark) .border-rose-800\/50  { border-color: rgba(244, 63, 94, 0.3); }
html:not(.dark) .border-rose-800\/60  { border-color: rgba(244, 63, 94, 0.35); }
html:not(.dark) .border-rose-900\/40  { border-color: rgba(225, 29, 72, 0.15); }
html:not(.dark) .border-sky-800       { border-color: #7dd3fc; }
html:not(.dark) .border-sky-800\/40   { border-color: rgba(14, 165, 233, 0.25); }
html:not(.dark) .border-sky-800\/60   { border-color: rgba(14, 165, 233, 0.35); }
html:not(.dark) .border-sky-600       { border-color: #38bdf8; }
html:not(.dark) .border-amber-800\/40 { border-color: rgba(245, 158, 11, 0.25); }
html:not(.dark) .border-amber-900\/50 { border-color: rgba(217, 119, 6, 0.2); }
html:not(.dark) .border-amber-600     { border-color: #fbbf24; }

/* --- 深色渐变面板 → 浅色渐变 --- */
html:not(.dark) .from-indigo-950\/20 {
  --tw-gradient-from: rgb(99 102 241 / 0.08) var(--tw-gradient-from-position);
  --tw-gradient-to: rgb(99 102 241 / 0) var(--tw-gradient-to-position);
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
}
html:not(.dark) .to-zinc-950 {
  --tw-gradient-to: #f4f4f5 var(--tw-gradient-to-position);
}

/* --- Tab 激活态 --- */
html:not(.dark) .tab-btn.active {
  background-color: #e0e7ff;
  color: #4338ca;
  border-color: #6366f1;
}

/* --- 滚动条 --- */
html:not(.dark) ::-webkit-scrollbar-track { background: #f1f5f9; }
html:not(.dark) ::-webkit-scrollbar-thumb { background: #cbd5e1; }
html:not(.dark) ::-webkit-scrollbar-thumb:hover { background: #94a3b8; }

/* Daily home */
.today-intro { display:flex; align-items:flex-end; justify-content:space-between; gap:1rem; margin: 1.5rem 0; }
.today-intro h2 { font-size:clamp(1.6rem,3vw,2.35rem); font-weight:800; letter-spacing:-.04em; color:#f4f4f5; margin:.3rem 0; }
.today-intro p:not(.today-kicker), .today-muted, .today-footnote { color:#a1a1aa; font-size:.85rem; line-height:1.65; }
.today-kicker { color:#a5b4fc; font-size:.7rem; font-weight:700; letter-spacing:.13em; }
.today-date, .today-chip { border:1px solid #373461; border-radius:999px; color:#c7d2fe; padding:.35rem .7rem; font-size:.75rem; white-space:nowrap; }
.today-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:1rem; }
.today-card { background:linear-gradient(145deg,rgba(29,29,41,.95),rgba(16,17,25,.95)); border:1px solid #30303d; border-radius:1.1rem; padding:1.4rem; }
.today-card h3 { font-size:1.1rem; color:#fafafa; font-weight:750; margin:.35rem 0; }
.today-card-heading { display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.today-form { display:flex; gap:.55rem; margin-top:1.15rem; }
.today-form input { flex:1; min-width:0; border:1px solid #52525b; border-radius:.7rem; background:#18181b; color:#fafafa; padding:.7rem .85rem; font-size:.875rem; }
.today-form button { border-radius:.7rem; padding:.7rem 1rem; background:#6366f1; color:white; font-weight:700; }
.today-form button:disabled { opacity:.45; cursor:not-allowed; }
.today-feedback { min-height:1.3rem; color:#fbbf24; font-size:.75rem; margin-top:.4rem; }
.today-list { display:grid; gap:.5rem; margin-top:.3rem; }
.today-list li { display:flex; align-items:center; gap:.7rem; padding:.75rem; border:1px solid #3f3f46; border-radius:.7rem; background:rgba(0,0,0,.12); }
.focus-toggle { color:#a5b4fc; font-size:1.15rem; flex:none; }
.focus-text { flex:1; min-width:0; overflow-wrap:anywhere; color:#f4f4f5; font-size:.875rem; }
.focus-text.done { color:#a1a1aa; text-decoration:line-through; }
.focus-remove { color:#a1a1aa; font-size:.75rem; padding:.3rem; }
.focus-progress { margin-top:.7rem; }
.focus-previous { border-top:1px solid #3f3f46; margin-top:1.1rem; padding-top:1rem; }
.focus-previous h4 { color:#e4e4e7; font-size:.9rem; font-weight:650; }
.focus-previous .today-card-heading { margin-bottom:.3rem; flex-wrap:wrap; gap:.25rem .75rem; }
.focus-carry { color:#c7d2fe; border:1px solid #525270; border-radius:.5rem; font-size:.75rem; padding:.4rem .55rem; flex:none; }
.focus-carry:disabled { color:#a1a1aa; opacity:.6; cursor:not-allowed; }
.today-home button:focus-visible, .today-form input:focus-visible { outline:2px solid #818cf8; outline-offset:3px; }
.today-empty { color:#a1a1aa; font-size:.85rem; padding:1.2rem .2rem; }
.today-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; margin-top:1.1rem; }
.today-links button { display:flex; flex-direction:column; text-align:left; gap:.4rem; padding:.9rem; border:1px solid #3f3f46; border-radius:.75rem; background:#20202a; transition:border-color .15s; }
.today-links button:hover { border-color:#818cf8; }
.today-links strong { color:#f4f4f5; font-size:.85rem; }
.today-links span { color:#a5b4fc; font-size:.75rem; }
.today-footnote { margin:1rem 0; }
html:not(.dark) .today-card { background:#fff; border-color:#d4d4d8; }
html:not(.dark) .today-intro h2, html:not(.dark) .today-card h3, html:not(.dark) .focus-text, html:not(.dark) .today-links strong { color:#18181b; }
html:not(.dark) .today-intro p:not(.today-kicker), html:not(.dark) .today-muted, html:not(.dark) .today-footnote, html:not(.dark) .today-empty, html:not(.dark) .focus-remove { color:#52525b; }
html:not(.dark) .today-form input, html:not(.dark) .today-links button { background:#f4f4f5; color:#18181b; border-color:#d4d4d8; }
html:not(.dark) .today-list li { background:#fafafa; border-color:#e4e4e7; }
html:not(.dark) .today-kicker, html:not(.dark) .today-links span, html:not(.dark) .focus-toggle { color:#4338ca; }
html:not(.dark) .today-date, html:not(.dark) .today-chip { color:#4338ca; border-color:#c7d2fe; }
html:not(.dark) .focus-previous { border-color:#e4e4e7; }
html:not(.dark) .focus-previous h4 { color:#27272a; }
html:not(.dark) .focus-carry { color:#4338ca; border-color:#c7d2fe; }
html:not(.dark) .focus-carry:disabled { color:#71717a; }
html:not(.dark) .focus-text.done { color:#71717a; }
html:not(.dark) .today-feedback { color:#92400e; }
@media (max-width:720px) { .today-grid { grid-template-columns:1fr; } .today-intro { align-items:flex-start; } .today-card { padding:1.1rem; } }
@media (prefers-reduced-motion:reduce) { .today-links button { transition:none; } }

/* Complete VitaFlow workspace */
.vitaflow-heading, .vitaflow-actions, .vitaflow-navigation { display:flex; align-items:center; gap:.6rem; }
.vitaflow-heading { justify-content:space-between; flex-wrap:wrap; gap:1rem; }
.vitaflow-actions { flex-wrap:wrap; }
.vitaflow-actions :is(button,a), .vitaflow-navigation button { border:1px solid #3f3f46; border-radius:.55rem; padding:.5rem .7rem; font-size:.8rem; color:#d4d4d8; background:#20202a; }
.vitaflow-navigation { margin-top:1rem; flex-wrap:wrap; }
.vitaflow-navigation button:disabled { opacity:.5; cursor:wait; }
.vitaflow-navigation button:focus-visible, .vitaflow-actions :is(button,a):focus-visible { outline:2px solid #818cf8; outline-offset:3px; }
.vitaflow-connection { margin-top:1rem; border-top:1px solid #3f3f46; padding-top:.8rem; }
.vitaflow-connection summary { cursor:pointer; color:#a1a1aa; font-size:.8rem; }
.vitaflow-connection-fields { display:grid; grid-template-columns:minmax(0,1fr) minmax(140px,.5fr) auto; align-items:end; gap:.7rem; margin-top:.8rem; }
.vitaflow-connection-fields label { color:#a1a1aa; font-size:.75rem; }
.vitaflow-connection-fields input { display:block; width:100%; min-width:0; margin-top:.3rem; padding:.65rem; border:1px solid #52525b; border-radius:.55rem; color:#fafafa; background:#18181b; }
.vitaflow-connection-fields button { padding:.65rem .9rem; border-radius:.55rem; color:white; background:#047857; font-size:.8rem; }
html:not(.dark) .vitaflow-actions :is(button,a), html:not(.dark) .vitaflow-navigation button { background:#fafafa; color:#27272a; border-color:#d4d4d8; }
html:not(.dark) .vitaflow-connection { border-color:#e4e4e7; }
html:not(.dark) .vitaflow-connection :is(summary,label) { color:#52525b; }
html:not(.dark) .vitaflow-connection-fields input { background:#fff; color:#18181b; border-color:#d4d4d8; }
@media (max-width:640px) { .vitaflow-connection-fields { grid-template-columns:minmax(0,1fr); } }

/* VitaFlow 原生工作区的定位上下文：内部 absolute 提示不能飘出本区 */
#vitaflow-native { position: relative; }

/* 顶部右侧的风格切换按钮组（替代原来的内容区下拉框） */
.style-switch { display:flex; align-items:center; gap:2px; padding:2px; border:1px solid var(--ops-border,#3f3f46); border-radius:.6rem; background:var(--ops-surface-muted,#18181b); }
.diary-todo-title { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; color: var(--ops-text); }
#diary-todos-list li { flex-wrap: wrap; }
.diary-todo-source-status { color: var(--ops-muted); font-size: .72rem; white-space: nowrap; }
.diary-todo-import { border: 1px solid var(--ops-border); border-radius: .55rem; padding: .35rem .65rem; color: var(--ops-accent); font-size: .75rem; }
.diary-todo-import:not(:disabled):hover { border-color: var(--ops-accent); }
.diary-todo-import:disabled { opacity: .65; cursor: default; }
.public-vita-notes { margin-top: .8rem; color: var(--ops-text); }
.public-vita-notes > summary { cursor: pointer; font-size: .85rem; font-weight: 600; }
.public-vita-note { padding: .65rem 0; border-bottom: 1px solid var(--ops-border); }
.public-vita-note summary { cursor: pointer; color: var(--ops-accent); }
.public-vita-note h4 { margin-top: .7rem; font-size: .75rem; color: var(--ops-muted); }
.public-vita-note-content { margin-top: .3rem; font-size: .85rem; line-height: 1.6; }
.style-switch button { display:inline-flex; align-items:center; justify-content:center; min-width:1.9rem; padding:.3rem .4rem; border:0; border-radius:.4rem; background:transparent; color:var(--ops-muted,#a1a1aa); font-size:.72rem; line-height:1; cursor:pointer; transition:background .15s ease, color .15s ease; }
.style-switch button:hover { color:var(--ops-text,#e4e4e7); background:var(--ops-surface,#27272a); }
.style-switch button.is-active { background:var(--ops-accent,#6366f1); color:var(--ops-accent-contrast,#fff); }
.style-switch button:focus-visible { outline:2px solid var(--ops-accent,#6366f1); outline-offset:2px; }
@media (max-width: 639px) {
  .style-switch { gap:1px; padding:1px; }
  .style-switch button { min-width:1.55rem; padding:.25rem .3rem; font-size:.7rem; }
}
.today-side { display:grid; gap:1rem; align-content:start; }
.today-life { margin-top:0; }
.vita-summary-accounts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.6rem; margin:1rem 0; }
.vita-summary-account { text-align:left; padding:.8rem; border-radius:var(--ops-radius,.7rem); border:1px solid var(--ops-border,#3f3f46); background:var(--ops-surface-muted,#181a23); color:var(--ops-text,#e4e4e7); font-size:.9rem; }
.vita-summary-todos { display:grid; gap:.5rem; }
.vita-summary-todos li { display:flex; align-items:center; gap:.75rem; padding:.6rem .2rem; border-bottom:1px solid var(--ops-border,#3f3f46); }
.vita-summary-actions { display:flex; flex-wrap:wrap; gap:.75rem; margin-top:.7rem; font-size:.8rem; color:var(--ops-accent,#a5b4fc); }
.vitaflow-heading h3 { font-size:1.2rem; font-weight:750; color:var(--ops-text,#f4f4f5); }
.vitaflow-navigation { position:sticky; top:64px; z-index:30; padding:.65rem 0; background:var(--ops-page,#090a0f); border-bottom:1px solid var(--ops-border,#3f3f46); }
#vitaflow-native { min-width:0; }
#vitaflow-native :is(#energyOverview, #dailyPlan, #energyTrends, #creativeSpace) { scroll-margin-top:140px; }
@media (max-width:640px) { #vitaflow-native :is(#energyOverview, #dailyPlan, #energyTrends, #creativeSpace) { scroll-margin-top:190px; } }
@media (max-width:640px) { .vita-summary-accounts { grid-template-columns:repeat(2,minmax(0,1fr)); } }

/* Native life workspaces share the host navigation, tokens, and page scrolling. */
.workspace-heading { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.8rem; }
.workspace-heading h2 { font-size:1.2rem; font-weight:750; color:var(--ops-text); }
.workspace-heading > a { font-size:.8rem; color:var(--ops-accent); }
.workspace-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.75rem; font-size:.8rem; color:var(--ops-accent); }
.workspace-actions button { padding:.5rem .75rem; border:1px solid var(--ops-border); border-radius:var(--ops-radius); background:var(--ops-surface); }
.workspace-navigation { position:sticky; top:64px; z-index:30; display:flex; flex-wrap:wrap; gap:.5rem; padding:.65rem 0; background:var(--ops-page); border-bottom:1px solid var(--ops-border); }
.workspace-navigation button { padding:.5rem .8rem; border:1px solid var(--ops-border); border-radius:var(--ops-radius); background:var(--ops-surface); color:var(--ops-text); font-size:.8rem; }
.workspace-navigation button:focus-visible, .workspace-heading a:focus-visible { outline:2px solid var(--ops-accent); outline-offset:3px; }
#weight-native, #finance-native { min-width:0; }
#weight-native :is(#weight-overview,#weight-new-entry,#weight-history,#weight-groups) { scroll-margin-top:140px; }
.life-summary { display:flex; flex-wrap:wrap; align-items:baseline; gap:.5rem 1rem; padding:.9rem 0; }
.life-summary strong { font-size:1.65rem; font-weight:750; color:var(--ops-text); }
.life-summary span { font-size:.85rem; color:var(--ops-muted); }
.life-finance-summary { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; padding:.85rem 0; }
.life-finance-summary dt { font-size:.75rem; color:var(--ops-muted); }
.life-finance-summary dd { margin-top:.25rem; font-size:1.1rem; font-weight:650; color:var(--ops-text); overflow-wrap:anywhere; }
.today-life .today-muted { overflow-wrap:anywhere; }
@media (max-width:640px) { #weight-native :is(#weight-overview,#weight-new-entry,#weight-history,#weight-groups) { scroll-margin-top:170px; } }

/* ---- 知识库只读投影（data/private/，公开站不渲染） ---- */
.today-main { display:grid; gap:1rem; align-content:start; }
.knowledge-direction { font-size:.88rem; line-height:1.6; margin-top:.55rem; overflow-wrap:anywhere; }
.knowledge-direction, .knowledge-capacity { display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; -webkit-line-clamp:3; }
.knowledge-capacity { font-size:.8rem; margin-top:.3rem; }
.knowledge-items { list-style:none; margin:.7rem 0 0; padding:0; display:grid; gap:.55rem; }
.knowledge-nodes { list-style:none; margin:.9rem 0 0; padding:0; display:grid; gap:.5rem; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
.today-hard-nodes { margin-top:1rem; }
.knowledge-item { border-left:2px solid #6366f1; padding:.4rem 0 .4rem .7rem; }
.knowledge-item-head { display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; }
.knowledge-item-title { color:#f4f4f5; font-size:.92rem; font-weight:650; line-height:1.45; }
.knowledge-tag { font-size:.68rem; letter-spacing:.03em; padding:.1rem .4rem; border-radius:.4rem; background:rgba(99,102,241,.2); color:#a5b4fc; white-space:nowrap; }
.knowledge-meta { font-size:.76rem; color:#a1a1aa; margin:.2rem 0 0; }
.knowledge-std { font-size:.78rem; color:#c4c4cc; margin:.25rem 0 0; line-height:1.55; }
.knowledge-node { display:flex; gap:.65rem; align-items:flex-start; padding:.45rem .55rem; border-radius:.55rem; background:rgba(255,255,255,.035); }
.knowledge-days { flex:none; min-width:4.4rem; font-size:.72rem; color:#a1a1aa; font-variant-numeric:tabular-nums; padding-top:.1rem; }
.knowledge-node-body { display:flex; flex-direction:column; gap:.12rem; min-width:0; }
.knowledge-node-title { font-size:.84rem; color:#e4e4e7; line-height:1.4; overflow-wrap:anywhere; }
.knowledge-node-date { font-size:.7rem; color:#71717a; }
.knowledge-node--soon .knowledge-days { color:#fbbf24; font-weight:700; }
.knowledge-node--pending .knowledge-days { color:#a5b4fc; font-weight:700; }
.knowledge-node--urgent .knowledge-days { color:#fb923c; font-weight:700; }
.knowledge-node--overdue { background:rgba(248,113,113,.13); }
.knowledge-node--overdue .knowledge-days { color:#f87171; font-weight:700; }
.knowledge-items[hidden], .knowledge-nodes[hidden], #knowledge-wip[hidden], #knowledge-card[hidden], #hard-nodes-card[hidden] { display:none !important; }
html:not(.dark) .knowledge-item-title, html:not(.dark) .knowledge-node-title { color:#18181b; }
html:not(.dark) .knowledge-std { color:#3f3f46; }
html:not(.dark) .knowledge-node { background:rgba(0,0,0,.04); }
html:not(.dark) .knowledge-node--overdue { background:rgba(220,38,38,.1); }
html:not(.dark) .knowledge-node--pending .knowledge-days { color:#4f46e5; }
.knowledge-wip { margin-top:.9rem; border-top:1px solid #3f3f46; padding-top:.75rem; }
.knowledge-wip-list { list-style:none; margin:.45rem 0 0; padding:0; display:grid; gap:.4rem; }
.knowledge-wip-item { display:flex; gap:.5rem; align-items:baseline; flex-wrap:wrap; }
.knowledge-wip-pos { flex:none; font-size:.68rem; color:#a5b4fc; background:rgba(99,102,241,.18); border-radius:.35rem; padding:.05rem .35rem; }
.knowledge-wip-title { font-size:.84rem; color:#e4e4e7; font-weight:600; }
.knowledge-wip-meta { font-size:.68rem; color:#8a8a94; }
html:not(.dark) .knowledge-wip { border-top-color:#d4d4d8; }
html:not(.dark) .knowledge-wip-title { color:#18181b; }
/* 公开站没有本机知识库时：左栏只剩「今天的重点」，双列会留大片空白，改单列铺满 */
.today-grid.no-knowledge { grid-template-columns:minmax(0,1fr); }
.today-grid.no-knowledge .today-side { grid-template-columns:repeat(auto-fit,minmax(300px,1fr)); }
