/* Fidara public site: one stylesheet for every page. */
:root{
  --bg:#fafaf8; --surface:#ffffff; --text:#1d2127; --muted:#5b6470; --line:#e1e3e6;
  --accent:#1f5fbf; --accent-text:#ffffff; --accent-soft:#e8f0fb; --code:#f0f1f3;
  --hero:#eef3fb; --codeblock:#151a21; --codeblock-text:#e4e8ee; --ok:#2f7a4d; --ok-soft:#e6f3ea;
}
@media (prefers-color-scheme: dark){
  :root{
    --bg:#14171b; --surface:#1c2025; --text:#e7e9ec; --muted:#9aa3ae; --line:#2e343b;
    --accent:#6ea3f0; --accent-text:#10151b; --accent-soft:#1f2a3a; --code:#262b31;
    --hero:#182231; --codeblock:#0e1114; --codeblock-text:#dde2e8; --ok:#6fcf97; --ok-soft:#1b2d23;
  }
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:16px}
body{margin:0;background:var(--bg);color:var(--text);
  font:16px/1.6 system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}
.wrap{max-width:920px;margin:0 auto;padding:0 16px}
a{color:var(--accent)}
a:focus-visible,button:focus-visible,.scroll:focus-visible,pre:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:4px}
.skip{position:absolute;left:-9999px;top:0;background:var(--accent);color:var(--accent-text);padding:8px 12px;z-index:10}
.skip:focus{left:8px;top:8px}

/* header and menu */
.site-header{border-bottom:1px solid var(--line);background:var(--surface)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;flex-wrap:wrap}
.brand{font-weight:700;font-size:1.2rem;letter-spacing:-.01em;color:var(--text);text-decoration:none;padding:8px 0}
.menu-btn{display:none;font:inherit;font-size:.95rem;padding:6px 12px;border-radius:6px;cursor:pointer;
  border:1px solid var(--line);background:var(--surface);color:var(--text)}
.menu{display:flex;flex-wrap:wrap;gap:4px;list-style:none;margin:0;padding:0}
.menu a{display:block;padding:8px 12px;border-radius:6px;color:var(--muted);text-decoration:none;font-size:.97rem}
.menu a:hover{color:var(--text);background:var(--accent-soft)}
.menu a[aria-current="page"]{color:var(--accent);background:var(--accent-soft);font-weight:600}
@media (max-width:720px){
  .js .menu-btn{display:inline-block}
  .js .menu{display:none;width:100%;flex-direction:column;padding:0 0 12px}
  .js .menu.open{display:flex}
  .menu{width:100%}
  .menu a{padding:10px 12px}
}

/* page title and hero */
.page-head{padding:40px 0 8px}
h1{font-size:2rem;line-height:1.25;margin:0 0 8px;letter-spacing:-.01em}
.lead{font-size:1.12rem;color:var(--muted);margin:0 0 16px;max-width:46em}
.hero{background:var(--hero);border-bottom:1px solid var(--line)}
.hero .wrap{padding-top:48px;padding-bottom:40px}
.hero h1{font-size:2.3rem}
.hero .lead{color:var(--text)}
h2{font-size:1.35rem;line-height:1.3;margin:0 0 12px}
h3{font-size:1.05rem;margin:0 0 6px}
section{padding:32px 0;border-top:1px solid var(--line)}
.page-head + section,.hero + section{border-top:0}
p{margin:0 0 12px}
.note{color:var(--muted);font-size:.95rem}
.limits{border-left:3px solid var(--muted);padding:8px 12px;background:var(--surface);border-radius:0 6px 6px 0;font-size:.95rem;margin:12px 0}
.limits strong{display:block;font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.toc{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:16px 0 0;padding:0}
.toc a{display:inline-block;padding:4px 12px;border:1px solid var(--line);border-radius:999px;background:var(--surface);text-decoration:none;font-size:.9rem}

code{background:var(--code);padding:1px 6px;border-radius:4px;font:.9em ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-wrap:anywhere}
pre{background:var(--codeblock);color:var(--codeblock-text);border-radius:8px;padding:14px 16px;overflow-x:auto;
  margin:0 0 16px;font:.86rem/1.5 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;max-width:100%}
pre code{background:none;padding:0;font:inherit;overflow-wrap:normal;color:inherit}
.codelabel{font-size:.85rem;color:var(--muted);margin:0 0 4px}

/* cards and grids */
.cards{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;display:flex;flex-direction:column}
.card p{flex:1}
.card p:last-child{margin-bottom:0}
a.card{text-decoration:none;color:var(--text)}
a.card:hover{border-color:var(--accent)}
a.card h3{color:var(--accent)}
.card .more{color:var(--accent);font-size:.92rem}
.steps{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}
.steps li{counter-increment:s;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px}
.steps li::before{content:counter(s);display:inline-block;width:28px;height:28px;line-height:28px;text-align:center;
  border-radius:50%;background:var(--accent);color:var(--accent-text);font-weight:700;margin-bottom:8px}
.steps h3{margin-top:0}
.btns{display:flex;flex-wrap:wrap;gap:8px}
.btn{display:inline-block;padding:8px 14px;border-radius:6px;border:1px solid var(--accent);
  color:var(--accent);text-decoration:none;font-size:.95rem;background:transparent}
.btn.primary{background:var(--accent);color:var(--accent-text)}
.btn:hover{opacity:.88}
[hidden]{display:none !important}

/* entries (design decisions) */
.entry{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 16px}
.entry h3{font-size:1.1rem;margin:0 0 8px}
.entry dl{margin:0;display:grid;grid-template-columns:7.5em 1fr;gap:6px 12px}
.entry dt{color:var(--muted);font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;padding-top:3px}
.entry dd{margin:0;min-width:0;overflow-wrap:anywhere}
@media (max-width:560px){.entry dl{grid-template-columns:1fr}.entry dt{padding-top:6px}}
.tag{display:inline-block;font-size:.8rem;padding:1px 8px;border-radius:999px;background:var(--ok-soft);color:var(--ok);margin-left:6px;vertical-align:middle;font-weight:600}

/* tables */
.scroll{overflow-x:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface);margin:0 0 16px}
table{border-collapse:collapse;width:100%;min-width:420px}
th,td{text-align:left;padding:8px 12px;border-bottom:1px solid var(--line);font-size:.95rem;vertical-align:top}
tr:last-child td{border-bottom:0}
th{color:var(--muted);font-weight:600}
.scroll.stack table{min-width:0}
@media (max-width:560px){
  .scroll.stack thead{display:none}
  .scroll.stack tr{display:block;padding:8px 12px;border-bottom:1px solid var(--line)}
  .scroll.stack tr:last-child{border-bottom:0}
  .scroll.stack td{display:block;padding:1px 0;border:0}
  .scroll.stack td:nth-child(2){color:var(--muted);font-size:.9rem}
}
ul.plain{padding-left:20px;margin:0 0 12px}
ul.plain li{margin-bottom:8px}

/* diagram */
.diagram{display:grid;gap:24px;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}
@media (max-width:760px){.diagram{grid-template-columns:minmax(0,1fr)}}
.diagram svg{width:100%;height:auto;max-width:460px;display:block;margin:0 auto}
.svg-bg{fill:var(--surface);stroke:var(--line)}
.svg-code{fill:var(--surface);stroke:var(--muted);stroke-width:1.2}
.svg-model{fill:var(--accent-soft);stroke:var(--accent);stroke-width:1.4}
.svg-wh{fill:var(--bg);stroke:var(--muted);stroke-width:1.2;stroke-dasharray:4 3}
.svg-text{fill:var(--text);font:600 12px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.svg-sub{fill:var(--muted);font:11px system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.svg-sub.svg-chip{fill:var(--text)}
.svg-group{stroke:var(--accent)}
.svg-sub.svg-group-label{fill:var(--accent);font-weight:600}
.svg-line{stroke:var(--muted);stroke-width:1.4;fill:none}
.svg-loop{stroke:var(--accent);stroke-width:1.2;fill:none;stroke-dasharray:4 3}
.svg-arrow{fill:var(--muted)}
.svg-arrow-a{fill:var(--accent)}
.legend{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:16px;font-size:.92rem}
.legend i{display:inline-block;width:14px;height:14px;border-radius:3px;vertical-align:-2px;margin-right:6px}
.legend .m{background:var(--accent-soft);border:1.4px solid var(--accent)}
.legend .c{background:var(--surface);border:1.2px solid var(--muted)}
.legend .w{background:var(--bg);border:1.2px dashed var(--muted)}

/* demo page */
.stats{list-style:none;margin:16px 0;padding:0;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.stats li{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:12px 14px}
.stats b{display:block;font-size:1.4rem;line-height:1.3}
.stats span{color:var(--muted);font-size:.92rem}
.group{background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:16px;margin:0 0 16px}
.who{color:var(--muted);font-size:.93rem;margin:0 0 10px}
.q{display:flex;gap:10px;align-items:flex-start;margin:0 0 8px;padding:8px 12px;
  border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:0 6px 6px 0}
.q blockquote{margin:0;flex:1;min-width:0;overflow-wrap:anywhere}
.copy{flex:none;font:inherit;font-size:.85rem;padding:2px 10px;border-radius:5px;cursor:pointer;
  border:1px solid var(--line);background:var(--surface);color:var(--text)}
.expect{margin:12px 0 0}
.expect strong{display:block;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}

/* footer */
.site-footer{padding:24px 0 48px;border-top:1px solid var(--line);color:var(--muted);font-size:.95rem;background:var(--surface)}
.site-footer ul{list-style:none;margin:0 0 12px;padding:0;display:flex;flex-wrap:wrap;gap:4px 16px}
.site-footer p{margin:0 0 6px}
@media (max-width:720px){.bar nav{width:100%}}
.group:empty{display:none}

/* overview: hero, answer card, why cards, does list, demo band */
.hero-grid{display:grid;gap:32px;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);align-items:center}
@media (max-width:760px){.hero-grid{grid-template-columns:minmax(0,1fr)}.hero h1{font-size:1.8rem}}
.hero-text .btns{margin-top:20px}
.sample{margin:0}
.sample figcaption{color:var(--muted);font-size:.88rem;margin-top:8px}
.sample-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px;display:grid;gap:10px}
.bubble-q{margin:0;justify-self:end;max-width:92%;background:var(--accent);color:var(--accent-text);padding:8px 12px;border-radius:14px 14px 4px 14px;font-size:.93rem;line-height:1.45}
.bubble-a{border:1px solid var(--line);border-radius:4px 14px 14px 14px;background:var(--bg);overflow:hidden}
.bubble-a table{min-width:0}
.bubble-a th,.bubble-a td{padding:6px 10px;font-size:.9rem}
.bubble-a .num{text-align:right;white-space:nowrap}
.hero + .wrap > section:first-child{border-top:0}
.cards.why{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.cards.why{grid-template-columns:minmax(0,1fr)}}
.cards.why .card p{flex:1}
.cards.why .more{color:var(--accent);font-size:.92rem}
.does{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.does li{display:flex;gap:12px;align-items:flex-start}
.ico{flex:none;width:24px;height:24px;margin-top:2px;fill:none;stroke:var(--accent);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.band{background:var(--accent-soft);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band-in{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding-top:28px;padding-bottom:28px}
.band-in p{margin:0;flex:1 1 320px;font-size:1.05rem}

/* "In short" callout on the inner pages */
.short{border:1px solid var(--accent);border-left-width:4px;background:var(--accent-soft);border-radius:8px;padding:12px 16px;margin:16px 0}
.short h2{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin:0 0 6px}
.short ul{margin:0;padding-left:20px}
.short li{margin-bottom:4px}

/* overview: coming next */
.label{display:inline-block;font-size:.8rem;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-left:8px;vertical-align:middle}
.cards.next{grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){.cards.next{grid-template-columns:minmax(0,1fr)}}
.next-cta{margin:16px 0 0}
