.page{width:min(var(--page),100% - 2*var(--gutter));margin-inline:auto}
main{flex:1;outline:none}
.view{padding-block:var(--s-6) var(--s-9)}
.band{padding-block:var(--s-8)}
.band--sleeve{background:var(--sleeve);border-block:1px solid var(--line)}
.band--ink{background:var(--ink-band);color:#eef1fa}
.band--ink a:not(.btn){color:#b9c2ff}.band--ink .btn--tag{color:var(--tag-ink)}.band--ink .muted{color:#a6b0d0}
.stack>*+*{margin-top:var(--s-4)}
.row{display:flex;gap:var(--s-4);align-items:center;flex-wrap:wrap}
.row--between{justify-content:space-between}
.grid{display:grid;gap:var(--s-5)}
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--s-7);align-items:center}
@media (max-width:860px){.split{grid-template-columns:minmax(0,1fr);gap:var(--s-6)}}

/* ---- header ---- */
.site-header{position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--stock) 94%,transparent);border-bottom:1px solid var(--line)}
@supports (backdrop-filter:blur(8px)){@media (min-width:900px){.site-header{backdrop-filter:blur(10px)}}}
.site-header__bar{display:flex;align-items:center;gap:var(--s-5);min-height:64px}
.brand{display:inline-flex;align-items:center;gap:9px;color:#163d2b;text-decoration:none;font-family:var(--text);font-weight:700;font-size:1.5rem;letter-spacing:-.055em;line-height:1;flex-shrink:0}
.brand:hover{color:var(--ink)}
.brand svg{width:26px;height:26px}
.brand img{width:36px;height:36px;flex:none}
.brand__wordmark{padding-bottom:3px}
@media(max-width:560px){.brand{font-size:1.25rem;gap:7px}.brand img{width:30px;height:30px}}
.brand span span{color:var(--blue)}
.nav{display:flex;gap:var(--s-1);margin-left:var(--s-3)}
.nav a,.nav button{color:var(--ink-2);text-decoration:none;font-weight:600;font-size:var(--fs-sm);padding:10px 12px;border-radius:var(--r-sm);background:none;border:0;white-space:nowrap}
.nav a:hover,.nav button:hover{color:var(--ink);background:rgba(11,18,48,.06)}
.nav a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--ink)}
.site-header__tools{margin-left:auto;display:flex;align-items:center;gap:var(--s-2)}
.icon-btn{position:relative;display:inline-grid;place-items:center;width:42px;height:42px;border-radius:50%;border:1px solid transparent;background:none;color:var(--ink)}
.icon-btn:hover{background:rgba(11,18,48,.07)}
.icon-btn svg{width:22px;height:22px}
.badge{position:absolute;top:2px;right:0;min-width:18px;height:18px;border-radius:9px;background:var(--blue);color:#fff;font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px}
.menu-toggle{display:none}
.popover{position:absolute;right:0;top:calc(100% + 8px);z-index:50;min-width:260px;max-width:min(92vw,380px);background:var(--paper);border:1px solid var(--line-strong);border-radius:var(--r-md);box-shadow:var(--shadow-2);padding:var(--s-2)}
.popover a,.popover button.item{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:var(--r-sm);color:var(--ink);text-decoration:none;background:none;border:0;font-size:var(--fs-sm)}
.popover a:hover,.popover button.item:hover{background:var(--blue-wash)}
.popover hr{margin:var(--s-2) 0}
.popover__head{padding:10px 12px;font-weight:700;display:flex;justify-content:space-between;align-items:center}
.relative{position:relative}
@media (max-width:1020px){
  .nav{display:none}
  .menu-toggle{display:inline-grid}
  .site-header.is-open .nav{display:flex;position:absolute;left:0;right:0;top:100%;flex-direction:column;background:var(--paper);border-bottom:1px solid var(--line-strong);padding:var(--s-3) var(--gutter) var(--s-5);gap:2px;max-height:calc(100dvh - 64px);overflow:auto}
  .site-header.is-open .nav a,.site-header.is-open .nav button{padding:14px 8px;font-size:var(--fs-md);text-align:left;border-bottom:1px solid var(--line)}
  .nav__group{font-size:var(--fs-xs);font-weight:700;color:var(--ink-3);padding:var(--s-4) 8px 4px}
}
@media (min-width:1021px){.nav__group{display:none}}

/* ---- status banner (incidents, maintenance, offline, low liquidity) ---- */
.banner{border-bottom:1px solid var(--line-strong);padding:10px 0;font-size:var(--fs-sm)}
.banner .page{display:flex;gap:var(--s-3);align-items:flex-start}
.banner--info{background:var(--blue-wash)}
.banner--warn{background:var(--warn-wash)}
.banner--danger{background:var(--danger-wash)}
.banner strong{font-weight:700}

/* ---- footer ---- */
.site-footer{background:var(--ink-band);color:#cfd6ee;padding-block:var(--s-8) var(--s-6);margin-top:auto}
.site-footer a{color:#e9ecfb}
.site-footer a:hover{color:#fff}
.footer__grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--s-6)}
.footer__title{color:#fff;font-family:var(--text);font-weight:700;font-size:var(--fs-sm);line-height:1.3;margin-bottom:var(--s-3)}
.footer__grid ul{list-style:none;display:grid;gap:8px;font-size:var(--fs-sm)}
.footer__fine{margin-top:var(--s-7);padding-top:var(--s-5);border-top:1px solid rgba(255,255,255,.14);font-size:var(--fs-xs);color:#a6b0d0;display:grid;gap:var(--s-2)}
.footer__fine p{max-width:90ch;margin:0}
@media (max-width:860px){.footer__grid{grid-template-columns:1fr 1fr}.footer__grid>:first-child{grid-column:1/-1}}

/* ---- page headings ---- */
.page-head{display:grid;gap:var(--s-3);margin-bottom:var(--s-6);max-width:70ch}
.page-head h1{font-size:var(--fs-3xl)}
.page-head p{color:var(--ink-2);font-size:var(--fs-lg);margin:0}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:var(--s-4);flex-wrap:wrap;margin-bottom:var(--s-5)}
.section-head h2{font-size:var(--fs-2xl)}
.crumbs{font-size:var(--fs-sm);color:var(--ink-2);margin-bottom:var(--s-4)}
.crumbs a{color:var(--ink-2)}

/* ---- toasts ---- */
.toasts{position:fixed;z-index:90;left:50%;bottom:calc(var(--s-5) + env(safe-area-inset-bottom));transform:translateX(-50%);display:grid;gap:var(--s-2);width:min(92vw,460px);pointer-events:none}
.toast{pointer-events:auto;background:var(--ink-band);color:#fff;padding:12px 16px;border-radius:var(--r-md);box-shadow:var(--shadow-2);font-size:var(--fs-sm);display:flex;gap:var(--s-3);align-items:flex-start;animation:toast-in var(--t-med) var(--ease)}
.toast--error{background:var(--danger)}
.toast--drop{background:var(--tag);color:var(--tag-ink);font-weight:600}
.toast button{margin-left:auto;background:none;border:0;color:inherit;opacity:.8;font-size:1.1rem;line-height:1}
@keyframes toast-in{from{transform:translateY(10px)}to{transform:none}}

.sprite{position:absolute;width:0;height:0}
.skel--title{width:60%;height:48px}.skel--line{width:40%;height:20px;margin-top:12px}
.site-footer .brand,.site-footer .brand>span{color:#fff}.site-footer .brand>span>span{color:#b9c2ff}
.site-footer .tagline{margin-top:12px;max-width:34ch}
@media (min-width:1021px){.nav__mobile-only{display:none}}

/* route-loading bar: shown only when a page takes longer than ~150 ms */
.is-loading body::before{content:"";position:fixed;inset:0 0 auto 0;height:3px;z-index:100;background:var(--blue);transform-origin:left;animation:route-load 1.2s ease-in-out infinite}
@keyframes route-load{from{transform:scaleX(.05)}to{transform:scaleX(.9)}}
@media (prefers-reduced-motion:reduce){.is-loading body::before{animation:none;transform:none;opacity:.6}}
