/* Shared site header.
   Markup comes from functions/_shared/site-nav.js; this file is the only place
   the header is styled, and every route (dashboard, content pages, generated
   guide articles) loads it. Class names are deliberately distinct from the old
   .dash-* / .site-* headers so nothing from those can leak in. */
.nav-bar{position:relative;z-index:60;display:grid;grid-template-columns:minmax(180px,1fr) auto minmax(330px,1fr);align-items:center;column-gap:20px;padding:0 clamp(24px,4vw,64px);height:76px;background:rgba(255,255,255,.86);border-bottom:1px solid #e8e9eb;-webkit-backdrop-filter:blur(18px) saturate(1.6);backdrop-filter:blur(18px) saturate(1.6);transition:box-shadow .3s ease,border-color .3s ease}
/* Labels must never be clipped or covered by the rest of the header. */
.nav-bar,.nav-utility,.nav-tools{overflow:visible}
.nav-bar.is-scrolled{border-bottom-color:#e3e6e9;box-shadow:0 10px 30px rgba(20,34,50,.07)}
/* Sticky keeps the navigation reachable while reading, but on small screens a
   two-row header would eat too much of the viewport, so it just scrolls away. */
@media(min-width:901px){
  .nav-bar{position:sticky;top:0}
}
.nav-brand{display:flex;align-items:center;gap:12px;color:#181a1e;text-decoration:none;font-size:19px;font-weight:800;letter-spacing:-.4px;white-space:nowrap;min-width:0}
.nav-brand img{width:38px;height:38px;flex:0 0 auto;transition:transform .34s var(--motion-ease,cubic-bezier(.22,.68,.16,1))}
.nav-brand:hover img{transform:rotate(90deg) scale(1.06)}
.nav-primary{display:flex;align-items:center;gap:4px;padding:4px;border-radius:20px;background:#f3f4f5;justify-self:center}
.nav-item{height:38px;padding:0 16px;display:flex;align-items:center;gap:8px;border:0;border-radius:19px;background:transparent;color:#707983;font:inherit;font-size:13px;text-decoration:none;white-space:nowrap;cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease}
.nav-item:hover{background:#fff;color:#171a1e}
.nav-item:active{transform:translateY(1px) scale(.985)}
.nav-item.active{background:#13b8cf;color:#fff;box-shadow:0 3px 8px rgba(19,184,207,.2)}
.nav-icon{width:19px;height:19px;flex:0 0 auto;stroke:currentColor;transition:transform .34s var(--motion-ease,cubic-bezier(.22,.68,.16,1))}
.nav-item:hover .nav-icon{transform:translateY(-1px) scale(1.06)}
.nav-utility{display:flex;align-items:center;gap:10px;justify-self:end;min-width:0}
.nav-tools{position:relative;display:flex;align-items:center;gap:2px;padding-right:10px;margin-right:2px;border-right:1px solid #eef1f3}
.nav-tool{position:relative;width:34px;height:34px;display:grid;place-items:center;border:0;border-radius:9px;background:transparent;color:#7b848f;cursor:pointer;transition:background-color .18s ease,color .18s ease}
.nav-tool:hover{background:#f4f7f8;color:#078fa3}
.nav-tool.active{color:#078fa3}
.nav-tool-glyph{width:20px;height:20px;stroke:currentColor;transition:transform .24s var(--motion-ease,cubic-bezier(.22,.68,.16,1))}
.nav-tool:hover .nav-tool-glyph{transform:translateY(-1px) scale(1.06)}
/* Labels only exist where hovering is a real interaction, so touch devices
   never get a stuck tooltip. */
@media(hover:hover){
  .nav-tool:after{content:attr(aria-label);position:absolute;top:calc(100% + 8px);left:50%;z-index:3;transform:translate(-50%,-4px);padding:5px 10px;border-radius:8px;background:#17191d;color:#fff;font-size:11px;font-weight:500;letter-spacing:.2px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease}
  .nav-tool:hover:after{opacity:1;transform:translate(-50%,0)}
  .nav-tools>.nav-tool:last-child:after{left:auto;right:0;transform:translateY(-4px)}
  .nav-tools>.nav-tool:last-child:hover:after{transform:translateY(0)}
}
.nav-account{height:43px;max-width:190px;padding:0 13px;display:flex;align-items:center;gap:8px;border:1px solid #dce3e9;border-radius:10px;background:#fff;color:#334056;font:inherit;font-size:13px;text-decoration:none;white-space:nowrap;overflow:hidden;cursor:pointer;transition:border-color .2s ease,color .2s ease,transform .2s ease}
.nav-account:hover{border-color:#13b8cf;color:#078fa3}
.nav-account:active{transform:translateY(1px) scale(.99)}
.nav-avatar{width:25px;height:25px;flex:0 0 auto;display:grid;place-items:center;border-radius:50%;background:#e7f8fa;color:#0798ad;font-size:11px;font-weight:800}
.nav-account-copy{display:grid;min-width:0;gap:1px;text-align:left;line-height:1.08}
.nav-account-copy>span{overflow:hidden;text-overflow:ellipsis}
.nav-coins{color:#9a6e18;font-size:9px;font-weight:750;font-variant-numeric:tabular-nums}
.nav-lang{display:flex;align-items:center;padding:3px;border-radius:9px;background:#f3f4f5}
.nav-lang a{min-width:30px;padding:4px 8px;border-radius:7px;color:#7b848f;font-size:11px;text-align:center;text-decoration:none;transition:background-color .18s ease,color .18s ease}
.nav-lang a:hover{color:#171a1e}
.nav-lang a.active{background:#fff;color:#1c2024;box-shadow:0 1px 4px rgba(20,28,40,.08)}

@media(max-width:1240px){
  .nav-bar{column-gap:14px;padding:0 22px}
  .nav-brand{gap:10px;font-size:17px}
  .nav-brand img{width:34px;height:34px}
  .nav-item{gap:7px;padding:0 12px;font-size:12px}
  .nav-icon{width:17px;height:17px}
  .nav-tools{gap:0;padding-right:8px}
  .nav-tool{width:31px;height:31px}
  .nav-tool-glyph{width:19px;height:19px}
  .nav-account{max-width:126px;padding:0 9px;font-size:11px}
}
/* The brand name stays visible on laptops; only the logo remains once the
   header is too narrow to hold it. */
@media(max-width:1100px){
  .nav-brand{font-size:15px}
}
@media(max-width:900px){
  .nav-bar{grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;row-gap:10px;column-gap:12px;height:auto;min-height:0;padding:12px 16px}
  .nav-brand{gap:9px;font-size:15px}
  .nav-brand img{width:30px;height:30px}
  .nav-primary{grid-column:1/-1;grid-row:2;justify-self:stretch;justify-content:center;gap:4px}
  .nav-item{flex:1;justify-content:center;min-width:0;padding:0 9px;font-size:12px}
  .nav-utility{grid-column:2;grid-row:1}
}
@media(max-width:560px){
  .nav-brand>span{display:none}
  .nav-brand img{width:38px;height:38px}
  .nav-item{height:36px;gap:5px;padding:0 5px;font-size:11px}
  .nav-icon{width:16px;height:16px}
  .nav-tools{padding-right:6px;margin-right:0}
  .nav-tool{width:28px;height:28px}
  .nav-tool-glyph{width:18px;height:18px}
  .nav-account{width:40px;max-width:40px;padding:0;justify-content:center}
  .nav-account-copy{display:none}
  .nav-lang a{min-width:26px;padding:4px 5px}
}
@media(prefers-reduced-motion:reduce){
  .nav-bar,.nav-brand img,.nav-item,.nav-icon,.nav-tool,.nav-tool-glyph,.nav-account,.nav-lang a{transition:none!important}
  .nav-brand:hover img,.nav-item:hover .nav-icon,.nav-tool:hover .nav-tool-glyph{transform:none}
}
