/* ============================================================
   NDBI 家庭干预平台 · V2 共享设计令牌（tokens-v2.css）
   来源：design-output/v2/DESIGN-V2.md（彩格调 · V2 参考图风格定制版）
   纪律：所有颜色/字号/圆角/间距只允许引用本文件变量，禁止裸值
   ============================================================ */

:root {
  /* Primary · 明亮蓝（品牌一级色） */
  --primary-50:#F0F9FF; --primary-100:#E0F2FE; --primary-200:#BAE6FD;
  --primary-300:#7DD3FC; --primary-400:#38BDF8; --primary-500:#0EA5E9;
  --primary-600:#0284C7; --primary-700:#0369A1; --primary-800:#075985; --primary-900:#0C4A6E;

  /* CTA · 珊瑚橙（V2 一级行动色；严格 AA 模式 500→#C2410C、600→#9A3412） */
  --cta-50:#FEF5EE; --cta-100:#FDEBDC; --cta-200:#FBD5B8; --cta-300:#F9B48A;
  --cta-400:#FB923C; --cta-500:#F97316; --cta-600:#EA580C; --cta-700:#C2410C;

  /* Parent Brand · 青绿（家长端专用主色；参考资料库界面稿统一风格。
     仅家长端经 parent-v2.css 在 .phone 作用域映射到 --primary-*，其它端不受影响） */
  --pbrand-50:#F0FDFA; --pbrand-100:#CCFBF1; --pbrand-200:#99F6E4; --pbrand-300:#5EEAD4;
  --pbrand-400:#2DD4BF; --pbrand-500:#14B8A6; --pbrand-600:#0D9488; --pbrand-700:#0F766E;
  --pbrand-800:#115E59; --pbrand-900:#134E4A;

  /* Success · 鲜绿（严格 AA 模式 600→#15803D） */
  --success-50:#F0FBF3; --success-100:#DCF5E3; --success-500:#22C55E;
  --success-600:#16A34A; --success-700:#15803D;

  /* Task Quad · 四色任务语义（跨端跨版本锁定，禁止改色） */
  --task-self:#16A34A;      --task-self-text:#15803D;      --task-self-bg:#E9F7EE;
  --task-prompted:#2563EB;  --task-prompted-text:#1D4ED8;  --task-prompted-bg:#E9EFFD;
  --task-none:#8A8F98;      --task-none-text:#5C6470;      --task-none-bg:#F1F2F4;
  --task-noop:#D97706;      --task-noop-text:#B45309;      --task-noop-bg:#FCF2E2;

  /* Warning & Status（锁定） */
  --warning-red:#DC2626; --warning-red-text:#B91C1C; --warning-red-bg:#FDECEC;
  --review-pending:#D97706; --review-pending-text:#B45309; --review-pending-bg:#FCF2E2;

  /* Neutral · 冷灰阶 */
  --bg-page:#F7F8FA; --bg-surface:#FFFFFF; --bg-subtle:#F3F4F6; --bg-hover:#E9EBEF;
  --border:#E5E7EB; --border-strong:#C8CDD5;
  --text-placeholder:#9CA3AF; --text-tertiary:#6B7280; --text-secondary:#4B5563;
  --text-secondary-strong:#374151; --text-primary:#1F2937; --text-heading:#111827;

  /* Chart */
  --chart-1:#0EA5E9; --chart-2:#2563EB; --chart-3:#D97706; --chart-4:#6B7280; --chart-5:#F97316;
  --chart-grid:#E5E7EB;

  /* Type */
  --font-sans:-apple-system,BlinkMacSystemFont,"PingFang SC","HarmonyOS Sans SC","MiSans","Noto Sans SC","Source Han Sans SC","Microsoft YaHei","Heiti SC",sans-serif;
  --font-mono:"SF Mono","JetBrains Mono","Roboto Mono",Menlo,Consolas,"Noto Sans Mono CJK SC",monospace;

  /* Spacing 4/8 base */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px; --space-16:64px;

  /* Radius · V2 工作台默认 */
  --radius-card:10px; --radius-strip:10px 10px 0 0;
  --radius-btn:6px; --radius-btn-lg:8px; --radius-chip:999px;
  --radius-badge:6px; --radius-input:6px;

  /* Elevation · 冷投影扁平 */
  --shadow-1:0 1px 2px rgba(16,24,40,.05);
  --shadow-2:0 4px 12px rgba(16,24,40,.08);
  --shadow-3:0 8px 24px rgba(16,24,40,.12);

  /* Layout · 工作台骨架 */
  --header-h:56px; --rail-left:220px; --rail-right:300px;

  /* Z-index */
  --z-sticky:100; --z-dropdown:200; --z-drawer:300; --z-modal:400; --z-toast:500;
}

/* ---------- 基础重置 ---------- */
* { margin:0; padding:0; box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  font-family:var(--font-sans);
  background:var(--bg-page);
  color:var(--text-primary);
  font-size:14px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}
img { display:block; max-width:100%; }
a { color:var(--primary-700); text-decoration:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }
.num, .tabular { font-variant-numeric:tabular-nums; }
.mono { font-family:var(--font-mono); }

.text-secondary { color:var(--text-secondary); }
.text-tertiary { color:var(--text-tertiary); }
.text-heading { color:var(--text-heading); }
.text-link { color:var(--primary-700); }

/* ---------- 四色任务语义徽章（全端同构，锁色） ---------- */
.badge { display:inline-flex; align-items:center; gap:4px; padding:2px 8px; border-radius:var(--radius-badge); font-size:12px; font-weight:600; line-height:1.4; white-space:nowrap; }
.badge-self      { background:var(--task-self-bg);      color:var(--task-self-text); }
.badge-prompted  { background:var(--task-prompted-bg);  color:var(--task-prompted-text); }
.badge-none      { background:var(--task-none-bg);      color:var(--task-none-text); }
.badge-noop      { background:var(--task-noop-bg);      color:var(--task-noop-text); }
.badge-warning   { background:var(--warning-red-bg);    color:var(--warning-red-text); }
.badge-success   { background:var(--success-50);        color:var(--success-700); }
.badge-info      { background:var(--primary-50);        color:var(--primary-700); }
.badge-pending   { background:var(--review-pending-bg); color:var(--review-pending-text); }
.badge-neutral   { background:var(--bg-subtle);         color:var(--text-secondary); border:1px solid var(--border); }

/* ---------- 按钮（V2：珊瑚一级行动色 + 绿色次要正向） ---------- */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:6px; font-weight:600; border-radius:var(--radius-btn); transition:background .15s, opacity .15s; }
.btn:disabled, .btn.disabled { background:var(--bg-hover); color:var(--text-placeholder); cursor:not-allowed; }
.btn-cta { background:var(--cta-500); color:#FFFFFF; }                 /* 采纳/提交/保存（保真默认） */
.btn-cta:hover { background:var(--cta-600); }
.btn-cta:active { background:var(--cta-700); }
.btn-cta--aa { background:var(--cta-700); color:#FFFFFF; }             /* 严格 AA 替换 */
.btn-success { background:var(--success-600); color:#FFFFFF; }         /* 保存草稿等次要正向 */
.btn-success:hover { background:var(--success-700); }
.btn-primary { background:var(--primary-500); color:#FFFFFF; }         /* 工具主操作（非行动色场景） */
.btn-primary:hover { background:var(--primary-600); }
.btn-secondary { background:var(--bg-surface); color:var(--text-primary); border:1px solid var(--border-strong); }
.btn-secondary:hover { background:var(--bg-subtle); }
.btn-ghost { background:transparent; color:var(--primary-700); }
.btn-ghost:hover { background:var(--primary-50); }

/* ---------- 隐藏守卫（全局） ----------
   render.js 的 bindList 用 [hidden] 藏行模板，但各页的 .xxx{display:flex} 是作者样式，
   会压过 UA 的 [hidden]{display:none}，模板行因此漏显示（w1 todo-row、w2 feed-card 都踩过）。
   在令牌层统一兜底：只要显式标了 hidden，任何 display 都不生效。 */
[hidden] { display:none !important; }

/* ---------- 卡片（V2：白卡 + 1px 冷灰边 + 顶部 4px 蓝饰条 + Flat） ---------- */
.card { background:var(--bg-surface); border:1px solid var(--border); border-radius:var(--radius-card); }
.card--strip { border-top:4px solid var(--primary-500); border-radius:var(--radius-strip); }

/* ---------- 下拉 chip（V2 工作台表单元素） ---------- */
.chip-select { display:inline-flex; align-items:center; gap:6px; height:28px; padding:0 10px;
  background:var(--bg-surface); border:1px solid var(--border); border-radius:var(--radius-chip);
  font-size:13px; color:var(--text-primary); }
.chip-select:hover { border-color:var(--primary-300); }
.chip-select .chev { color:var(--text-tertiary); flex:none; }

/* ---------- 进度条（打卡率<60% 时填充 --warning-red，唯一红色数据场景） ---------- */
.progress-track { height:8px; background:var(--bg-hover); border-radius:999px; overflow:hidden; }
.progress-fill { height:100%; background:var(--primary-500); border-radius:999px; }
.progress-fill.danger { background:var(--warning-red); }

/* ---------- 焦点可达性 ---------- */
:focus-visible { outline:2px solid var(--primary-500); outline-offset:2px; }

/* ---------- 隐藏滚动条 ---------- */
.no-scrollbar::-webkit-scrollbar { display:none; }
.no-scrollbar { -ms-overflow-style:none; scrollbar-width:none; }

/* ---------- 家长端 V3 皮肤令牌（原型「葡萄紫」暖纸主题 · Batch BQ） ----------
   来源：《NDBI家长端小程序原型》重设计稿；仅新增令牌，不改既有值。
   语义：自发=品牌紫 / 提示后=印章黄 / 无表现=玫瑰灰 / 无机会=雾蓝（无机会不算没做到）。 */
:root {
  --pv3-paper: #F9F6FD;
  --pv3-paper-2: #F2ECF9;
  --pv3-card-2: #F6F1FC;
  --pv3-line: #ECE4F6;
  --pv3-line-strong: #DCCFEB;
  --pv3-ink: #2F2440;
  --pv3-ink-2: #65567C;
  --pv3-ink-strong: #5A4C72;
  --pv3-muted: #7A6B92;
  --pv3-placeholder: #BCB0D4;
  --pv3-brand: #8B5FC6;
  --pv3-brand-btn: #66389E;
  --pv3-brand-deep: #5E3193;
  --pv3-brand-50: #F6F1FC;
  --pv3-brand-100: #EFE6FA;
  --pv3-brand-200: #E4D6F6;
  --pv3-brand-300: #C9AEE8;
  --pv3-brand-400: #A87FD6;
  --pv3-brand-500: #8B5FC6;
  --pv3-brand-600: #7448B3;
  --pv3-brand-700: #66389E;
  --pv3-brand-800: #5E3193;
  --pv3-brand-900: #4A2378;
  --pv3-tint: #EFE6FA;
  --pv3-wash: #E4D6F6;
  --pv3-seal: #E9B93C;
  --pv3-seal-deep: #7A5A05;
  --pv3-seal-tint: #FBF0D2;
  --pv3-nr: #B97A85;
  --pv3-nr-deep: #7E4550;
  --pv3-nr-tint: #F7ECEF;
  --pv3-no: #6E8898;
  --pv3-no-text: #4D6172;
  --pv3-no-tint: #EDF1F5;
  --pv3-dark: #33254A;
  --pv3-on-dark: #F8F3FF;
  --pv3-on-dark-2: #DCCFEB;
  --pv3-on-dark-muted: #BEAECF;
  --pv3-brand-rgb: 139, 95, 198;
  --pv3-brand-btn-rgb: 102, 56, 158;
  --pv3-seal-rgb: 233, 185, 60;
  --pv3-shadow-rgb: 64, 44, 86;
}
