/*
 * 学习画布共享主题（深度回忆 + 多题归纳）。
 * 变量定义自 knowledge-recall.css / knowledge-recall-patch-1.css 迁入；
 * 深度回忆在 .kr-app/.kr-viewport 上应用 data-theme，多题归纳在 body 上应用，
 * 两页复用主题样式，选择分别保存（见 src/canvas/97-learning-theme.js）。
 */
:root{
  --kr-bg:#f5f7fb;
  --kr-bg-a:#eef4ff;
  --kr-bg-b:#f8fbff;
  --kr-bg-c:#f6f3ff;
  --kr-ink:#0f172a;
  --kr-muted:#526176;
  --kr-card:rgba(255,255,255,.92);
  --kr-card-2:#f8fafc;
  --kr-card-ink:#0f172a;
  --kr-title:var(--role-text,#1e3a8a);
  --kr-primary:var(--role-primary,#2563eb);
  --kr-primary-dark:#1d4ed8;
  --kr-gold:#f59e0b;
  --kr-green:#22c55e;
  --kr-brown:#475569;
  --kr-line:#2563eb;
  --kr-line-glow:rgba(37,99,235,.18);
  --kr-border:rgba(148,163,184,.26);
  --kr-dash-border:rgba(37,99,235,.22);
  --kr-topbar-bg:rgba(255,255,255,.88);
  --kr-control-bg:#ffffff;
  --kr-control-hover:#eff6ff;
  --kr-control-ink:#1e3a8a;
  --kr-label-bg:rgba(255,255,255,.95);
  --kr-guide-bg-a:#ffffff;
  --kr-guide-bg-b:#eff6ff;
  --kr-choice-bg:rgba(248,250,252,.88);
  --kr-choice-hover:#eff6ff;
  --kr-grid-line:rgba(37,99,235,.06);
  --kr-shadow:0 18px 50px rgba(15,23,42,.12);
  --kr-highlight-from:rgba(37,99,235,.16);
  --kr-highlight-to:rgba(219,234,254,.92);
  --kr-highlight-ring:rgba(37,99,235,.18);
  --kr-highlight-hover:rgba(37,99,235,.10);
  --kr-highlight-text:#172554;
  --kr-node-base-a:#dbeafe;
  --kr-node-base-b:#60a5fa;
  --kr-node-base-c:#2563eb;
  --kr-node-base-d:#1e3a8a;
  --kr-node-base-shadow:#1d4ed8;
  --kr-node-root-a:#ede9fe;
  --kr-node-root-b:#a78bfa;
  --kr-node-root-c:#7c3aed;
  --kr-node-root-d:#4c1d95;
  --kr-node-root-shadow:#6d28d9;
  --kr-node-alt-a:#dcfce7;
  --kr-node-alt-b:#4ade80;
  --kr-node-alt-c:#16a34a;
  --kr-node-alt-d:#166534;
  --kr-node-alt-shadow:#15803d;
  --kr-node-cool-a:#cffafe;
  --kr-node-cool-b:#22d3ee;
  --kr-node-cool-c:#0891b2;
  --kr-node-cool-d:#164e63;
  --kr-node-cool-shadow:#0e7490;
}
:is(.kr-app,.kr-viewport,body)[data-theme="parchment"]{
  --kr-bg:#f5efe4;
  --kr-bg-a:#f8ead2;
  --kr-bg-b:#f5efe4;
  --kr-bg-c:#efe0c6;
  --kr-ink:#263238;
  --kr-muted:#6b7280;
  --kr-card:#fffaf0;
  --kr-card-2:#fff7d9;
  --kr-card-ink:#3c2a18;
  --kr-title:#4b2c12;
  --kr-primary:#8b5cf6;
  --kr-primary-dark:#5b21b6;
  --kr-gold:#f59e0b;
  --kr-green:#10b981;
  --kr-brown:#7c4a21;
  --kr-line:#b7791f;
  --kr-line-glow:rgba(255,221,87,.45);
  --kr-border:rgba(124,74,33,.20);
  --kr-dash-border:rgba(124,74,33,.25);
  --kr-topbar-bg:rgba(255,250,240,.82);
  --kr-control-bg:#fff8e9;
  --kr-control-hover:#fff2cb;
  --kr-control-ink:#593614;
  --kr-label-bg:rgba(255,250,240,.94);
  --kr-guide-bg-a:#fffefa;
  --kr-guide-bg-b:#fff3d0;
  --kr-choice-bg:rgba(255,255,255,.76);
  --kr-choice-hover:#fff8e4;
  --kr-grid-line:rgba(125,91,39,.08);
  --kr-shadow:0 18px 40px rgba(68,42,13,.18);
  --kr-highlight-from:rgba(251,191,36,.34);
  --kr-highlight-to:rgba(253,230,138,.88);
  --kr-highlight-ring:rgba(251,191,36,.26);
  --kr-highlight-hover:rgba(251,191,36,.18);
  --kr-highlight-text:#3a1f0a;
  --kr-node-base-a:#fbd38d;
  --kr-node-base-b:#f59e0b;
  --kr-node-base-c:#b45309;
  --kr-node-base-d:#78350f;
  --kr-node-base-shadow:#7c3f0a;
  --kr-node-root-a:#c4b5fd;
  --kr-node-root-b:#8b5cf6;
  --kr-node-root-c:#5b21b6;
  --kr-node-root-d:#3b0764;
  --kr-node-root-shadow:#4c1d95;
  --kr-node-alt-a:#86efac;
  --kr-node-alt-b:#22c55e;
  --kr-node-alt-c:#15803d;
  --kr-node-alt-d:#14532d;
  --kr-node-alt-shadow:#166534;
  --kr-node-cool-a:#93c5fd;
  --kr-node-cool-b:#3b82f6;
  --kr-node-cool-c:#1d4ed8;
  --kr-node-cool-d:#1e3a8a;
  --kr-node-cool-shadow:#1e40af;
}
:is(.kr-app,.kr-viewport,body)[data-theme="aurora"]{
  --kr-bg:#ecfdf5;--kr-bg-a:#d9f99d;--kr-bg-b:#ecfdf5;--kr-bg-c:#ccfbf1;--kr-card:#f7fee7;--kr-card-2:#dcfce7;--kr-card-ink:#123524;--kr-title:#14532d;--kr-primary:#10b981;--kr-primary-dark:#047857;--kr-line:#059669;--kr-line-glow:rgba(16,185,129,.34);--kr-border:rgba(6,95,70,.2);--kr-dash-border:rgba(6,95,70,.26);--kr-topbar-bg:rgba(240,253,244,.84);--kr-control-bg:#ecfdf5;--kr-control-hover:#d1fae5;--kr-control-ink:#064e3b;--kr-label-bg:rgba(240,253,244,.95);--kr-guide-bg-a:#f7fee7;--kr-guide-bg-b:#d1fae5;--kr-choice-hover:#ecfdf5;--kr-grid-line:rgba(6,95,70,.09);--kr-shadow:0 18px 40px rgba(6,78,59,.16)
}
:is(.kr-app,.kr-viewport,body)[data-theme="neon"]{
  --kr-bg:#111827;--kr-bg-a:#0f172a;--kr-bg-b:#111827;--kr-bg-c:#312e81;--kr-ink:#eef2ff;--kr-muted:#cbd5e1;--kr-card:#171b32;--kr-card-2:#272554;--kr-card-ink:#eef2ff;--kr-title:#f5f3ff;--kr-primary:#a78bfa;--kr-primary-dark:#7c3aed;--kr-line:#22d3ee;--kr-line-glow:rgba(34,211,238,.28);--kr-border:rgba(167,139,250,.28);--kr-dash-border:rgba(34,211,238,.24);--kr-topbar-bg:rgba(15,23,42,.82);--kr-control-bg:#1e1b4b;--kr-control-hover:#312e81;--kr-control-ink:#f5f3ff;--kr-label-bg:rgba(30,27,75,.94);--kr-guide-bg-a:#111827;--kr-guide-bg-b:#272554;--kr-choice-bg:rgba(30,27,75,.82);--kr-choice-hover:#312e81;--kr-grid-line:rgba(125,211,252,.08);--kr-shadow:0 20px 45px rgba(0,0,0,.38);--kr-node-root-a:#ddd6fe;--kr-node-root-b:#a78bfa;--kr-node-root-c:#7c3aed;--kr-node-root-d:#4c1d95;--kr-node-alt-a:#67e8f9;--kr-node-alt-b:#06b6d4;--kr-node-alt-c:#0e7490;--kr-node-alt-d:#164e63;--kr-node-alt-shadow:#155e75
}
:is(.kr-app,.kr-viewport,body)[data-theme="sakura"]{
  --kr-bg:#fff1f2;--kr-bg-a:#ffe4e6;--kr-bg-b:#fff1f2;--kr-bg-c:#fce7f3;--kr-card:#fff7f9;--kr-card-2:#ffe4e6;--kr-card-ink:#4a1d2d;--kr-title:#831843;--kr-primary:#ec4899;--kr-primary-dark:#be185d;--kr-line:#f472b6;--kr-line-glow:rgba(244,114,182,.32);--kr-border:rgba(190,24,93,.18);--kr-dash-border:rgba(190,24,93,.24);--kr-topbar-bg:rgba(255,241,242,.84);--kr-control-bg:#fff7f9;--kr-control-hover:#ffe4e6;--kr-control-ink:#831843;--kr-label-bg:rgba(255,247,249,.95);--kr-guide-bg-a:#fff7f9;--kr-guide-bg-b:#ffe4e6;--kr-choice-hover:#fff1f2;--kr-grid-line:rgba(190,24,93,.07);--kr-shadow:0 18px 40px rgba(157,23,77,.15);--kr-node-root-a:#fbcfe8;--kr-node-root-b:#ec4899;--kr-node-root-c:#be185d;--kr-node-root-d:#831843;--kr-node-root-shadow:#9d174d
}
:is(.kr-app,.kr-viewport,body)[data-theme="ocean"]{
  --kr-bg:#eff6ff;--kr-bg-a:#dbeafe;--kr-bg-b:#eff6ff;--kr-bg-c:#cffafe;--kr-card:#f8fbff;--kr-card-2:#e0f2fe;--kr-card-ink:#0f2942;--kr-title:#0c4a6e;--kr-primary:#0ea5e9;--kr-primary-dark:#0369a1;--kr-line:#0284c7;--kr-line-glow:rgba(14,165,233,.3);--kr-border:rgba(3,105,161,.20);--kr-dash-border:rgba(3,105,161,.24);--kr-topbar-bg:rgba(239,246,255,.84);--kr-control-bg:#f0f9ff;--kr-control-hover:#e0f2fe;--kr-control-ink:#075985;--kr-label-bg:rgba(240,249,255,.96);--kr-guide-bg-a:#f8fbff;--kr-guide-bg-b:#e0f2fe;--kr-choice-hover:#f0f9ff;--kr-grid-line:rgba(2,132,199,.08);--kr-shadow:0 18px 40px rgba(12,74,110,.16);--kr-node-root-a:#bae6fd;--kr-node-root-b:#0ea5e9;--kr-node-root-c:#0369a1;--kr-node-root-d:#075985;--kr-node-root-shadow:#0369a1
}
:is(.kr-app,.kr-viewport,body)[data-theme="latte"]{
  --kr-bg:#faf3e8;--kr-bg-a:#fef3c7;--kr-bg-b:#faf3e8;--kr-bg-c:#ead7bd;--kr-card:#fffaf4;--kr-card-2:#ffedd5;--kr-card-ink:#3d2a1a;--kr-title:#5f3517;--kr-primary:#c08457;--kr-primary-dark:#92400e;--kr-line:#b45309;--kr-line-glow:rgba(180,83,9,.24);--kr-border:rgba(120,53,15,.18);--kr-dash-border:rgba(120,53,15,.24);--kr-topbar-bg:rgba(255,250,244,.84);--kr-control-bg:#fff7ed;--kr-control-hover:#ffedd5;--kr-control-ink:#7c2d12;--kr-label-bg:rgba(255,250,244,.95);--kr-guide-bg-a:#fffaf4;--kr-guide-bg-b:#ffedd5;--kr-choice-hover:#fff7ed;--kr-grid-line:rgba(120,53,15,.08);--kr-shadow:0 18px 40px rgba(67,38,10,.17)
}
/* 场景菜单色块（scene swatch），自 knowledge-recall-patch-1.css 迁入并去掉页面限定 */
[data-kr-theme="platform"]{--kr-scene-a:#eef4ff;--kr-scene-b:#6d5dfc;--kr-scene-c:#fff}
[data-kr-theme="parchment"]{--kr-scene-a:#f8ead2;--kr-scene-b:#b7791f;--kr-scene-c:#fffaf0}
[data-kr-theme="aurora"]{--kr-scene-a:#d9f99d;--kr-scene-b:#10b981;--kr-scene-c:#ecfdf5}
[data-kr-theme="neon"]{--kr-scene-a:#111827;--kr-scene-b:#7c3aed;--kr-scene-c:#22d3ee}
[data-kr-theme="sakura"]{--kr-scene-a:#ffe4e6;--kr-scene-b:#ec4899;--kr-scene-c:#fff7f9}
[data-kr-theme="ocean"]{--kr-scene-a:#dbeafe;--kr-scene-b:#0ea5e9;--kr-scene-c:#cffafe}
[data-kr-theme="latte"]{--kr-scene-a:#fef3c7;--kr-scene-b:#c08457;--kr-scene-c:#fffaf4}

/* 多题归纳（question-workspace）主题覆盖：主导表面消费 --kr-* 变量 */
body.question-workspace-page[data-theme]{
  --qw-ink:var(--kr-ink);
  --qw-muted:var(--kr-muted);
  --qw-primary:var(--kr-primary);
  --qw-primary-deep:var(--kr-primary-dark);
  --qw-line:var(--kr-border);
  /* 学习壳层（learning-practice-shell）变量组：顶栏等 !important 规则消费这些变量 */
  --lp-shell-bg:var(--kr-topbar-bg);
  --lp-shell-ink:var(--kr-ink);
  --lp-shell-muted:var(--kr-muted);
  --lp-shell-border:var(--kr-border);
  background:var(--kr-bg);
  color:var(--kr-ink);
}
body.question-workspace-page[data-theme] .qw-topbar{border-bottom-color:var(--kr-border);background:var(--kr-topbar-bg)}
body.question-workspace-page[data-theme] .qw-question-card{background:var(--kr-card);border-color:var(--kr-border);color:var(--kr-card-ink)}
body.question-workspace-page[data-theme] .qw-question-card:hover{border-color:color-mix(in srgb,var(--kr-primary) 42%,transparent);box-shadow:0 18px 52px color-mix(in srgb,var(--kr-primary) 18%,transparent)}
body.question-workspace-page[data-theme] .qw-card-header{border-bottom-color:var(--kr-border);background:linear-gradient(135deg,color-mix(in srgb,var(--kr-primary) 8%,var(--kr-card)),var(--kr-card))}
/* 主题切换控件（顶栏 select） */
.qw-theme-select{height:36px;padding:0 10px;border:1px solid #dfe4ed;border-radius:11px;background:#fff;color:#475569;font-size:11px;font-weight:900;cursor:pointer;outline:0}
.qw-theme-select:focus-visible{outline:2px solid var(--qw-primary,#6d5dfc);outline-offset:2px}
body.question-workspace-page[data-theme] .qw-theme-select{border-color:var(--kr-border);background:var(--kr-control-bg);color:var(--kr-control-ink)}

/* Both learning modes retain their compact native theme dropdown. */
.learning-theme-select{height:36px;max-width:160px;flex:0 0 auto;padding:0 10px;border:1px solid var(--kr-border,#dfe4ed);border-radius:11px;background:var(--kr-control-bg,#fff);color:var(--kr-control-ink,#475569);font-size:11px;font-weight:900;cursor:pointer}
.learning-theme-select:focus-visible{outline:2px solid var(--kr-primary,#6d5dfc);outline-offset:2px}

/* Explicit scene selection covers the whole card, including formerly white
 * document surfaces. Saved manual colors remain in the document unchanged. */
body.question-workspace-page[data-theme]:not([data-theme="platform"]) .qw-question-card,
body.question-workspace-page[data-theme]:not([data-theme="platform"]) .qw-question-card>.qw-card-body{background:var(--kr-card)!important;color:var(--kr-card-ink)!important;border-color:var(--kr-border)!important}
body.question-workspace-page[data-theme]:not([data-theme="platform"]) .qw-card-header{background:var(--kr-card-2)!important;color:var(--kr-card-ink)!important}
body.question-workspace-page[data-theme]:not([data-theme="platform"]) :is(.qw-card-content,.qw-card-stem,.qw-card-question,.qw-card-question-stem,.qw-synthesis-text,.qw-synthesis-content,.qw-synthesis-principle,.qw-bilingual-en){color:var(--kr-card-ink)!important}
body.question-workspace-page[data-theme]:not([data-theme="platform"]) .qw-card-option{background:var(--kr-choice-bg)!important;color:var(--kr-card-ink)!important;border-color:var(--kr-border)!important}
body.knowledge-recall-page[data-kr-theme]:not([data-kr-theme="platform"]) .kr-question-card{background:var(--kr-card)!important;color:var(--kr-card-ink)!important;border-color:var(--kr-border)!important}

body.knowledge-recall-page[data-kr-theme]:not([data-kr-theme="platform"]) .kr-question-card .qw-bilingual-en{color:var(--kr-card-ink)!important}

/* Legacy documents capture their first effective themed background once. */
body.question-workspace-page[data-theme]:not([data-workspace-background]) .uc-canvas-surface{
  /* 画布运行时会把这几个变量以内联样式写到 viewport，需 !important 才能赢得级联 */
  --uc-canvas-bg:var(--kr-bg-b)!important;
  --uc-canvas-pattern-ink:var(--kr-grid-line)!important;
  --uc-canvas-pattern-major-ink:var(--kr-grid-line)!important;
}
body.question-workspace-page[data-theme]:not([data-workspace-background]) .qw-background{
  background-color:var(--kr-bg-b);
  background-image:
    radial-gradient(circle at 1px 1px,var(--kr-grid-line) 1.15px,transparent 1.35px),
    radial-gradient(circle at 1px 1px,var(--kr-grid-line) .85px,transparent 1.05px),
    linear-gradient(135deg,color-mix(in srgb,var(--kr-bg-a) 74%,transparent),color-mix(in srgb,var(--kr-bg-b) 92%,transparent));
}
