/* TRIPOLIS v382 — Premium dense tables + mobile UX (visual only; no game/finance logic) */
/* Cache: r10.11.2-premium-mobile-20261007d */

:root{
  --r382-gold:#e6c477;
  --r382-gold-dim:#d6ad5d;
  --r382-sep:rgba(37,70,90,.55);
  --r382-row-pad:11px 12px;
  --r382-row-min:44px;
}

/* ========== DESKTOP / GLOBAL: premium dense tables ========== */

/* District regulation table — body 15px, roomy rows */
.r330-district-table{border-top-color:var(--r382-sep)!important}
.r330-district-table>div{
  font-size:15px!important;
  line-height:1.45!important;
  min-height:var(--r382-row-min)!important;
  padding:10px 12px!important;
  border-bottom:1px solid var(--r382-sep)!important;
  align-items:center;
}
.r330-district-table em,
.r330-district-table small{
  font-size:13px!important;
  color:#9eb3bf!important;
}
.r330-district-table b,
.r330-district-table strong{font-size:15px!important;color:#f0d79c}

/* City finance / bank / rating / force grids */
.r330-city-fin-grid>div,
.r330-bank-grid>div,
.r330-bank-grid article,
.r330-fin-kpis>div{
  padding:12px!important;
  min-height:var(--r382-row-min);
  border-color:var(--r382-sep)!important;
}
.r330-city-fin-grid small,
.r330-bank-grid small,
.r330-fin-kpis small,
.r330-fin-kpis span{
  font-size:12px!important;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:#8fa5b1!important;
}
.r330-city-fin-grid b,
.r330-bank-grid b,
.r330-fin-kpis b{
  font-size:15px!important;
  margin-top:4px!important;
  line-height:1.35!important;
}
.r330-rating-grid>div{
  padding:10px 12px!important;
  min-height:42px;
  border-color:var(--r382-sep)!important;
}
.r330-rating-grid small{font-size:13px!important}
.r330-rating-grid b{font-size:16px!important}
.r330-rating-grid em,
.r330-rating-grid span{font-size:13px!important}

.r330-force-grid article{
  padding:12px!important;
  border-color:var(--r382-sep)!important;
}
.r330-force-grid h3{font-size:15px!important}
.r330-force-grid p,
.r330-force-grid b{font-size:14px!important;line-height:1.45!important}

.r330-district-politics{font-size:14px!important}
.r330-district-politics h4{
  font-size:13px!important;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--r382-gold)!important;
}
.r330-district-politics>div{
  font-size:14px!important;
  min-height:40px;
  padding:6px 0;
  border-bottom:1px solid rgba(26,57,76,.45);
}
.r330-district-politics p{font-size:13px!important;line-height:1.5!important}

.r330-fin-history{padding:14px!important;border-color:var(--r382-sep)!important}
.r330-fin-history h3{font-size:16px!important;color:var(--r382-gold)!important}
.r330-fin-history p{
  font-size:14px!important;
  padding:10px 0!important;
  min-height:40px;
  border-bottom:1px solid var(--r382-sep)!important;
}
.r330-fin-history span{font-size:14px!important;color:var(--r382-gold-dim)!important}

.r330-event-cols>section{border-color:var(--r382-sep)!important}
.r330-event-cols>section>header{
  font-size:14px!important;
  letter-spacing:.04em;
  padding:12px 14px!important;
}
.r330-event{padding:12px 14px!important}
.r330-event h4{font-size:15px!important}
.r330-event p{font-size:14px!important;line-height:1.5!important}
.r330-meta span{font-size:12px!important;letter-spacing:.04em}

/* KPI chips — consistent readable scale */
.r330-kpis>div,
.r338-kpis>div,
.t320-kpi,
.r6-kpi,
.r7-kpi{
  padding:12px!important;
  min-height:48px;
  border-color:var(--r382-sep)!important;
}
.r330-kpis small,
.r338-kpis small,
.t320-kpi small,
.r6-kpi small,
.r7-kpi small{
  font-size:12px!important;
  letter-spacing:.06em;
  text-transform:uppercase;
  line-height:1.35!important;
}
.r330-kpis b,
.r338-kpis b,
.t320-kpi b,
.r6-kpi b,
.r7-kpi b{
  font-size:18px!important;
  line-height:1.25!important;
}
.r6-kpi span,
.r7-kpi span,
.t320-kpi span{
  font-size:13px!important;
  line-height:1.35!important;
}

/* Forbes rows / lists */
.r6-forbes-row{
  font-size:15px!important;
  min-height:48px!important;
  padding:10px 12px!important;
  border-color:var(--r382-sep)!important;
  gap:10px!important;
}
.r6-forbes-row .name b,
.r6-forbes-row .metric b{font-size:15px!important}
.r6-forbes-row .name small,
.r6-forbes-row .metric small{
  font-size:12px!important;
  letter-spacing:.04em;
  margin-top:3px!important;
}
.r6-forbes-row .rank{font-size:20px!important;color:var(--r382-gold)!important}

.r330-forbes article{
  font-size:15px!important;
  min-height:52px!important;
  padding:12px!important;
  border-bottom:1px solid var(--r382-sep)!important;
}
.r330-forbes article b,
.r330-forbes article strong{font-size:15px!important}
.r330-forbes article small,
.r330-forbes article em{font-size:13px!important}
.r330-forbes .rank{font-size:18px!important;color:var(--r382-gold)!important}
.r330-forbes>header{border-color:var(--r382-sep)!important}
.r330-forbes h1{letter-spacing:.02em}

/* Authority / influence cards */
.r311-why{font-size:14px!important;line-height:1.55!important;color:#c7d7e0}
.r311-why li{margin:6px 0!important}

/* Generic overlay tables */
.overlaycontent table,
.overlaycontent .data-table,
.data-table{
  font-size:14px!important;
  border-collapse:collapse;
  width:100%;
}
.overlaycontent table th,
.overlaycontent .data-table th,
.data-table th{
  font-size:12px!important;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:var(--r382-gold);
  padding:10px 12px!important;
  border-bottom:1px solid var(--r382-sep);
  text-align:left;
}
.overlaycontent table td,
.overlaycontent .data-table td,
.data-table td{
  font-size:14px!important;
  padding:10px 12px!important;
  min-height:42px;
  border-bottom:1px solid var(--r382-sep);
  line-height:1.45;
}

/* Soften repeated version chrome in dense panels (keep footer alone) */
.r295-source-badge{
  font-size:11px!important;
  opacity:.72;
  letter-spacing:.04em!important;
  padding:5px 8px!important;
  border-color:rgba(230,196,119,.35)!important;
}
.sidebar-foot{font-size:11px!important;opacity:.9}

/* ========== MOBILE NAV DRAWER + TOP BAR ========== */

/* Fixed top strip — hidden on desktop; unmistakable menu affordance */
.r382-mobile-bar{
  display:none;
  position:fixed;
  top:0;
  left:0;
  right:0;
  z-index:70;
  min-height:48px;
  height:auto;
  padding:
    max(6px,env(safe-area-inset-top))
    max(10px,env(safe-area-inset-right))
    6px
    max(10px,env(safe-area-inset-left));
  box-sizing:border-box;
  align-items:center;
  gap:10px;
  background:rgba(4,18,30,.96);
  border-bottom:1px solid var(--r382-gold);
  box-shadow:0 6px 20px rgba(0,0,0,.4);
  pointer-events:auto;
}
.r382-mobile-bar .r382-nav-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  z-index:1;
  left:auto;
  bottom:auto;
  min-height:44px;
  min-width:44px;
  padding:10px 14px;
  border:1px solid var(--r382-gold);
  border-radius:8px;
  background:#04121e;
  color:var(--r382-gold);
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:none;
  cursor:pointer;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  -webkit-tap-highlight-color:transparent;
  flex:0 0 auto;
}
.r382-mobile-bar .r382-nav-toggle:hover,
.r382-mobile-bar .r382-nav-toggle:focus-visible{
  background:rgba(20,45,62,.98);
  color:#f5e0a6;
  outline:2px solid rgba(230,196,119,.55);
  outline-offset:2px;
}
.r382-mobile-bar .r382-burger{
  display:inline-block;
  width:1.15em;
  margin-right:.4em;
  font-size:1.1em;
  vertical-align:-1px;
}
.r382-mobile-title{
  flex:1 1 auto;
  min-width:0;
  display:flex;
  align-items:center;
  gap:8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:16px;
  letter-spacing:.08em;
  color:#f0d79c;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  text-transform:none;
  pointer-events:none;
}
.r382-mobile-title .r382-bar-crest{
  flex:0 0 auto;
  width:30px;
  height:36px;
  overflow:hidden;
  display:block;
}
.r382-mobile-title .r382-bar-crest img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.r382-mobile-title .r382-bar-word{
  flex:1 1 auto;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  font-family:Georgia,"Times New Roman",serif;
  font-size:16px;
  letter-spacing:.06em;
  color:#f0d79c;
  line-height:1.1;
}

/* Legacy floating toggle class — never float as FAB anymore */
.r382-nav-toggle{
  display:none;
  position:fixed;
  z-index:70;
  left:max(12px,env(safe-area-inset-left));
  top:max(8px,env(safe-area-inset-top));
  bottom:auto;
  min-height:44px;
  min-width:44px;
  padding:10px 16px;
  border:1px solid var(--r382-gold);
  border-radius:8px;
  background:#04121e;
  color:var(--r382-gold);
  font-size:13px;
  font-weight:700;
  letter-spacing:.06em;
  cursor:pointer;
  box-shadow:0 6px 18px rgba(0,0,0,.4);
  -webkit-tap-highlight-color:transparent;
}

.r382-nav-backdrop{
  display:none;
  position:fixed;
  inset:0;
  z-index:110;
  background:rgba(0,6,12,.62);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  pointer-events:auto;
}

/* Drawer header — close only (no brand / герб in sidebar on mobile) */
.r382-drawer-header{
  display:none;
  flex:0 0 auto;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-height:52px;
  padding:
    max(10px,env(safe-area-inset-top))
    max(12px,env(safe-area-inset-right))
    10px
    max(12px,env(safe-area-inset-left));
  border-bottom:1px solid rgba(230,196,119,.35);
  background:#04121e;
  box-sizing:border-box;
}
.r382-drawer-close{
  display:none;
  position:relative;
  top:auto;
  right:auto;
  z-index:2;
  min-height:44px;
  min-width:44px;
  padding:8px 14px;
  border:1px solid var(--r382-gold);
  border-radius:8px;
  background:#04121e;
  color:var(--r382-gold);
  font-size:13px;
  font-weight:700;
  letter-spacing:.04em;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.r382-drawer-close:hover,
.r382-drawer-close:focus-visible{
  background:rgba(20,45,62,.98);
  color:#f5e0a6;
  outline:2px solid rgba(230,196,119,.55);
  outline-offset:2px;
}

/* Home / start brand strip — герб + city name in main (mobile) */
.r382-home-brand{
  display:none;
  align-items:center;
  gap:12px;
  margin:0 0 10px;
  padding:12px 14px;
  border:1px solid rgba(230,196,119,.32);
  border-radius:8px;
  background:linear-gradient(165deg,#0a2638 0%,#061824 55%,#03101b 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05),0 8px 20px rgba(0,0,0,.25);
  box-sizing:border-box;
}
.r382-home-brand .crest{
  flex:0 0 auto;
}
.r382-home-brand .crest.crest-official{
  width:48px;
  height:58px;
  border:0;
  clip-path:none;
  display:block;
  background:transparent;
  overflow:hidden;
}
.r382-home-brand .crest.crest-official img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.r382-home-brand .brandword{
  font-family:Georgia,"Times New Roman",serif;
  font-size:22px;
  letter-spacing:.14em;
  color:#f0d79c;
  line-height:1.15;
}
.r382-home-brand .brandword small{
  display:block;
  font-family:Inter,system-ui,sans-serif;
  font-size:12px;
  letter-spacing:.38em;
  color:#d7bd7a;
  margin-top:4px;
}

@media (max-width:850px){
  .r382-mobile-bar{
    display:flex;
  }
  /* Hide top strip under full-screen overlays / modals so cards stay single-layer */
  html.r382-overlay-up .r382-mobile-bar,
  html.r382-modal-up .r382-mobile-bar{
    visibility:hidden;
    pointer-events:none;
  }
  /* When drawer open: hide bar toggle (close lives in drawer header) */
  html.r382-nav-open .r382-mobile-bar .r382-nav-toggle{
    visibility:hidden;
    pointer-events:none;
  }
  html.r382-nav-open .r382-nav-backdrop{display:block}

  /* Reserve space so map/status aren't under the fixed bar */
  body.r382-premium,
  html.r382-premium body{
    padding-top:0;
  }
  .app,
  .layout,
  .shell,
  body > .wrap,
  #app,
  .page{
    /* no-op hooks if present */
  }
  .topbar{
    padding-top:calc(48px + env(safe-area-inset-top,0px))!important;
  }
  /* Prefer shifting main content; topbar already sticky */
  .main{
    padding-top:0;
  }
  /* Fixed bar offset helper — push first sticky chrome */
  html.r382-premium .topbar{
    top:0;
  }

  /* Off-canvas sidebar — fully hidden when closed */
  .sidebar{
    position:fixed!important;
    top:0!important;
    left:0!important;
    bottom:0!important;
    width:min(320px,88vw)!important;
    height:100vh!important;
    height:100dvh!important;
    max-height:100dvh!important;
    z-index:115!important;
    transform:translateX(-100%);
    transition:transform .28s ease,visibility .28s ease;
    overflow:hidden;
    display:flex!important;
    flex-direction:column!important;
    box-shadow:none;
    visibility:hidden;
    pointer-events:none;
  }
  /* Drawer: no sidebar brand (герб/name moved to home); header = close only */
  .sidebar .brand{display:none!important}
  .r382-drawer-header{display:flex!important}
  html.r382-nav-open .r382-drawer-close{display:inline-flex;align-items:center;justify-content:center}
  html.r382-nav-open .sidebar{
    transform:translateX(0);
    box-shadow:12px 0 40px rgba(0,0,0,.55);
    visibility:visible;
    pointer-events:auto;
  }
  /* Drawer body: menu items only (hide news / top-5 chrome) */
  .sidebar .side-scroll{
    flex:1 1 auto;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch;
    padding:10px 12px max(24px,env(safe-area-inset-bottom))!important;
  }
  .sidebar .side-scroll > .section-title,
  .sidebar .side-scroll > #miniNews,
  .sidebar .side-scroll > .toplist{
    display:none!important;
  }
  .sidebar .nav{margin-top:0!important;border-top:0!important;padding-top:0!important}
  .sidebar-foot{
    display:none!important;
  }
  /* Home brand strip visible on mobile main (after topbar; bar offset via .topbar) */
  .r382-home-brand{display:flex}
  .main > .r382-home-brand:first-child{
    margin-top:calc(52px + env(safe-area-inset-top,0px));
  }
  .main > .topbar + .r382-home-brand{
    margin:8px 10px 10px;
  }

  /* Nav as single column with large tap targets */
  .nav{
    display:flex!important;
    flex-direction:column!important;
    gap:4px!important;
  }
  .nav button,
  .sidebar .nav button{
    min-height:44px!important;
    font-size:14px!important;
    padding:12px 14px!important;
    line-height:1.35!important;
  }
  .closebtn,
  .overlaytop .closebtn,
  .toolbar button,
  .r330-meta span,
  .t320-chip,
  .r7-btn,
  .r6-btn{
    min-height:44px!important;
    padding-top:10px!important;
    padding-bottom:10px!important;
  }

  /* Tables / grids — simple stacked rows, larger type, no overlapping chrome */
  .r330-district-table{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .r330-district-table>div{
    font-size:15px!important;
    padding:12px!important;
    min-height:48px!important;
    grid-template-columns:1fr!important;
    position:relative;
    z-index:0;
  }
  .r330-city-fin-grid,
  .r330-bank-grid,
  .r330-rating-grid,
  .r330-force-grid,
  .r330-fin-kpis,
  .r330-kpis,
  .r338-kpis{
    grid-template-columns:1fr!important;
  }
  .r330-city-fin-grid b,
  .r330-bank-grid b,
  .r330-fin-kpis b{font-size:16px!important}

  .r6-forbes-table,
  .r330-forbes{
    width:100%;
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .r6-forbes-row{
    grid-template-columns:36px 54px 1fr!important;
    width:100%;
    box-sizing:border-box;
    font-size:15px!important;
    padding:12px!important;
    min-height:52px!important;
    position:relative;
    z-index:0;
  }
  .r6-forbes-row .name b{font-size:15px!important}
  .r6-forbes-row .name small{font-size:12px!important}
  .r330-forbes article{
    grid-template-columns:40px 52px 1fr!important;
    width:100%;
    box-sizing:border-box;
    position:relative;
    z-index:0;
  }

  /* Overlays — single clean full-viewport layer; no ghost sheets */
  .overlaypage,
  .overlaypage.show{
    z-index:80!important;
    background:#03101b!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .overlaypage{
    max-width:100vw;
  }
  .overlaycontent{
    max-width:100vw!important;
    width:100%!important;
    box-sizing:border-box!important;
    padding:14px max(12px,env(safe-area-inset-right)) max(18px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))!important;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    position:relative;
    z-index:1;
    background:#03101b!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    box-shadow:none!important;
  }
  .overlaypage.show .overlaycontent,
  .modalbox{
    max-height:92vh;
    max-height:92dvh;
  }
  .modal{
    z-index:100!important;
  }
  .modalbox{
    width:min(100vw,96vw)!important;
    max-width:100vw!important;
    box-sizing:border-box;
    padding:14px!important;
    position:relative;
    z-index:1;
    background:#071927!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .personhero{grid-template-columns:1fr!important}

  /* Character card / person body — one clean layer, no glass stack */
  #personBody,
  #personBody.v29-character-experience,
  #personBody .v29-card-shell,
  #personBody .v29-gallery,
  #personBody .v29-info,
  #personBody .v29-dossier-wrap,
  .v29-character-experience,
  .v29-card-shell,
  .personhero,
  .modalbox #personBody{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
    isolation:isolate;
  }
  #personBody::before,
  #personBody::after,
  #personBody .v29-card-shell::before,
  #personBody .v29-card-shell::after,
  #personBody .v29-gallery::before,
  #personBody .v29-gallery::after,
  #personBody .v29-info::before,
  #personBody .v29-info::after,
  .v29-card-shell::before,
  .v29-card-shell::after{
    content:none!important;
    display:none!important;
  }

  /* Soften version badges on mobile; keep quieter */
  .r295-source-badge{
    font-size:11px!important;
    opacity:.55;
    padding:4px 7px!important;
  }

  /* Tiny leftover labels in content panels (not map geography) */
  .main .t320-form-grid label,
  .overlaycontent .t320-form-grid label,
  .main .t320-form h3,
  .overlaycontent .t320-form h3,
  .main .r7-kpi small,
  .main .r6-kpi small,
  .overlaycontent .r7-kpi small,
  .overlaycontent .r6-kpi small,
  .main .r7-head small,
  .overlaycontent .r7-panel>h3,
  .main .r7-label,
  .overlaycontent .r7-label{
    font-size:12px!important;
    letter-spacing:.05em;
  }
  .main .r7-kpi span,
  .main .r6-kpi span,
  .overlaycontent .r7-kpi span,
  .overlaycontent .r6-kpi span,
  .main .r7-memory b,
  .main .r7-meeting-row b,
  .main .r7-event-row b,
  .overlaycontent .r7-memory b,
  .overlaycontent .r7-meeting-row b,
  .overlaycontent .r7-event-row b{
    font-size:13px!important;
  }
  .main .r7-memory small,
  .main .r7-meeting-row small,
  .main .r7-event-row small,
  .overlaycontent .r7-memory small,
  .overlaycontent .r7-meeting-row small,
  .overlaycontent .r7-event-row small{
    font-size:12px!important;
  }

  /* Kill glass + corner ornaments on cards/tables that cause visual stacking */
  .r330-finance>header,
  .r330-forbes>header,
  .r330-politics-panel,
  .r6-panel,
  .r7-panel,
  .r330-district-rating,
  .r330-kpis>div,
  .r338-kpis>div,
  .r330-city-fin-grid>div,
  .r330-bank-grid>div,
  .r330-fin-kpis>div,
  .r330-fin-history,
  .r330-event-cols>section,
  .r6-kpi,
  .r7-kpi,
  .t320-kpi,
  .r6-forbes-row,
  .pcard,
  .r330-pcard,
  .inst,
  .r338-card{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .r330-forbes>header::before,
  .r330-finance>header::before,
  .r330-district-rating::before,
  .r330-forbes>header::after,
  .r330-finance>header::after,
  .r330-district-rating::after{
    content:none!important;
    display:none!important;
  }
  /* Nav drawer above overlays when open; bar stays below overlays when closed */
  html.r382-nav-open .r382-nav-backdrop{z-index:110!important}
  html.r382-nav-open .sidebar{z-index:115!important}
  /* Ensure closed drawer cannot leave a ghost sheet over tables/cards */
  html:not(.r382-nav-open) .r382-nav-backdrop{
    display:none!important;
    pointer-events:none!important;
    visibility:hidden!important;
  }
}

@media (max-width:520px){
  .r382-mobile-bar{
    min-height:48px;
    gap:8px;
  }
  .r382-mobile-bar .r382-nav-toggle{
    padding:10px 12px;
    font-size:12px;
  }
  .r382-mobile-title{font-size:14px;letter-spacing:.04em}
  .r382-mobile-title .r382-bar-crest{width:26px;height:32px}
  .r382-mobile-title .r382-bar-word{font-size:14px;letter-spacing:.04em}
  .r382-home-brand{padding:10px 12px;gap:10px}
  .r382-home-brand .brandword{font-size:18px;letter-spacing:.12em}
  .r382-home-brand .crest.crest-official{width:42px;height:52px}
  .sidebar{width:min(300px,92vw)!important}
  .r330-district-table>div,
  .r6-forbes-row,
  .r330-forbes article{
    font-size:15px!important;
    padding:12px 10px!important;
  }
  .r330-kpis>div,
  .r338-kpis>div,
  .t320-kpi,
  .r6-kpi,
  .r7-kpi{
    padding:14px 12px!important;
  }
  .r6-forbes-row .metric{display:none}
  .nav button,
  .sidebar .nav button{font-size:14px!important}
}

/* Desktop safeguard: never show mobile chrome ≥851px */
@media (min-width:851px){
  .r382-mobile-bar,
  .r382-nav-toggle,
  .r382-nav-backdrop,
  .r382-drawer-close,
  .r382-drawer-header,
  .r382-home-brand{display:none!important}
  html.r382-nav-open .sidebar{
    transform:none!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  .sidebar{
    transform:none!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
}

/* ========== CHAMPAGNE NOIR — surfaces, color, ornaments (additive) ========== */

/* Warm ivory text on deep ink; reduce harsh cyan cast */
.main,
.overlaypage,
.overlaycontent,
.rightpanel,
.r330-finance,
.r330-forbes,
.r330-creator,
.r330-politics-panel,
.r6-panel,
.r7-panel,
.r7-page,
.modalbox{
  color:#eef3f5;
}
.main small,
.overlaycontent small,
.r6-panel small,
.r7-panel small,
.r330-finance header span,
.r330-finance header small,
.r330-forbes p{
  color:#a8bac5!important;
}

/* Richer panel gradients + soft glass */
.r330-finance>header,
.r330-forbes>header,
.r330-district-rating,
.r330-politics-panel,
.r330-kpis>div,
.r338-kpis>div,
.r330-city-fin-grid>div,
.r330-bank-grid>div,
.r330-fin-kpis>div,
.r330-fin-history,
.r330-event-cols>section,
.r6-kpi,
.r7-kpi,
.t320-kpi,
.r6-panel,
.r7-panel,
.r6-forbes-row{
  background:linear-gradient(165deg,#0a2638 0%,#061824 48%,#03101b 100%)!important;
  border:1px solid rgba(230,196,119,.28)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 10px 28px rgba(0,0,0,.28)!important;
  border-radius:8px;
  position:relative;
}
.r330-finance>header,
.r330-forbes>header,
.r330-politics-panel,
.r6-panel,
.r7-panel{
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}

/* Softer separators instead of harsh multi-borders */
.r330-district-table,
.r330-group-block,
.r330-district-rating,
.r330-district-politics{
  border-top-color:rgba(230,196,119,.18)!important;
}
.r330-district-table>div,
.r330-fin-history p,
.r330-forbes article,
.r330-event{
  border-bottom-color:rgba(37,70,90,.45)!important;
}

/* Section titles — hierarchy + champagne hairline */
.r330-group-block>header h3,
.r330-district-rating>header h3,
.r330-fin-history h3,
.r330-forms h3,
.r330-forbes h1,
.r330-finance h1,
.r6-dashboard-head h1,
.r7-head h1,
.overlaytop h2,
.section-title>span:first-child{
  letter-spacing:.06em!important;
  color:#f0d79c!important;
}
.r330-group-block>header h3,
.r330-district-rating>header h3,
.r330-fin-history h3,
.overlaytop h2{
  font-size:clamp(17px,1.6vw,20px)!important;
  position:relative;
  padding-bottom:8px;
}
.r330-forbes h1,
.r330-finance h1{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:700;
  position:relative;
  padding-bottom:10px;
}
.r330-forbes h1::after,
.r330-finance h1::after,
.r330-district-rating>header h3::after,
.r330-group-block>header h3::after,
.r330-fin-history h3::after{
  content:"";
  display:block;
  width:min(120px,40%);
  height:1px;
  margin-top:8px;
  background:linear-gradient(90deg,rgba(230,196,119,.55),rgba(230,196,119,0));
}

/* Diamond/dot divider under major overlay H2s — very subtle */
.overlaytop h2::after{
  content:"◆";
  display:inline-block;
  margin-left:10px;
  font-size:.55em;
  color:rgba(230,196,119,.45);
  vertical-align:middle;
  letter-spacing:0;
}

/* Corner ticks on key premium panels */
.r330-forbes>header,
.r330-finance>header,
.r330-district-rating{
  overflow:visible;
}
.r330-forbes>header::before,
.r330-finance>header::before,
.r330-district-rating::before{
  content:"";
  position:absolute;
  top:8px;left:8px;
  width:12px;height:12px;
  border-top:1px solid rgba(230,196,119,.45);
  border-left:1px solid rgba(230,196,119,.45);
  pointer-events:none;
  z-index:1;
}
.r330-forbes>header::after,
.r330-finance>header::after,
.r330-district-rating::after{
  content:"";
  position:absolute;
  bottom:8px;right:8px;
  width:12px;height:12px;
  border-bottom:1px solid rgba(230,196,119,.45);
  border-right:1px solid rgba(230,196,119,.45);
  pointer-events:none;
  z-index:1;
}

/* Accent numbers / ranks in champagne, not neon */
.r330-district-rating>header>b,
.r330-finance header strong,
.r6-forbes-row .rank,
.r330-forbes .rank,
.toprow strong,
.powerscore{
  color:var(--r382-gold)!important;
}
.r330-rating-grid .up{color:#7dcea0!important}
.r330-rating-grid .down{color:#e89a9a!important}
.r330-rating-grid .flat{color:var(--r382-gold-dim)!important}

/* Cards: inner highlight, quieter border */
.pcard,
.r330-pcard,
.inst,
.r338-card{
  border-color:rgba(230,196,119,.22)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.05),
    0 8px 22px rgba(0,0,0,.22)!important;
  background:linear-gradient(180deg,#0a2436,#061824)!important;
}
.pcard:hover,
.r330-pcard:hover,
.inst:hover,
.r6-forbes-row:hover,
.r330-forbes article:hover{
  border-color:rgba(230,196,119,.48)!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.08),
    0 12px 28px rgba(0,0,0,.32)!important;
}

/* Nav active state — champagne, not cyan */
.nav button:hover,
.nav button.active,
.sidebar .nav button:hover,
.sidebar .nav button.active{
  border-color:rgba(230,196,119,.4)!important;
  color:#f0d69c!important;
  background:linear-gradient(90deg,#0d2639,#0a1f30)!important;
}

/* Soften neon cyan pills / live chips in content (keep LIVE readable) */
.pill{
  border-color:rgba(230,196,119,.35)!important;
  color:#d6c08a!important;
}
.meta span{
  border-color:rgba(230,196,119,.28)!important;
  color:#c5d2da!important;
}

/* Toolbar / close — matte champagne edge */
.closebtn,
.secondary,
.toolbar button{
  border-color:rgba(230,196,119,.32)!important;
  background:linear-gradient(180deg,#0c2536,#081c2a)!important;
  color:#e8eef2!important;
}
.closebtn:hover,
.secondary:hover{
  border-color:rgba(230,196,119,.55)!important;
  color:#f5e0a6!important;
}

/* Mobile: no glass stack / no corner ticks on cards & tables (see also ≤850 block above) */
@media (max-width:850px){
  .r330-finance>header,
  .r330-forbes>header,
  .r330-politics-panel,
  .r6-panel,
  .r7-panel,
  .overlaytop{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  .overlaytop{
    background:#04111c!important;
  }
  .r330-forbes>header::before,
  .r330-finance>header::before,
  .r330-district-rating::before,
  .r330-forbes>header::after,
  .r330-finance>header::after,
  .r330-district-rating::after,
  .overlaytop h2::after{
    content:none!important;
    display:none!important;
  }
}


/* ========== v382d: map layers plaque under map + hide floating overlays ========== */

html.r382-layers-plaque .v292-map-layers,
html.r382-layers-plaque #v292MapLayers,
html.r382-layers-plaque #t320LayersButton,
html.r382-layers-plaque #t320LayersSheet,
html.r382-layers-plaque .city-fin-side .map-layer-controls{
  display:none!important;
  visibility:hidden!important;
  pointer-events:none!important;
}

.r382-layers-bar{
  display:block;
  width:100%;
  box-sizing:border-box;
  margin:8px 0 0;
  padding:6px 8px;
  min-height:48px;
  border:1px solid rgba(230,196,119,.38);
  border-radius:8px;
  background:linear-gradient(165deg,#0a2638 0%,#061824 55%,#03101b 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 6px 18px rgba(0,0,0,.28);
}
.r382-layers-inner{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  min-width:0;
}
.r382-layers-label{
  flex:0 0 auto;
  font-size:12px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--r382-gold,#e6c477);
  padding:0 4px;
  white-space:nowrap;
}
.r382-layers-chips{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:6px;
  flex:1 1 auto;
  min-width:0;
}
.r382-layer-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  min-height:40px;
  min-width:40px;
  padding:6px 10px;
  border:1px solid rgba(230,196,119,.42);
  border-radius:999px;
  background:rgba(4,18,30,.92);
  color:#dce7ee;
  font-size:13px;
  font-weight:600;
  letter-spacing:.02em;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  box-sizing:border-box;
  transition:background .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
}
.r382-layer-chip:hover,
.r382-layer-chip:focus-visible{
  border-color:rgba(230,196,119,.75);
  color:#f5e0a6;
  outline:2px solid rgba(230,196,119,.4);
  outline-offset:1px;
}
.r382-layer-chip.is-on{
  background:linear-gradient(180deg,rgba(40,70,90,.95),rgba(12,32,48,.98));
  border-color:var(--r382-gold,#e6c477);
  color:#f5e0a6;
  box-shadow:0 0 0 1px rgba(230,196,119,.25),inset 0 1px 0 rgba(255,255,255,.06);
}
.r382-layer-ico{
  font-size:15px;
  line-height:1;
  flex:0 0 auto;
}
.r382-layer-txt{
  line-height:1.2;
  white-space:nowrap;
  max-width:11em;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* Keep plaque full-width under map inside city-map-shell (block or grid) */
.city-map-shell > .r382-layers-bar{
  grid-column:1 / -1;
  width:100%;
  order:0;
}
.city-map-shell .mapbox-v165 + .r382-layers-bar,
.city-map-shell .mapbox + .r382-layers-bar{
  margin-top:8px;
}

@media (max-width:850px){
  .r382-layers-bar{
    margin:7px 0 0;
    padding:6px 7px;
    min-height:44px;
  }
  .r382-layers-label{
    font-size:12px;
    letter-spacing:.1em;
  }
  .r382-layer-chip{
    min-height:40px;
    padding:6px 9px;
    font-size:13px;
  }
  .r382-layer-ico{font-size:16px}
}

@media (max-width:520px){
  .r382-layers-inner{
    flex-direction:column;
    align-items:stretch;
    gap:6px;
  }
  .r382-layers-label{
    padding:2px 2px 0;
  }
  .r382-layers-chips{
    gap:5px;
  }
  .r382-layer-chip{
    flex:1 1 calc(50% - 5px);
    min-width:calc(50% - 5px);
    max-width:100%;
    justify-content:flex-start;
  }
  .r382-layer-txt{max-width:none}
}

/* Plaque as next sibling of .city-map-shell (preferred placement) */
.city-map-shell + .r382-layers-bar,
.map-dashboard-v165 > .r382-layers-bar{
  width:100%;
  box-sizing:border-box;
  margin-top:8px;
}

/* =====================================================================
   v382e — READABLE FONTS EVERYWHERE (2026-10-07)
   Floor: content 14px desktop / 15px mobile; meta 12–13px; chips 11–12px.
   Pure CSS; no logic changes. SVG/canvas map geography untouched.
   ===================================================================== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html body{
  font-family:Inter,"Segoe UI",system-ui,-apple-system,Roboto,"Noto Sans","Helvetica Neue",Arial,sans-serif;
  text-rendering:optimizeLegibility;
  -webkit-font-smoothing:antialiased;
}
/* Content text floor (paragraphs / list items / descriptions) */
html:not(#r382f) :is(.main,.overlaycontent,.modalbox) :is(p,li,dd,blockquote):not(svg *){
  font-size:14px!important;
  line-height:1.55!important;
}
/* Table cells */
html:not(#r382f) :is(.main,.overlaycontent,.modalbox) :is(td,th):not(svg *){
  font-size:max(13px,1em);
}
/* Long Ukrainian words / numbers must wrap instead of overflowing cards */
html:not(#r382f) :is(.main,.overlaycontent,.modalbox,.sidebar) :is(p,li,dd,td,small,em,.facet,.r7-yellow-copy,.ani-copy,.pol-card-copy,.district-person-tile,.r376-kpi-frame,.loc){
  overflow-wrap:anywhere;
  word-break:normal;
  hyphens:auto;
}
/* Inline style="font-size:6–10px" emitted by older JS templates */
html:not(#r382f) [style*="font-size:6px"]:not(svg *),html:not(#r382f) [style*="font-size: 6px"]:not(svg *),
html:not(#r382f) [style*="font-size:7px"]:not(svg *),html:not(#r382f) [style*="font-size: 7px"]:not(svg *),
html:not(#r382f) [style*="font-size:8px"]:not(svg *),html:not(#r382f) [style*="font-size: 8px"]:not(svg *),
html:not(#r382f) [style*="font-size:8.5px"]:not(svg *){font-size:11px!important;line-height:1.4!important}
html:not(#r382f) [style*="font-size:9px"]:not(svg *),html:not(#r382f) [style*="font-size: 9px"]:not(svg *),
html:not(#r382f) [style*="font-size:10px"]:not(svg *),html:not(#r382f) [style*="font-size: 10px"]:not(svg *){font-size:12px!important;line-height:1.4!important}
html:not(#r382f) p[style*="font-size:8px"]:not(svg *),html:not(#r382f) p[style*="font-size:9px"]:not(svg *),html:not(#r382f) p[style*="font-size:10px"]:not(svg *){font-size:13px!important}
/* ==== v382e GLOBAL READABILITY FLOOR (auto-generated by tools/gen_font_floor.py) ====
   Covers every selector in public/*.css, index.html <style>, and JS-injected CSS that declared font-size < 11.5px.
   Map: <=8px -> 11px (chips/badges), 9px -> 12px (meta), 10-11px -> 12.5px (secondary), p/li/td/dd -> 14px.
   SVG / canvas / map geo labels are excluded. Logic untouched. */
html:not(#r382f) #r330PeopleDirectory .r330-pcard .ptext small,
html:not(#r382f) .active-split b,
html:not(#r382f) .active-split span,
html:not(#r382f) .ai286-badge,
html:not(#r382f) .ai286-card small,
html:not(#r382f) .ai286-kv small,
html:not(#r382f) .ai286-trait span,
html:not(#r382f) .ani-bust strong,
html:not(#r382f) .ani-copy b,
html:not(#r382f) .ani-dialogue span,
html:not(#r382f) .ani-episode,
html:not(#r382f) .ani-place,
html:not(#r382f) .anigram-engine-state,
html:not(#r382f) .anigram-live-actions button,
html:not(#r382f) .anigram-publisher,
html:not(#r382f) .animal-post small,
html:not(#r382f) .cal-day,
html:not(#r382f) .cal-grid span,
html:not(#r382f) .cal-legend,
html:not(#r382f) .canonbadge,
html:not(#r382f) .chronicle-copy small,
html:not(#r382f) .chronicle-date span,
html:not(#r382f) .chronicle-people-links button,
html:not(#r382f) .chronicle-tag,
html:not(#r382f) .chronicle-visibility,
html:not(#r382f) .city-fin-title small,
html:not(#r382f) .city-gallery-card small,
html:not(#r382f) .comic-ready div,
html:not(#r382f) .contactchip,
html:not(#r382f) .dark-badge,
html:not(#r382f) .dark-chip,
html:not(#r382f) .dark-kpi span,
html:not(#r382f) .demo-card small,
html:not(#r382f) .demo-card span,
html:not(#r382f) .demo-head small,
html:not(#r382f) .dist-fin small,
html:not(#r382f) .dist-fin span,
html:not(#r382f) .district-person-tile small,
html:not(#r382f) .district-summary,
html:not(#r382f) .dossier-note{font-size:11px!important;line-height:1.38!important}
html:not(#r382f) .econ-mode,
html:not(#r382f) .econ-summary small,
html:not(#r382f) .fin-asset button,
html:not(#r382f) .fin-asset small,
html:not(#r382f) .fin-break span,
html:not(#r382f) .fin-empty,
html:not(#r382f) .fin-event,
html:not(#r382f) .fin-form button,
html:not(#r382f) .fin-kpis small,
html:not(#r382f) .fin-secret,
html:not(#r382f) .gallery-toolbar button,
html:not(#r382f) .hint,
html:not(#r382f) .influencechip,
html:not(#r382f) .inst small,
html:not(#r382f) .lifecard small,
html:not(#r382f) .loc span,
html:not(#r382f) .mapbox-v165 .hint,
html:not(#r382f) .meta span,
html:not(#r382f) .news-sync,
html:not(#r382f) .note,
html:not(#r382f) .person-actions button,
html:not(#r382f) .person-political-inline small,
html:not(#r382f) .person-political-inline span,
html:not(#r382f) .pol-actions button,
html:not(#r382f) .pol-admin-grid input,
html:not(#r382f) .pol-admin-grid label,
html:not(#r382f) .pol-anigram-tags span,
html:not(#r382f) .pol-capital-card em,
html:not(#r382f) .pol-capital-card small,
html:not(#r382f) .pol-capital-card span,
html:not(#r382f) .pol-card-copy small,
html:not(#r382f) .pol-card-copy span,
html:not(#r382f) .pol-card-metrics small,
html:not(#r382f) .pol-district-detail>small,
html:not(#r382f) .pol-district-row b,
html:not(#r382f) .pol-district-row span,
html:not(#r382f) .pol-election-grid small,
html:not(#r382f) .pol-event time,
html:not(#r382f) .pol-event-templates small,
html:not(#r382f) .pol-event-templates span{font-size:11px!important;line-height:1.38!important}
html:not(#r382f) .pol-hero span,
html:not(#r382f) .pol-majority-marker span,
html:not(#r382f) .pol-mayor-meter small,
html:not(#r382f) .pol-media-card small,
html:not(#r382f) .pol-media-card span,
html:not(#r382f) .pol-note,
html:not(#r382f) .pol-party-head small,
html:not(#r382f) .pol-party-head span,
html:not(#r382f) .pol-poll-row em,
html:not(#r382f) .pol-practice-card b,
html:not(#r382f) .pol-riskline span,
html:not(#r382f) .pol-seat-legend span,
html:not(#r382f) .pol-section-head small,
html:not(#r382f) .pol-section-head>span,
html:not(#r382f) .pol-society-card button,
html:not(#r382f) .pol-society-card>small,
html:not(#r382f) .pol-state-card small,
html:not(#r382f) .pol-state-card span,
html:not(#r382f) .pol-status,
html:not(#r382f) .pol-strip-head button,
html:not(#r382f) .pol-strip-head small,
html:not(#r382f) .pol-test-result small,
html:not(#r382f) .pol-test-result span,
html:not(#r382f) .pol-test-result>b,
html:not(#r382f) .pol-trend,
html:not(#r382f) .ptext small,
html:not(#r382f) .r300-health section small,
html:not(#r382f) .r300-photo-badge,
html:not(#r382f) .r310-bar,
html:not(#r382f) .r310-chips span,
html:not(#r382f) .r310-forbes .income small,
html:not(#r382f) .r310-forbes .wealth small,
html:not(#r382f) .r310-influence-card section>small,
html:not(#r382f) .r310-move,
html:not(#r382f) .r310-res-grid small,
html:not(#r382f) .r310-res-grid span,
html:not(#r382f) .r310-res-stat small,
html:not(#r382f) .r313-deck-actions button,
html:not(#r382f) .r313-editor label,
html:not(#r382f) .r313-editor-media header small{font-size:11px!important;line-height:1.38!important}
html:not(#r382f) .r313-stage-badge span,
html:not(#r382f) .r313-thumbs small,
html:not(#r382f) .r313-viewer-tip,
html:not(#r382f) .r366-card em,
html:not(#r382f) .r368-card em,
html:not(#r382f) .r6-ai-editor-note,
html:not(#r382f) .r6-ai-status-grid small,
html:not(#r382f) .r6-ai-toggle,
html:not(#r382f) .r6-anigram-dialogue span,
html:not(#r382f) .r6-anigram-intent span,
html:not(#r382f) .r6-anigram-memory,
html:not(#r382f) .r6-bar-row>span,
html:not(#r382f) .r6-bond-grid small,
html:not(#r382f) .r6-canon-badge,
html:not(#r382f) .r6-crisis-actions button,
html:not(#r382f) .r6-crisis-card .sev,
html:not(#r382f) .r6-crisis-impact span,
html:not(#r382f) .r6-dashboard-head small,
html:not(#r382f) .r6-donut small,
html:not(#r382f) .r6-event-list small,
html:not(#r382f) .r6-legend span,
html:not(#r382f) .r6-live,
html:not(#r382f) .r6-news-figures span,
html:not(#r382f) .r6-news-impact small,
html:not(#r382f) .r6-risk-chip small,
html:not(#r382f) .r6-tourism small,
html:not(#r382f) .r6-tourism span,
html:not(#r382f) .r7-editor-note,
html:not(#r382f) .r7-event-meta small,
html:not(#r382f) .r7-event-row small,
html:not(#r382f) .r7-finance-summary small,
html:not(#r382f) .r7-head small,
html:not(#r382f) .r7-label,
html:not(#r382f) .r7-lightbox-tools span,
html:not(#r382f) .r7-meeting-row small,
html:not(#r382f) .r7-memory small,
html:not(#r382f) .r7-minor-badge,
html:not(#r382f) .r7-panel>h3,
html:not(#r382f) .r7-save-ok,
html:not(#r382f) .r7-scene-copy span{font-size:11px!important;line-height:1.38!important}
html:not(#r382f) .r7-scene-person b,
html:not(#r382f) .r7-social-toolbar button,
html:not(#r382f) .r7-week span,
html:not(#r382f) .r7-yellow-copy span,
html:not(#r382f) .rel-title small,
html:not(#r382f) .relchip,
html:not(#r382f) .resident-card .rfin,
html:not(#r382f) .resident-card em,
html:not(#r382f) .resident-card small,
html:not(#r382f) .residents-summary small,
html:not(#r382f) .rphead small,
html:not(#r382f) .sidebar-video-screen .screen-copy small,
html:not(#r382f) .sidebar-video-screen .screen-live,
html:not(#r382f) .soc-drama-actions button,
html:not(#r382f) .soc-drama-pool span,
html:not(#r382f) .soc-estate-program span,
html:not(#r382f) .soc-fund-list span,
html:not(#r382f) .soc-group-card small,
html:not(#r382f) .soc-kpis span,
html:not(#r382f) .soc-media-badges span,
html:not(#r382f) .soc-old-business button,
html:not(#r382f) .soc-person em,
html:not(#r382f) .soc-person small,
html:not(#r382f) .soc-private-list em,
html:not(#r382f) .soc-private-list span,
html:not(#r382f) .social-pick small,
html:not(#r382f) .social-rel-row em,
html:not(#r382f) .society-hero-kpi span,
html:not(#r382f) .speedcontrols button,
html:not(#r382f) .speedcontrols>b,
html:not(#r382f) .spiritual-branch,
html:not(#r382f) .stat small,
html:not(#r382f) .t320-card .canon,
html:not(#r382f) .t320-card .info small,
html:not(#r382f) .t320-card .score,
html:not(#r382f) .t320-envelope small,
html:not(#r382f) .t320-family>header span,
html:not(#r382f) .t320-group-btn b,
html:not(#r382f) .t320-quality-card small,
html:not(#r382f) .tax-actions button{font-size:11px!important;line-height:1.38!important}
html:not(#r382f) .tax-rate-grid span,
html:not(#r382f) .taxpayer-head small,
html:not(#r382f) .taxpayer-list i,
html:not(#r382f) .time-core-state,
html:not(#r382f) .tinybtn,
html:not(#r382f) .toprow small,
html:not(#r382f) .v285-biz-fin-grid small,
html:not(#r382f) .v292-ai-badge,
html:not(#r382f) .v292-calendar-toolbar small,
html:not(#r382f) .v292-demo-bar>div,
html:not(#r382f) .v292-demo-donut small,
html:not(#r382f) .v292-demo-kpis small,
html:not(#r382f) .v292-demo-legend,
html:not(#r382f) .v292-forbes-name small,
html:not(#r382f) .v292-forbes-tag,
html:not(#r382f) .v292-metric small,
html:not(#r382f) .v292-primary-slide .v29-slide-copy .eyebrow,
html:not(#r382f) .v292-security-event small,
html:not(#r382f) .v292-security-head span,
html:not(#r382f) .v292-security-kpis small,
html:not(#r382f) .v292-security-trend small,
html:not(#r382f) .v292-week span,
html:not(#r382f) .v292-work-copy span,
html:not(#r382f) .video-overlay,
html:not(#r382f) .yellow-card-copy small,
html:not(#r382f) .yellow-card-copy>span,
html:not(#r382f) .yellow-head button,
html:not(#r382f) .yellow-impact>b,
html:not(#r382f) .yellow-people>b,
html:not(#r382f) .yellow-story button,
html:not(#r382f) .yellow-ticker-track button span,
html:not(#r382f) .zoneSub{font-size:11px!important;line-height:1.38!important}
html:not(#r382f) #personBody.v29-character-experience .v29-info.v292-passport .v29-fact small,
html:not(#r382f) .ai286-btn,
html:not(#r382f) .ai286-kv b,
html:not(#r382f) .ai286-note,
html:not(#r382f) .anigram-strip strong,
html:not(#r382f) .animalgram-head small,
html:not(#r382f) .animalgram-head>span,
html:not(#r382f) .bottom>div,
html:not(#r382f) .budget-bars>div,
html:not(#r382f) .chronicle-empty,
html:not(#r382f) .city-fin-list b,
html:not(#r382f) .city-fin-list span,
html:not(#r382f) .city-gallery-card b,
html:not(#r382f) .culture-card em,
html:not(#r382f) .dark-leader button,
html:not(#r382f) .dark-member,
html:not(#r382f) .dark-member small,
html:not(#r382f) .dark-small-btn,
html:not(#r382f) .dark-tab,
html:not(#r382f) .dark-toolbar button,
html:not(#r382f) .demo-head h3,
html:not(#r382f) .district-detailbar-v169 .stat small,
html:not(#r382f) .district-name span,
html:not(#r382f) .edge,
html:not(#r382f) .eni-story-copy>span,
html:not(#r382f) .eni-story-people button,
html:not(#r382f) .facet h4,
html:not(#r382f) .fin-asset b,
html:not(#r382f) .fin-asset strong,
html:not(#r382f) .fin-property,
html:not(#r382f) .finance-hero span,
html:not(#r382f) .form label,
html:not(#r382f) .lifecard b,
html:not(#r382f) .live,
html:not(#r382f) .networth em,
html:not(#r382f) .newsmini time,
html:not(#r382f) .person-political-inline b,
html:not(#r382f) .pol-capital-card h4,
html:not(#r382f) .pol-event b,
html:not(#r382f) .pol-media-card b{font-size:12px!important;line-height:1.38!important}
html:not(#r382f) .pol-party-head b,
html:not(#r382f) .pol-poll-row b,
html:not(#r382f) .pol-society-card h4,
html:not(#r382f) .powerscore,
html:not(#r382f) .private-layer .private-body ul,
html:not(#r382f) .private-layer summary,
html:not(#r382f) .r106-kpi-grid>div,
html:not(#r382f) .r107-kgrid>div,
html:not(#r382f) .r300-actions button,
html:not(#r382f) .r300-generating,
html:not(#r382f) .r300-health section span,
html:not(#r382f) .r300-yellow-layout aside button,
html:not(#r382f) .r310-editor .danger,
html:not(#r382f) .r310-editor label,
html:not(#r382f) .r310-forbes .income span,
html:not(#r382f) .r310-forbes .who small,
html:not(#r382f) .r310-title small,
html:not(#r382f) .r312-bar,
html:not(#r382f) .r312-card-head small,
html:not(#r382f) .r312-card-kpis small,
html:not(#r382f) .r312-forbes small,
html:not(#r382f) .r312-influence section>small,
html:not(#r382f) .r312-kpis small,
html:not(#r382f) .r312-move,
html:not(#r382f) .r312-rankbox small,
html:not(#r382f) .r312-rankbox span,
html:not(#r382f) .r312-residents em,
html:not(#r382f) .r312-residents small,
html:not(#r382f) .r313-editor .danger,
html:not(#r382f) .r313-editor .empty,
html:not(#r382f) .r313-viewer-head span,
html:not(#r382f) .r338-kpis>div,
html:not(#r382f) .r368-card small,
html:not(#r382f) .r373-dashboard>header small,
html:not(#r382f) .r373-idcopy>small,
html:not(#r382f) .r373-media span,
html:not(#r382f) .r373-tile-copy em,
html:not(#r382f) .r376-lifecycle small,
html:not(#r382f) .r376-mem-list small,
html:not(#r382f) .r376-yp-card span{font-size:12px!important;line-height:1.38!important}
html:not(#r382f) .r6-event-list b,
html:not(#r382f) .r6-lightbox-caption,
html:not(#r382f) .r7-picker-tools input,
html:not(#r382f) .r7-picker-tools select,
html:not(#r382f) .resident-note,
html:not(#r382f) .sidebar-video-screen .screen-copy b,
html:not(#r382f) .soc-charter,
html:not(#r382f) .soc-drama small,
html:not(#r382f) .soc-empty,
html:not(#r382f) .soc-fund-list b,
html:not(#r382f) .soc-person b,
html:not(#r382f) .soc-private-list b,
html:not(#r382f) .social-empty,
html:not(#r382f) .social-rel-empty,
html:not(#r382f) .society-hero small,
html:not(#r382f) .society-intro small,
html:not(#r382f) .t320-envelope .count,
html:not(#r382f) .t320-group-btn,
html:not(#r382f) .t320-layer-grid label,
html:not(#r382f) .taxpayer-list span b,
html:not(#r382f) .toast,
html:not(#r382f) .toprow b,
html:not(#r382f) .v287-version-pill,
html:not(#r382f) .v29-pbfe-note,
html:not(#r382f) .v292-demo-hero span,
html:not(#r382f) .v292-demo-kpis span,
html:not(#r382f) .v292-map-layers h4,
html:not(#r382f) .v292-metric b,
html:not(#r382f) .v292-month h4 span,
html:not(#r382f) .v292-security-page>header span,
html:not(#r382f) .v292-slot-tools button,
html:not(#r382f) .v292-work-copy small,
html:not(#r382f) .yellow-ticker-track button,
html:not(#r382f) >.chronicle-anigram-link{font-size:12px!important;line-height:1.38!important}
html:not(#r382f) #personBody.r295-character .v29-info.v292-passport .v29-fact small,
html:not(#r382f) #r330PeopleDirectory .r330-pcard .ptext b,
html:not(#r382f) #r338Lang.r338-lang,
html:not(#r382f) #t320LayersButton,
html:not(#r382f) .ai286-trait b,
html:not(#r382f) .ani-meta,
html:not(#r382f) .animal-empty,
html:not(#r382f) .animal-post .animal-fallback,
html:not(#r382f) .animal-post .animal-portraits img,
html:not(#r382f) .animal-post b,
html:not(#r382f) .author-grid label,
html:not(#r382f) .avatar.more,
html:not(#r382f) .brandword small,
html:not(#r382f) .chips span,
html:not(#r382f) .city-fin-page h3,
html:not(#r382f) .culture-card small,
html:not(#r382f) .culture-hero span,
html:not(#r382f) .dark-card small,
html:not(#r382f) .dark-member b,
html:not(#r382f) .dark-newsline,
html:not(#r382f) .dark-rel,
html:not(#r382f) .dark-scenario,
html:not(#r382f) .datetime,
html:not(#r382f) .district-block-head small,
html:not(#r382f) .district-detailbar-v169 .loc span,
html:not(#r382f) .district-person-tile b,
html:not(#r382f) .eni-frame-people strong,
html:not(#r382f) .eni-frame-title,
html:not(#r382f) .facet ul,
html:not(#r382f) .fin-break b,
html:not(#r382f) .fin-grid h3,
html:not(#r382f) .gl-person em,
html:not(#r382f) .gov-social-intro span,
html:not(#r382f) .influence-row small,
html:not(#r382f) .pol-card-copy b,
html:not(#r382f) .pol-poll-row span,
html:not(#r382f) .pol-state-card b,
html:not(#r382f) .ptext b,
html:not(#r382f) .r295-health header small,
html:not(#r382f) .r295-health-grid small{font-size:12.5px!important;line-height:1.38!important}
html:not(#r382f) .r295-health-grid span,
html:not(#r382f) .r295-system-health,
html:not(#r382f) .r300-error,
html:not(#r382f) .r300-layout aside h3,
html:not(#r382f) .r300-layout aside small,
html:not(#r382f) .r300-photo-lightbox span,
html:not(#r382f) .r300-story-head small,
html:not(#r382f) .r300-story-head>span,
html:not(#r382f) .r300-yellow-layout aside h3,
html:not(#r382f) .r310-photo-viewer figcaption,
html:not(#r382f) .r310-res-grid b,
html:not(#r382f) .r310-title>b,
html:not(#r382f) .r312-capital span,
html:not(#r382f) .r312-card-head>span,
html:not(#r382f) .r312-empty,
html:not(#r382f) .r312-fin-event,
html:not(#r382f) .r312-finance .net span,
html:not(#r382f) .r312-forbes span,
html:not(#r382f) .r312-influence ul,
html:not(#r382f) .r312-note,
html:not(#r382f) .r312-residents>button>strong,
html:not(#r382f) .r313-editor-media header b,
html:not(#r382f) .r313-stage-badge b,
html:not(#r382f) .r313-viewer-head b,
html:not(#r382f) .r313-zoom-tools #r313ZoomLabel,
html:not(#r382f) .r334-audit,
html:not(#r382f) .r366-head span,
html:not(#r382f) .r366-major>header span,
html:not(#r382f) .r368-summary span,
html:not(#r382f) .r373-meta span,
html:not(#r382f) .r376-eight-banner span,
html:not(#r382f) .r376-kpi-frame,
html:not(#r382f) .r376-life-stages span,
html:not(#r382f) .r6-bar-row span,
html:not(#r382f) .r6-bond-grid b,
html:not(#r382f) .r6-crisis-impact b,
html:not(#r382f) .r6-event-list strong,
html:not(#r382f) .r6-forbes-row small,
html:not(#r382f) .r6-lightbox-empty,
html:not(#r382f) .r6-news-impact b{font-size:12.5px!important;line-height:1.38!important}
html:not(#r382f) .r6-panel small,
html:not(#r382f) .r6-tourism b,
html:not(#r382f) .r7-day,
html:not(#r382f) .r7-event-row b,
html:not(#r382f) .r7-meeting-row b,
html:not(#r382f) .r7-memory b,
html:not(#r382f) .r7-panel small,
html:not(#r382f) .r7-story-side h3,
html:not(#r382f) .resident-card b,
html:not(#r382f) .sim-calendar h4,
html:not(#r382f) .soc-group-card>div>strong,
html:not(#r382f) .t320-card .info b,
html:not(#r382f) .t320-event-col>header,
html:not(#r382f) .t320-family>header b,
html:not(#r382f) .toprow strong,
html:not(#r382f) .v285-biz-fin-grid b,
html:not(#r382f) .v287-gallery-controls button,
html:not(#r382f) .v29-fact small,
html:not(#r382f) .v29-legacy-dashboard-note,
html:not(#r382f) .v29-placeholder:after,
html:not(#r382f) .v29-slide-copy .eyebrow,
html:not(#r382f) .v29-status,
html:not(#r382f) .v292-demo-grid h3,
html:not(#r382f) .v292-demo-pulse,
html:not(#r382f) .v292-forbes-status b,
html:not(#r382f) .v292-security-empty,
html:not(#r382f) .v292-security-event b,
html:not(#r382f) .v292-security-head h3,
html:not(#r382f) .v292-slot-empty small,
html:not(#r382f) .video-launch,
html:not(#r382f) .yellow-card-copy span,
html:not(#r382f) .yellow-empty span,
html:not(#r382f) .yellow-ticker-brand{font-size:12.5px!important;line-height:1.38!important}
html:not(#r382f) .ani-copy>p,
html:not(#r382f) .anigram-live-head p,
html:not(#r382f) .pol-district-detail p,
html:not(#r382f) .pol-event p,
html:not(#r382f) .pol-mayor-meter p,
html:not(#r382f) .pol-party-card.full p,
html:not(#r382f) .pol-practice-card p{font-size:13px!important;line-height:1.38!important}
html:not(#r382f) .ai286-panel li,
html:not(#r382f) .ai286-panel p,
html:not(#r382f) .anigram-strip p,
html:not(#r382f) .animal-post p,
html:not(#r382f) .chronicle-copy p,
html:not(#r382f) .dark-card li,
html:not(#r382f) .dark-card p,
html:not(#r382f) .dark-district p,
html:not(#r382f) .dark-leader p,
html:not(#r382f) .eni-dialogs p,
html:not(#r382f) .eni-story-head p,
html:not(#r382f) .facet p,
html:not(#r382f) .finance-hero p,
html:not(#r382f) .gallery-intro p,
html:not(#r382f) .global-anigram-card.r6-anigram-card .ani-copy>p,
html:not(#r382f) .pol-hero p,
html:not(#r382f) .private-layer .private-body p,
html:not(#r382f) .r107-cap p,
html:not(#r382f) .r107-pol p,
html:not(#r382f) .r300-layout aside p,
html:not(#r382f) .r300-yellow-layout aside p,
html:not(#r382f) .r310-influence-card header p,
html:not(#r382f) .r310-influence-card section p,
html:not(#r382f) .r312-card-intelligence>p,
html:not(#r382f) .r312-influence header p,
html:not(#r382f) .r312-logic p,
html:not(#r382f) .r338-politics p,
html:not(#r382f) .r6-crisis-card p,
html:not(#r382f) .r6-dashboard-head p,
html:not(#r382f) .r7-head p,
html:not(#r382f) .r7-yellow-copy p,
html:not(#r382f) .soc-drama p,
html:not(#r382f) .soc-group-card p,
html:not(#r382f) .soc-president p,
html:not(#r382f) .soc-private>p,
html:not(#r382f) .social-head p,
html:not(#r382f) .society-hero p,
html:not(#r382f) .society-intro p,
html:not(#r382f) .t320-event p,
html:not(#r382f) .t320-request p{font-size:14px!important;line-height:1.38!important}
html:not(#r382f) .t320-structure-card p,
html:not(#r382f) .v285-budget-extra p,
html:not(#r382f) .v287-gallery-head p,
html:not(#r382f) .v292-demo-hero p,
html:not(#r382f) .v292-forbes-head p,
html:not(#r382f) .v292-primary-slide .v29-slide-copy p,
html:not(#r382f) .v292-security-page>header p,
html:not(#r382f) .yellow-card-copy p,
html:not(#r382f) .yellow-head p,
html:not(#r382f) .yellow-story header p{font-size:14px!important;line-height:1.38!important}
/* explicit leftovers (ID-scoped / font shorthand) */
html:not(#r382f) #r338Lang.r338-lang,html:not(#r382f) #r338Lang.r338-lang span,html:not(#r382f) #r338Lang.r338-lang i{font-size:12.5px!important}
html:not(#r382f) #r295SystemHealth.r295-system-health{font-size:12px!important;line-height:1.1!important}
html:not(#r382f) .v292-forbes-status .forbes-wordmark{font-size:17px!important;line-height:1!important}
html:not(#r382f) .status small:not(.forbes-wordmark){font-size:12px!important;line-height:1.3!important}
html:not(#r382f) .pill{font-size:max(12px,1em)}
/* layers plaque: keep it visually UNDER the map in the flex dashboard */
.dashboard.map-dashboard-v165 > .r382-layers-bar{order:1!important}

/* Mobile: one step larger everywhere (≤850px) */
@media (max-width:850px){
  html:not(#r382f) :is(.main,.overlaycontent,.modalbox) :is(p,li,dd,blockquote):not(svg *){font-size:15px!important}
  html:not(#r382f) :is(.main,.overlaycontent,.modalbox) :is(small,em,.meta):not(svg *){font-size:max(12.5px,1em)}
  html:not(#r382f) .speedcontrols :is(button,b,small){font-size:12px!important}
  html:not(#r382f) .sidebar .nav button{font-size:15px!important}
  /* UA/EN switch was hidden under the fixed mobile bar (z 8 < 70) */
  html:not(#r382f) #r382MobileBar #r338Lang.r338-lang{position:static!important;margin:0 0 0 auto!important;transform:none!important;min-width:0!important;min-height:38px!important;padding:6px 10px!important;color:#e6c477!important;background:rgba(4,16,26,.92)!important;flex:0 0 auto}
  /* version / system-health pill: smaller, tucked to bottom corner */
  html:not(#r382f) #r295SystemHealth.r295-system-health{bottom:12px!important;right:10px!important;padding:6px 10px!important;opacity:.82}
}

/* v383b: remove the caption plate "КАНОНІЧНИЙ ДАШБОРД / Дашборд без обрізання · клік = читати / zoom" over the dashboard image (desktop + mobile). Stage click-to-zoom unchanged. */
html:not(#r383b) .r313-stage .r313-stage-badge,html:not(#r383b) .r313-stage-badge{display:none!important}
