:root { --bg:#fff; --fg:#1a1a1a; --muted:#6b7280; --accent:#0f7b3a; font-family: "DM Sans", system-ui, sans-serif; }
@media (prefers-color-scheme: dark) { :root { --bg:#0f1115; --fg:#f3f4f6; --muted:#9ca3af; } }
html,body { margin:0; background:var(--bg); color:var(--fg); }
.page { max-width: 720px; margin: 0 auto; padding: 48px 16px; }
.hero h1 { color: var(--accent); margin: 0 0 8px; }
.muted { color: var(--muted); }
.link-button { background:none; border:0; padding:0; color:var(--accent); text-decoration:underline; cursor:pointer; font:inherit; }
.link { color: var(--accent); text-decoration: underline; }
.btn { display:inline-block; background:var(--accent); color:#fff; padding:10px 18px; border-radius:8px; text-decoration:none; font-weight:600; }
.footer { text-align:center; color:var(--muted); font-size: 12px; padding: 24px 16px; }
.banner { padding: 10px 14px; border-radius: 6px; font-weight: 600; }
.banner-warning { background: #7a1f1f; color: #fff; }
.dev-login-table { width:100%; border-collapse: collapse; margin-top: 16px; }
.dev-login-table th, .dev-login-table td { text-align:left; padding: 8px 12px; border-bottom: 1px solid rgba(128,128,128,.25); }

/* ---- Kbach Phni Pleung watermark (CSP-42) -------------------------------
   Decorative only: fixed behind everything, never interactive, drawn in
   currentColor so light/dark needs no second asset. Kept faint enough that
   text contrast is untouched; denser screens (admin) use the -quiet variant. */
.kbach-watermark {
  position: fixed;
  right: -60px;
  bottom: -70px;
  width: 340px;
  height: auto;
  color: var(--fg);
  opacity: 0.05;
  pointer-events: none;
  user-select: none;
  z-index: 0;
}
.kbach-watermark-quiet { opacity: 0.03; width: 300px; }
@media (prefers-color-scheme: dark) {
  .kbach-watermark { opacity: 0.07; }
  .kbach-watermark-quiet { opacity: 0.05; }
}
@media (max-width: 560px) { .kbach-watermark { width: 240px; right: -50px; bottom: -56px; } }
@media print, (prefers-reduced-motion: reduce) and (prefers-contrast: more) { .kbach-watermark { display: none; } }
/* content sits above the ornament */
.page, .admin .adm-top, .admin .adm-shell { position: relative; z-index: 1; }

.kbach-rule { width: 34px; height: 16px; color: var(--muted); opacity: 0.55; }
.kbach-divider { display: flex; align-items: center; gap: 10px; margin: 22px 0; }
.kbach-divider::before, .kbach-divider::after {
  content: ""; flex: 1 1 auto; height: 1px; background: currentColor; opacity: 0.18;
}
