/* NL2CGA: canonical palette extracted from / on 2026-10-01.
   Visual-only adapter: no sizing, display, positioning, or layout changes. */
:root {
  --ink:#142a35; --muted:#607780; --line:#dbe5e8; --accent:#087f72;
  --soft:#f6f9f8; --card:#fff; --brand-soft:#e8f3ef;
  --brand-border:#c8d8d8; --brand-input-border:#cbd8da;
  --brand-code:#102c35; --brand-code-text:#d4ece7;
  --brand-warning:#705628; --brand-warning-bg:#fff5df; --brand-warning-border:#eadab7;
  --brand-font:Inter,"Noto Sans CJK SC","Microsoft YaHei",sans-serif;
  --shadow:0 14px 38px #123a3510;
  --border:var(--line);
  --cv-bg:var(--soft); --cv-bg-2:var(--card); --cv-bg-3:var(--brand-soft);
  --cv-bg-inset:var(--card); --cv-border:var(--line); --cv-border-strong:var(--brand-border);
  --cv-text:var(--ink); --cv-text-2:var(--muted); --cv-text-3:var(--muted);
  --cv-accent:var(--accent); --cv-accent-2:var(--accent);
  --cv-accent-grad:linear-gradient(135deg,var(--accent),var(--accent));
  --cv-accent-soft:var(--brand-soft); --cv-accent-ring:#087f7259;
  --cv-ok:#107865; --cv-ok-soft:#dff1e9;
  --cv-warn:var(--brand-warning); --cv-warn-soft:var(--brand-warning-bg);
  --cv-info:var(--accent); --cv-info-soft:var(--brand-soft);
  --cv-font:var(--brand-font); --cv-shadow:var(--shadow);
  --cv-shadow-lg:0 22px 65px #123a3520; --cv-shadow-sm:0 2px 8px #123a3510;
}
body { background:var(--soft); color:var(--ink); font-family:var(--brand-font); line-height:1.7; }
button,input,textarea,select { font-family:inherit; }
a:hover { color:var(--accent); }
::selection { background:#087f7233; }
.topbar .brand { color:var(--accent); }
.card,.panel,.feature,.plan,.pay-result,.qr-frame { background:var(--card); border-color:var(--line); }
.plan.featured { border-color:var(--accent); }
.btn,.button,button { border-color:var(--brand-border); }
.primary,.btn.primary,.button.primary,.cv-btn-primary {
  background:var(--accent); color:#fff; border-color:var(--accent);
}
input,textarea,select { color:var(--ink); background:var(--card); border-color:var(--brand-input-border); }
input[type=checkbox] { accent-color:var(--accent); }
.nav a.active,.nav a:hover { color:var(--accent); background:var(--brand-soft); }
.noticebox,.notice.warn { color:var(--brand-warning); background:var(--brand-warning-bg); border-color:var(--brand-warning-border); }
.polling { color:var(--brand-warning); }
.paid { color:#107865; }
/* Semantic error/danger red is retained for safety; it is not a brand accent. */
