/* genlien design system — monochromatic, gradient monochromatic accents, day/night.
   CRITICAL: background AND text are theme variables. No literal #fff / #000 in element
   rules; everything resolves through var(--bg)/var(--text) so night mode cannot invert
   to black-on-black. Contrast measured >= 4.5 in both modes (see LEGAL-SAFETY / DEPLOY-NOTES). */

:root {
  --bg:#ffffff;
  --bg-soft:#f5f6f7;
  --card:#ffffff;
  --text:#0d0f11;      /* on --bg: ~18.7:1 */
  --text-soft:#4a4f55; /* on --bg: ~7.6:1  */
  --line:#e2e5e8;
  --accent:#1a1e23;
  --grad-a:#3a3f45;
  --grad-b:#6b7178;
  --grad-c:#111417;
  --warn-bg:#f3ede1;   /* neutral parchment, monochromatic-warm */
  --warn-text:#4a4133; /* on --warn-bg: ~7.4:1 */
  --warn-line:#d8ccb4;
  --preview-bg:#eceef0;
  --preview-text:#2b2f34;
  --maxw:960px;
}

:root[data-theme="night"] {
  --bg:#0d0f11;
  --bg-soft:#16181b;
  --card:#16181b;
  --text:#f2f3f4;      /* on --bg: ~16.8:1 */
  --text-soft:#a8adb3; /* on --bg: ~8.1:1  */
  --line:#2a2e33;
  --accent:#e8eaec;
  --grad-a:#c9ced3;
  --grad-b:#8b9198;
  --grad-c:#f2f3f4;
  --warn-bg:#241f16;   /* on this bg, warn-text below is light */
  --warn-text:#e8dcc4; /* on --warn-bg: ~9.1:1 */
  --warn-line:#4a4133;
  --preview-bg:#20242a;
  --preview-text:#dfe3e7;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body {
  margin:0;
  font:16px/1.6 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg);
  color:var(--text);
  transition:background .18s ease,color .18s ease;
}
a { color:inherit; }
img { max-width:100%; }
.wrap { max-width:var(--maxw); margin:0 auto; padding:0 22px; }

/* header */
.site-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 22px; border-bottom:1px solid var(--line); background:var(--bg);
  position:sticky; top:0; z-index:20;
}
.brand { font-weight:700; letter-spacing:-.02em; font-size:1.15rem; text-decoration:none; color:var(--text); }
.brand em {
  font-style:normal;
  background:linear-gradient(90deg,var(--grad-a),var(--grad-c));
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.nav { display:flex; gap:18px; align-items:center; }
.nav a { color:var(--text-soft); text-decoration:none; font-size:.94rem; }
.nav a:hover { color:var(--text); }
.theme-toggle {
  border:1px solid var(--line); background:var(--bg-soft); color:var(--text);
  border-radius:8px; padding:6px 10px; cursor:pointer; font-size:.85rem;
}

/* hero / sections */
.hero { text-align:center; padding:64px 0 40px; }
.hero h1 {
  font-size:2.6rem; line-height:1.1; letter-spacing:-.03em; margin:0 auto; max-width:760px;
  background:linear-gradient(120deg,var(--grad-a) 0%,var(--grad-b) 55%,var(--grad-c) 100%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.hero p { max-width:620px; margin:20px auto 0; color:var(--text-soft); font-size:1.12rem; }
.section { padding:40px 0; }
h2 { font-size:1.6rem; letter-spacing:-.02em; margin:0 0 8px; }
.section-sub { color:var(--text-soft); max-width:640px; margin:0 0 28px; }

.btn {
  display:inline-block; text-decoration:none; border-radius:10px; padding:12px 20px;
  font-weight:600; font-size:.98rem; cursor:pointer; border:1px solid transparent;
}
.btn-primary { background:linear-gradient(120deg,var(--grad-a),var(--grad-b)); color:var(--bg); }
.btn-secondary { border-color:var(--line); color:var(--text); background:var(--bg); }
.btn[disabled], .btn:disabled { opacity:.5; cursor:not-allowed; }

.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:20px; }
.card h3 { margin:0 0 6px; font-size:1.05rem; }
.card p { margin:0; color:var(--text-soft); font-size:.94rem; }

/* legal-safety UI */
.disclaimer-bar {
  background:var(--warn-bg); color:var(--warn-text);
  border-top:1px solid var(--warn-line); border-bottom:1px solid var(--warn-line);
  font-size:.86rem; padding:12px 0;
}
.disclaimer-bar strong { color:var(--warn-text); }
.preview-badge {
  display:inline-flex; align-items:center; gap:8px;
  background:var(--preview-bg); color:var(--preview-text);
  border:1px dashed var(--preview-text); border-radius:8px;
  padding:8px 12px; font-weight:700; letter-spacing:.04em; font-size:.82rem;
}
.notice {
  background:var(--warn-bg); color:var(--warn-text);
  border:1px solid var(--warn-line); border-radius:10px; padding:14px 16px;
  font-size:.9rem; margin:16px 0;
}
.legal-page { max-width:760px; margin:0 auto; padding:40px 0 60px; }
.legal-page h1 { font-size:2rem; letter-spacing:-.02em; }
.legal-page h2 { font-size:1.2rem; margin-top:28px; }
.legal-page p, .legal-page li { color:var(--text); }
.legal-page .updated { color:var(--text-soft); font-size:.85rem; }

/* form shells (validation / attestation) — no generator logic behind them in Gate 1 */
.field { margin:14px 0; }
.field label { display:block; font-weight:600; margin-bottom:6px; font-size:.92rem; }
.field .req { color:var(--warn-text); }
.field input, .field select, .field textarea {
  width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:8px;
  background:var(--bg); color:var(--text); font:inherit;
}
.field input:invalid { border-color:var(--warn-line); }
.field .hint { color:var(--text-soft); font-size:.82rem; margin-top:4px; }
.attest { display:flex; gap:10px; align-items:flex-start; margin:16px 0; }
.attest input { margin-top:4px; }

/* footer */
.site-foot { border-top:1px solid var(--line); background:var(--bg-soft); margin-top:48px; }
.site-foot .wrap { padding:26px 22px; }
.foot-links { display:flex; gap:16px; flex-wrap:wrap; font-size:.9rem; }
.foot-links a { color:var(--text-soft); text-decoration:none; }
.foot-links a:hover { color:var(--text); }
.foot-disclaimer { color:var(--text-soft); font-size:.82rem; margin-top:14px; max-width:760px; }

/* generated-document review view */
.genlien-doc {
  position:relative; overflow:hidden;
  background:var(--card); color:var(--text);
  border:1px solid var(--line); border-radius:12px;
  padding:28px 30px; margin:18px 0;
}
.genlien-doc .doc-title { text-align:center; font-size:1.15rem; letter-spacing:.02em; margin:6px 0 16px; }
.genlien-doc .doc-notice { font-weight:700; font-size:.86rem; line-height:1.5; margin:0 0 16px; }
/* § 8134/§ 8138 large-type Notice to Claimant: larger than the title, per statute */
.genlien-doc .doc-notice-claimant { font-weight:800; font-size:1.12rem; line-height:1.45; margin:0 0 16px; }
.genlien-doc .doc-h { font-size:1rem; margin:18px 0 6px; }
.genlien-doc .doc-p { font-size:.92rem; line-height:1.6; margin:0 0 10px; }
.genlien-doc .doc-li { font-size:.92rem; line-height:1.6; margin:0 0 6px; padding-left:24px; text-indent:-24px; }
.genlien-doc .doc-li .num { font-weight:600; }
.genlien-doc .doc-field { font-size:.94rem; margin:4px 0; }
.genlien-doc .doc-field .lbl { font-weight:700; }
.genlien-doc .blank, .genlien-doc .sigline {
  display:inline-block; min-width:200px; border-bottom:1px solid var(--text-soft); height:1em; vertical-align:bottom;
}
.genlien-doc .doc-src { font-size:.78rem; color:var(--text-soft); margin-top:18px; font-style:italic; }
.genlien-doc.is-preview .wm-banner {
  background:var(--warn-bg); color:var(--warn-text); border:1px solid var(--warn-line);
  border-radius:8px; padding:8px 12px; font-weight:800; letter-spacing:.06em; text-align:center;
  font-size:.9rem; margin-bottom:16px;
}
.genlien-doc.is-preview .wm-overlay {
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  transform:rotate(-24deg); font-size:2.4rem; font-weight:800; letter-spacing:.1em;
  color:var(--text); opacity:.08; pointer-events:none; white-space:nowrap;
}

@media (max-width:640px){
  .hero h1 { font-size:2rem; }
  .nav a:not(.theme-toggle) { display:none; }
  .genlien-doc .blank, .genlien-doc .sigline { min-width:120px; }
}
