/* Basil — styled in the Ingleby House Dental Practice brand.
   Brand blue #059FDF, Cormorant Garamond headings, Outfit body/UI.
   Fonts are self-hosted (see static/fonts/README.txt); the practice internet is the
   thing that breaks, so we never depend on Google Fonts at runtime. System fallbacks
   (Georgia for the serif, system-ui for Outfit) keep it legible before the files exist. */

@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:400;font-display:swap;
  src:url("/static/fonts/CormorantGaramond-Regular.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:italic;font-weight:400;font-display:swap;
  src:url("/static/fonts/CormorantGaramond-Italic.woff2") format("woff2");}
@font-face{font-family:"Cormorant Garamond";font-style:normal;font-weight:600;font-display:swap;
  src:url("/static/fonts/CormorantGaramond-SemiBold.woff2") format("woff2");}
@font-face{font-family:"Outfit";font-style:normal;font-weight:300;font-display:swap;
  src:url("/static/fonts/Outfit-Light.woff2") format("woff2");}
@font-face{font-family:"Outfit";font-style:normal;font-weight:400;font-display:swap;
  src:url("/static/fonts/Outfit-Regular.woff2") format("woff2");}
@font-face{font-family:"Outfit";font-style:normal;font-weight:500;font-display:swap;
  src:url("/static/fonts/Outfit-Medium.woff2") format("woff2");}
@font-face{font-family:"Outfit";font-style:normal;font-weight:600;font-display:swap;
  src:url("/static/fonts/Outfit-SemiBold.woff2") format("woff2");}

:root{
  --plaster:#f8fcff;      /* page background (off-white) */
  --plaster-deep:#EAF7FD; /* blue ghost — subtle fills, code */
  --ink:#1a2a35;          /* dark text, primary button */
  --slate:#4a5a65;        /* secondary text, labels */
  --hair:#e8f4fb;         /* rules and dividers */
  --brass:#059FDF;        /* brand blue accent — numerals, wordmark dot, tier 4 */
  --signal:#059FDF;       /* brand blue — focus, hover, status dot */
  --signal-deep:#047fb2;  /* darker blue for hover on solid buttons */
  --oxblood:#8C3A2B;      /* danger — escalation, emergency, tier 0 */
  --paper:#ffffff;        /* input and card fills */
  --blue-pale:#C0E7F8;
  --grey:#B3B3B3;
  --label:.11em;          /* label letter-spacing */
  --r:4px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--plaster);
  color:var(--ink);
  font-family:"Outfit",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-weight:300;
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
.mono{font-family:"Outfit",system-ui,sans-serif}

/* ---------- masthead ---------- */
header{
  border-bottom:1px solid var(--hair);
  padding:18px 28px 16px;
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  background:var(--paper);
}
.brand{display:flex;align-items:center;gap:16px;text-decoration:none}
.brand img{height:52px;width:auto;display:block}
.wordmark{
  font-family:"Cormorant Garamond",Georgia,serif;
  font-size:32px;font-weight:600;letter-spacing:0;
  line-height:1;color:var(--ink);text-decoration:none;
  padding-left:16px;border-left:1px solid var(--hair);
}
.wordmark span{color:var(--brass)}
.tagline{
  font-size:13.5px;color:var(--slate);
  border-left:1px solid var(--hair);padding-left:16px;
}
.status{margin-left:auto;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);display:flex;align-items:center;gap:14px}
.status a{color:var(--slate);text-decoration:none;border-bottom:1px solid transparent}
.status a:hover,.status a:focus-visible{color:var(--signal);border-bottom-color:var(--blue-pale)}
.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--signal);margin-right:7px;vertical-align:0}

/* ---------- shell ---------- */
.shell{
  display:grid;grid-template-columns:280px 1fr;
  gap:0;min-height:calc(100vh - 90px);
  max-width:1240px;margin:0 auto;
}
aside{
  border-right:1px solid var(--hair);
  padding:28px 26px 40px;
}
main{padding:28px 34px 60px;min-width:0}

.eyebrow{
  font-family:"Outfit",sans-serif;font-weight:600;
  font-size:11px;letter-spacing:var(--label);text-transform:uppercase;
  color:var(--slate);margin:0 0 14px;
}

.aside-note{
  font-size:13px;color:var(--slate);line-height:1.55;
  border-top:1px solid var(--hair);padding-top:16px;
}

/* quick-help links */
.quick-links{list-style:none;margin:0 0 30px;padding:0}
.quick-links li{margin-bottom:2px}
.quick-links a{
  display:flex;align-items:center;gap:12px;
  text-decoration:none;color:var(--ink);font-size:15.5px;
  padding:12px 12px 12px 12px;border:1px solid var(--hair);border-radius:var(--r);
  margin-bottom:8px;background:var(--paper);
  transition:border-color .15s,background .15s,color .15s;
}
.quick-links a:hover,.quick-links a:focus-visible{color:var(--signal);border-color:var(--signal);background:var(--plaster-deep)}
.quick-links .ql-ic{color:var(--brass);width:18px;text-align:center;flex:none;font-size:15px}

/* ---------- ask ---------- */
.ask{margin-bottom:14px}
.ask label{display:block;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin-bottom:10px}
.field{
  display:flex;gap:0;border:1px solid var(--ink);background:var(--paper);
  border-radius:var(--r);overflow:hidden;
}
.field:focus-within{outline:2px solid var(--signal);outline-offset:2px}
.field input{
  flex:1;border:0;background:none;font:inherit;font-size:16.5px;font-weight:400;
  padding:15px 16px;color:var(--ink);min-width:0;
}
.field input:focus{outline:none}
.field input::placeholder{color:#9fb0b8}
.field button{
  border:0;background:var(--ink);color:#fff;
  font-family:"Outfit",sans-serif;font-size:12.5px;font-weight:600;
  padding:0 24px;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;
}
.field button:hover{background:var(--signal)}
.field button:disabled{background:var(--slate);cursor:default}

.privacy{font-size:13px;color:var(--slate);margin:0 0 30px}

/* ---------- answer ---------- */
.answer{border-top:1px solid var(--hair);padding-top:26px}
.answer[hidden]{display:none}

/* signature element: the source stamp */
.stamp{
  display:inline-flex;align-items:stretch;
  border:1px solid var(--ink);border-radius:var(--r);
  overflow:hidden;margin-bottom:20px;
}
.stamp .tier{
  background:var(--ink);color:#fff;
  font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;
  letter-spacing:.1em;padding:8px 11px;display:flex;align-items:center;text-transform:uppercase;
}
.stamp .src{
  font-family:"Outfit",sans-serif;font-size:12px;font-weight:500;
  padding:8px 13px;color:var(--ink);letter-spacing:.02em;
  display:flex;align-items:center;gap:8px;background:var(--paper);
}
.stamp .conf{color:var(--slate);font-weight:400}
.stamp[data-tier="4"]{border-color:var(--brass)}
.stamp[data-tier="4"] .tier{background:var(--brass)}
.stamp[data-tier="0"]{border-color:var(--oxblood)}
.stamp[data-tier="0"] .tier{background:var(--oxblood)}

.answer h2{
  font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;
  font-size:30px;line-height:1.18;letter-spacing:0;
  margin:0 0 14px;max-width:34ch;
}
.body{font-size:16.5px;max-width:64ch}
.body p{margin:0 0 14px}
.body ol{margin:0 0 16px;padding-left:0;list-style:none;counter-reset:s}
.body ol li{
  counter-increment:s;position:relative;padding-left:36px;margin-bottom:12px;
}
.body ol li::before{
  content:counter(s);position:absolute;left:0;top:0;
  font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;color:#fff;background:var(--brass);
  border-radius:50%;width:23px;height:23px;display:grid;place-items:center;
}
.body code{
  font-family:ui-monospace,"SFMono-Regular",Menlo,monospace;font-size:.86em;
  background:var(--plaster-deep);padding:1px 5px;border-radius:3px;
}

.escalate{
  margin-top:26px;border:1px solid var(--oxblood);border-left-width:3px;border-radius:var(--r);
  padding:16px 18px;background:var(--paper);max-width:64ch;
}
.escalate strong{display:block;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--oxblood);margin-bottom:6px}
.escalate p{margin:0;font-size:15px}

/* feedback */
.feedback{
  display:flex;align-items:center;gap:12px;margin-top:26px;
  border-top:1px solid var(--hair);padding-top:18px;max-width:64ch;
  font-size:13.5px;color:var(--slate);
}
.feedback[hidden]{display:none}
.feedback button{
  font-family:"Outfit",sans-serif;font-size:13px;font-weight:500;background:var(--paper);border:1px solid var(--hair);
  border-radius:var(--r);padding:6px 14px;cursor:pointer;color:var(--slate);
  transition:color .15s,border-color .15s;
}
.feedback button:hover,.feedback button:focus-visible{color:var(--signal);border-color:var(--signal)}
.feedback button[aria-pressed="true"]{color:var(--signal);border-color:var(--signal);background:var(--plaster-deep)}
.feedback .thanks{color:var(--signal)}

/* illustrated guide: screenshot gallery + source doc */
.answer .guide{margin-top:24px;border-top:1px solid var(--hair);padding-top:18px;max-width:64ch;border-radius:0;background:none}
.answer .guide[hidden]{display:none}
.guide-label{font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin:0 0 12px}
.guide-shots{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.guide-shots .shot{display:block;border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;background:var(--paper);line-height:0}
.guide-shots .shot:hover{border-color:var(--signal)}
.guide-shots img{width:100%;height:110px;object-fit:cover;object-position:top;display:block}
.guide-doc{display:inline-block;margin-top:14px;font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--signal);text-decoration:none;border-bottom:1px solid var(--blue-pale)}
.guide-doc[hidden]{display:none}
.guide-doc:hover{border-bottom-color:var(--signal)}

/* web search offer + results */
.websearch-offer{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:20px;
  border-top:1px solid var(--hair);padding-top:18px;max-width:64ch;
  font-size:14.5px;color:var(--slate);
}
.websearch-offer[hidden]{display:none}
.websearch-offer button{
  font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:.05em;text-transform:uppercase;
  background:var(--paper);border:1px solid var(--brass);color:var(--brass);
  border-radius:var(--r);padding:9px 16px;cursor:pointer;transition:background .15s,color .15s;
}
.websearch-offer button:hover{background:var(--brass);color:#fff}
.websearch-offer button:disabled{opacity:.6;cursor:default}
.websearch{margin-top:22px;border-top:1px dashed var(--brass);padding-top:22px;max-width:64ch}
.websearch[hidden]{display:none}
.websearch .body{font-size:16px}
.ws-esc{color:var(--oxblood);font-size:14.5px}
.ws-sources{margin-top:8px;display:flex;flex-direction:column;gap:5px}
.ws-src-label{font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin:6px 0 2px}
.ws-sources a{font-size:13.5px;color:var(--signal);text-decoration:none;border-bottom:1px solid var(--blue-pale);width:fit-content;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ws-sources a:hover{border-bottom-color:var(--signal)}

.thinking{display:flex;gap:10px;align-items:center;color:var(--slate);font-size:15px;padding-top:4px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--brass);animation:p 1.1s ease-in-out infinite}
@keyframes p{0%,100%{opacity:.25}50%{opacity:1}}

.empty{color:var(--slate);font-size:15.5px;max-width:52ch;border-top:1px solid var(--hair);padding-top:26px}
.empty em{font-style:normal;color:var(--ink)}

/* ---------- login ---------- */
.login-wrap{max-width:420px;margin:11vh auto 0;padding:0 24px;text-align:center}
.login-wrap img.logo{height:96px;width:auto;margin:0 auto 18px;display:block}
.login-wrap .wordmark{font-size:40px;display:inline-block;margin:0 0 6px;border:0;padding:0}
.login-wrap p.sub{color:var(--slate);font-size:14.5px;margin:0 0 28px}
.login-wrap form{text-align:left}
.login-wrap label{display:block;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin-bottom:10px}
.login-wrap input{
  width:100%;border:1px solid var(--ink);background:var(--paper);
  border-radius:var(--r);font:inherit;font-size:16.5px;padding:14px 16px;color:var(--ink);
}
.login-wrap input:focus{outline:2px solid var(--signal);outline-offset:2px}
.login-wrap button{
  width:100%;margin-top:16px;border:0;background:var(--ink);color:#fff;
  font-family:"Outfit",sans-serif;font-size:13px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  padding:15px;border-radius:var(--r);cursor:pointer;
}
.login-wrap button:hover{background:var(--signal)}
.login-err{color:var(--oxblood);font-size:13.5px;margin:14px 0 0}

/* ---------- admin ---------- */
.admin{max-width:1000px;margin:0 auto;padding:26px 32px 60px}
.admin h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:36px;margin:0 0 6px}
.admin .lede{color:var(--slate);margin:0 0 30px}
.cards{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:36px}
.card{border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);padding:16px 20px;min-width:120px}
.card .num{font-family:"Cormorant Garamond",serif;font-weight:600;font-size:34px;line-height:1;color:var(--brass)}
.card .lab{font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--slate);margin-top:6px}
.admin h2{font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--hair);padding-bottom:8px;margin:0 0 4px}
.admin table{width:100%;border-collapse:collapse;margin:0 0 40px;font-size:14.5px}
.admin td{padding:9px 10px 9px 0;border-bottom:1px solid var(--hair);vertical-align:top}
.admin td.n{font-family:"Outfit",sans-serif;font-weight:600;color:var(--brass);width:48px}
.admin td.meta{color:var(--slate);font-size:12.5px;white-space:nowrap;text-align:right}
.admin .none{color:var(--slate);font-style:italic;padding:12px 0}
.admin .back{display:inline-block;margin-bottom:24px;color:var(--slate);text-decoration:none;font-size:13.5px}
.admin .back:hover{color:var(--signal)}
.tier0-note{color:var(--oxblood)}
.admin h2 .log-dl{float:right;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--signal);text-decoration:none;border-bottom:1px solid var(--blue-pale)}
.admin h2 .log-dl:hover{border-bottom-color:var(--signal)}
.admin .log-note{font-size:12.5px;color:var(--slate);margin:0 0 8px}
.admin .log-wrap{overflow-x:auto}
.admin table.log{min-width:680px}
.admin table.log th{text-align:left;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);padding:0 12px 8px 0;border-bottom:1px solid var(--hair)}
.admin table.log td{font-size:13.5px;padding-right:12px;vertical-align:top}
.admin table.log td:nth-child(1){white-space:nowrap;color:var(--slate);font-size:12.5px}
.admin table.log td:nth-child(3){text-align:center}
.admin table.log td:nth-child(5){text-align:center}

/* ---------- reference pages (emergency, printers, phones) ---------- */
.ref{max-width:1000px;margin:0 auto;padding:28px 34px 60px}
.ref-lede{font-size:17px;max-width:64ch;margin:0 0 22px}
.ref-cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px}
.ref-card{border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);padding:18px 20px}
.ref-card h2{font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin:0 0 12px;border-bottom:1px solid var(--hair);padding-bottom:8px}
.ref-urgent{border-color:var(--oxblood);border-top:3px solid var(--oxblood)}
.ref-urgent h2{color:var(--oxblood)}
.ref-card dl{margin:0;display:grid;grid-template-columns:1fr;gap:10px}
.ref-card dt{font-size:13px;color:var(--slate)}
.ref-card dd{margin:0 0 2px;font-size:15.5px}
.ref-card a{color:var(--signal);text-decoration:none;border-bottom:1px solid var(--blue-pale)}
.ref-card a:hover{border-bottom-color:var(--signal)}
.ref-note{font-size:13.5px;color:var(--slate);max-width:64ch;margin:24px 0 0;border-top:1px solid var(--hair);padding-top:16px}

/* printer/phone picker + guides */
.picker{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:26px}
.pick{
  font-family:"Outfit",sans-serif;font-size:15px;font-weight:500;background:var(--paper);border:1px solid var(--ink);
  border-radius:var(--r);padding:12px 18px;cursor:pointer;color:var(--ink);
  transition:background .15s,color .15s;
}
.pick:hover{background:var(--plaster-deep)}
.pick[aria-pressed="true"]{background:var(--ink);color:#fff}
.guide{border-top:1px solid var(--hair);padding-top:22px;margin-top:8px;max-width:64ch}
.guide[hidden]{display:none}
.guide h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:26px;margin:0 0 12px}
.guide .warn{border-left:3px solid var(--oxblood);padding:10px 0 10px 14px;background:var(--paper)}
.guide ol{padding-left:0;list-style:none;counter-reset:s}
.guide ol li{counter-increment:s;position:relative;padding-left:36px;margin-bottom:12px;font-size:16px}
.guide ol li::before{content:counter(s);position:absolute;left:0;top:0;font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;color:#fff;background:var(--brass);border-radius:50%;width:23px;height:23px;display:grid;place-items:center}
table.settings{border-collapse:collapse;margin:6px 0 12px;font-size:15.5px}
table.settings td{border:1px solid var(--hair);padding:8px 14px}
table.settings td:first-child{color:var(--slate);background:var(--paper)}

/* staff handbook — contents + inline document */
.hb-toc{border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);padding:18px 22px;margin:0 0 30px;max-width:70ch}
.hb-toc-title{font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin:0 0 12px}
.hb-toc ul{list-style:none;margin:0;padding:0}
.hb-toc li{margin:0}
.hb-toc a{text-decoration:none;color:var(--ink);display:block;padding:4px 0;border-bottom:1px solid transparent;width:fit-content}
.hb-toc a:hover{color:var(--signal)}
.hb-toc .toc-sec{margin-top:14px}
.hb-toc .toc-sec:first-child{margin-top:0}
.hb-toc .toc-sec>a{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:19px}
.hb-toc .toc-sub{padding-left:16px}
.hb-toc .toc-sub>a{font-size:14.5px;color:var(--slate)}
.hb-toc .toc-sub>a:hover{color:var(--signal)}
.hb-doc h2{scroll-margin-top:16px}
.hb-doc h3{scroll-margin-top:16px;font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:21px;text-transform:none;letter-spacing:0;color:var(--ink);margin:26px 0 10px}
.hb-doc table{font-size:14px}

/* protocols list */
.proto-list{list-style:none;margin:0;padding:0}
.proto-list li{margin-bottom:8px}
.proto-list a{display:block;border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);
  padding:14px 18px;text-decoration:none;color:var(--ink);font-size:16px;transition:border-color .15s,background .15s,color .15s}
.proto-list a:hover,.proto-list a:focus-visible{border-color:var(--signal);background:var(--plaster-deep);color:var(--signal)}
.back-link{display:inline-block;margin-bottom:18px;color:var(--slate);text-decoration:none;font-size:13.5px}
.back-link:hover{color:var(--signal)}

/* prominent "open the original guide" button at the top of a protocol */
.open-original{
  display:flex;align-items:center;gap:16px;text-decoration:none;
  background:var(--signal);color:#fff;border-radius:var(--r);
  padding:16px 20px;margin:0 0 26px;max-width:70ch;
  box-shadow:0 1px 0 rgba(0,0,0,.04);transition:background .15s,transform .05s;
}
.open-original:hover{background:var(--signal-deep)}
.open-original:active{transform:translateY(1px)}
.open-original .oo-ic{font-size:26px;line-height:1;flex:none}
.open-original .oo-text{display:flex;flex-direction:column;gap:2px}
.open-original .oo-text strong{font-family:"Outfit",sans-serif;font-weight:600;font-size:16.5px;letter-spacing:.01em}
.open-original .oo-text span{font-size:13px;opacity:.9}

/* rendered protocol document */
.doc{max-width:70ch}
.doc h1{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:34px;line-height:1.12;margin:0 0 16px}
.doc h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:24px;margin:28px 0 10px;padding-bottom:6px;border-bottom:1px solid var(--hair)}
.doc h3{font-family:"Outfit",sans-serif;font-weight:600;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);margin:22px 0 8px}
.doc p{font-size:16px;margin:0 0 13px}
.doc ul,.doc ol{font-size:16px;margin:0 0 14px;padding-left:22px}
.doc li{margin-bottom:6px}
.doc a{color:var(--signal)}
.doc strong{font-weight:600}
.doc code{font-family:ui-monospace,Menlo,monospace;font-size:.88em;background:var(--plaster-deep);padding:1px 5px;border-radius:3px}
.doc blockquote{border-left:3px solid var(--brass);margin:0 0 14px;padding:6px 0 6px 16px;color:var(--slate);background:var(--paper)}
.doc table{border-collapse:collapse;margin:6px 0 18px;font-size:15px;width:100%;display:block;overflow-x:auto}
.doc th,.doc td{border:1px solid var(--hair);padding:8px 12px;text-align:left;vertical-align:top}
.doc th{background:var(--paper);font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--slate)}
.doc hr{border:0;border-top:1px solid var(--hair);margin:22px 0}

/* policy filter box */
.policy-filter{width:100%;max-width:70ch;border:1px solid var(--ink);background:var(--paper);
  border-radius:var(--r);font:inherit;font-size:16px;padding:12px 15px;color:var(--ink);margin:0 0 18px}
.policy-filter:focus{outline:2px solid var(--signal);outline-offset:2px}

/* manuals library */
.manual-group{margin-bottom:30px}
.manual-group h2{font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--hair);padding-bottom:8px;margin:0 0 12px}
.manual-list{list-style:none;margin:0;padding:0}
.manual-list li{display:flex;align-items:center;gap:16px;justify-content:space-between;flex-wrap:wrap;
  border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);padding:14px 18px;margin-bottom:8px}
.m-info{display:flex;flex-direction:column;gap:3px;min-width:0}
.m-title{font-size:16px;color:var(--ink)}
.m-meta{font-size:12.5px;color:var(--slate)}
.m-actions{display:flex;gap:8px;flex:none}
.m-actions a{font-family:"Outfit",sans-serif;font-weight:600;font-size:12px;letter-spacing:.04em;text-transform:uppercase;
  text-decoration:none;padding:8px 14px;border-radius:var(--r);border:1px solid var(--ink);color:var(--ink);transition:background .15s,color .15s}
.m-actions a:hover{background:var(--ink);color:#fff}
.m-actions a:last-child{border-color:var(--hair);color:var(--slate)}
.m-actions a:last-child:hover{background:var(--signal);color:#fff;border-color:var(--signal)}

@media (max-width:860px){
  .shell{grid-template-columns:1fr;grid-template-rows:auto 1fr}
  aside{border-right:0;border-bottom:1px solid var(--hair);padding:18px 22px}
  main{padding:24px 22px 50px}
  header{padding:16px 22px 12px}
  .brand img{height:44px}
  .wordmark{font-size:26px}
  .answer h2{font-size:25px}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}

/* photo attach (camera button in the ask field + chip) */
#photoBtn{background:var(--paper);color:var(--slate);font-size:17px;padding:0 14px;border-left:1px solid var(--hair)}
#photoBtn:hover{background:var(--paper);color:var(--signal)}
.photo-chip{
  display:flex;align-items:center;gap:10px;margin-top:10px;
  font-size:13px;color:var(--slate);font-family:"Outfit",sans-serif;
}
.photo-chip[hidden]{display:none}
.photo-chip img{height:44px;width:44px;object-fit:cover;border-radius:var(--r);border:1px solid var(--hair)}
.photo-chip button{background:none;border:1px solid var(--hair);border-radius:var(--r);color:var(--slate);cursor:pointer;padding:2px 8px}
.photo-chip button:hover{color:var(--signal);border-color:var(--signal)}

/* follow-up note under the ask box */
.followup-note{margin-top:10px;font-size:13px;color:var(--slate)}
.followup-note[hidden]{display:none}
.followup-note button{
  background:none;border:0;padding:0;font:inherit;color:var(--signal);
  cursor:pointer;text-decoration:underline;
}

/* tier-0 gap report */
.gap-offer{
  display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px;
  font-size:13.5px;color:var(--slate);max-width:64ch;
}
.gap-offer[hidden]{display:none}
.gap-offer button{
  font-family:"Outfit",sans-serif;font-size:13px;font-weight:500;background:var(--paper);
  border:1px solid var(--hair);border-radius:var(--r);padding:6px 14px;cursor:pointer;color:var(--slate);
}
.gap-offer button:hover{color:var(--signal);border-color:var(--signal)}
.gap-offer .thanks{color:var(--signal)}
.gap-offer button[hidden]{display:none}

/* protocol list search */
.proto-search{
  display:block;width:100%;max-width:420px;margin:0 0 22px;
  font:inherit;font-size:15px;padding:11px 14px;color:var(--ink);
  border:1px solid var(--hair);border-radius:var(--r);background:var(--paper);
}
.proto-search:focus{outline:2px solid var(--signal);outline-offset:1px}

/* "ask Basil about this" box on a protocol page */
.ask-about{
  margin-top:28px;border-top:1px solid var(--hair);padding-top:18px;max-width:64ch;
}
.ask-about label{
  display:block;font-family:"Outfit",sans-serif;font-weight:600;font-size:11px;
  letter-spacing:var(--label);text-transform:uppercase;color:var(--slate);margin:0 0 10px;
}
.ask-about form{display:flex;gap:0;border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;background:var(--paper)}
.ask-about input{flex:1;border:0;background:none;font:inherit;font-size:15px;padding:11px 14px;color:var(--ink);min-width:0}
.ask-about input:focus{outline:none}
.ask-about form:focus-within{outline:2px solid var(--signal);outline-offset:1px}
.ask-about button{
  border:0;background:var(--ink);color:#fff;font-family:"Outfit",sans-serif;
  font-size:12px;font-weight:600;padding:0 18px;cursor:pointer;letter-spacing:.06em;text-transform:uppercase;
}
.ask-about button:hover{background:var(--signal)}

/* chat-style thread: earlier Q&As stack above, ask box lives below the latest answer */
#thread .qa-past{margin-bottom:34px}
.past-q{
  display:inline-block;background:var(--plaster-deep,#EAF7FD);color:var(--ink);
  font-size:14.5px;padding:9px 16px;border-radius:16px 16px 16px 4px;
  margin:0 0 18px;max-width:56ch;
}
#thread .qa-past .answer{border-top:1px solid var(--hair);padding-top:22px;opacity:.85}
#askWrap{margin-bottom:8px}
#answer + #askWrap{margin-top:34px;border-top:1px solid var(--hair);padding-top:26px}
#answer + #askWrap .privacy{margin-bottom:0}

/* quick help as a drop-down (collapsed by default on phones; JS opens it on desktop) */
.quick-help summary.eyebrow{
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:8px;
  -webkit-user-select:none;user-select:none;
}
.quick-help summary.eyebrow::-webkit-details-marker{display:none}
.quick-help summary.eyebrow::after{
  content:"▾";font-size:11px;color:var(--signal);transition:transform .15s;
}
.quick-help[open] summary.eyebrow::after{transform:rotate(180deg)}
.quick-help:not([open]) summary.eyebrow{margin-bottom:0}
