/* ═══════════════════════════════════════════════════════════
   osint.css — NSDECK · OSINT Situation Dashboard
   Light · pastel-tinted cards · extra-round · agent advisories
═══════════════════════════════════════════════════════════ */
@import url('https://fonts.googleapis.com/css2?family=Quicksand:wght@500;600;700&family=Nunito:wght@400;500;600;700;800&display=swap');

:root {
  --bg:    #4A6987;   /* matches vuah.html */
  --ink:   #14263A;
  --muted: #5B7188;
  --line:  #E4EAF3;
  --orng:  #FE9A37;

  --alert: #E5484D;  --conf: #DC2626;  --news: #2563EB;
  --temp:  #F97316;  --nat:  #D97706;  --safe: #16A34A;
  --geo:   #0EA5E9;  --airp: #7C3AED;  --sea:  #0891B2;
  --traf:  #E11D48;  --fx:   #059669;  --cry:  #F59E0B;
  --com:   #6D28D9;  --stock:#4F46E5;  --health:#DB2777;

  --r: 26px;
  --shadow:   0 3px 8px rgba(10,20,35,.18), 0 14px 34px rgba(10,20,35,.18);
  --shadow-h: 0 8px 18px rgba(10,20,35,.24), 0 24px 54px rgba(10,20,35,.26);
}

* { margin:0; padding:0; box-sizing:border-box; }
[hidden] { display:none !important; }

body {
  background:
    radial-gradient(820px 460px at 8% -10%,  rgba(255,255,255,.10), transparent 60%),
    radial-gradient(700px 420px at 92% -8%,  rgba(0,212,255,.10),  transparent 60%),
    radial-gradient(900px 520px at 50% 110%, rgba(20,38,58,.35),   transparent 65%),
    var(--bg);
  color:var(--ink);
  font-family:'Nunito', system-ui, sans-serif;
  -webkit-font-smoothing:antialiased;
  min-height:100vh;
}
h1,h2,h3,h4,.hdr__name { font-family:'Quicksand','Nunito',sans-serif; }
::selection { background:rgba(79,70,229,.16); }

/* ════════════ HEADER ════════════ */
.hdr {
  position:sticky; top:0; z-index:80;
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  padding:12px 28px;
  background:rgba(74,105,135,.82);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid rgba(255,255,255,.16);
}
.hdr__brand { display:flex; align-items:center; gap:12px; }
.hdr__mark { position:relative; width:44px; height:44px; }
.hdr__mark img { width:44px; height:44px; object-fit:contain; display:block; }
.hdr__dots { display:none; } /* dots are baked into the logo asset */
.hdr__dots {
  position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
  display:grid; grid-template-columns:1fr 1fr; gap:2.5px;
}
.hdr__dots i { width:5px; height:5px; border-radius:50%; }
.hdr__dots i:nth-child(1){ background:var(--conf); }
.hdr__dots i:nth-child(2){ background:var(--news); }
.hdr__dots i:nth-child(3){ background:var(--safe); }
.hdr__dots i:nth-child(4){ background:var(--cry); }
.hdr__name { font-weight:700; font-size:1.14rem; letter-spacing:.02em; color:#fff; }
.hdr__name span { background:var(--orng),var(--geo); -webkit-background-clip:text; -webkit-text-fill-color:#FE9A37; }
.hdr__tag { font-size:.6rem; font-weight:700; letter-spacing:.45em; word-spacing:.20em;text-transform:uppercase; color:rgba(255,255,255,.65); }
.hdr__controls { display:flex; align-items:center; gap:12px; }
.hdr__clock { display:flex; align-items:baseline; gap:6px; font-variant-numeric:tabular-nums; font-size:.86rem; font-weight:700; color:#fff; }
.hdr__clock em { font-style:normal; font-size:.54rem; font-weight:800; color:rgba(255,255,255,.6); letter-spacing:.1em; }
.hdr__date { margin-right:10px; font-size:.78rem; font-weight:700; color:rgba(255,255,255,.92); letter-spacing:.02em; }

/* ════════════ BUTTONS / SEGMENTS ════════════ */
.btn {
  border:1px solid var(--line); border-radius:100px;
  background:#fff; color:var(--ink);
  font:inherit; font-size:.8rem; font-weight:600;
  padding:8px 16px; cursor:pointer;
  transition:transform .15s, box-shadow .2s, background .2s;
}
.btn:hover { transform:translateY(-1px); box-shadow:var(--shadow); }
.btn--quiet[aria-pressed="true"] { background:#14263A; color:#fff; border-color:#14263A; }
.btn--sm { padding:6px 12px; font-size:.72rem; }
.seg { display:inline-flex; border:1px solid var(--line); border-radius:100px; overflow:hidden; background:#fff; }
.seg__btn { border:none; background:none; font:inherit; font-weight:700; padding:6px 11px; cursor:pointer; color:var(--muted); }
.seg--sm .seg__btn { font-size:.68rem; padding:4px 9px; }
.seg__btn.is-on { background:var(--ink); color:#fff; }

/* ════════════ WORLD TIME BANNER ════════════ */
.tbanner {
  display:flex; gap:10px; align-items:stretch;
  justify-content:center;
  padding:12px 28px 0;
  max-width:1460px; margin:0 auto;
  overflow-x:auto; scrollbar-width:none;
}
.tbanner::-webkit-scrollbar { display:none; }
.ttile {
  flex:none;
  display:flex; flex-direction:column; gap:2px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.18);
  border-radius:16px;                 /* rounded-edge rectangular frame */
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  padding:8px 16px;
  min-width:118px;
}
.ttile--me { border-color:rgba(255,255,255,.45); background:rgba(255,255,255,.16); }
.ttile__city {
  font-size:.58rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.75);
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
}
.ttile__time {
  font-family:'Quicksand','Nunito',sans-serif;
  font-size:1.28rem; font-weight:700; letter-spacing:.06em;
  font-variant-numeric:tabular-nums;
  line-height:1;
  transition:color 1.2s linear;
}
.ttile.swap { animation:tswap .5s ease; }
@keyframes tswap { 0%{opacity:0; transform:translateY(6px);} 100%{opacity:1; transform:none;} }
@media(max-width:760px){ .tbanner { padding:10px 16px 0; justify-content:flex-start; } }

/* ════════════ DECK / SECTIONS ════════════ */
.deck { padding:18px 28px 44px; max-width:1460px; margin:0 auto; }
.sec { margin-top:28px; }
.sec:first-child { margin-top:8px; }
.sec__head { display:flex; align-items:baseline; gap:14px; margin-bottom:14px; flex-wrap:wrap; }
.sec__kicker { font-size:.6rem; font-weight:800; letter-spacing:.16em; text-transform:uppercase; padding:5px 12px; border-radius:100px; }
.k-alert { background:#FEE9EA; color:var(--alert); }
.k-conf  { background:#FEE9EA; color:var(--conf); }
.k-loc   { background:#E7F8EE; color:var(--safe); }
.k-move  { background:#F1EBFE; color:var(--airp); }
.k-mkt   { background:#E5F5F0; color:var(--fx); }
.sec__title { font-size:1.34rem; font-weight:700; letter-spacing:.02em; color:#fff; font-variant-caps:all-small-caps; }
.sec__sub { font-size:.78rem; color:rgba(255,255,255,.7); }

.grid { display:grid; grid-template-columns:repeat(12,1fr); gap:18px; }
.span3{grid-column:span 3;} .span4{grid-column:span 4;} .span5{grid-column:span 5;}
.span6{grid-column:span 6;} .span7{grid-column:span 7;} .span12{grid-column:span 12;}

/* ════════════ CARDS · round, smooth, tinted ════════════ */
.card {
  border:none;
  border-radius:var(--r);
  box-shadow:var(--shadow);
  padding:22px;
  position:relative;
  transition:box-shadow .3s, transform .3s;
  background:#fff;
}
.card:hover { box-shadow:var(--shadow-h); transform:translateY(-3px); }

/* pastel category tints */
.tint-alert { background:linear-gradient(160deg,#FFF3F3, #FFFFFF 55%); }
.tint-conf  { background:linear-gradient(160deg,#FFF1F1, #FFFFFF 60%); }
.tint-news  { background:linear-gradient(160deg,#EFF5FF, #FFFFFF 60%); }
.tint-temp  { background:linear-gradient(160deg,#FFF3E9, #FFFFFF 60%); }
.tint-nat   { background:linear-gradient(160deg,#FFF7E6, #FFFFFF 60%); }
.tint-safe  { background:linear-gradient(160deg,#EDFAF1, #FFFFFF 60%); }
.tint-geo   { background:linear-gradient(160deg,#EAF7FE, #FFFFFF 60%); }
.tint-air   { background:linear-gradient(160deg,#F3EEFE, #FFFFFF 60%); }
.tint-sea   { background:linear-gradient(160deg,#E9F8FB, #FFFFFF 60%); }
.tint-traf  { background:linear-gradient(160deg,#FDEDF1, #FFFFFF 60%); }
.tint-fx    { background:linear-gradient(160deg,#E9F8F2, #FFFFFF 60%); }
.tint-cry   { background:linear-gradient(160deg,#FEF6E7, #FFFFFF 60%); }
.tint-com   { background:linear-gradient(160deg,#F1EBFB, #FFFFFF 60%); }
.tint-stock { background:linear-gradient(160deg,#EEF0FE, #FFFFFF 60%); }
.tint-health{ background:linear-gradient(160deg,#FDEEF6, #FFFFFF 60%); }
.tint-desk  { background:linear-gradient(120deg,#E9F8F2, #FEF6E7 50%, #F1EBFB); }

.card__head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:14px; flex-wrap:wrap; }
.card__head h3 { font-size:1.06rem; font-weight:700; font-variant-caps:all-small-caps; letter-spacing:.03em; }
.card__tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.mini { font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:14px 0 7px; }

.pill { font-size:.58rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase; padding:5px 10px; border-radius:100px; white-space:nowrap; }
.pill--live  { background:; color:#fff; }
.pill--model { background:transparent; color:#fff; }
.pill--src   { background:transparent; color:var(--muted); border:1px solid var(--line); }

.scrolly    { max-height:300px; overflow-y:auto; padding-right:6px; }
.scrolly-sm { max-height:130px; overflow-y:auto; padding-right:6px; }
.scrolly::-webkit-scrollbar, .scrolly-sm::-webkit-scrollbar { width:5px; }
.scrolly::-webkit-scrollbar-thumb, .scrolly-sm::-webkit-scrollbar-thumb { background:#D7DEEC; border-radius:3px; }

.skel { color:var(--muted); font-size:.8rem; list-style:none; animation:sk 1.2s ease-in-out infinite; }
@keyframes sk { 0%,100%{opacity:.45} 50%{opacity:1} }

/* ════════════ REFRESH BUTTON ════════════ */
.rbtn {
  border:1px solid var(--line); border-radius:50%;
  width:26px; height:26px;
  background:#fff; color:var(--muted);
  font-size:.85rem; line-height:1; cursor:pointer;
  display:inline-flex; align-items:center; justify-content:center;
  transition:color .2s, box-shadow .2s;
  flex:none;
}
.rbtn:hover { color:var(--ink); box-shadow:var(--shadow); }
.rbtn.spin { animation:rspin .7s linear; }
@keyframes rspin { to { transform:rotate(360deg); } }

/* ════════════ LOCATION CHIP + POPOVER ════════════ */
.locchip {
  display:inline-flex; align-items:center; gap:6px;
  border:1px solid var(--line); border-radius:100px;
  background:#fff; cursor:pointer;
  font:inherit; font-size:.7rem; font-weight:700; color:var(--ink);
  padding:5px 12px;
  max-width:170px;
  transition:box-shadow .2s;
}
.locchip:hover { box-shadow:var(--shadow); }
.locchip .dot { width:7px; height:7px; border-radius:50%; background:var(--safe); flex:none; }
.locchip.is-global .dot { background:var(--stock); }
.locchip b { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.locchip:after { content:'▾'; font-size:.6rem; color:var(--muted); }

.locpop {
  position:absolute; z-index:120;
  width:350px;
  /* framed, semi-transparent ice-dark — single source of truth (no white fallback) */
  background-color:rgba(16,42,68,.86);
  background-image:linear-gradient(160deg, rgba(190,232,255,.14), rgba(20,48,76,0) 55%);
  border:1px solid rgba(180,230,255,.75);
  outline:1px solid rgba(120,190,240,.28);
  outline-offset:3px;
  border-radius:18px;
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.14), 0 0 26px rgba(120,205,255,.34), 0 20px 44px rgba(5,15,30,.5);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  padding:12px;
  color:#fff;
}
.locpop input {
  width:100%; border:1px solid rgba(170,226,255,.5); border-radius:12px;
  padding:9px 12px; font:inherit; font-size:.8rem; outline:none;
  background:rgba(255,255,255,.1); color:#fff;
}
.locpop input::placeholder { color:rgba(255,255,255,.55); }
.locpop input:focus { border-color:rgba(200,238,255,.95); box-shadow:0 0 0 3px rgba(130,212,255,.22); }
#lpResults button {
  display:block; width:100%; text-align:left;
  border:none; background:none; cursor:pointer;
  font:inherit; font-size:.78rem; padding:8px 10px; border-radius:10px; color:#fff;
}
#lpResults button:hover { background:rgba(190,232,255,.18); }
.locpop__row { display:flex; gap:8px; margin-top:10px; }
.locpop__row .btn { flex:1; color:#fff; }

/* ════════════ AGENT ADVISORY ════════════ */
.agent {
  margin-top:26px;                      /* fixed separation from card content */
  background:rgba(255,255,255,.75);
  border:1px solid var(--line);
  border-radius:18px;
  padding:12px 14px;
}

.agent__row { display:flex; gap:10px; }
.agent__ava {
  flex:none; width:13px; height:13px; border-radius:0;
  align-self:flex-start; margin-top:4px;
  background:linear-gradient(120deg, #4F46E5, #0EA5E9, #16A34A, #F59E0B, #DB2777, #4F46E5, #0EA5E9);
  background-size:400% 400%;
  position:relative;
  animation:avaFlow 7s ease-in-out infinite;   /* shape static — only the colors ripple */
  clip-path:polygon(2% 0, 26% 0, 50% 58%, 74% 0, 98% 0, 62% 100%, 38% 100%);
}
@keyframes avaFlow {
  0%   { background-position:0% 50%; }
  50%  { background-position:100% 50%; }
  100% { background-position:0% 50%; }
}
@media(prefers-reduced-motion: reduce){ .agent__ava { animation:none; } }
.agent__ava::after, .agent__ava::before { content:none; }
.agent__body { flex:1; min-width:0; }
.agent__name { font-size:.58rem; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); margin-bottom:3px; }
.agent__ttl { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.agent__ttl small { font-size:.48rem; font-weight:700; letter-spacing:.1em; }
.agent__text { font-size:.79rem; line-height:1.55; color:var(--ink); min-height:1.2em; }
.agent__text .caret { display:inline-block; width:7px; height:12px; background:var(--ink); margin-left:2px; animation:caret .8s step-end infinite; vertical-align:-1px; }
@keyframes caret { 0%,100%{opacity:1} 50%{opacity:0} }
.agent__chips { display:flex; gap:6px; flex-wrap:wrap; margin-top:9px; }
.agent__chips button {
  border:none; border-radius:0; background:none;
  box-shadow:none;
  font:inherit; font-size:.68rem; font-weight:700; color:var(--ink);
  padding:3px 4px; cursor:pointer;
  transition:opacity .15s, transform .15s;
}
.agent__chips button:hover { background:none; opacity:.7; transform:translateY(-1px); }
.agent__chips button.asked { opacity:.45; pointer-events:none; }

/* ════════════ ALERT CENTER ════════════ */
.alerts__bar { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom:10px; }
.alerts__counts { display:flex; gap:8px; flex-wrap:wrap; }
.cnt { font-size:.72rem; font-weight:600; padding:6px 13px; border-radius:100px; }
.cnt b { font-weight:800; }
.cnt--crit { background:#FDE3E4; color:#B91C1C; }
.cnt--high { background:#FDEBD9; color:#C2410C; }
.cnt--med  { background:#E3EDFE; color:#1D4ED8; }
.alerts__mode { font-size:.66rem; color:var(--muted); font-weight:700; }
.alerts__list { list-style:none; display:flex; flex-direction:column; gap:9px; }
.alerts__list li {
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  border-radius:16px;
  font-size:.82rem;
  color:#fff;
  overflow:hidden;
  transition:border-color .25s, background .25s;
}
.alerts__list li.is-open { background:rgba(255,255,255,.14); border-color:rgba(190,232,255,.5); }
.arow { display:flex; align-items:flex-start; gap:10px; padding:11px 14px; }
.alerts__list .sev { flex:none; margin-top:3px; width:9px; height:9px; border-radius:50%; }
.sev--4 { background:#FF5A60; animation:sevPulse 1.6s infinite; }
.sev--3 { background:#FFA35C; }
.sev--2 { background:#7DB8FF; }
@keyframes sevPulse { 0%,100%{box-shadow:0 0 0 4px rgba(255,90,96,.25)} 50%{box-shadow:0 0 0 8px rgba(255,90,96,.06)} }
.alerts__list .body { flex:1; color:#fff; }
.alerts__list .src { font-size:.6rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:rgba(255,255,255,.62); margin-right:6px; }
.acaret {
  flex:none; border:1px solid rgba(255,255,255,.28); border-radius:50%;
  width:24px; height:24px;
  background:rgba(255,255,255,.1); color:#fff;
  font-size:.7rem; line-height:1; cursor:pointer;
  transition:transform .25s ease, background .2s;
}
.acaret:hover { background:rgba(255,255,255,.22); }
li.is-open .acaret { transform:rotate(180deg); }

/* detail dropdown */
.adet {
  border-top:1px solid rgba(255,255,255,.18);
  background:rgba(8,32,52,.28);
  padding:10px 14px 12px;
  display:flex; flex-direction:column; gap:7px;
}
.adet__row { display:flex; gap:12px; align-items:baseline; font-size:.74rem; }
.adet__row--top { align-items:flex-start; }
.adet__k { flex:none; width:86px; font-size:.56rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); }
.adet__v { color:#fff; line-height:1.5; }
.adet__sev4 { color:#FF8A8E; font-weight:800; }
.adet__sev3 { color:#FFC08A; font-weight:800; }
.adet__sev2 { color:#A9CDFF; font-weight:800; }
.adet__locs { display:flex; flex-direction:column; gap:5px; }
.adet__loc { display:flex; gap:8px; align-items:baseline; flex-wrap:wrap; }
.adet__loc code {
  font-size:.68rem; color:#CBEAFF;
  background:rgba(255,255,255,.1); border-radius:6px; padding:1px 7px;
  font-variant-numeric:tabular-nums;
}
.adet__focus {
  border:1px solid rgba(190,232,255,.45); border-radius:100px;
  background:rgba(255,255,255,.1); color:#DAF1FF;
  font:inherit; font-size:.6rem; font-weight:800; letter-spacing:.05em;
  padding:2px 10px; cursor:pointer;
}
.adet__focus:hover { background:rgba(190,232,255,.28); color:#fff; }

.alerts__more { margin-top:10px; border:1px dashed #D8DFEC; background:none; border-radius:100px; font:inherit; font-size:.72rem; font-weight:700; color:var(--muted); padding:9px 14px; cursor:pointer; width:100%; }
.alerts__more:hover { color:var(--ink); background:rgba(255,255,255,.7); }
.alerts__empty { font-size:.84rem; color:var(--safe); font-weight:700; padding:4px 2px; }

/* ── Alert Center: ice-blue glass skin ── */
.card--alerts.tint-alert {
  background:linear-gradient(160deg, rgba(190,232,255,.17), rgba(140,205,250,.08) 60%);
  border:1px solid rgba(170,226,255,.62);
  box-shadow:
    inset 0 0 0 1px rgba(200,238,255,.14),
    0 0 24px rgba(120,205,255,.38),
    0 14px 34px rgba(10,20,35,.20);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:#fff;
}
.card--alerts.tint-alert:hover { box-shadow:
    inset 0 0 0 1px rgba(200,238,255,.18),
    0 0 32px rgba(130,212,255,.5),
    0 18px 44px rgba(10,20,35,.24); }
.card--alerts .alerts__mode, .card--alerts .amap__cap, .card--alerts .amap__legend { color:rgba(255,255,255,.78); }
.card--alerts .alerts__empty { color:#8CF5C0; }
.card--alerts .cnt--crit { background:rgba(255,255,255,.14); color:#FFB3B6; }
.card--alerts .cnt--high { background:rgba(255,255,255,.14); color:#FFCFA3; }
.card--alerts .cnt--med  { background:rgba(255,255,255,.14); color:#B9D8FF; }
.card--alerts .alerts__more { border-color:rgba(255,255,255,.35); color:rgba(255,255,255,.8); }
.card--alerts .alerts__more:hover { background:rgba(255,255,255,.1); color:#fff; }
.card--alerts .geo__chip { background:rgba(255,255,255,.14); border-color:rgba(255,255,255,.3); color:#fff; }

/* alert geolocation map (Leaflet) */
.card--alerts { display:grid; grid-template-columns:1.55fr 1fr; gap:18px; align-items:start; }
.amap__map {
  height:262px; border-radius:16px; overflow:hidden;
  border:1px solid var(--line);
  background:#DEE7F0;
}
.amap__map .leaflet-control-attribution { font-size:.55rem; }
.amap__bar { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:8px; }
.amap__cap { font-size:.66rem; font-weight:700; color:var(--muted); }
.amap__legend { display:flex; gap:12px; flex-wrap:wrap; margin-top:6px; font-size:.62rem; font-weight:700; color:var(--muted); }
.amap__legend span { display:flex; align-items:center; gap:5px; }
.lg { display:inline-block; width:9px; height:9px; }
.lg--dot { border-radius:50%; background:#E5484D; }
.lg--sq  { border-radius:2px;  background:#7C3AED; }
.lg--tri { width:0; height:0; background:none;
  border-left:5.5px solid transparent; border-right:5.5px solid transparent; border-bottom:9px solid #F59E0B; }

/* markers: circle = alert · square = leadership · triangle = unrest */
.amk { position:relative; display:block; width:12px; height:12px; margin:3px; }
.amk::before, .amk::after { content:''; position:absolute; inset:0; }
.amk--dot::before { border-radius:50%; background:#E5484D; box-shadow:0 0 0 2px #fff; }
.amk--dot::after  { border-radius:50%; background:rgba(229,72,77,.55); animation:amkPulse 1.7s ease-out infinite; }
.amk--sq::before  { border-radius:2.5px; background:#7C3AED; box-shadow:0 0 0 2px #fff; }
.amk--sq::after   { border-radius:2.5px; background:rgba(124,58,237,.5); animation:amkPulse 1.9s ease-out infinite; }
.amk--tri::before, .amk--tri::after {
  clip-path:polygon(50% 0, 100% 100%, 0 100%);
}
.amk--tri::before { background:#F59E0B; filter:drop-shadow(0 0 1px #fff); }
.amk--tri::after  { background:rgba(245,158,11,.55); animation:amkPulse 2.1s ease-out infinite; }
.amk--s4::after { animation-duration:1.3s; }
@keyframes amkPulse {
  0%   { transform:scale(1);   opacity:.8; }
  100% { transform:scale(2.7); opacity:0; }
}
@media(max-width:1000px){ .card--alerts { grid-template-columns:1fr; } }
@media(prefers-reduced-motion: reduce){ .amk::after { animation:none; } }

/* ════════════ CONFLICT / NEWS ════════════ */
.conf__list { list-style:none; display:flex; flex-direction:column; gap:10px; max-height:430px; }
.conf__list li { background:rgba(255,255,255,.8); border-radius:18px; padding:12px 14px; }
.conf__top { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.conf__top b { font-size:.88rem; }
.lvl { font-size:.56rem; font-weight:800; letter-spacing:.08em; padding:3px 9px; border-radius:100px; }
.lvl--severe { background:#FDE3E4; color:#B91C1C; }
.lvl--high { background:#FDEBD9; color:#C2410C; }
.lvl--elevated { background:#FDF6D8; color:#A16207; }
.conf__dev { font-size:.76rem; color:var(--muted); margin-top:5px; line-height:1.5; }
.conf__dev b { color:var(--ink); }
.conf__adv { font-size:.72rem; margin-top:5px; color:#0F766E; font-weight:600; }

.news__list { list-style:none; display:flex; flex-direction:column; gap:9px; max-height:430px; }
.news__list li { border-bottom:1px dashed #E2E8F3; padding-bottom:8px; }
.news__list a {
  color:var(--ink); text-decoration:none; font-size:.82rem; font-weight:600; line-height:1.4;
  /* entire headline shown, previewed at up to 3 lines */
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical;
  overflow:hidden; overflow-wrap:break-word;
}
.news__list a:hover { color:var(--news); }
.news__meta { display:block; font-size:.64rem; color:var(--muted); margin-top:3px; }
.ntag {
  display:inline-block; font-size:.54rem; font-weight:800; letter-spacing:.06em;
  border-radius:100px; padding:2px 8px; margin-right:4px; vertical-align:2px;
}
.ntag--geo    { background:#FEE9EA; color:#B91C1C; }
.ntag--wx     { background:#E7F0FF; color:#1D4ED8; }
.ntag--econ   { background:#E7F8EE; color:#15803D; }
.ntag--health { background:#FDEEF6; color:#BE185D; }

/* ════════════ TAPE (stocks marquee) ════════════ */
.card--tape { padding:16px 0 18px; overflow:hidden; }
.card--tape .card__head { padding:0 22px; }
.tape { position:relative; overflow:hidden;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);
          mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
.tape__run {
  list-style:none; display:flex; gap:34px; width:max-content;
  animation:tape 55s linear infinite;
  padding:4px 0;
}
.tape:hover .tape__run { animation-play-state:paused; }
@keyframes tape { from{transform:translateX(0)} to{transform:translateX(-50%)} }
.tape__run li { display:flex; align-items:baseline; gap:8px; white-space:nowrap; font-size:.84rem; }
.tape__run .rgn { font-size:.56rem; font-weight:800; letter-spacing:.08em; padding:3px 8px; border-radius:100px; background:#EEF0FE; color:var(--stock); }
.tape__run .nm { font-weight:700; }
.tape__run .vl { font-variant-numeric:tabular-nums; color:var(--muted); }
.tape__run .ch { font-weight:800; font-variant-numeric:tabular-nums; }
.ch.up { color:#15803D; } .ch.dn { color:#DC2626; }

/* economic wire under the tape */
.econwire__head { padding:10px 22px 0; }
.econwire { list-style:none; padding:8px 22px 0; display:grid; grid-template-columns:1fr 1fr 1fr; gap:8px 18px; }
.econwire li { font-size:.76rem; line-height:1.4; border-bottom:1px dashed #E2E8F3; padding-bottom:7px; }
.econwire a { color:var(--ink); text-decoration:none; font-weight:700; }
.econwire a:hover { color:var(--stock); }
.econwire .ot {
  display:inline-block; font-size:.52rem; font-weight:800; letter-spacing:.06em;
  border-radius:100px; padding:2px 7px; margin-right:5px; vertical-align:1px;
}
.ot--ft { background:#FDEBD9; color:#B45309; }
.ot--yh { background:#F1EBFE; color:#6D28D9; }
.ot--cl { background:#E7F0FF; color:#1D4ED8; }
.ot--wr { background:#EEF2F7; color:#475569; }
@media(max-width:900px){ .econwire { grid-template-columns:1fr; } }

/* ════════════ MARKETS LISTS ════════════ */
.mkt__list { list-style:none; display:flex; flex-direction:column; gap:9px; font-size:.83rem; }
.mkt__list li { display:flex; align-items:baseline; gap:8px; }
.mkt__list .n { flex:1; font-weight:600; }
.mkt__list .v { font-variant-numeric:tabular-nums; font-weight:700; }
.mkt__list .tr { width:86px; text-align:right; font-size:.7rem; font-weight:800; }
.up{color:#15803D;} .dn{color:#DC2626;} .fl{color:var(--muted);}

/* ════════════ WEATHER ════════════ */
.wx__now { display:flex; align-items:center; gap:14px; }
.wx__temp { font-family:'Quicksand'; font-size:3rem; font-weight:700; letter-spacing:-.03em; color:var(--temp); }
.wx__meta { display:flex; flex-direction:column; gap:2px; font-size:.76rem; color:var(--muted); }
.wx__meta span:first-child { color:var(--ink); font-weight:700; font-size:.86rem; }
.statgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:8px; margin-top:12px; }
.stat { background:rgba(255,255,255,.8); border-radius:16px; padding:9px 8px; text-align:center; }
.stat b { display:block; font-size:.86rem; font-variant-numeric:tabular-nums; }
.stat span { font-size:.58rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.wx__range { margin-top:10px; font-size:.73rem; color:var(--muted); }

/* weather condition skins (background graphics) */
.wx__bg { position:absolute; inset:0; border-radius:var(--r); pointer-events:none; overflow:hidden; opacity:.8; }
#cardWx { overflow:hidden; }
#cardWx > *:not(.wx__bg) { position:relative; z-index:1; }

.wx--clear .wx__bg { background:
  radial-gradient(140px 140px at 85% 12%, rgba(253,186,45,.55), rgba(253,186,45,.15) 55%, transparent 70%),
  linear-gradient(165deg,#FFF6E5, #FFFFFF 62%); }
.wx--cloud .wx__bg { background:
  radial-gradient(120px 60px at 78% 16%, rgba(148,163,184,.35), transparent 70%),
  radial-gradient(160px 70px at 60% 24%, rgba(148,163,184,.28), transparent 70%),
  linear-gradient(165deg,#EEF2F7, #FFFFFF 62%); }
.wx--rain .wx__bg { background:
  repeating-linear-gradient(105deg, transparent 0 12px, rgba(37,99,235,.14) 12px 13.5px),
  linear-gradient(165deg,#E3EDFB, #FFFFFF 65%);
  animation:rainSlide 1.1s linear infinite; }
@keyframes rainSlide { to { background-position:-56px 56px, 0 0; } }
.wx--snow .wx__bg { background:
  radial-gradient(3px 3px at 20% 22%, rgba(255,255,255,.95), transparent 60%),
  radial-gradient(2.5px 2.5px at 55% 12%, rgba(255,255,255,.9), transparent 60%),
  radial-gradient(3px 3px at 80% 30%, rgba(255,255,255,.95), transparent 60%),
  radial-gradient(2px 2px at 35% 40%, rgba(255,255,255,.9), transparent 60%),
  linear-gradient(165deg,#E8F1FA,#F7FAFF 65%);
  animation:snowFall 5s linear infinite; }
@keyframes snowFall { to { background-position:0 220px, 0 190px, 0 240px, 0 200px, 0 0; } }
.wx--fog .wx__bg { background:
  linear-gradient(180deg, transparent 18%, rgba(148,163,184,.28) 30%, transparent 44%,
    rgba(148,163,184,.24) 56%, transparent 70%, rgba(148,163,184,.2) 82%, transparent 94%),
  linear-gradient(165deg,#EDF1F5,#FBFCFE 60%); }
.wx--storm .wx__bg { background:
  radial-gradient(180px 90px at 70% 14%, rgba(71,85,105,.5), transparent 70%),
  linear-gradient(165deg,#DDE4EE,#F3F6FA 62%);
  animation:flash 6s ease-in-out infinite; }
@keyframes flash { 0%,88%,94%,100%{filter:brightness(1)} 90%,92%{filter:brightness(1.35)} }

/* fog + airport strip */
.wx__strip { display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.wx__strip span {
  font-size:.68rem; font-weight:700;
  background:rgba(255,255,255,.85); border:1px solid var(--line);
  border-radius:100px; padding:6px 12px;
}
.wx__apt.ok  { color:#15803D; border-color:#BBE7C9; }
.wx__apt.bad { color:#B91C1C; border-color:#F5C2C4; }

/* 2-day forecast */
.wx__fc { list-style:none; display:flex; flex-direction:column; gap:6px; }
.wx__fc li {
  display:flex; align-items:baseline; gap:10px;
  background:rgba(255,255,255,.8); border-radius:14px;
  padding:8px 12px; font-size:.78rem;
}
.wx__fc .d { width:44px; font-weight:800; }
.wx__fc .w { flex:1; color:var(--muted); }
.wx__fc .t { font-weight:800; font-variant-numeric:tabular-nums;background:none; color:#fff;}
.wx__fc .p { width:58px; text-align:right; color:#fff; font-weight:700; font-size:.7rem; }

/* ════════════ NATURAL CONDITIONS ════════════ */
.nat__flags { list-style:none; display:flex; flex-direction:column; gap:7px; }
.nat__flags li { display:flex; align-items:flex-start; gap:9px; font-size:.79rem; background:rgba(255,255,255,.8); border-radius:14px; padding:8px 12px; }
.nat__flags .sub { display:block; font-size:.64rem; font-weight:500; color:var(--muted); margin-top:2px; line-height:1.4; }
.nat__flags .n { flex:1; font-weight:600; }
.st { font-size:.56rem; font-weight:800; letter-spacing:.06em; padding:3px 9px; border-radius:100px; }
.st--ok{background:#E7F8EE;color:#15803D;} .st--watch{background:#FDF6D8;color:#A16207;}
.st--busy{background:#FDF6D8;color:#A16207;}
.st--warn{background:#FDEBD9;color:#C2410C;} .st--risk{background:#FDE3E4;color:#B91C1C;}
.quake__list { list-style:none; display:flex; flex-direction:column; gap:6px; font-size:.78rem; }
.quake__list b { font-variant-numeric:tabular-nums; }
.quake__list .m5{color:#C2410C;} .quake__list .m6{color:#B91C1C;font-weight:800;}

/* ════════════ SAFETY ════════════ */
.safe__hero { display:flex; align-items:center; gap:14px; margin-bottom:12px; }
.safe__score { font-family:'Quicksand'; font-size:2rem; font-weight:700; border-radius:18px; padding:9px 16px; }
.safe__hero div span { display:block; font-size:.72rem; color:var(--muted); }
.safe__hero div b { font-size:.92rem; }
.rank__list { list-style:none; font-size:.78rem; display:flex; flex-direction:column; gap:6px; }
.rank__list li { display:flex; align-items:center; gap:8px; }
.rank__list li.me { background:rgba(255,255,255,.9); border-radius:12px; padding:4px 8px; box-shadow:0 1px 3px rgba(16,24,40,.08); }
.rank__list .bar { flex:1; height:7px; border-radius:5px; background:#E9EDF6; overflow:hidden; }
.rank__list .bar i { display:block; height:100%; border-radius:5px; }
.rank__list .n { width:128px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rank__list .v { width:32px; text-align:right; font-weight:800; font-variant-numeric:tabular-nums; }

.safe__dist {
  display:flex; flex-wrap:wrap; gap:6px;
  margin:2px 0 12px;
}
.safe__dist span {
  font-size:.66rem; font-weight:700;
  background:rgba(255,255,255,.85); border:1px solid var(--line);
  border-radius:100px; padding:5px 11px;
  font-variant-numeric:tabular-nums;
}
.safe__dist b { color:var(--safe); }

/* ════════════ HEALTH ════════════ */
.hz__list { list-style:none; display:flex; flex-direction:column; gap:7px; }
.hz__list li { display:flex; align-items:center; gap:9px; font-size:.79rem; background:rgba(255,255,255,.8); border-radius:14px; padding:8px 12px; }
.hz__list .n { flex:1; font-weight:600; }
.vax { display:flex; gap:6px; flex-wrap:wrap; }
.vax span { font-size:.68rem; font-weight:700; background:#fff; border:1px solid var(--line); border-radius:100px; padding:5px 12px; }
.vax .req { border-color:#F9A8D4; background:#FDEEF6; color:#BE185D; }

/* ════════════ GEO ════════════ */
.geo { display:grid; grid-template-columns:1.5fr 1fr; gap:14px; }
.geo__side { display:flex; flex-direction:column; min-width:0; }
.geo__find { display:flex; gap:8px; margin-bottom:8px; }
.geo__find input {
  flex:1; border:1px solid var(--line); border-radius:100px;
  padding:8px 14px; font:inherit; font-size:.78rem; outline:none; background:#fff;
}
.geo__find input:focus { border-color:var(--geo); box-shadow:0 0 0 3px rgba(14,165,233,.14); }
.geo__chips { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:8px; }
.geo__chip {
  border:1px solid var(--line); border-radius:100px; background:#fff;
  font:inherit; font-size:.66rem; font-weight:700; color:var(--muted);
  padding:4px 11px; cursor:pointer; text-transform:capitalize;
}
.geo__chip:hover { color:var(--geo); border-color:rgba(14,165,233,.4); }
.geo__hint { font-size:.72rem; color:var(--muted); line-height:1.5; padding:4px 2px; }
.poi__results { max-height:236px; display:flex; flex-direction:column; gap:6px; }
.pres {
  display:flex; align-items:baseline; gap:8px; width:100%;
  border:1px solid var(--line); border-radius:12px; background:rgba(255,255,255,.85);
  font:inherit; font-size:.76rem; text-align:left; cursor:pointer;
  padding:8px 11px;
  transition:border-color .2s, box-shadow .2s;
}
.pres:hover { box-shadow:var(--shadow); }
.pres.is-sel { border-color:var(--geo); box-shadow:0 0 0 3px rgba(14,165,233,.14); }
.pres__n { font-weight:700; }
.pres__m { color:var(--muted); font-size:.64rem; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pres .d { margin-left:auto; flex:none; color:var(--muted); font-size:.66rem; font-variant-numeric:tabular-nums; }
.geo__bar { display:flex; align-items:baseline; justify-content:space-between; gap:8px; margin-bottom:8px; }
.geo__lbl { font-size:.68rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); }
.geo__all {
  border:1px solid var(--line); border-radius:100px; background:#fff;
  font:inherit; font-size:.64rem; font-weight:700; color:var(--muted);
  padding:4px 11px; cursor:pointer;
}
.geo__all:hover { color:var(--ink); box-shadow:var(--shadow); }
.geo__map { width:100%; height:290px; border:none; border-radius:18px; }
.poi__cats { max-height:290px; font-size:.78rem; display:flex; flex-direction:column; gap:6px; }
.pcat { background:rgba(255,255,255,.8); border-radius:14px; overflow:hidden; }
.pcat__hd {
  display:flex; align-items:center; gap:8px; width:100%;
  border:none; background:none; cursor:pointer; text-align:left;
  font:inherit; font-weight:700; padding:9px 12px;
}
.pcat__hd:hover { background:rgba(234,247,254,.6); }
.pcat__label { flex:1; }
.pcat__cnt {
  font-size:.62rem; font-weight:800; font-variant-numeric:tabular-nums;
  background:#EEF2F7; color:var(--muted); border-radius:100px; padding:2px 8px;
}
.pcat__caret { font-size:.66rem; color:var(--muted); transition:transform .25s ease; }
.pcat.is-open .pcat__caret { transform:rotate(180deg); }
.pcat__bd { padding:2px 12px 9px; display:flex; flex-direction:column; gap:5px; }
.pcat__empty { font-size:.7rem; color:var(--muted); padding:2px 0 4px; }
.prow { display:flex; gap:8px; align-items:baseline; }
.gsrc { font-size:.52rem; font-weight:800; color:#1D4ED8; margin-left:2px; }
.t { flex:none; font-size:.56rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:100px; background:#EAF7FE; color:var(--geo); }
.t--med    { background:#FDE3E4; color:#B91C1C; }
.t--clinic { background:#FDEEF6; color:#BE185D; }
.t--vet    { background:#FDF6D8; color:#A16207; }
.t--police { background:#E7F0FF; color:#1D4ED8; }
.t--gov    { background:#EEF2F7; color:#334155; }
.t--relig  { background:#F1EBFE; color:#6D28D9; }
.t--trans { background:#E9F8FB; color:#0E7490; }
.t--culture{ background:#E7F8EE; color:#15803D; }
.poi__lnk { color:var(--ink); text-decoration:none; }
.poi__lnk:hover { color:var(--geo); text-decoration:underline; }
.prow .d, .pcat .d { color:var(--muted); font-size:.66rem; margin-left:auto; font-variant-numeric:tabular-nums; }

/* airport code dropdown popover */
.aptpop { width:236px; }
.aptpop__title { font-size:.72rem; font-weight:800; letter-spacing:.04em; margin:2px 4px 8px; }
.aptpop__link {
  display:flex; justify-content:space-between; align-items:baseline; gap:8px;
  text-decoration:none; color:var(--ink);
  font-size:.78rem; font-weight:700;
  padding:9px 10px; border-radius:12px;
}
.aptpop__link span { font-size:.6rem; font-weight:600; color:var(--muted); }
.aptpop__link:hover { background:#F1F5FF; }
.apt__code button {
  border:none; background:none; cursor:pointer; padding:0;
  font:inherit; font-family:'Quicksand'; font-weight:700;
  color:var(--airp); border-bottom:1.5px dotted rgba(124,58,237,.5);
}
.apt__code button:hover { color:#5B21B6; border-bottom-style:solid; }
.apt__code button:after { content:' ▾'; font-size:.6rem; color:var(--muted); }

/* flight tracker */
.flt { display:flex; gap:8px; margin-bottom:10px; }
.flt input {
  flex:1; border:1px solid #fff; border-radius:100px;
  padding:8px 14px; font:inherit; font-size:.78rem; outline:none;
  background:transparent; color:#fff;
}
.flt input::placeholder { color:rgba(255,255,255,.6); }
.flt input:focus { border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.22); }
.flt__res {
  font-size:.74rem; line-height:1.55;
  background:rgba(255,255,255,.85); border:1px solid var(--line);
  border-radius:14px; padding:9px 12px; margin-bottom:10px;
}
.flt__res b { font-variant-numeric:tabular-nums; }
.flt__res .lk { margin-right:10px; font-weight:800; color:var(--airp); text-decoration:none; }
.flt__res .lk:hover { text-decoration:underline; }
.flt__res .on  { color:#15803D; font-weight:800; }
.flt__res .off { color:var(--muted); font-weight:700; }

/* ════════════ AIRPORTS / SEA ════════════ */
.apt__list { list-style:none; display:flex; flex-direction:column; gap:9px; max-height:320px; }
.apt__list li { display:flex; align-items:center; gap:10px; font-size:.8rem; }
.apt__code { font-family:'Quicksand'; font-weight:700; width:44px; }
.apt__code a { color:var(--airp); text-decoration:none; border-bottom:1.5px dotted rgba(124,58,237,.5); }
.apt__code a:hover { color:#5B21B6; border-bottom-style:solid; }
.apt__name { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:var(--muted); }
.apt__bar { width:96px; height:8px; border-radius:5px; background:#E9EDF6; overflow:hidden; }
.apt__bar i { display:block; height:100%; border-radius:5px; }
.apt__pct { width:48px; text-align:right; font-weight:800; font-size:.73rem; font-variant-numeric:tabular-nums; }

.sea__list { list-style:none; display:flex; flex-direction:column; gap:7px; font-size:.78rem; max-height:320px; }
.sea__list li { display:flex; align-items:center; gap:8px; background:rgba(255,255,255,.8); border-radius:12px; padding:7px 11px; }
.sea__list .n { flex:1; font-weight:600; }
.sea__name {
  border:none; background:none; cursor:pointer; padding:0;
  font:inherit; font-weight:700; color:var(--sea); text-align:left;
  border-bottom:1.5px dotted rgba(8,145,178,.45);
}
.sea__name:hover { color:#0E7490; border-bottom-style:solid; }
.sea__name:after { content:' ▾'; font-size:.6rem; color:var(--muted); }
.sea__list .sub { font-size:.62rem; color:var(--muted); display:block; font-weight:500; }
.sea__head { font-size:.62rem !important; font-weight:800 !important; letter-spacing:.1em; text-transform:uppercase; color:var(--muted) !important; background:none !important; padding:6px 2px 0 !important; }

/* ════════════ TRAFFIC ════════════ */
.traf { display:flex; flex-direction:column; gap:9px; }
.traf__gauge { height:12px; border-radius:8px; background:#E9EDF6; overflow:hidden; }
.traf__gauge i { display:block; height:100%; width:0; border-radius:8px; background:linear-gradient(90deg,#16A34A,#F59E0B,#E11D48); transition:width .6s ease; }
.traf b { font-size:1.05rem; }
.traf span { font-size:.72rem; color:var(--muted); }

/* ════════════ FOOTER ════════════ */
.ftr { border-top:1px solid rgba(255,255,255,.18); padding:18px 28px 30px; font-size:.7rem; color:rgba(255,255,255,.75); line-height:1.7; max-width:1460px; margin:22px auto 0; }

/* ════════════ RESPONSIVE ════════════ */
@media(max-width:1120px){
  .span3,.span4,.span5,.span6,.span7 { grid-column:span 6; }
  .tint-geo { grid-column:span 12; }   /* geospatial spans the full row on tablets */
}
@media(max-width:760px){
  .hdr { padding:10px 16px; }
  .deck { padding:12px 16px 38px; }
  .span3,.span4,.span5,.span6,.span7,.span12 { grid-column:span 12; }
  .geo { grid-template-columns:1fr; }
  .hdr__clock { display:none; }
  .statgrid { grid-template-columns:repeat(2,1fr); }
  .ftr { padding:16px 16px 26px; }
  /* stacked cards: clear rhythm, extra breathing room */
  .grid { gap:22px; }
  .card { padding:20px 16px 22px; }
  /* vuah agent modules: single-column stacking keeps the plain fixed gap */
  .card > .agent { margin-top:26px; border-top:1px solid var(--line);
    background-clip:border-box; box-shadow:none; }
  .agent { padding:15px 14px 17px; border-radius:16px; }
  .agent__text { font-size:.84rem; line-height:1.6; min-height:3.4em; }
  .agent__chips { margin-top:12px; gap:8px; }
  .agent__chips button { padding:8px 15px; font-size:.72rem; }
  .agent__ask input { padding:9px 14px; font-size:.8rem; }
}
@media(max-width:480px){
  .grid { gap:20px; }
  .card { padding:18px 14px 20px; }
  .agent__text { min-height:3.8em; }
}
@media(prefers-reduced-motion: reduce){
  .sev--4, .agent__ava, .agent__text .caret { animation:none; }
  .tape__run { animation-duration:220s; }
  .card,.btn { transition:none; }
}


/* ═══════════════════════════════════════════════════════════
   ICE THEME — all cards: transparent ice-blue glass,
   semi-glowing ice border, white readable text
═══════════════════════════════════════════════════════════ */
.card {
  --ink:#FFFFFF;
  --muted:rgba(255,255,255,.68);
  --line:rgba(255,255,255,.22);
  background:linear-gradient(160deg, rgba(190,232,255,.17), rgba(140,205,250,.08) 60%);
  border:1px solid rgba(170,226,255,.62);
  box-shadow:
    inset 0 0 0 1px rgba(200,238,255,.14),
    0 0 24px rgba(120,205,255,.34),
    0 14px 34px rgba(10,20,35,.20);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  color:#fff;
}
.card:hover {
  box-shadow:
    inset 0 0 0 1px rgba(200,238,255,.18),
    0 0 32px rgba(130,212,255,.48),
    0 18px 44px rgba(10,20,35,.24);
}
/* pastel tint classes neutralised (ice base wins) */
.tint-conf,.tint-news,.tint-temp,.tint-nat,.tint-safe,.tint-geo,.tint-air,.tint-sea,
.tint-traf,.tint-fx,.tint-cry,.tint-com,.tint-stock,.tint-health,.tint-desk,.tint-alert {
  background:linear-gradient(160deg, rgba(190,232,255,.17), rgba(140,205,250,.08) 60%);
}

/* inner surfaces → translucent ice rows */
.conf__list li, .nat__flags li, .hz__list li, .sea__list li,
.wx__fc li, .stat, .wx__strip span, .pres, .agent, .flt__res {
  background:rgba(255,255,255,.10);
  border-color:rgba(255,255,255,.22);
  color:#fff;
}
.sea__list .sea__head { background:none; }
.news__list li, .econwire li { border-bottom-color:rgba(255,255,255,.22); }
.vax span { background:rgba(255,255,255,.12); color:#fff; }
.vax .req { background:rgba(255,170,210,.2); border-color:rgba(255,170,210,.5); color:#FFC2DD; }

/* track/gauge surfaces */
.apt__bar, .traf__gauge, .rank__list .bar { background:rgba(255,255,255,.18); }

/* accents brightened for dark glass */
.up, .ch.up { color:#5EEA9C; }
.dn, .ch.dn { color:#FF8A8E; }
.quake__list .m5 { color:#FFB27A; }
.quake__list .m6 { color:#FF8A8E; }
.conf__adv { color:#7DE8D0; }
.conf__dev b { color:#fff; }
.news__list a:hover { color:#9CC1FF; }
.poi__lnk:hover { color:#7FDBFF; }
.econwire a:hover { color:#B4BEFF; }
.sea__name { color:#7FDBFF; border-bottom-color:rgba(127,219,255,.45); }
.sea__name:hover { color:#B7ECFF; }
.apt__code button { color:#C9B1FF; border-bottom-color:rgba(201,177,255,.5); }
.apt__code button:hover { color:#E4D6FF; }
.wx__temp { color:#FFB067; }
.fly__stat b { color:#7FDBFF; }
.adet__loc code { color:#CBEAFF; }
.pill--src { background:rgba(255,255,255,.12); color:rgba(255,255,255,.8); border-color:rgba(255,255,255,.25); }
.geo__chip { background:rgba(255,255,255,.12); border-color:rgba(255,255,255,.3); color:rgba(255,255,255,.85); }
.geo__chip:hover { color:#7FDBFF; border-color:rgba(127,219,255,.5); }
.tape__run .vl { color:rgba(255,255,255,.66); }
.tape__run .rgn { background:rgba(255,255,255,.14); color:#B9C6FF; }

/* white control widgets keep dark text for contrast */
.card .seg { background:#fff; }
.card .seg__btn { color:#5B7188; }
.card .seg__btn.is-on { background:#14263A; color:#fff; }
.card .rbtn { color:#5B7188; background:#fff; border-color:rgba(255,255,255,.6); }
.card .rbtn:hover { color:#14263A; }
.card .btn { color:#14263A; }
.card .locchip { color:#14263A; background:#fff; }
.card input { color:#14263A; background:#fff; }
.card .flt input { color:#fff; background:transparent; }
.card input::placeholder { color:#8AA0B5; }
.agent__chips button { color:#14263A; background:#fff; }
.agent__ava::before { background:#14263A; }
.agent__text .caret { background:#fff; }

/* weather skins re-tinted for dark glass (white text stays readable) */
.wx--clear .wx__bg { background:
  radial-gradient(150px 150px at 85% 10%, rgba(255,196,80,.5), rgba(255,196,80,.12) 55%, transparent 72%),
  linear-gradient(165deg, rgba(255,180,80,.12), transparent 60%); }
.wx--cloud .wx__bg { background:
  radial-gradient(130px 64px at 78% 16%, rgba(200,215,235,.28), transparent 70%),
  radial-gradient(170px 74px at 58% 26%, rgba(200,215,235,.2), transparent 70%),
  linear-gradient(165deg, rgba(160,180,205,.15), transparent 60%); }
.wx--rain .wx__bg { background:
  repeating-linear-gradient(105deg, transparent 0 12px, rgba(140,195,255,.22) 12px 13.5px),
  linear-gradient(165deg, rgba(60,120,220,.18), transparent 65%); }
.wx--snow .wx__bg { background:
  radial-gradient(3px 3px at 20% 22%, rgba(255,255,255,.95), transparent 60%),
  radial-gradient(2.5px 2.5px at 55% 12%, rgba(255,255,255,.9), transparent 60%),
  radial-gradient(3px 3px at 80% 30%, rgba(255,255,255,.95), transparent 60%),
  radial-gradient(2px 2px at 35% 40%, rgba(255,255,255,.9), transparent 60%),
  linear-gradient(165deg, rgba(210,232,255,.14), transparent 65%); }
.wx--fog .wx__bg { background:
  linear-gradient(180deg, transparent 18%, rgba(215,228,240,.24) 30%, transparent 44%,
    rgba(215,228,240,.2) 56%, transparent 70%, rgba(215,228,240,.16) 82%, transparent 94%); }
.wx--storm .wx__bg { background:
  radial-gradient(190px 95px at 70% 14%, rgba(30,45,70,.55), transparent 72%),
  linear-gradient(165deg, rgba(40,60,90,.3), transparent 62%); }


/* ═══════════════════════════════════════════════════════════
   ICE BUTTONS — every control: transparent ice-blue fill,
   semi-glowing ice border, clear white text
═══════════════════════════════════════════════════════════ */
.btn, .seg, .seg__btn, .rbtn, .locchip, .geo__chip,
.card--alerts .geo__chip, .card .geo__chip,
.alerts__more, .acaret, .adet__focus,
.card .btn, .card .rbtn, .card .locchip, .card .seg, .card .seg__btn,
.geo__find .btn, .flt .btn {
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 12px rgba(120,205,255,.28);
  color:#fff;
}
/* vuah chips: bare command text, no button chrome */
.agent__chips button { background:none; border:none; box-shadow:none; color:#fff; padding:3px 6px; }
.btn:hover, .rbtn:hover, .locchip:hover, .geo__chip:hover,
.alerts__more:hover, .acaret:hover, .adet__focus:hover {
  background:linear-gradient(160deg, rgba(190,232,255,.30), rgba(140,205,250,.16));
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.14), 0 0 18px rgba(130,212,255,.45);
  color:#fff;
}
.agent__chips button:hover { background:none; box-shadow:none; opacity:.7; }
.card .rbtn { color:#fff; }
.card .rbtn:hover { color:#fff; }
.card .locchip, .card .locchip b { color:#fff; }
.locchip:after { color:rgba(255,255,255,.7); }
.agent__chips button { color:#fff; }
.agent__chips button:hover { transform:translateY(-1px); }

/* segmented toggles: container transparent, states by fill */
.seg, .card .seg { padding:0; overflow:hidden; }
.seg__btn, .card .seg__btn {
  border:none; box-shadow:none; background:transparent;
  color:rgba(255,255,255,.72);
}
.seg__btn:hover { color:#fff; }
.seg__btn.is-on, .card .seg__btn.is-on {
  background:rgba(190,232,255,.34);
  color:#fff;
  text-shadow:0 0 6px rgba(190,232,255,.5);
}

/* header quiet button states */
.btn--quiet[aria-pressed="true"] {
  background:rgba(190,232,255,.34);
  border-color:rgba(200,238,255,.85);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.2), 0 0 22px rgba(140,215,255,.6);
  color:#fff;
}

/* dashed variant keeps its dashing, ice colours */
.alerts__more { border-style:dashed; }

/* popovers → dark ice glass so white button text reads */
.aptpop__title { color:#fff; }
.aptpop__link { color:#fff; }
.aptpop__link span { color:rgba(255,255,255,.6); }
.aptpop__link:hover { background:rgba(190,232,255,.16); }
.locpop__row .btn { color:#fff; }


/* ── temperature card fixes: white airport button, night mode ── */
.wx__apt {
  font:inherit; cursor:pointer;
  color:#fff !important;
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 12px rgba(120,205,255,.28);
  border-radius:100px;
}
.wx__apt:hover { background:linear-gradient(160deg, rgba(190,232,255,.3), rgba(140,205,250,.16)); }
.wx__apt:disabled { cursor:default; opacity:.75; }
.wx__apt b { color:#fff; }
.wx__apt .wdot.ok  { color:#5EEA9C; }
.wx__apt .wdot.bad { color:#FF8A8E; }
.wx__apt .wsub { color:rgba(255,255,255,.7); font-weight:600; }
.wx__night {
  color:#fff;
  background:linear-gradient(160deg, rgba(120,140,220,.28), rgba(60,80,160,.16)) !important;
  border-color:rgba(170,190,255,.55) !important;
}
.wx-night .wx__bg::before {
  content:''; position:absolute; inset:0;
  background:
    radial-gradient(1.5px 1.5px at 18% 20%, rgba(255,255,255,.9), transparent 60%),
    radial-gradient(1.2px 1.2px at 62% 12%, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1.6px 1.6px at 84% 26%, rgba(255,255,255,.85), transparent 60%),
    radial-gradient(1.1px 1.1px at 40% 30%, rgba(255,255,255,.7), transparent 60%),
    linear-gradient(165deg, rgba(10,20,45,.42), rgba(10,20,45,.12) 65%);
}


/* ── temperature card redesign: data cubes · 40% precip animation · glowing temp ── */
.wx__cubes {
  display:grid; grid-template-columns:repeat(4,1fr); gap:8px;
  margin-top:12px;
}
.cube {
  aspect-ratio:1;
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
  background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.22);
  border-radius:16px;
  padding:6px 4px;
  text-align:center;
  color:#fff;
  font:inherit;
  min-width:0;
}
.cube b { font-size:.82rem; font-weight:800; font-variant-numeric:tabular-nums; line-height:1.15; }
.cube span { font-size:.54rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:rgba(255,255,255,.65); line-height:1.25; }
.cube--apt { cursor:pointer; transition:background .2s, box-shadow .2s; }
.cube--apt:hover {
  background:linear-gradient(160deg, rgba(190,232,255,.26), rgba(140,205,250,.14));
  box-shadow:0 0 14px rgba(120,205,255,.35);
}
.cube--apt:disabled { cursor:default; opacity:.7; }
.cube .wdot.ok { color:#5EEA9C; } .cube .wdot.bad { color:#FF8A8E; }
#wxMoonCube.is-night {
  background:linear-gradient(160deg, rgba(130,145,230,.3), rgba(70,85,170,.16));
  border-color:rgba(175,190,255,.6);
  box-shadow:0 0 14px rgba(140,160,255,.35);
}
@media(max-width:760px){ .wx__cubes { grid-template-columns:repeat(3,1fr); } }

/* precipitation animates at 40% opacity as the card background */
.wx--rain .wx__bg, .wx--snow .wx__bg { opacity:.4; }

/* temperature figure: white, round-edged, semi-glowing ice border */
.wx__temp {
  color:#fff;
  font-size:2.55rem;
  padding:6px 20px;
  border:1px solid rgba(170,226,255,.62);
  border-radius:22px;
  background:linear-gradient(160deg, rgba(190,232,255,.14), rgba(140,205,250,.06));
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 18px rgba(120,205,255,.35);
  display:inline-block;
  line-height:1.1;
}


/* ═══════════════════════════════════════════════════════════
   ICE CHIPS — section title buttons, status chips, geo search
═══════════════════════════════════════════════════════════ */

/* section kickers: PRIORITY · STRATEGIC · ECONOMIC · ENVIRONMENT · MOBILITY */
.sec__kicker,
.k-alert, .k-conf, .k-loc, .k-move, .k-mkt {
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 12px rgba(120,205,255,.30);
  color:#fff;
}

/* status chips (RISK / BUSY / NORMAL · SEASONAL / LOW / REGIONAL ·
   WATCH / POSSIBLE / GOOD / ELEVATED / ACTIVE / MODEL / NO DATA …)
   — shared .st class across Ports & Sea Lanes, Health, Natural Conditions */
.st,
.st--ok, .st--watch, .st--busy, .st--warn, .st--risk {
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 10px rgba(120,205,255,.28);
  color:#fff;
}

/* geospatial search area: ice field with white text */
.geo__find input {
  background:linear-gradient(160deg, rgba(190,232,255,.16), rgba(140,205,250,.08));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.08), 0 0 12px rgba(120,205,255,.26);
  color:#fff;
}
.geo__find input::placeholder { color:rgba(255,255,255,.6); }
.geo__find input:focus {
  border-color:rgba(200,238,255,.85);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.14), 0 0 20px rgba(130,212,255,.5);
}

.adet__linfo {
  display:block; width:100%;
  font-size:.68rem; color:rgba(255,255,255,.78); line-height:1.45;
  padding:2px 0 4px;
}


/* ── ICE CHIPS: headline category tags + conflict level chips ── */
.ntag,
.ntag--geo, .ntag--wx, .ntag--econ, .ntag--health {
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 10px rgba(120,205,255,.28);
  color:#fff;
}
.lvl,
.lvl--severe, .lvl--high, .lvl--elevated {
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 10px rgba(120,205,255,.28);
  color:#fff;
}


/* ── road traffic: day-distribution pie ── */
.tpie { display:flex; align-items:center; gap:14px; margin-top:14px; }
.tpie__disc {
  position:relative; flex:none;
  width:104px; height:104px; border-radius:50%;
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 16px rgba(120,205,255,.3);
}
.tpie__disc::after {
  content:''; position:absolute; inset:26%;
  border-radius:50%;
  background:rgba(14,38,60,.88);
  border:1px solid rgba(170,226,255,.4);
}
.tpie__disc span {
  position:absolute; inset:0; z-index:1;
  display:flex; align-items:center; justify-content:center;
  font-size:.56rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:#fff; text-align:center; padding:0 22px; line-height:1.3;
}
.tpie__legend { list-style:none; display:flex; flex-direction:column; gap:6px; font-size:.72rem; color:#fff; }
.tpie__legend li { display:flex; align-items:center; gap:7px; }
.tpie__legend i { width:9px; height:9px; border-radius:3px; flex:none; }
.tpie__legend b { font-variant-numeric:tabular-nums; margin-left:2px; }
.tpie__note { margin-top:8px; font-size:.62rem; color:rgba(255,255,255,.6); }


/* traffic pie: centered + title */
.tpie { justify-content:center; }
.tpie__title {
  margin-top:14px;
  font-size:.66rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.8);
  text-align:center;
}
.tpie__note { text-align:center; }

/* solid pie — remove centre disc */
.tpie__disc::after { content:none; }


/* ── header: NS layers + NS link ── */
.hdr__layers { position:relative; }
.hdrpop {
  position:absolute; top:calc(100% + 10px); right:0; left:auto;
  width:264px; padding:10px; z-index:60;
  border-radius:16px;
  display:flex; flex-direction:column; gap:8px;
}
.lyr__opt {
  display:flex; align-items:center; gap:8px; width:100%;
  border:none; background:none; cursor:pointer; text-align:left;
  font:inherit; font-size:.76rem; font-weight:700; color:#fff;
  padding:8px 10px; border-radius:10px;
}
.lyr__opt:hover { background:rgba(190,232,255,.16); }
.lyr__caret { margin-left:auto; font-size:.62rem; color:rgba(255,255,255,.6); transition:transform .25s; }
.lyr__opt.is-open .lyr__caret { transform:rotate(180deg); }
.lyr__st { font-size:.58rem; font-weight:800; letter-spacing:.04em; }
.lyr__st--ok { color:#5EEA9C; }
.lyr__st--err { color:#FF8A8E; }
.lyr__form { display:flex; gap:6px; padding:2px 10px 8px; }
.lyr__form input {
  flex:1; min-width:0;
  border:1px solid rgba(255,255,255,.35); border-radius:100px;
  padding:6px 12px; font:inherit; font-size:.72rem; outline:none;
  background:#fff; color:#14263A;
}
.lyr__form input:focus { border-color:rgba(170,226,255,.8); }
.hdr__ns { font-weight:800; letter-spacing:.08em; text-decoration: none;}
@media(max-width:760px){ .hdrpop { right:-60px; width:240px; } }


/* ── header mid group: centered NS + Add layer ── */
/* header is sticky (rule above); absolute popovers anchor to it all the same */
.hdr__mid {
  position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
  display:flex; align-items:center; gap:10px; z-index:6;
}
#btnLayers { font-variant:small-caps; letter-spacing:.06em; }
@media(max-width:900px){
  .hdr__mid { position:static; transform:none; }
}

/* layer inputs: dropdown-matched background, button-matched border */
.lyr__form input {
  background:rgba(255,255,255,.06);
  border:1px solid rgba(170,226,255,.62);
  color:#fff;
}
.lyr__form input::placeholder { color:rgba(255,255,255,.55); }
.lyr__form input:focus {
  border-color:rgba(200,238,255,.85);
  box-shadow:0 0 12px rgba(130,212,255,.4);
}


/* ── white name buttons: airport codes + port/lane names ── */
.apt__code button {
  color:#fff;
  border-bottom-color:rgba(255,255,255,.5);
}
.apt__code button:hover { color:#fff; border-bottom-color:#fff; }
.sea__name {
  color:#fff;
  border-bottom-color:rgba(255,255,255,.5);
}
.sea__name:hover { color:#fff; border-bottom-color:#fff; }
.sea__name:after { color:rgba(255,255,255,.6); }

.wx__range { font-size:.68rem; color:rgba(255,255,255,.7); margin-top:4px; }


/* ── econ wire: WSJ chip, updated stamp, split-flap fall-in ── */
.econwire__head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.econwire__upd { font-size:.62rem; font-weight:700; color:rgba(255,255,255,.65); font-variant-numeric:tabular-nums; }
.ot--wsj { background:#EDEDED; color:#111; }
.ew-fall {
  animation:ewFall .45s cubic-bezier(.2,.7,.3,1) both;
  transform-origin:top center;
}
@keyframes ewFall {
  0%   { opacity:0; transform:translateY(-12px) rotateX(-55deg); }
  100% { opacity:1; transform:none; }
}
@media(prefers-reduced-motion: reduce){ .ew-fall { animation:none; } }


/* ═══════════ RESPONSIVE: hamburger + proportional compact sizing ═══════════ */
/* layer pop now anchors to the header itself */
#layerPop {
  position:absolute; top:calc(100% + 8px); left:50%; right:auto; transform:translateX(-50%);
}
.hdr__burger {
  display:none;
  flex-direction:column; justify-content:center; gap:4px;
  width:40px; height:36px; padding:8px 10px;
  background:linear-gradient(160deg, rgba(190,232,255,.20), rgba(140,205,250,.10));
  border:1px solid rgba(170,226,255,.62);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 12px rgba(120,205,255,.28);
  border-radius:12px; cursor:pointer;
}
.hdr__burger span { display:block; height:2px; border-radius:2px; background:#fff; }
.hdr__bmenu {
  position:absolute; top:calc(100% + 8px); right:14px; left:auto; transform:none;
  width:220px; padding:8px; display:flex; flex-direction:column; gap:4px; z-index:70;
}
.hdr__bmenu .lyr__opt { text-decoration:none; }

@media(max-width:900px){
  .hdr__mid, #btnQuiet { display:none; }
  .hdr__burger { display:flex; }
  #layerPop { left:50%; transform:translateX(-50%); width:min(280px, 92vw); }
}

/* proportional compact sizing below tablet width */
@media(max-width:760px){
  .hdr { padding:10px 14px; gap:10px; }
  .hdr__brand b { font-size:.92rem; }
  .hdr__brand small { font-size:.5rem; }
  .hdr__clock { font-size:.72rem; gap:6px; }
  .hdr__date { display:none; }
  .sec__title { font-size:.92rem; }
  .sec__kicker { font-size:.5rem; padding:3px 9px; }
  .sec__sub { font-size:.66rem; }
  .card { padding:16px 14px; border-radius:20px; }
  .card__head h3 { font-size:.78rem; }
  .pill { font-size:.5rem; padding:3px 8px; }
  .btn, .geo__chip, .locchip { font-size:.62rem; padding:5px 11px; }
  .rbtn { width:24px; height:24px; font-size:.66rem; }
  .seg__btn { font-size:.6rem; padding:4px 10px; }
  .wx__temp { font-size:2rem; padding:5px 14px; }
  .cube b { font-size:.7rem; }
  .cube span { font-size:.48rem; }
  .alerts__list li { font-size:.76rem; }
  .conf__list li { font-size:.76rem; }
  .news__list a { font-size:.78rem; }
  .mkt__list li, .sea__list li, .hz__list li { font-size:.74rem; }
  .agent__text { font-size:.76rem; }
  .agent__chips button { font-size:.6rem; }
  .tpie__disc { width:88px; height:88px; }
  .ttile { min-width:96px; padding:6px 12px; }
  .ttile__time { font-size:1.05rem; }
  .ttile__city { font-size:.52rem; }
}
@media(max-width:520px){
  .hdr__clock em, .hdr__clock span:nth-child(4), .hdr__clock span:nth-child(3) { display:none; }
}




/* ── economic status composite card ── */
.es__duo { display:flex; align-items:center; gap:18px; margin-bottom:14px; flex-wrap:wrap; }
.es__now, .es__pred { display:flex; align-items:baseline; gap:12px; min-width:0; flex:1 1 auto; }
.es__duo b { font-size:1.5rem; font-weight:800; letter-spacing:.06em; }
.es__duo span { font-size:.72rem; color:rgba(255,255,255,.65); font-variant-numeric:tabular-nums; }
.es__sep {
  font-size:1.8rem !important; font-weight:800;
  color:#fff; line-height:1;
  text-shadow:0 0 12px currentColor;
  transition:color .6s ease;
}
@media(max-width:760px){
  .es__duo { gap:10px 14px; }
  .es__duo b { font-size:1.15rem; }
  .es__sep { font-size:1.3rem !important; }
  .es__now, .es__pred { flex:1 1 100%; }   /* each reading gets its own line */
  .es__sep { flex:0 0 100%; text-align:center; margin:-4px 0; }
}
/* landscape phones: keep them side by side but allow shrink without overflow */
@media(max-width:900px) and (orientation:landscape){
  .es__duo { gap:8px 12px; }
  .es__duo b { font-size:1.25rem; }
  .es__now, .es__pred { flex:1 1 auto; }
}
.es__pillars { display:flex; flex-direction:column; gap:9px; }
.ep { display:flex; align-items:center; gap:12px; }
.ep__n {
  flex:none; width:88px;
  font-size:.66rem; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
  color:rgba(255,255,255,.75);
}
.ep__track {
  flex:1; height:12px; border-radius:100px; overflow:hidden;
  background:rgba(255,255,255,.14);
  border:1px solid rgba(255,255,255,.18);
}
.ep__track i { display:block; height:100%; border-radius:100px; transition:width .7s cubic-bezier(.2,.7,.3,1); }
.ep__v { flex:none; width:42px; text-align:right; font-size:.72rem; font-weight:800; color:#fff; font-variant-numeric:tabular-nums; }
.ep--win .ep__n { color:#fff; }
.ep--win .ep__track { box-shadow:0 0 14px rgba(140,215,255,.35); border-color:rgba(170,226,255,.62); }
.es__comp { margin-top:12px; font-size:.68rem; color:rgba(255,255,255,.7); font-variant-numeric:tabular-nums; }
.es__note { margin-top:6px; font-size:.62rem; color:rgba(255,255,255,.55); }
@media(max-width:760px){
  .es__verdict b { font-size:1.15rem; }
  .ep__n { width:70px; font-size:.56rem; }
  .ep__v { width:36px; font-size:.64rem; }
}


/* ── footer: legal disclaimer ── */
.ftr__legal {
  max-width:900px; margin:0 auto;
  font-size:.66rem; line-height:1.7;
  color:rgba(255,255,255,.6);
  text-align:left;
  margin-bottom: 0.2rem; 
}
.ftr__legal b { color:rgba(255,255,255,.8); font-weight:800; letter-spacing:.04em; }
.ftr__c {
  margin-top:10px; text-align:center;
  font-size:.62rem; font-weight:700; letter-spacing:.06em;
  color:rgba(255,255,255,.45);
}

.ftr__nav { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:14px; }
.ftr__nav a { font-size:.64rem; font-weight:800; letter-spacing:.06em; color:rgba(255,255,255,.65); text-decoration:none; }
.ftr__nav a:hover { color:#fff; }

.ftr__nav-2 a { font-size:.64rem; font-weight:800; letter-spacing:.06em; color:rgba(255,255,255,.65); text-decoration:none; font-variant: small-caps; }
.ftr__nav-2 { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; margin-top:14px; }
.ftr__nav-2 a:hover { color:#fff; }

.lyr__block {
  margin:2px 4px 4px; padding:9px 12px; border-radius:10px;
  font-size:.66rem; font-weight:700; line-height:1.5;
  color:#FFB3B6;
  background:rgba(229,72,77,.14);
  border:1px solid rgba(255,138,142,.45);
  font-variant-numeric:tabular-nums;
}
.lyr__form input:disabled, .lyr__form button:disabled { opacity:.45; cursor:not-allowed; }


/* ── Add-layer dropdown: wide aligned grid ── */
#layerPop { width:min(460px, 94vw); padding:14px; gap:12px; }
.lyr {
  display:grid;
  grid-template-columns:118px 1fr auto;
  gap:10px; align-items:center;
}
.lyr__ttl {
  font-size:.7rem; font-weight:800; letter-spacing:.08em;
  font-variant:small-caps; color:#fff;
  white-space:nowrap;
}
.lyr input {
  min-width:0; width:100%;
  border-radius:100px; padding:7px 14px;
  font:inherit; font-size:.72rem; outline:none;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(170,226,255,.62);
  color:#fff;
}
.lyr input::placeholder { color:rgba(255,255,255,.5); }
.lyr input:focus { border-color:rgba(200,238,255,.85); box-shadow:0 0 12px rgba(130,212,255,.4); }
.lyr input:disabled, .lyr button:disabled { opacity:.45; cursor:not-allowed; }
.lyr .btn { white-space:nowrap; }
.lyr .lyr__st { grid-column:1 / -1; font-size:.62rem; padding-left:128px; }
@media(max-width:520px){
  #layerPop { width:94vw; }
  .lyr { grid-template-columns:1fr auto; }
  .lyr__ttl { grid-column:1 / -1; }
  .lyr .lyr__st { padding-left:0; grid-column:1 / -1; }
}

.hdr__auto {
  font-size:.56rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.55);
  padding:3px 9px; border-radius:100px;
  border:1px dashed rgba(255,255,255,.3);
  font-variant-numeric:tabular-nums;
}
@media(max-width:760px){ .hdr__auto { display:none; } }
/* refresh feedback: the button itself pulse-glows */
.rbtn-pulse { animation:rbtnPulse .9s ease-out; }
@keyframes rbtnPulse {
  0%   { box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 0 0 rgba(140,215,255,.75); }
  45%  { box-shadow:inset 0 0 0 1px rgba(200,238,255,.18), 0 0 18px 7px rgba(140,215,255,.45); }
  100% { box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 12px rgba(120,205,255,.28); }
}
@media(prefers-reduced-motion: reduce){ .rbtn-pulse { animation:none; } }


/* ── agent alignment: cards flex-column, agents pinned to a shared baseline ── */
.card { display:flex; flex-direction:column; }
.card--alerts { display:grid; }         /* alerts keeps its two-panel grid */
/* vuah module separation & alignment:
   on multi-column layouts the module seats at the card's lower edge, so
   agents align horizontally across a row (grid stretches cards to match);
   a 26px transparent strip keeps the separation fixed at minimum. */
.card > .agent {
  margin-top:auto;
  border-top:26px solid transparent;
  background-clip:padding-box;
  box-shadow:inset 0 1px 0 var(--line);   /* redraws the box top edge */
}
.card > *:has(+ .agent) { margin-bottom:0; }

/* agent ask input */
.agent__ask { display:flex; gap:7px; margin-top:9px; }
.agent__ask input {
  flex:1; min-width:0;
  border-radius:100px; padding:6px 13px;
  font:inherit; font-size:.7rem; outline:none;
  background:rgba(255,255,255,.06);
  border:1px solid rgba(170,226,255,.62);
  color:#fff;
}
.agent__ask input::placeholder { color:rgba(255,255,255,.5); }
.agent__ask input:focus { border-color:rgba(200,238,255,.85); box-shadow:0 0 12px rgba(130,212,255,.4); }
.agent__ask .btn { white-space:nowrap; }

.es__outlook {
  margin:-6px 0 14px;
  font-size:.72rem; color:rgba(255,255,255,.8);
  font-variant-numeric:tabular-nums;
}
.es__outlook .up { color:#5EEA9C; font-weight:800; }
.es__outlook .dn { color:#FF8A8E; font-weight:800; }
.es__outlook .fl { color:#B9D8FF; font-weight:800; }

.ew-new {
  flex:none; margin-right:7px; padding:2px 7px; border-radius:100px;
  font-size:.5rem; font-weight:900; letter-spacing:.1em;
  color:#0E2A44;
  background:linear-gradient(160deg, #BFE9FF, #7FD4FF);
  box-shadow:0 0 10px rgba(130,212,255,.55);
}

.ew-empty { font-size:.72rem; color:rgba(255,255,255,.6); font-style:italic; padding:8px 2px; }

.traf__rank { margin:12px 0 4px; }
.traf__rank .ep__n { width:74px; font-size:.6rem; }
.traf__rank .ep__track { height:10px; }

.traf__stitle {
  display:block; margin-top:10px;
  font-size:.62rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.75);
}

.agent__tbl {
  width:100%; margin:9px 0 4px; border-collapse:collapse;
  font-size:.72rem; font-variant-numeric:tabular-nums;
}
.agent__tbl th {
  text-align:left; padding:5px 10px;
  font-size:.58rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.7);
  border-bottom:1px solid rgba(255,255,255,.25);
}
.agent__tbl td { padding:5px 10px; border-bottom:1px solid rgba(255,255,255,.12); }
.agent__tbl td.up { color:#5EEA9C; font-weight:700; }
.agent__tbl td.dn { color:#FF8A8E; font-weight:700; }
.agent__foot { display:block; margin-top:6px; font-size:.6rem; color:rgba(255,255,255,.55); }

.agent__name { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.agent__rbtn { width:22px; height:22px; font-size:.62rem; flex:none; }
.agent__tblsec td {
  padding-top:9px; font-size:.56rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.55); border-bottom:none;
}
.agent__text b u { text-underline-offset:2px; }

.agent__wiki { display:block; margin-top:7px; font-size:.72rem; color:rgba(255,255,255,.78); }
.agent__wiki i { color:rgba(175,224,255,.9); font-style:normal; font-weight:700; }
.agent__live { display:block; margin-top:7px; font-size:.7rem; color:#BFE9FF; font-variant-numeric:tabular-nums; }

.agent__name em { font-style:normal; color:rgba(255,255,255,.45); padding:0 2px; }


/* ── mobility layout: traffic spans full row; wide two-column interior ── */
@media(min-width:900px){
  .tint-traf {
    display:grid;
    grid-template-columns:1.1fr 1fr;
    grid-template-areas:
      "head  head"
      "traf  ptitle"
      "traf  pie"
      "traf  pnote"
      "agent agent";
    column-gap:30px;
    align-content:start;
  }
  .tint-traf .card__head   { grid-area:head; }
  .tint-traf .traf         { grid-area:traf; }
  .tint-traf .tpie__title  { grid-area:ptitle; margin-top:0; }
  .tint-traf .tpie         { grid-area:pie; }
  .tint-traf .tpie__note   { grid-area:pnote; }
  .tint-traf .agent        { grid-area:agent; margin-top:26px; }
}


/* ── responsive: refresh buttons pinned to the right edge in every card ── */
@media(max-width:760px){
  .card__tools { margin-left:auto; justify-content:flex-end; }
  /* universal: any refresh button rides the right edge of its flex row */
  .card .rbtn[data-refresh] { order:99; margin-left:auto; }
  .agent__rbtn { margin-left:auto; }
}

/* ── city safety hover popup ── */
#safetyList li { cursor:pointer; }
.citypop {
  position:fixed; z-index:120; padding:20px 22px;
  /* semi-transparent ice-dark surface in a distinct double frame;
     dark base color guarantees legibility even without backdrop-filter */
  background-color:rgba(16,42,68,.86);
  background-image:linear-gradient(160deg, rgba(190,232,255,.14), rgba(20,48,76,0) 55%);
  border:1px solid rgba(180,230,255,.75);
  outline:1px solid rgba(120,190,240,.28);
  outline-offset:3px;
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.14), 0 0 26px rgba(120,205,255,.34), 0 20px 44px rgba(5,15,30,.5);
  backdrop-filter:blur(14px) saturate(1.1);
  -webkit-backdrop-filter:blur(14px) saturate(1.1);
  border-radius:18px;
  color:#fff;
}
.citypop, .citypop * { color-scheme:dark; }
.citypop__head {
  display:flex; justify-content:space-between; align-items:center; gap:14px;
  margin-bottom:12px; padding-bottom:10px;
  border-bottom:1px solid rgba(255,255,255,.18);
}
.citypop__head b { font-size:1.02rem; letter-spacing:.02em; }
.citypop__head span {
  font-weight:800; font-size:.98rem; font-variant-numeric:tabular-nums;
}
.citypop__row {
  display:flex; align-items:baseline; gap:10px;
  padding:7px 0; border-top:1px solid rgba(255,255,255,.1);
  font-size:.78rem; line-height:1.5;
}
.citypop__row:first-of-type { border-top:none; }
.citypop__row span {
  flex:none; width:122px;
  font-size:.6rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:rgba(255,255,255,.6);
}
.citypop__row b { font-weight:700; }
.citypop__row b small { color:rgba(255,255,255,.55); font-weight:600; }
.citypop__row em {
  flex:none; margin-left:auto; font-style:normal;
  font-size:.52rem; font-weight:900; letter-spacing:.12em;
  color:#5EEA9C;
}
.citypop__wait { color:rgba(255,255,255,.5); font-weight:500; }
.citypop__src { margin-top:11px; font-size:.6rem; color:rgba(255,255,255,.55); line-height:1.6; }
@media(max-width:560px){
  .citypop { left:50% !important; top:50% !important; transform:translate(-50%,-50%); }
}


/* ── city filter window ── */
.safe__filter { align-self:flex-start; margin:10px 0 2px; }
.cityfilter {
  position:fixed; z-index:130;
  transform:translate(-50%,-50%);
  width:min(780px, 94vw); max-height:min(84vh, 720px);
  overflow:auto; padding:18px 20px;
  background:linear-gradient(160deg, rgba(24,52,80,.62), rgba(14,38,60,.52));
  border:1px solid rgba(170,226,255,.58);
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.10), 0 0 28px rgba(120,205,255,.32), 0 22px 50px rgba(5,15,30,.5);
  backdrop-filter:blur(18px) saturate(1.15);
  -webkit-backdrop-filter:blur(18px) saturate(1.15);
  border-radius:20px; color:#fff;
  text-shadow:0 1px 2px rgba(5,15,30,.35);
}
.cf__head { display:flex; align-items:center; gap:12px; margin-bottom:14px; }
.cf__head b { font-size:.95rem; letter-spacing:.03em; }
.cf__count { font-size:.66rem; color:#BFE9FF; font-weight:800; font-variant-numeric:tabular-nums; margin-right:auto; }
.cf__x {
  width:26px; height:26px; border-radius:100px; cursor:pointer;
  background:rgba(255,255,255,.1); border:1px solid rgba(255,255,255,.3); color:#fff;
  font-size:.7rem;
}
.cf__grid { display:grid; grid-template-columns:1.25fr 1fr; gap:18px; }
.cf__cat { margin-bottom:12px; }
.cf__cat h5 {
  font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.65); margin-bottom:6px;
}
.cf__cat h5 em { font-style:normal; color:#5EEA9C; margin-left:5px; font-size:.5rem; }
.cf__note { color:rgba(255,255,255,.5); margin-left:6px; font-size:.52rem; text-transform:none; letter-spacing:0; }
.cf__chips { display:flex; flex-wrap:wrap; gap:6px; }
.cf__chip {
  font:inherit; font-size:.62rem; font-weight:700; cursor:pointer;
  padding:4px 11px; border-radius:100px; color:#fff;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(170,226,255,.4);
}
.cf__chip:hover { background:rgba(190,232,255,.16); }
.cf__chip.is-on {
  background:linear-gradient(160deg, rgba(190,232,255,.38), rgba(140,205,250,.22));
  border-color:rgba(200,238,255,.9);
  box-shadow:0 0 12px rgba(130,212,255,.45);
}
.cf__res h5 {
  font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.65); margin-bottom:6px;
}
.cf__list { list-style:none; max-height:470px; overflow:auto; padding-right:4px; }
.cf__list li {
  display:flex; align-items:baseline; gap:8px;
  padding:5px 2px; border-top:1px solid rgba(255,255,255,.1);
  font-size:.72rem;
}
.cf__list .n { font-weight:700; }
.cf__list .m { margin-left:auto; font-size:.58rem; color:rgba(255,255,255,.55); font-variant-numeric:tabular-nums; white-space:nowrap; }
.cf__list .v { flex:none; width:26px; text-align:right; font-weight:800; font-variant-numeric:tabular-nums; }
.cf__none { color:rgba(255,255,255,.6); font-style:italic; }
.cf__src { margin-top:12px; font-size:.56rem; color:rgba(255,255,255,.5); line-height:1.6; }
@media(max-width:640px){
  .cf__grid { grid-template-columns:1fr; }
  .cf__list { max-height:240px; }
}


/* ── headlines: refresh state + Previous archive ── */
.rbtn-busy { animation:rbtnspin 1s linear infinite; pointer-events:none; opacity:.75; }
@keyframes rbtnspin { to { transform:rotate(360deg); } }
.news__refreshing { opacity:.75; }
.news__prev { margin-top:10px; border-top:1px solid rgba(255,255,255,.16); padding-top:8px; }
.news__prevbtn {
  display:flex; align-items:center; gap:7px; width:100%;
  background:none; border:none; cursor:pointer; font:inherit;
  font-size:.62rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:rgba(255,255,255,.65); padding:4px 2px;
}
.news__prevbtn:hover { color:#fff; }
.news__prevbtn .caret { display:inline-block; transition:transform .25s ease; }
.news__prevbtn b { color:#BFE9FF; }
.news__prevbody {
  max-height:0; overflow:hidden;
  transition:max-height .35s ease;
}
.news__prevbody .news__list { max-height:230px; overflow:auto; margin-top:6px; }
.news__batch {
  font-size:.54rem; font-weight:800; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.45); padding:6px 0 2px; list-style:none;
}

/* ════ EVENTS CALENDAR ════ */
.evpanel {
  position:fixed; z-index:140;
  top:64px; right:18px;
  width:min(420px, calc(100vw - 24px));
  max-height:min(76vh, 640px);
  display:flex; flex-direction:column;
  padding:16px 18px 12px;
  background:linear-gradient(165deg, rgba(28,58,88,.66), rgba(14,36,58,.56));
  backdrop-filter:blur(18px) saturate(1.12);
  -webkit-backdrop-filter:blur(18px) saturate(1.12);
  border:1px solid rgba(255,255,255,.85);
  outline:1px solid rgba(150,215,255,.30);
  outline-offset:3px;
  box-shadow:inset 0 0 0 1px rgba(200,238,255,.12), 0 0 22px rgba(190,232,255,.35), 0 22px 48px rgba(4,14,28,.55);
  border-radius:20px;
  color:#fff;
  opacity:0; transform:translateY(-10px);
  transition:opacity .28s ease, transform .28s ease;
  pointer-events:none;
}
.evpanel.is-open { opacity:1; transform:translateY(0); pointer-events:auto; }
.ev__head { display:flex; align-items:center; gap:8px; margin-bottom:10px; }
.ev__title { font-size:.8rem; font-weight:700; letter-spacing:.02em; margin-right:auto; }
.ev__title b { color:#CFEBFF; }
.ev__ico {
  width:26px; height:26px; border-radius:100px; cursor:pointer; flex:none;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.45); color:#fff;
  font-size:.66rem; line-height:1;
}
.ev__ico:hover { background:rgba(255,255,255,.18); }
.ev__search { margin-bottom:10px; }
.ev__search input {
  width:100%; font:inherit; font-size:.76rem; outline:none;
  background:transparent; color:#fff;
  border:1px solid rgba(255,255,255,.7); border-radius:100px; padding:7px 13px;
}
.ev__search input::placeholder { color:rgba(255,255,255,.55); }
.ev__sres button {
  display:block; width:100%; text-align:left; cursor:pointer;
  background:none; border:none; font:inherit; font-size:.72rem; color:#fff;
  padding:6px 10px; border-radius:10px;
}
.ev__sres button:hover, .ev__sres button:focus-visible { background:rgba(190,232,255,.16); }
.ev__list { flex:1; overflow:auto; min-height:120px; }
.ev__item {
  padding:9px 2px 10px; border-top:1px solid rgba(255,255,255,.14);
  animation:evIn .3s ease both;
}
.ev__item:first-child { border-top:none; }
@keyframes evIn { from { opacity:0; transform:translateY(5px);} to { opacity:1; transform:none;} }
.ev__name { font-size:.8rem; font-weight:800; letter-spacing:.01em; }
.ev__name small { font-weight:600; color:rgba(255,255,255,.6); margin-left:6px; }
.ev__meta { display:flex; flex-wrap:wrap; gap:8px; align-items:baseline; margin-top:3px; font-size:.66rem; color:rgba(255,255,255,.82); }
.ev__badge {
  font-size:.52rem; font-weight:900; letter-spacing:.1em; text-transform:uppercase;
  padding:2px 9px; border-radius:100px;
  border:1px solid rgba(190,232,255,.75); color:#DCF2FF;
  background:rgba(190,232,255,.10);
}
.ev__desc { margin-top:3px; font-size:.66rem; line-height:1.5; color:rgba(255,255,255,.68); }
.ev__empty { padding:26px 4px; font-size:.72rem; color:rgba(255,255,255,.6); font-style:italic; }
.ev__pager { display:flex; align-items:center; gap:9px; padding-top:10px; border-top:1px solid rgba(255,255,255,.16); }
.ev__arr {
  width:24px; height:24px; border-radius:100px; cursor:pointer;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.45); color:#fff;
  font-size:.8rem; line-height:1;
}
.ev__arr:hover { background:rgba(255,255,255,.18); }
.ev__arr:disabled { opacity:.35; cursor:default; }
.ev__dots { display:flex; gap:7px; }
.ev__dot {
  width:9px; height:9px; border-radius:100px; cursor:pointer; padding:0;
  border:1px solid rgba(255,255,255,.8); background:transparent;
  transition:background .25s ease, transform .25s ease;
}
.ev__dot.is-on { background:#fff; transform:scale(1.25); }
.ev__range { margin-left:auto; font-size:.62rem; font-weight:800; letter-spacing:.05em; color:#CFEBFF; font-variant-numeric:tabular-nums; }
.ev__stat { margin-top:7px; font-size:.56rem; color:rgba(255,255,255,.5); }
.evpanel :focus-visible { outline:2px solid #fff; outline-offset:2px; }
@media(max-width:560px){
  .evpanel { top:58px; left:50%; right:auto; transform:translate(-50%,-10px); }
  .evpanel.is-open { transform:translate(-50%,0); }
}
@media(max-width:760px){ #btnEvents { display:none; } }

.ev__ico--dot { color:#BFE9FF; font-size:.6rem; }
.ev__ico--dot.is-locating { animation:evLocPulse 1s ease-in-out infinite; }
@keyframes evLocPulse { 50% { box-shadow:0 0 10px rgba(190,232,255,.8); color:#fff; } }

/* ════ ANALYSIS BY NSIGNIS ════ */
.anpanel {
  width:min(820px, calc(100vw - 28px));
  max-height:min(84vh, 780px);
  top:50%; left:50%; right:auto;
  transform:translate(-50%, -47%);              /* centered on the page */
  background:linear-gradient(165deg, rgba(24,52,80,.92), rgba(13,33,54,.88));
}
.anpanel.is-open { transform:translate(-50%, -50%); }
.an__title {
  margin-right:auto; font-variant-caps:all-small-caps; letter-spacing:.06em;
  font-size:.92rem; font-weight:600; color:#fff;
}
.an__title em { font-style:normal; color:#BFE9FF; font-weight:600; }
.an__search { margin-bottom:8px; }
.an__search input {
  width:100%; font:inherit; font-size:.74rem; outline:none;
  background:transparent; color:#fff;
  border:1px solid rgba(255,255,255,.55); border-radius:100px; padding:7px 13px;
}
.an__search input::placeholder { color:rgba(255,255,255,.5); }
.an__search input:focus { border-color:#fff; box-shadow:0 0 0 3px rgba(255,255,255,.18); }
.an__pull {
  height:0; overflow:hidden; text-align:center;
  font-size:.6rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase;
  color:#BFE9FF; transition:height .2s ease;
}
.an__pull.is-show { height:24px; line-height:24px; }
.an__item { border-top:1px solid rgba(255,255,255,.14); }
.an__item:first-child { border-top:none; }
.an__hl {
  display:flex; align-items:baseline; gap:8px; width:100%;
  background:none; border:none; cursor:pointer; text-align:left;
  font:inherit; padding:11px 2px 4px; color:#fff;
}
.an__hl b { font-size:.82rem; font-weight:800; line-height:1.4; transition:color .2s ease; }
.an__hl:hover b, .an__hl:focus-visible b { color:#CFEBFF; }
.an__hl .pin { flex:none; font-size:.6rem; color:#BFE9FF; }
.an__hl .caret { flex:none; margin-left:auto; font-size:.62rem; color:rgba(255,255,255,.55); transition:transform .25s ease; }
.an__hl[aria-expanded="true"] .caret { transform:rotate(90deg); }
.an__meta { font-size:.6rem; color:rgba(255,255,255,.58); padding:0 2px 9px; line-height:1.6; }
.an__meta .ev__badge { margin-left:6px; }
.an__body {
  max-height:0; overflow:hidden; transition:max-height .35s ease;
}
.an__body-in {
  padding:2px 2px 14px; font-size:.76rem; line-height:1.75; color:#fff;
}
.an__body-in h2, .an__body-in h3 { font-size:.82rem; margin:10px 0 4px; color:#DCF2FF; }
.an__body-in p { margin:6px 0; }
.an__body-in ul, .an__body-in ol { margin:6px 0 6px 18px; }
.an__body-in blockquote { border-left:2px solid rgba(190,232,255,.6); margin:8px 0; padding:2px 0 2px 12px; color:rgba(255,255,255,.85); }
.an__body-in code, .an__body-in pre { font-family:"DM Mono",monospace; font-size:.68rem; background:rgba(255,255,255,.08); border-radius:6px; padding:1px 5px; }
.an__body-in a { color:#BFE9FF; }
.an__body-in img { max-width:100%; border-radius:10px; margin:6px 0; }
.an__body-in table { border-collapse:collapse; margin:8px 0; font-size:.7rem; }
.an__body-in td, .an__body-in th { border:1px solid rgba(255,255,255,.25); padding:4px 8px; }
.an__empty { padding:34px 8px; text-align:center; color:rgba(255,255,255,.6); }
.an__empty .ico { font-size:1.4rem; display:block; margin-bottom:8px; opacity:.6; }
.an__more { text-align:center; padding:8px 0 2px; }
/* admin */
.an__adminwrap {
  border-top:1px solid rgba(255,255,255,.2); margin-top:10px; padding-top:10px;
  overflow:auto; max-height:min(52vh, 460px); min-height:0;
  padding-right:6px; overscroll-behavior:contain;
}
/* while authoring, the feed compacts so the editor owns the panel */
.anpanel.is-admin .an__feed { flex:none; max-height:110px; min-height:60px; }
.an__rte { user-select:text; -webkit-user-select:text; cursor:text; caret-color:#fff; }
/* body text is white, always — including pasted content carrying dark inline colors */
.an__rte, .an__rte * { color:#fff !important; -webkit-text-fill-color:#fff; }
.an__body-in, .an__body-in *:not(a) { color:#fff; }
.an__rte { position:relative; -webkit-user-modify:read-write; }
.an__rte.is-empty::before {
  content:attr(data-ph); position:absolute; top:10px; left:12px;
  color:rgba(255,255,255,.45) !important; pointer-events:none;
}
.an__gate { display:flex; gap:8px; }
.an__gate input { flex:1; font:inherit; font-size:.74rem; background:transparent; color:#fff;
  border:1px solid rgba(255,255,255,.55); border-radius:100px; padding:6px 12px; outline:none; }
.an__ed label { display:block; font-size:.56rem; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.55); margin:8px 0 3px; }
.an__ed input[type=text], .an__ed input[type=datetime-local], .an__ed select {
  width:100%; font:inherit; font-size:.74rem; background:rgba(255,255,255,.07); color:#fff;
  border:1px solid rgba(255,255,255,.45); border-radius:10px; padding:6px 10px; outline:none;
}
.an__ed select option { color:#14263A; }
.an__tools { display:flex; flex-wrap:wrap; gap:5px; margin:6px 0; }
.an__tools button {
  font:inherit; font-size:.62rem; font-weight:800; cursor:pointer; color:#fff;
  background:rgba(255,255,255,.09); border:1px solid rgba(255,255,255,.45); border-radius:8px; padding:3px 9px;
}
.an__tools button:hover { background:rgba(190,232,255,.2); }
.an__rte {
  min-height:120px; max-height:220px; overflow:auto;
  background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.45);
  border-radius:12px; padding:10px 12px; font-size:.76rem; line-height:1.7; color:#fff; outline:none;
}
.an__rte:focus { border-color:#fff; }
.an__acts { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.an__list { margin-top:12px; max-height:190px; overflow:auto; }
.an__row { display:flex; align-items:center; gap:7px; padding:5px 2px; border-top:1px solid rgba(255,255,255,.12); font-size:.68rem; }
.an__row b { flex:1; font-weight:700; }
.an__row .st { font-size:.52rem; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:#BFE9FF; }
.an__row button { font:inherit; font-size:.6rem; cursor:pointer; color:#fff; background:none;
  border:1px solid rgba(255,255,255,.4); border-radius:8px; padding:2px 8px; }
.an__row button:hover { background:rgba(190,232,255,.18); }
.an__filters { display:flex; flex-wrap:wrap; gap:5px; margin-top:8px; }
.an__filters button { font:inherit; font-size:.58rem; font-weight:800; cursor:pointer; color:#fff;
  background:transparent; border:1px solid rgba(255,255,255,.45); border-radius:100px; padding:2px 10px; }
.an__filters button.is-on { background:#fff; color:#14263A; }
@media(max-width:560px){
  .anpanel { width:calc(100vw - 16px); max-height:86vh; }
  .an__hl { padding-top:13px; }
  .an__hl b { font-size:.86rem; }
}
@media(max-width:760px){ #btnAnalysis { display:none; } }

.an__pending { border-color:rgba(255,214,130,.8); color:#FFE3A8; background:rgba(255,214,130,.12); }

/* nested list indentation renders visibly in editor and published body */
.an__rte ul, .an__rte ol { margin:6px 0 6px 18px; }
.an__rte ul ul, .an__rte ol ol, .an__rte ul ol, .an__rte ol ul,
.an__body-in ul ul, .an__body-in ol ol, .an__body-in ul ol, .an__body-in ol ul { margin-left:18px; }
.an__rte blockquote, .an__body-in blockquote { margin-left:14px; }

.an__plain { resize:vertical; min-height:150px; font-family:inherit; }

/* ════ VUAH RESEARCH AGENT ════ */
.rspanel { width:min(940px, calc(100vw - 28px)); max-height:min(88vh, 860px); }
.rs__stage { font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase;
  color:#BFE9FF; min-height:18px; margin-bottom:8px; }
.rs__stage .dot { display:inline-block; width:6px; height:6px; border-radius:100px;
  background:#BFE9FF; margin-right:6px; animation:rsPulse 1s ease-in-out infinite; }
@keyframes rsPulse { 50%{ opacity:.25; } }
.rs__filters { display:flex; flex-wrap:wrap; gap:7px; align-items:center; margin-bottom:10px; }
.rs__cats { display:flex; flex-wrap:wrap; gap:5px; }
.rs__cats button { font:inherit; font-size:.6rem; font-weight:800; letter-spacing:.06em;
  cursor:pointer; color:#fff; background:rgba(190,232,255,.14);
  border:1px solid rgba(255,255,255,.55); border-radius:100px; padding:3px 11px; }
.rs__cats button.is-off { opacity:.35; }
.rs__filters select { font:inherit; font-size:.66rem; color:#fff; background:transparent;
  border:1px solid rgba(255,255,255,.5); border-radius:100px; padding:4px 10px; }
.rs__filters select option { color:#14263A; }
#rsTimeline { width:100%; height:64px; margin:2px 0 10px; }
.rs__sec { border-top:1px solid rgba(255,255,255,.14); }
.rs__sec:first-child { border-top:none; }
.rs__sechead { display:flex; align-items:baseline; gap:9px; width:100%;
  background:none; border:none; cursor:pointer; text-align:left; font:inherit;
  padding:10px 2px 8px; color:#fff; }
.rs__sechead b { font-size:.8rem; font-weight:800; }
.rs__sechead .caret { margin-left:auto; font-size:.6rem; color:rgba(255,255,255,.5);
  transition:transform .25s ease; }
.rs__sechead[aria-expanded="true"] .caret { transform:rotate(90deg); }
.rs__meta { font-size:.56rem; color:rgba(255,255,255,.55); display:flex; gap:10px; flex-wrap:wrap; padding:0 2px 8px; }
.rs__meta b { color:#BFE9FF; }
.rs__secbody { max-height:0; overflow:hidden; transition:max-height .3s ease; }
.rs__secbody-in { padding:0 2px 12px; font-size:.74rem; line-height:1.7; color:#fff; }
.rs__secbody-in ul { margin:4px 0 4px 16px; }
.rs__why { margin-top:7px; font-size:.6rem; color:rgba(190,232,255,.85);
  border-left:2px solid rgba(190,232,255,.5); padding:2px 0 2px 9px; }
.rs__src { display:flex; gap:9px; align-items:flex-start; padding:8px 2px;
  border-top:1px solid rgba(255,255,255,.1); font-size:.68rem; }
.rs__src .tr { flex:none; width:44px; }
.rs__trbar { height:5px; border-radius:100px; background:rgba(255,255,255,.18); overflow:hidden; margin-top:4px; }
.rs__trbar i { display:block; height:100%; background:linear-gradient(90deg,#7DD3FC,#BFE9FF); }
.rs__src .tn { font-weight:900; font-size:.66rem; color:#DCF2FF; }
.rs__src .bd { flex:1; min-width:0; }
.rs__src a { color:#fff; font-weight:700; }
.rs__src .sm { color:rgba(255,255,255,.6); font-size:.58rem; margin-top:2px; }
.rs__badgenew { font-size:.5rem; font-weight:900; letter-spacing:.08em; color:#B9F6CA;
  border:1px solid rgba(185,246,202,.7); border-radius:100px; padding:1px 7px; margin-left:6px; }
.rs__chips { display:flex; flex-wrap:wrap; gap:6px; padding:6px 0 10px; }
.rs__chips button { font:inherit; font-size:.64rem; font-weight:700; cursor:pointer; color:#fff;
  background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.5); border-radius:100px; padding:4px 12px; }
.rs__chips button:hover { background:rgba(190,232,255,.2); }
.rs__h2 { font-size:.62rem; font-weight:900; letter-spacing:.12em; text-transform:uppercase;
  color:rgba(255,255,255,.6); padding:12px 2px 4px; }
.rs__hist { font-size:.64rem; color:rgba(255,255,255,.8); padding:3px 2px; cursor:pointer; }
.rs__hist:hover { color:#fff; }
.rs__hist b { color:#BFE9FF; }
.rs__foot { display:flex; gap:8px; align-items:center; padding-top:10px;
  border-top:1px solid rgba(255,255,255,.16); }
.rs__foot .ev__stat { margin:0 0 0 auto; }
@media(max-width:560px){ .rs__foot { flex-wrap:wrap; } }

/* single-column (mobile): plain fixed gap wins over the desktop seating rule */
@media(max-width:760px){
  .card > .agent {
    margin-top:26px;
    border-top:1px solid var(--line);
    background-clip:border-box;
    box-shadow:none;
  }
}

@media(max-width:760px){
  .agent__ttl { font-size:.52rem; letter-spacing:.1em; }
  .agent__ttl small { font-size:.42rem; letter-spacing:.05em; }
}
@media(max-width:400px){
  .agent__ttl { font-size:.48rem; letter-spacing:.05em; }
  .agent__ttl small { font-size:.38rem; letter-spacing:.02em; }
}

/* ── night sky accuracy: no sun after sunset; a phase-true moon instead ── */
.wx-night.wx--clear .wx__bg {
  background:linear-gradient(165deg, rgba(16,30,62,.4), rgba(16,30,62,.08) 62%, transparent);
}
.wx-night.wx--cloud .wx__bg {
  background:
    radial-gradient(130px 64px at 78% 16%, rgba(150,168,195,.24), transparent 70%),
    radial-gradient(170px 74px at 58% 26%, rgba(150,168,195,.17), transparent 70%),
    linear-gradient(165deg, rgba(16,30,62,.32), transparent 60%);
}
.wx__moon {
  position:absolute; top:26px; right:34px;
  width:52px; height:52px; border-radius:50%;
  background:radial-gradient(circle at 38% 34%, #F4F6FA, #D9DFEA 62%, #C2CBDA);
  box-shadow:0 0 26px rgba(226,236,255,.5), 0 0 60px rgba(190,215,255,.25);
  overflow:hidden; display:none; pointer-events:none; z-index:1;
}
.wx__moon i {
  position:absolute; inset:-2px; border-radius:50%;
  background:#0E1C3C;
  transition:transform .6s ease;
}
.wx-night.wx--clear .wx__moon { display:block; }
.wx-night.wx--cloud .wx__moon { display:block; opacity:.45; }

.es__tci { font-size:.62rem; color:var(--muted); margin-top:5px; line-height:1.5; cursor:help; }
.es__tci b { color:var(--ink); }



/* ════════════ NSIGNIS D/INT DESK ════════════ */
.tint-desk .card__head h3 { letter-spacing:.1em; }
.ntag--ns { background:#14263A; color:#BFE9FF; white-space:nowrap; }
/* desk advisories always show their full text — no preview clamp */
.desk__list a, .desk__list li > span.desk__txt {
  display:inline; -webkit-line-clamp:unset; overflow:visible;
}
.desk__list { max-height:340px; }
.desk__empty { font-size:.74rem; color:var(--muted); padding:6px 2px 2px; }

/* ── conflict prediction engine ── */
.cnt--pred { background:#14263A; color:#BFE9FF; border-color:#14263A; cursor:default; }
.cnt--pred b { color:#fff; }
.warpred { display:flex; flex-direction:column; align-items:stretch; gap:3px; max-height:168px; overflow-y:auto; padding:6px 10px; margin:2px 0 8px;
  border:1px dashed rgba(20,38,58,.35); border-radius:10px; background:rgba(191,233,255,.14); }
.warpred__txt { font-size:.7rem; line-height:1.45; color:var(--ink); }
.warpred__txt b { font-weight:700; }
.warpred__txt .wp-end { color:var(--muted); }

.warpred__row { font-size:.7rem; line-height:1.5; color:var(--ink); }

/* ── desk learning engine: keywords + assessment ── */
.desk__list li { display:flex; flex-direction:column; gap:3px; align-items:flex-start; }
.desk__list li > a, .desk__list li > .desk__txt, .desk__list li > .desk__an { align-self:stretch; }
.desk__list .ntag--ns { align-self:flex-start; width:auto; }
/* keywords: clear white text — no background, no button, no border.
   A hairline dark text-shadow keeps white legible on the pastel card. */
.desk__kws { display:block; background:none; border:none; padding:0;
  color:#fff; font-size:.62rem; font-weight:600; letter-spacing:.04em; line-height:1.6;
  text-shadow:0 0 1px rgba(20,38,58,.95), 0 1px 2px rgba(20,38,58,.45);
  max-width:100%; }
.desk__an { font-size:.64rem; line-height:1.5; color:var(--muted); }
.dflag { font-weight:700; border-radius:100px; padding:1px 8px; margin-right:4px; font-size:.6rem; }
.dflag--vol  { background:#FEE9EA; color:#B91C1C; }
.dflag--stab { background:#E7F8EE; color:#15803D; }
.dflag--mon  { background:#EEF2F7; color:#475569; }

/* ════════════ primary navigation (minimal dropdown groups) ════════════ */
.nav {
  display:flex; align-items:center; gap:6px;
  position:absolute; left:50%; transform:translateX(-50%);
}
.nav__group { position:relative; }
.nav__trig {
  font:inherit; font-size:.72rem; letter-spacing:.06em; font-weight:600;
  color:#fff; background:none; border:none; cursor:pointer;
  display:inline-flex; align-items:center; gap:7px;
  padding:9px 13px; border-radius:10px;
  transition:background .18s ease;
}
.nav__trig:hover, .nav__group.is-open .nav__trig { background:rgba(255,255,255,.14); }
.nav__trig:focus-visible { outline:2px solid #BFE9FF; outline-offset:2px; }
.nav__dash {
  font-weight:700; line-height:1; transform:translateY(-1px);
  transition:transform .22s ease;
}
.nav__group.is-open .nav__dash { transform:translateY(-1px) rotate(90deg); }
.nav__drop {
  position:absolute; top:calc(100% + 8px); left:0; min-width:230px;
  /* transparent glass over the page, deck-navy on selection, white ink */
  background:rgba(20,38,58,.66);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.25); border-radius:14px;
  box-shadow:0 18px 44px rgba(13,33,54,.35);
  padding:6px; z-index:120;
  opacity:0; transform:translateY(-6px); pointer-events:none;
  transition:opacity .18s ease, transform .18s ease;

}
.nav__group.is-open .nav__drop { opacity:1; transform:translateY(0); pointer-events:auto; }
.nav__item {
  font:inherit; font-size:.72rem; color:#fff; background:none; border:none;
  width:100%; text-align:left; cursor:pointer; text-decoration:none; 
  display:flex; align-items:center; justify-content:space-between; gap:12px;
  padding:11px 12px; border-radius:9px;
  transition:background .15s ease;
  text-transform:uppercase;
}
.nav__item:hover, .nav__item:focus-visible { background:#14263A; outline:none; }
.nav__item:focus-visible { box-shadow:inset 0 0 0 2px #BFE9FF; }
.nav__hint { font-size:.58rem; color:#fff; opacity:.82; white-space:nowrap; text-transform:none;}
.nav__st { font-size:.58rem; color:#fff; font-weight:700; letter-spacing:.06em; }
.bm__sec { display:block; font-size:.56rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); padding:8px 10px 3px; }
@media (max-width:920px){ .nav { display:none; } }
@media (min-width:921px){ .hdr__burger, .hdr__bmenu { display:none !important; } }
@media (max-width:920px){
  .hdr__bmenu .lyr__opt { min-height:46px; }   /* touch-friendly */
}
@media (prefers-reduced-motion:reduce){
  .nav__trig,.nav__drop,.nav__dash,.nav__item { transition:none; }
}

/* header dropdown surfaces (mobile menu + layer codes): same glass system */
.hdr__bmenu, #layerPop {
  background:rgba(20,38,58,.72) !important;
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border:1px solid rgba(255,255,255,.25) !important;
}
.hdr__bmenu .lyr__opt, .hdr__bmenu .bm__sec, #layerPop .lyr__ttl { color:#fff !important; }
.hdr__bmenu .lyr__opt:hover { background:#14263A !important; }
.hdr__bmenu .lyr__st, .hdr__bmenu .lyr__caret { color:#fff !important; opacity:.85; }

/* senior-desk advisory note */
.agent__pro { line-height:1.62; }
.agent__pro b { color:#14263A; letter-spacing:.04em; font-size:.66rem; }

/* vuah command-style chips */
.agent__chips button { font-family:'DM Mono', ui-monospace, monospace; }

/* ════════════ INTEREST & PRIME RATES ════════════ */
.rates__home { margin-bottom:14px; }
.rates__homecard { background:rgba(190,232,255,.10); border-radius:16px; padding:13px 16px;
  border:1px solid rgba(190,232,255,.75);
  box-shadow:inset 0 0 0 1px rgba(230,246,255,.35), 0 0 14px rgba(150,215,255,.22); }
.rates__homek { display:block; font-size:.58rem; font-weight:800; letter-spacing:.09em;
  text-transform:uppercase; color:#fff; margin-bottom:5px; }
.rates__homerow { font-size:.95rem; color:var(--ink); font-variant-numeric:tabular-nums; }
.rates__homerow b { font-weight:800; }
.rates__homenote { display:block; margin-top:6px; font-size:.68rem; line-height:1.5; color:var(--muted); }
.rates__grid { display:flex; flex-direction:column; gap:2px; }
.rates__hd, .rates__row { display:grid;
  grid-template-columns:52px minmax(108px,1.15fr) 116px 104px 104px 68px 68px 122px; align-items:center; gap:9px; }
.rates__gdp span.gup, .rates__gdp span.gdn { color:#fff; }

/* ── economic assessment chips ── */
.rates__assess { display:flex; justify-content:center; text-align:center; }
.rates__hd span:nth-child(3) { text-align:center; }
.ecchip { display:inline-block; font-size:.54rem; font-weight:800; letter-spacing:.05em;
  text-transform:uppercase; padding:0; border-radius:0; white-space:nowrap;
  background:none; border:none; color:#fff; line-height:1.3;
  text-shadow:0 0 1px rgba(20,38,58,.9); }
.ecchip.ec-strongstable, .ecchip.ec-strong, .ecchip.ec-stable, .ecchip.ec-emerging,
.ecchip.ec-developing, .ecchip.ec-volatile, .ecchip.ec-weak, .ecchip.ec-crisis {
  background:none; border:none; color:#fff; }
.rates__homek .ecchip { margin-left:6px; vertical-align:middle; }

.rates__hd { padding:0 10px 8px; font-size:.56rem; font-weight:800; letter-spacing:.08em;
  text-transform:uppercase; color:var(--muted); }
.rates__hd span:nth-child(3) { text-align:center; }
.rates__row { padding:10px; border-radius:12px; transition:background .15s; }
.rates__row:hover { background:rgba(120,205,255,.14); }
.rates__row--me { background:rgba(190,232,255,.22); box-shadow:inset 0 0 0 1px rgba(120,205,255,.42); }
.rates__cc { display:flex; flex-direction:column; line-height:1.15; }
.rates__cc b { font-size:.86rem; font-weight:800; color:var(--ink); }
.rates__cc span { font-size:.56rem; font-weight:700; color:var(--muted); letter-spacing:.04em; }
.rates__nm { font-size:.8rem; font-weight:700; color:var(--ink); line-height:1.25; }
.rates__pn { display:block; font-size:.58rem; font-weight:600; color:var(--muted); }
.rates__me { font-size:.54rem; font-weight:800; letter-spacing:.05em; text-transform:uppercase;
  color:#fff; background:var(--fx); border-radius:100px; padding:1px 7px; margin-left:2px; font-style:normal; }
.rates__val { display:flex; flex-direction:column; }
.rates__val b { font-size:.9rem; font-weight:800; font-variant-numeric:tabular-nums; color:var(--ink); }
.rates__val span { font-size:.54rem; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:var(--muted); }
.rates__proj { display:flex; flex-direction:column; }
.rates__proj b { font-size:.88rem; font-weight:800; font-variant-numeric:tabular-nums; }
.rates__proj span { font-size:.54rem; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--muted); }
.rates__foot { display:flex; justify-content:space-between; align-items:baseline; gap:12px;
  margin-top:12px; padding-top:10px; border-top:1px solid rgba(120,205,255,.20); flex-wrap:wrap; }
.rates__leg { font-size:.62rem; color:var(--muted); line-height:1.5; }
.rates__leg b { color:var(--ink); font-weight:800; }
.rates__asof { font-size:.6rem; font-weight:700; color:var(--muted); white-space:nowrap; }
/* ── responsive jurisdictions (≤1000px, portrait AND landscape) ──
   Each row becomes a self-contained card. Flex-wrap lays the eight cells
   out strictly in DOM order:  [flag | name] [assessment]
   [GDP 2026 | GDP 2027f] [policy | prime | 12-mo outlook]              */
@media(max-width:1000px){
  .rates__hd { display:none; }
  .rates__grid { gap:10px; }
  .rates__row{
    display:flex; flex-wrap:wrap; align-items:flex-start;
    column-gap:12px; row-gap:9px;
    padding:13px 14px; border-radius:14px;
    background:rgba(255,255,255,.05);
    border:1px solid rgba(120,205,255,.16);
  }
  .rates__row > div{ min-width:0; }
  .rates__cc    { flex:0 0 46px; }
  .rates__nm    { flex:1 1 60%; }
  .rates__assess{ flex:1 1 100%; justify-content:flex-start; margin:-2px 0; }
  .rates__gdp   { flex:1 1 calc(50% - 12px); max-width:calc(50% - 6px); }
  .rates__val   { flex:1 1 calc(30% - 12px); }
  .rates__proj  { flex:1 1 calc(34% - 12px); }
  /* clear mobile typography */
  .rates__cc b { font-size:.95rem; }
  .rates__cc span { font-size:.6rem; }
  .rates__nm { font-size:.85rem; line-height:1.3; }
  .rates__pn { font-size:.6rem; }
  .rates__gdp b, .rates__val b, .rates__proj b { font-size:.92rem; }
  .rates__gdp span, .rates__val span, .rates__proj span { font-size:.58rem; letter-spacing:.05em; white-space:normal; }
  .ecchip { font-size:.6rem; white-space:normal; text-align:left; }
  .rates__foot { flex-direction:column; gap:6px; align-items:flex-start; }
  .rates__homerow { font-size:.82rem; line-height:1.7; }
  .card--rates { overflow-x:hidden; }
}
}
