@layer reset, base, layout, components;
@layer reset {
  *, *::before, *::after { box-sizing: border-box; }
  body { margin: 0; }
  button, select, input, textarea { font: inherit; }
  [hidden] { display: none !important; }
  img, svg { max-width: 100%; }
}
@layer base {
  :root { color-scheme: light; --bg:#f7f8f2; --surface:#fff; --ink:#182d26; --muted:#52645a; --line:#d6dfd3; --green:#174d3c; --on-green:#f7fbe9; --tint:#eaf1d9; --focus:#b0440b; --error:#a12727; --radius:1.25rem; }
  html { scroll-padding-top: 1.5rem; }
  body { background:var(--bg); color:var(--ink); font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:1rem; line-height:1.6; }
  h1,h2,h3,p { margin:0; }
  h1,h2,h3 { line-height:1.12; letter-spacing:-.035em; text-wrap:balance; }
  h1 { font-size:clamp(2.35rem,4.5vw,4rem); font-weight:650; }
  h1 span { color:var(--green); }
  h2 { font-size:1.55rem; font-weight:650; }
  h3 { font-size:1.08rem; font-weight:650; }
  p,li,dd,a { overflow-wrap:anywhere; }
  a { color:var(--green); text-underline-offset:.22em; }
  a:hover { text-decoration-thickness:.13em; }
  :focus-visible { outline:3px solid var(--focus); outline-offset:4px; }
  button { cursor:pointer; }
  button:disabled { cursor:not-allowed; opacity:.48; }
  code,pre { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; }
  [tabindex="-1"]:focus:not(:focus-visible) { outline:0; }
}
@layer layout {
  .shell { width:min(100% - 3rem,82rem); margin-inline:auto; }
  .site-header { border-bottom:1px solid var(--line); background:var(--bg); }
  .header-inner { min-height:5rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; }
  .brand { display:inline-flex; align-items:center; gap:.6rem; color:var(--ink); font-size:1.18rem; font-weight:750; letter-spacing:-.04em; text-decoration:none; line-height:1.2; }
  .brand-symbol { display:grid; place-items:center; flex:none; width:2.15rem; height:2.15rem; border-radius:.65rem; color:var(--on-green); background:var(--green); font-size:1.45rem; }
  .brand-dot { color:var(--green); margin-left:-.55rem; }
  nav { display:flex; flex-wrap:wrap; gap:.5rem; }
  nav a { display:inline-flex; align-items:center; min-height:2.75rem; padding:.4rem .8rem; border-radius:.5rem; color:var(--muted); font-size:.9rem; text-decoration:none; }
  nav a[aria-current="page"] { background:var(--tint); color:var(--ink); }
  .nav-toggle { display:none; }
  .tool-intro { display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; padding-block:2.5rem 2rem; }
  .tool-intro .lead { margin-top:.9rem; max-width:46rem; font-size:1.05rem; }
  .lead { color:var(--muted); font-size:1.18rem; }
  .workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:1.5rem; align-items:start; }
  .panel { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); padding:1.6rem; min-width:0; }
  .panel-heading { display:flex; align-items:flex-start; justify-content:space-between; flex-wrap:wrap; gap:.75rem; margin-bottom:1.3rem; }
  .preview { position:sticky; top:1.5rem; background:#edf2e4; }
  .support-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; padding-block:3rem; }
  .privacy-section { max-width:74rem; padding-block:1rem 4rem; }
  .three-columns { display:grid; grid-template-columns:repeat(3,1fr); gap:2rem; margin-block:1.5rem; }
  .three-columns p { color:var(--muted); font-size:.92rem; margin-top:.65rem; }
  .site-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:1.5rem; padding-block:2rem; border-top:1px solid var(--line); color:var(--muted); font-size:.82rem; }
  .footer-brand { display:block; font-weight:750; font-size:1rem; color:var(--ink); margin-bottom:.4rem; text-decoration:none; }
  .page-intro { max-width:58rem; padding-block:3.5rem 2.5rem; }
  .page-intro h1 { font-size:clamp(2.6rem,5vw,4.6rem); }
  .page-intro .lead { max-width:46rem; margin-top:1.25rem; }
  .guide-grid { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr); gap:2.5rem; align-items:start; padding-bottom:4rem; }
  .guide-content .panel > p:not(.eyebrow) { margin-top:1rem; color:var(--muted); }
  .eligibility { position:sticky; top:1.5rem; }
  .eligibility > p:not(.eyebrow) { margin-top:1rem; color:var(--muted); }
  .eligibility form { margin-top:1.5rem; }
  .guide-section { padding-block:2.5rem; }
  .source-note { padding-top:1.5rem; border-top:1px solid var(--line); font-size:.9rem; color:var(--muted); }
  .source-note h2 { font-size:1.2rem; color:var(--ink); margin-bottom:.8rem; }
  .source-note ul { padding-left:1.2rem; }
  .source-note li { margin-bottom:.6rem; }
  .template-list { display:grid; gap:1.5rem; }
  .template-card { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr); gap:2.5rem; padding:2rem; }
  .template-card h2 { font-size:1.8rem; }
  .template-card .template-summary { color:var(--muted); margin-block:1rem 1.5rem; }
  .template-card details { min-width:0; }
  .template-card summary { cursor:pointer; min-height:2.75rem; padding-block:.5rem; font-weight:650; color:var(--green); }
  .template-card dl { font-size:.9rem; margin-bottom:0; }
  .template-card dt { font-weight:700; margin-top:.85rem; }
  .template-card dd { margin:.15rem 0 0; color:var(--muted); white-space:pre-wrap; }
  .next-step { max-width:50rem; padding-block:3rem 4rem; }
  .next-step > p:last-of-type { margin-block:1rem 1.4rem; color:var(--muted); }
  .error-page { min-height:60vh; }
  @media (max-width:63.999rem) {
    .workspace { gap:1rem; }
    .panel { padding:1.3rem; }
    .field-row { grid-template-columns:1fr !important; gap:0 !important; }
    .privacy-chip { display:none !important; }
    .guide-grid { gap:1.5rem; }
  }
  @media (max-width:47.999rem) {
    .shell { width:min(100% - 2rem,82rem); }
    .header-inner { min-height:4.5rem; padding-block:.7rem; flex-wrap:wrap; }
    nav { width:100%; }
    .has-js .nav-toggle { display:inline-flex; }
    .has-js nav[data-open="false"] { display:none; }
    .tool-intro { padding-block:2rem 1.5rem; }
    .workspace,.support-grid,.three-columns,.guide-grid,.template-card { grid-template-columns:1fr; }
    .preview,.eligibility { position:static; }
    .panel { padding:1.2rem; }
    .support-grid { gap:1rem; padding-block:2rem; }
    .three-columns { gap:1.5rem; }
    .page-intro { padding-block:2.5rem 2rem; }
    .guide-grid { gap:1rem; }
    .template-card { gap:1rem; }
    .template-card h2 { font-size:1.6rem; }
    .template-card details[open] { border-top:1px solid var(--line); padding-top:.7rem; }
  }
}
@layer components {
  .eyebrow { color:var(--green); text-transform:uppercase; letter-spacing:.12em; font-size:.67rem; font-weight:750; line-height:1.6; margin-bottom:.6rem; }
  .button { display:inline-flex; align-items:center; justify-content:center; gap:1rem; min-height:2.85rem; max-width:100%; padding:.7rem 1rem; border:1px solid var(--line); border-radius:.6rem; font-size:.88rem; line-height:1.45; text-align:center; font-weight:650; text-decoration:none; }
  .nav-toggle { display:none; }
  .has-js .no-js-notice { display:none; }
  @media (max-width:47.999rem) { .has-js .nav-toggle { display:inline-flex; } }
  .primary { color:var(--on-green); background:var(--green); border-color:var(--green); }
  .quiet { color:var(--ink); background:var(--surface); }
  .button:hover:not(:disabled) { filter:brightness(.95); }
  .text-button { padding:.5rem 0; min-height:2.75rem; border:0; background:transparent; color:var(--green); font-size:.8rem; text-decoration:underline; text-underline-offset:.2em; }
  .privacy-chip,.small-badge { display:inline-flex; align-items:center; gap:.5rem; flex:none; white-space:nowrap; color:var(--green); background:var(--tint); border:1px solid var(--line); border-radius:2rem; padding:.4rem .75rem; font-size:.72rem; }
  .privacy-chip { margin-top:.4rem; }
  .small-badge { padding:.25rem .6rem; font-size:.65rem; }
  .form-fields { min-width:0; padding:0; margin:0; border:0; }
  .field { min-width:0; margin-bottom:1rem; }
  .field-row { display:grid; grid-template-columns:1.1fr 1fr; gap:1rem; }
  label { display:block; font-size:.85rem; font-weight:650; margin-bottom:.35rem; }
  input,textarea,select { width:100%; min-width:0; max-width:100%; min-height:2.9rem; background:#fbfcf8; color:var(--ink); border:1px solid #b7c5b5; border-radius:.5rem; padding:.65rem .7rem; font-size:1rem; line-height:1.5; }
  textarea { display:block; resize:vertical; }
  input[type="datetime-local"] { appearance:none; }
  input::placeholder,textarea::placeholder { color:#647569; opacity:1; }
  [aria-invalid="true"] { border-color:var(--error); }
  .help { color:var(--muted); font-size:.78rem; margin-top:.5rem; }
  .form-help { color:var(--muted); font-size:.76rem; margin-bottom:1.2rem; }
  .form-actions,.output-actions { display:flex; flex-wrap:wrap; gap:.65rem; }
  .status { color:var(--muted); font-size:.78rem; margin-top:1rem; min-height:2.5em; }
  .error-summary { border:1px solid var(--error); color:var(--error); background:#fff6f2; border-radius:.6rem; padding:1rem; font-size:.85rem; margin-bottom:1rem; }
  .error-summary ul { padding-left:1.2rem; margin-bottom:0; }
  .error-summary a { color:var(--error); }
  .field-error { color:var(--error); font-size:.78rem; margin-top:.35rem; }
  .empty-preview { display:grid; align-content:center; justify-items:start; min-height:22rem; padding:1.5rem .5rem; }
  .paper-icon { display:grid; place-items:center; width:3.8rem; height:4.6rem; border:1px solid var(--line); border-radius:.6rem; background:var(--surface); color:var(--green); font-size:2rem; transform:rotate(-7deg); margin-bottom:1.7rem; }
  .empty-preview h3 { font-size:1.4rem; }
  .empty-preview p { color:var(--muted); max-width:26rem; margin-block:.8rem 1.2rem; font-size:.92rem; }
  .empty-preview a { font-size:.85rem; }
  .brief-output { white-space:pre-wrap; overflow-wrap:anywhere; font-size:.78rem; line-height:1.8; border:1px solid var(--line); background:var(--surface); padding:1.2rem; border-radius:.65rem; max-height:35rem; overflow:auto; margin-block:0 1rem; }
  .output-actions { margin-block:.5rem 1rem; }
  .review-note { display:flex; align-items:flex-start; gap:.8rem; border-top:1px solid #c4cfba; margin-top:1.5rem; padding-top:1rem; font-size:.82rem; color:#3c5142; }
  .review-note > span { font-size:1.6rem; line-height:1.2; color:var(--green); }
  .resource-card { position:relative; border:1px solid var(--line); border-radius:1rem; padding:1.5rem 3rem 1.5rem 1.5rem; text-decoration:none; background:var(--surface); }
  .resource-card .eyebrow { display:block; }
  .resource-card h2 { font-size:1.5rem; }
  .resource-card p { color:var(--muted); font-size:.88rem; margin-top:.7rem; }
  .resource-card > span:last-child { position:absolute; top:1.5rem; right:1.3rem; font-size:1.5rem; }
  .independence { font-size:.85rem; color:var(--muted); margin-top:1rem; max-width:48rem; }
  .steps { padding-left:1.4rem; margin-block:1.4rem; color:var(--muted); }
  .steps li { padding-left:.3rem; margin-bottom:1rem; }
  .steps strong { color:var(--ink); }
  .eligibility-result { margin-top:1.3rem; padding:1rem; background:var(--tint); border-radius:.7rem; font-size:.88rem; }
  .eligibility-result h3 { font-size:1.1rem; }
  .eligibility-result p { margin-top:.7rem; }
  .eligibility-result ul { padding-left:1.1rem; }
  .official-link { margin-top:1.2rem; }
  .notice { border:1px solid var(--line); background:#fff7e8; color:#64421f; padding:.8rem; border-radius:.5rem; font-size:.82rem; margin-block:1rem; }
  .stale-notice { margin-top:0; }
  .skip-link { position:fixed; z-index:10; left:1rem; top:.5rem; background:var(--surface); color:var(--ink); border:2px solid var(--focus); padding:.6rem 1rem; transform:translateY(-150%); }
  .skip-link:focus { transform:translateY(0); }
  .clipboard-fallback { position:fixed; top:0; left:-9999px; }
  @media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
  @media (forced-colors:active) { .button,input,select,textarea,.panel { border:1px solid ButtonText; } :focus-visible { outline-color:Highlight; } }
  @media print { .site-header,.site-footer,.editor,.support-grid,.privacy-section,.output-actions,.preview > .help,.review-note { display:none; } .workspace { display:block; } .preview { position:static; background:#fff; border:0; padding:0; } .brief-output { max-height:none; overflow:visible; border:0; padding:0; } }
}
