/* CongoSky — shared site components.
   Boring · bland · bandwidth-aware (standing law): one cached stylesheet, no web fonts,
   no framework, flat-and-fast over slick. Pairs with brand/tokens.css (the palette).
   Import order:  <link rel="stylesheet" href="/brand/tokens.css">
                  <link rel="stylesheet" href="/assets/site.css">
   Pages keep ONLY their page-specific CSS after these two. */

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font-body);color:var(--bone);line-height:1.6;
  background:linear-gradient(180deg, rgba(47,53,37,.04), rgba(47,53,37,0) 30%), var(--sand);
  -webkit-text-size-adjust:100%;
  padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);
}
a{color:var(--link-light)}
a:focus-visible,button:focus-visible{outline:3px solid var(--camel);outline-offset:3px}

/* skip link */
.skip{position:absolute;left:-9999px;top:auto}
.skip:focus{left:1rem;top:1rem;z-index:20;background:var(--olive-deep);color:var(--sand);
  padding:.6rem 1rem;border-radius:8px;font-family:var(--font-head)}

.wrap{max-width:860px;margin:0 auto;padding:1.6rem 1.2rem 3rem}

/* ── Shared top bar (rendered by /partials/nav.html via data-include) ── */
.site-bar{display:flex;align-items:center;gap:.7rem;padding:.4rem 0 1.2rem;flex-wrap:wrap}
.site-bar .brand{display:flex;align-items:center;gap:.55rem;font-family:var(--font-head);font-weight:700;
  font-size:1.2rem;color:var(--olive-deep);letter-spacing:-.01em;text-decoration:none}
.site-bar .brand .glyph{width:38px;height:38px;border-radius:10px;background:var(--olive-deep);
  display:grid;place-items:center;flex:none;padding:3px}
.site-bar .brand .glyph img{width:100%;height:100%;object-fit:contain;display:block}
.site-bar .navlinks{margin-left:auto;display:flex;gap:.2rem .9rem;flex-wrap:wrap;align-items:center}
.site-bar .navlinks a{font-family:var(--font-head);font-weight:600;font-size:.95rem;
  color:var(--olive-deep);text-decoration:none;padding:.2rem 0}
.site-bar .navlinks a:hover{color:var(--olive)}
.site-bar .beta{font-family:var(--font-head);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--olive-deep);background:var(--camel);padding:.3rem .7rem;border-radius:999px;font-weight:600}

/* ── Shared footer (rendered by /partials/footer.html) ── */
.site-foot{margin-top:2.6rem;border-top:1px solid var(--line);padding-top:1.2rem;color:var(--bonedim);font-size:.9rem}
.site-foot .creed{color:var(--olive-deep);font-family:var(--font-head);font-weight:600;margin:0 0 .4rem}
.site-foot .footlinks{display:flex;flex-wrap:wrap;gap:.3rem .9rem;margin:.5rem 0}
.site-foot .footlinks a{color:var(--link-light);text-decoration:none}
.site-foot a{color:var(--link-light)}

/* ── Cards ── */
.card{background:rgba(212,196,168,.55);border:1px solid var(--line);
  border-top:3px solid var(--camel);border-radius:var(--radius);padding:1.2rem 1.3rem}
.card h2{font-family:var(--font-head);font-size:1.12rem;color:var(--olive);margin:.1rem 0 .6rem;letter-spacing:-.01em}
.card p{margin:.3rem 0}
.card p.sub{color:var(--bonedim);font-size:.96rem}

/* ── Buttons / CTAs ── */
.btn{display:inline-block;font-family:var(--font-head);font-weight:700;text-decoration:none;
  background:var(--olive-deep);color:var(--sand);padding:.8rem 1.3rem;border-radius:999px;font-size:1.02rem;border:0;cursor:pointer}
.btn:hover{background:var(--olive)}
.btn.ghost{background:transparent;color:var(--olive-deep);border:2px solid var(--olive-deep);padding:calc(.8rem - 2px) 1.3rem}

/* ── Status pills — ONE canonical vocabulary (house). Meanings are sacred; never paint green. ── */
.pill{font-family:var(--font-head);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  font-weight:600;padding:.2rem .55rem;border-radius:999px;display:inline-block;white-space:nowrap}
.pill.live{background:var(--olive);color:var(--sand)}
.pill.beta{background:var(--khaki);color:var(--olive-deep);border:1px solid var(--dust)}
.pill.free{background:var(--camel);color:var(--olive-deep)}
.pill.scaffold{background:var(--grass);color:var(--sand)}
.pill.design{background:transparent;color:var(--bonedim);border:1px solid var(--dust)}
.pill.concept{background:transparent;color:var(--bonedim);border:1px dashed var(--dust)}

.legend{font-size:.86rem;color:var(--bonedim);display:flex;flex-wrap:wrap;gap:.4rem .7rem;align-items:center;margin:.2rem 0 .6rem}
.legend .pill{cursor:default}

/* ── Cockpit / health state classes (shared with the DX cockpit work, REVAMP_PLAN Phase 2)
     "anything not green screams": green is calm/quiet, red is loud. Colour is never the only
     signal — pair with an icon/word in markup. ── */
.state-healthy{--state:var(--green,#4A7A4A)}
.state-attention{--state:var(--amber,#B8860B)}
.state-action{--state:var(--red,#9A3324)}
.state-unconfigured{--state:var(--dust)}   /* not a fault: calm grey, never red */
.state-dot{width:.7rem;height:.7rem;border-radius:50%;display:inline-block;background:var(--state,var(--dust))}

/* ── motion: default to less; honour reduced-motion (tokens.css also clamps) ── */
@media (prefers-reduced-motion:no-preference){
  .card.lift{transition:transform .15s ease, box-shadow .15s ease}
  .card.lift:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(47,53,37,.1)}
}
