:root {
    --paper:#F2F4EC; --paper-2:#E8EDE0; --surface:#FFFFFF; --ink:#1F2620; --ink-muted:#5D6A5B;
    --line:#DBE2D1; --line-strong:#C3CDB5; --green:#4F6F47; --green-deep:#3A5434; --green-soft:#E4EDDC;
    --apricot:#C8744A; --apricot-soft:#F8E7DA; --on-accent:#FFFFFF;
  }
  @media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) {
      --paper:#161A13; --paper-2:#1D2219; --surface:#1E2419; --ink:#E9EEE3; --ink-muted:#9BA695;
      --line:#2D3527; --line-strong:#414B39; --green:#97B98B; --green-deep:#B2D0A6; --green-soft:#232C1F;
      --apricot:#E0996E; --apricot-soft:#2E2419; --on-accent:#131711;
    }
  }
  * { box-sizing: border-box; }
  html { -webkit-text-size-adjust: 100%; }
  body { margin:0; background:var(--paper); color:var(--ink); font-family:"Archivo", system-ui, sans-serif; line-height:1.6; font-size:1rem; }
  .wrap { max-width: 760px; margin: 0 auto; padding: 0 20px; }
  header { display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:24px; flex-wrap:wrap; }
  .logo { font-family:"Petrona", serif; font-weight:600; font-size:1.5rem; letter-spacing:-.02em; color:var(--ink); text-decoration:none; }
  .logo i { color:var(--apricot); font-style:normal; }
  header a.volver { color:var(--ink-muted); text-decoration:none; font-size:.92rem; }
  header a.volver:hover { color:var(--green); }
  main { padding-block: 12px 56px; }
  h1 { font-family:"Petrona", serif; font-weight:600; font-size:clamp(1.9rem, 5vw, 2.6rem); line-height:1.15; letter-spacing:-.02em; margin:.2em 0 .3em; }
  h2 { font-family:"Petrona", serif; font-weight:600; font-size:1.3rem; margin:2em 0 .4em; }
  p, li { color:var(--ink); }
  .muted { color:var(--ink-muted); font-size:.92rem; }
  ul { padding-left: 1.2em; }
  li { margin-bottom:.35em; }
  a { color:var(--green); }
  .caja { background:var(--surface); border:1px solid var(--line); border-radius:16px; padding:22px; margin:22px 0; }
  .aviso { background:var(--green-soft); border-radius:12px; padding:14px 16px; margin:18px 0; }
  label { display:block; font-weight:600; font-size:.92rem; margin:14px 0 6px; }
  label span { font-weight:400; color:var(--ink-muted); }
  input, textarea { width:100%; font:inherit; color:var(--ink); background:var(--paper); border:1px solid var(--line-strong); border-radius:10px; padding:12px 14px; }
  textarea { min-height:96px; resize:vertical; }
  input:focus, textarea:focus { outline:2px solid var(--green); outline-offset:1px; }
  .btn { display:inline-block; margin-top:18px; background:var(--green); color:var(--on-accent); border:0; border-radius:999px; padding:14px 26px; font:inherit; font-weight:600; cursor:pointer; }
  .btn[disabled] { opacity:.6; cursor:default; }
  .oculto { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .codigo { font-family:"Petrona", serif; font-size:1.8rem; font-weight:600; letter-spacing:.02em; color:var(--green-deep); }
  .error { color:var(--apricot); font-weight:600; margin-top:12px; }
  footer { border-top:1px solid var(--line); padding-block:28px 44px; color:var(--ink-muted); font-size:.82rem; display:flex; flex-direction:column; gap:10px; }
  footer nav { display:flex; flex-wrap:wrap; gap:6px 16px; }
  :focus-visible { outline:2px solid var(--green); outline-offset:3px; }
