
/* Layout: one calm reading column on limewash white, Ericeira's blue trim as the single accent, azulejo tile bands between chapters */
:root{
  --bg:#f6f7f5;          /* limewash */
  --paper:#ffffff;
  --ink:#16233a;         /* deep Atlantic ink */
  --muted:#5b6678;
  --blue:#1f4f93;        /* Ericeira window-trim blue */
  --blue-soft:#e3ebf6;
  --pine:#3e5b4b;
  --line:#d9dee6;
  --sky1:#dfe9f4; --sky2:#f4e9df; --sea1:#4f7fb8; --sea2:#1f4f93; --sun:#f3d9b8;
  --f-display:"Cormorant Garamond",Garamond,Georgia,serif;
  --f-body:"Jost",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"Jost",system-ui,sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --bg:#0d1520;--paper:#131e2d;--ink:#e7edf4;--muted:#9aa7b8;--blue:#8db2ea;--blue-soft:#1a2a40;--pine:#9cc0a9;--line:#26364b;
  --sky1:#1a2840;--sky2:#2b2a3f;--sea1:#234a7a;--sea2:#0f2a4d;--sun:#c9b48f;color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#0d1520;--paper:#131e2d;--ink:#e7edf4;--muted:#9aa7b8;--blue:#8db2ea;--blue-soft:#1a2a40;--pine:#9cc0a9;--line:#26364b;
  --sky1:#1a2840;--sky2:#2b2a3f;--sea1:#234a7a;--sea2:#0f2a4d;--sun:#c9b48f;color-scheme:dark}

*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:17px;font-weight:400;line-height:1.7;padding-inline:20px;padding-block:0 48px}
.wrap{max-width:760px;margin-inline:auto}
h1,h2,h3{font-family:var(--f-display);font-weight:500;letter-spacing:.005em;line-height:1.15;text-wrap:balance;margin:0}
h2{font-size:clamp(2.1rem,5.8vw,2.9rem);color:var(--ink)}
h3{font-size:1.45rem;font-weight:600}
p{margin:0}
a{color:var(--blue)}
.label{font-family:var(--f-mono);font-size:.78rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--blue)}
.muted{color:var(--muted)}
section{display:grid;gap:18px;padding-block:44px}
.lede{font-size:1.12rem;max-width:62ch}

/* Shared pieces for home, healers and admin */
.topnav{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-block:16px 4px;font-size:.92rem}
.topnav a{color:var(--ink);text-decoration:none}
.topnav .brand{font-family:var(--f-display);font-weight:600;font-size:1.3rem}
.topnav .links{display:flex;gap:16px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 22px;border-radius:999px;font-weight:600;text-decoration:none;font-size:1rem;border:1.5px solid var(--blue);cursor:pointer;font-family:var(--f-body);background:transparent;color:var(--blue)}
.btn.primary{background:var(--blue);color:var(--bg)}
.btn:disabled{opacity:.6;cursor:default}
.btn:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.tiles{height:26px;border-block:1px solid var(--line);
  background:radial-gradient(circle at 50% 50%,var(--blue) 0 3px,transparent 3.5px) 0 0/26px 26px,
   radial-gradient(circle at 0 0,transparent 9px,var(--blue-soft) 9.5px 12px,transparent 12.5px) 0 0/26px 26px,
   radial-gradient(circle at 100% 100%,transparent 9px,var(--blue-soft) 9.5px 12px,transparent 12.5px) 0 0/26px 26px}
.card{display:grid;gap:10px;border:1px solid var(--line);border-radius:6px;background:var(--paper);padding:22px;text-decoration:none;color:var(--ink);min-width:0}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.soon{font-family:var(--f-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
form{display:grid;gap:16px;background:var(--paper);border:1px solid var(--line);border-radius:6px;padding:24px}
.row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}
label{display:grid;gap:6px;font-size:.92rem;font-weight:500}
input,select,textarea{font:inherit;font-size:1rem;padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--ink);width:100%}
.note{font-size:.85rem;color:var(--muted)}
.done{background:var(--blue-soft);border-radius:6px;padding:18px}
.hp{position:absolute;left:-9999px}
.list{margin:0;padding-left:1.1em;display:grid;gap:6px}
footer{padding-block:32px 0;font-size:.85rem;color:var(--muted);display:grid;gap:6px}
