/* Portal EMS — EMS UI FINAL (FACTO-style + EMS brand) v4 [20260302_emsfix5]
   Objetivo:
   - Colores EMS (navy/azul/cian) en claro/oscuro
   - Sidebar fijo con accordion
   - Sin colapso
   - Scroll del sidebar sin barra visible
   - Overlay SOLO móvil
   - Desactivar fondo blur (foto + overlays) para look más limpio
*/

/* ===== Brand tokens ===== */
:root{
  --ems-navy:#003366;
  --ems-blue:#00509e;
  --ems-cyan:#00a5cf;

  /* Desactiva foto blur del app.css */
  --bg-photo: none;
  --bg-photo-opacity: 0;
}

/* ===== Theme tokens (integrados con app.css) ===== */
:root:not([data-theme="dark"]),
:root[data-theme="light"]{
  --bg: #f6f8fb;
  --bg-elev: rgba(255,255,255,.92);
  --card: #ffffff;
  --card-border: rgba(15,23,42,.10);
  --text: #0b1220;
  --muted: rgba(15,23,42,.62);
  --link: var(--ems-blue);

  /* Topbar minimal (claro) */
  --topbar: #ffffff;
  --topbar-border: rgba(15,23,42,.10);
  --topbar-text: #0b1220;
  --topbar-muted: rgba(15,23,42,.60);

  /* Hero */
  --hero-a: var(--ems-blue);
  --hero-b: var(--ems-navy);
  --hero-text: rgba(255,255,255,.96);
  --hero-muted: rgba(255,255,255,.78);

  /* Sidebar */
  --sidebar-bg1: var(--ems-navy);
  --sidebar-bg2: #001f3d;
  --sideText: rgba(255,255,255,.93);
  --sideMuted: rgba(255,255,255,.72);
  --sideLine: rgba(255,255,255,.12);
  --sideHover: rgba(255,255,255,.08);
  --sideActive: rgba(0,165,207,.18);
  --sideActiveBorder: rgba(0,165,207,.58);
}

:root[data-theme="dark"]{
  --bg: #0b1422;
  --bg-elev: rgba(15,29,51,.72);
  --card: rgba(15,29,51,.58);
  --card-border: rgba(255,255,255,.10);
  --text: rgba(255,255,255,.92);
  --muted: rgba(255,255,255,.70);
  --link: var(--ems-cyan);

  --topbar: #0f1d33;
  --topbar-border: rgba(255,255,255,.10);
  --topbar-text: rgba(255,255,255,.92);
  --topbar-muted: rgba(255,255,255,.70);

  --hero-a: #0e244b;
  --hero-b: #071327;
  --hero-text: rgba(255,255,255,.96);
  --hero-muted: rgba(255,255,255,.78);

  --sidebar-bg1: #06101f;
  --sidebar-bg2: #0b1a30;
  --sideText: rgba(255,255,255,.93);
  --sideMuted: rgba(255,255,255,.72);
  --sideLine: rgba(255,255,255,.10);
  --sideHover: rgba(255,255,255,.08);
  --sideActive: rgba(0,165,207,.22);
  --sideActiveBorder: rgba(0,165,207,.62);
}

/* ===== Hard-disable blur overlays from app.css ===== */
body::before,
body::after{
  display:none !important;
  content:none !important;
}

/* Base */
html, body{ height:100%; }
body{
  background: var(--bg) !important;
  color: var(--text) !important;
  /* evita cursores custom si el navegador los cachea raro */
  cursor: default !important;
}

/* Links */
a{ color: var(--link); }

/* ===== Topbar (minimal) ===== */
.topbar{
  background: var(--topbar) !important;
  border-bottom: 1px solid var(--topbar-border) !important;
  color: var(--topbar-text) !important;
}
.topbar .brand__name{ color: var(--topbar-text) !important; }

/* Inputs en topbar */
.topbar input,
.topbar select{
  color: var(--topbar-text);
}

/* Botones ícono (mejor contraste en claro) */
:root:not([data-theme="dark"]) .iconbtn,
:root[data-theme="light"] .iconbtn{
  background: rgba(15,23,42,.04) !important;
  border-color: rgba(15,23,42,.10) !important;
}
:root:not([data-theme="dark"]) .iconbtn:hover,
:root[data-theme="light"] .iconbtn:hover{
  background: rgba(15,23,42,.06) !important;
  border-color: rgba(15,23,42,.14) !important;
}
/* Topbar controles (claro): que no se pierdan sobre fondo blanco */
:root:not([data-theme="dark"]) .search input,
:root[data-theme="light"] .search input{
  background: rgba(15,23,42,.04) !important;
  border-color: rgba(15,23,42,.12) !important;
  color: var(--topbar-text) !important;
}
:root:not([data-theme="dark"]) .search input::placeholder,
:root[data-theme="light"] .search input::placeholder{
  color: rgba(15,23,42,.50) !important;
}
:root:not([data-theme="dark"]) .company select,
:root[data-theme="light"] .company select{
  background: rgba(15,23,42,.04) !important;
  border-color: rgba(15,23,42,.12) !important;
  color: var(--topbar-text) !important;
}
:root:not([data-theme="dark"]) .brand__logo,
:root[data-theme="light"] .brand__logo{
  background: rgba(15,23,42,.06) !important;
}

/* Home hero: texto siempre legible */
.homeHero{ color: var(--hero-text) !important; }
.homeHero h1{ color: var(--hero-text) !important; }
.homeHero p{ color: var(--hero-muted) !important; }


/* ===== Cards / Panels ===== */
.card, .panel, .box, .table-wrap, .widget,
.table, .tableWrap, .statCard, .statusCard,
.form, .formCard{
  background: var(--card) !important;
  border-color: var(--card-border) !important;
}

/* ===== Sidebar ===== */
.sidebar{
  background: linear-gradient(180deg, var(--sidebar-bg1), var(--sidebar-bg2)) !important;
  border: 1px solid var(--sideLine) !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.18) !important;
}

.sidebar .sidebar__title{
  color: var(--sideText) !important;
}

/* Ocultar scrollbar visual pero mantener scroll */
.sidebar{
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
  -webkit-overflow-scrolling: touch;
}
.sidebar::-webkit-scrollbar{ width:0 !important; height:0 !important; }

/* Nav groups (accordion) */
.sidebar .navGroup__title{
  color: var(--sideMuted) !important;
  background: rgba(255,255,255,.04) !important;
  border-color: var(--sideLine) !important;
}

/* Links */
.sidebar .nav a{
  color: var(--sideText) !important;
}
.sidebar .nav a:hover{
  background: var(--sideHover) !important;
}
.sidebar .nav a.active{
  background: var(--sideActive) !important;
  border-color: var(--sideActiveBorder) !important;
}

/* ===== No collapse — safety ===== */
html[data-sidebar="collapsed"]{
  --sidebar-w: 240px !important;
}
html[data-sidebar="collapsed"] .sidebar{
  width: var(--sidebar-w) !important;
  min-width: var(--sidebar-w) !important;
  max-width: var(--sidebar-w) !important;
}

/* ===== Overlay (solo móvil) ===== */
.sidebar-overlay{
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.50);
  z-index: 60;
  display: none;
}
@media (min-width:1025px){
  .sidebar-overlay{ display:none !important; }
}

/* ===== Mobile drawer ===== */
@media (max-width:1024px){
  .sidebar{
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    height: 100vh !important;
    width: 290px !important;
    min-width: 290px !important;
    max-width: 290px !important;
    transform: translateX(-110%);
    transition: transform .22s ease;
    border-radius: 0 !important;
    z-index: 70 !important;
    padding-top: 78px !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  body.sidebar-open .sidebar{ transform: translateX(0); }
  body.sidebar-open .sidebar-overlay{ display:block; }
}

/* ===== Mobile small (iPhone SE / <=420px) ===== */
@media (max-width:420px){
  /* Topbar: evitar solapes (logo + iconos + perfil) */
  .topbar{
    height: auto !important;
    padding: 10px 12px !important;
    gap: 10px !important;
    flex-wrap: wrap !important;
    align-items: flex-start !important;
  }

  /* Evita que el contenido quede debajo del topbar alto */
  .main{ padding-top: 112px !important; }
  .topbar__left, .topbar__right{
    min-width: 0;
    gap: 10px !important;
  }

  /* El buscador grande no cabe en SE: se oculta */
  .topbar .search{ display:none !important; }

  /* Selector de empresa en fila completa */
  .topbar .company{ width: 100% !important; }
  .topbar .company select{ width: 100% !important; }

  /* Perfil compacto */
  .profile__meta{ display:none !important; }
  .profileBtn__name{ display:none !important; }

  /* Botones más compactos */
  .iconbtn{ border-radius: 12px !important; padding: 8px 10px !important; }

  /* Hero/banner más compacto */
  .hero{ padding: 22px 16px !important; border-radius: 18px !important; }
  .hero h1{ font-size: 30px !important; line-height: 1.05 !important; }
  .hero p{ font-size: 14px !important; }

  /* Drawer + safe areas */
  .sidebar{
    width: min(88vw, 320px) !important;
    min-width: min(88vw, 320px) !important;
    max-width: min(88vw, 320px) !important;
    padding-top: calc(78px + env(safe-area-inset-top)) !important;
    padding-bottom: calc(12px + env(safe-area-inset-bottom)) !important;
  }
}

/* ===== Hero/banner: texto siempre legible ===== */
.home-hero, .hero, .hero-card, .hero-banner, .welcome, .welcome-card, .welcome-banner,
.greeting, .greeting-card, .greeting-banner, .dashboard-hero, .banner, .banner-hero{
  color: var(--hero-text) !important;
}
.home-hero *, .hero *, .hero-card *, .hero-banner *, .welcome *, .welcome-card *, .welcome-banner *,
.greeting *, .greeting-card *, .greeting-banner *, .dashboard-hero *, .banner *, .banner-hero *{
  color: var(--hero-text) !important;
}

/* Chips/badges */
.badge, .tag, .pill, .chip{
  border: 1px solid var(--card-border) !important;
  background: rgba(0,0,0,.03) !important;
  color: var(--text) !important;
}
:root[data-theme="dark"] .badge,
:root[data-theme="dark"] .tag,
:root[data-theme="dark"] .pill,
:root[data-theme="dark"] .chip{
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.12) !important;
  color: rgba(255,255,255,.88) !important;
}

/* ===== Product polish pack — menu + dashboard ===== */
.sidebarCompany{
  margin: 8px 2px 14px;
  padding: 14px 14px 12px;
  border-radius: 16px;
  border: 1px solid var(--sideLine);
  background: rgba(255,255,255,.06);
}
.sidebarCompany__label{
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--sideMuted);
  margin-bottom: 6px;
}
.sidebarCompany__name{
  font-weight: 800;
  color: var(--sideText);
  line-height: 1.2;
}
.sidebarCompany__meta{
  margin-top: 6px;
  color: var(--sideMuted);
  font-size: 12px;
  line-height: 1.4;
}

.sidebar .nav a{
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.sidebar .nav .ico{
  width: 30px;
  min-width: 30px;
  display: inline-flex;
  justify-content: center;
  align-items: center;
  font-size: 16px;
  margin-top: 2px;
}
.labelWrap{
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.labelWrap .label{
  font-weight: 700;
  color: inherit;
}
.labelWrap .sub{
  font-size: 12px;
  line-height: 1.35;
  color: var(--sideMuted);
}
.sidebar .nav a.active .sub{
  color: rgba(255,255,255,.92);
}

.dashboardHero .hero__eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  margin-bottom: 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.08);
  color: var(--hero-text);
  font-size: 12px;
  font-weight: 700;
}

.kpiGrid{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 14px;
  margin: 16px 0 18px;
}
@media (max-width: 1200px){
  .kpiGrid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px){
  .kpiGrid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .kpiGrid{ grid-template-columns: 1fr; }
}
.kpiCard{
  border-radius: 18px;
  border: 1px solid var(--card-border);
  background: var(--card);
  box-shadow: var(--shadow-sm);
  padding: 16px 16px 14px;
}
.kpiCard__label{
  font-size: 12px;
  letter-spacing: .04em;
  text-transform: uppercase;
  color: var(--muted);
}
.kpiCard__value{
  margin-top: 10px;
  font-size: 34px;
  line-height: 1;
  font-weight: 900;
}
.kpiCard__meta{
  margin-top: 8px;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.4;
}
.kpiCard--warn{
  border-color: rgba(245, 158, 11, .26);
}

.priorityList,
.deadlineList{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.priorityItem,
.deadlineItem{
  display: flex;
  align-items: center;
  gap: 12px;
  border: 1px solid var(--card-border);
  border-radius: 16px;
  padding: 12px;
  background: rgba(255,255,255,.03);
}
.priorityItem__icon{
  width: 40px;
  height: 40px;
  min-width: 40px;
  border-radius: 12px;
  display: grid;
  place-items: center;
  background: rgba(0,165,207,.12);
  font-size: 18px;
}
.priorityItem__body,
.deadlineItem__body{
  min-width: 0;
  flex: 1;
}
.priorityItem__title,
.deadlineItem__title{
  font-weight: 800;
}
.priorityItem__text,
.deadlineItem__text{
  margin-top: 3px;
  font-size: 13px;
}
.deadlineItem__date{
  width: 54px;
  min-width: 54px;
  border-radius: 14px;
  padding: 8px 6px;
  text-align: center;
  background: rgba(0,165,207,.12);
  border: 1px solid rgba(0,165,207,.18);
}
.deadlineItem__day{
  display: block;
  font-size: 22px;
  line-height: 1;
  font-weight: 900;
}
.deadlineItem__month{
  display: block;
  margin-top: 4px;
  font-size: 11px;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--muted);
}

.dashboardTopGrid,
.dashboardStatesGrid{
  margin-top: 18px;
}
.auditList--rich li{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 10px 0;
  border-bottom: 1px solid var(--card-border);
}
.auditList--rich li:last-child{
  border-bottom: 0;
}

@media (max-width: 640px){
  .priorityItem,
  .deadlineItem{
    align-items: flex-start;
  }
  .priorityItem{
    flex-wrap: wrap;
  }
  .priorityItem .btn{
    width: 100%;
  }
}

/* ===== V2 visual order pack [20260313_ordered] ===== */
:root{
  --content-max: 1360px;
  --section-gap: 26px;
}

.main{
  max-width: var(--content-max) !important;
  padding-inline: 28px !important;
}
.main > * + *{
  margin-top: var(--section-gap);
}
@media (max-width: 900px){
  .main{
    padding-inline: 18px !important;
  }
  .main > * + *{
    margin-top: 20px;
  }
}

/* Topbar más limpia y estable */
.topbar{
  gap: 16px !important;
  padding-inline: 22px !important;
  min-height: 74px !important;
  align-items: center !important;
}
.topbar__left,
.topbar__right{
  gap: 10px !important;
}
.topbar__left{
  flex: 1 1 auto !important;
  min-width: 0 !important;
}
.topbar__right{
  flex: 0 0 auto !important;
}
.topbar .brand{
  flex: 0 0 auto;
  padding-right: 2px;
}
.topbar .search{
  flex: 1 1 440px;
  min-width: 200px;
  max-width: 560px;
}
.topbar .search input{
  width: 100% !important;
  max-width: none !important;
  height: 42px;
}
.topbar .company{
  max-width: 250px;
}
.topbar .company select{
  min-width: 220px;
  height: 42px;
}
.iconbtn,
.profileBtn{
  min-height: 42px;
}
.profileBtn{
  padding-inline: 12px !important;
}

/* Sidebar más aireado */
.sidebar{
  padding-inline: 12px !important;
}
.sidebar__head{
  padding-bottom: 8px;
}
.sidebarCompany{
  margin: 10px 2px 18px;
  padding: 15px 15px 13px;
  border-radius: 18px;
}
.sidebar .navGroup{
  margin-top: 12px !important;
}
.sidebar .navGroup__title{
  border-radius: 14px !important;
  padding: 12px 14px !important;
  font-weight: 800;
}
.sidebar .navGroup__items{
  padding-top: 8px;
}
.sidebar .nav a{
  min-height: 54px;
  padding: 12px 12px !important;
  border-radius: 16px !important;
  align-items: center !important;
}
.sidebar .nav .ico{
  width: 34px;
  min-width: 34px;
  height: 34px;
  margin-top: 0;
  border-radius: 12px;
  background: rgba(255,255,255,.08);
}
.labelWrap{
  gap: 3px;
}
.labelWrap .label{
  font-size: 14px;
}
.labelWrap .sub{
  font-size: 11.5px;
  line-height: 1.35;
}
.sidebar .nav a.active .ico{
  background: rgba(0,165,207,.18);
}

/* Hero más compacto */
.dashboardHero--airy{
  padding: 26px 28px !important;
  border-radius: 24px !important;
}
.dashboardHero__content{
  max-width: 900px;
}
.dashboardHero--airy h1{
  font-size: clamp(2rem, 3.4vw, 3.35rem) !important;
  line-height: 1.04 !important;
}
.dashboardHero--airy p{
  max-width: 720px;
  font-size: 15px;
}
.heroQuickActions{
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}
.heroQuickActions .btn{
  min-height: 42px;
}

/* KPI más respirados */
.kpiGrid--airy{
  margin-top: 0 !important;
  gap: 16px !important;
}
.kpiCard{
  border-radius: 20px;
  padding: 18px 18px 16px;
}
.kpiCard__value{
  margin-top: 12px;
}
.kpiCard__meta{
  margin-top: 10px;
  line-height: 1.45;
}

/* Dashboard en columna principal + aside */
.dashboardShell{
  display: grid;
  grid-template-columns: minmax(0, 1.45fr) minmax(300px, .82fr);
  gap: 22px;
  align-items: start;
}
.dashboardMainCol,
.dashboardSideCol{
  display: flex;
  flex-direction: column;
  gap: 22px;
}
@media (max-width: 1080px){
  .dashboardShell{
    grid-template-columns: 1fr;
  }
}

.card{
  border-radius: 22px !important;
  padding: 24px !important;
}
.card__head--airy{
  margin-bottom: 18px !important;
  gap: 16px !important;
}
.card__head h2{
  font-size: 19px;
}
.card__head p{
  line-height: 1.45;
}

.priorityList--airy,
.deadlineList--airy,
.procSummary--airy{
  gap: 14px !important;
}
.priorityItem--airy,
.deadlineItem--airy{
  padding: 14px !important;
  border-radius: 18px !important;
}
.priorityItem__icon{
  width: 44px;
  height: 44px;
  min-width: 44px;
  border-radius: 14px;
}
.priorityItem__title,
.deadlineItem__title,
.procRow__title,
.timeline__label{
  letter-spacing: -.01em;
}
.priorityItem__text,
.deadlineItem__text,
.procRow__meta,
.procDetail__meta{
  line-height: 1.45;
}

.procRow{
  padding: 15px 16px !important;
  border-radius: 18px !important;
}
.procRow__main{
  min-width: 0;
}
.procRow__right{
  padding-left: 8px;
}

.procDetail--airy{
  padding-top: 2px;
}
.procDetail__head{
  margin-bottom: 16px !important;
}
.procDetail__title{
  font-size: 20px !important;
}
.timeline--airy{
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
}
.timeline--airy .timeline__step{
  padding: 14px 14px 13px;
  border-radius: 16px;
}
.timeline--airy .timeline__dot{
  margin-bottom: 10px;
}
@media (max-width: 620px){
  .timeline--airy{
    grid-template-columns: 1fr !important;
  }
}

.missing--airy{
  margin-top: 16px !important;
  padding-top: 14px !important;
}
.missing__items{
  gap: 10px !important;
}
.callout{
  margin-top: 16px !important;
  padding: 14px 16px !important;
  border-radius: 18px !important;
}

.sideCard{
  position: sticky;
  top: calc(var(--topbar-fixed-h) + 16px);
}
.dashboardSideCol .sideCard + .sideCard{
  position: static;
}
.auditList--airy li{
  padding: 12px 0 !important;
}

.tableWrap--airy{
  border-radius: 18px;
  overflow: hidden;
}
.table--airy th,
.table--airy td{
  padding-top: 14px !important;
  padding-bottom: 14px !important;
  vertical-align: middle;
}
.table--airy td:first-child,
.table--airy th:first-child{
  padding-left: 14px;
}
.table--airy td:last-child,
.table--airy th:last-child{
  padding-right: 14px;
}
.tableWrap--stacked table{
  min-width: 100%;
}

/* Página de solicitudes más liviana */
.pageHead{
  margin-bottom: 22px !important;
}
.pageHead p{
  max-width: 720px;
  line-height: 1.45;
}
.form{
  gap: 18px !important;
}
.form label > span:first-child{
  margin-bottom: 8px;
  display: inline-block;
}
.kv__row{
  padding: 12px 0;
}
.chatMsg{
  padding: 14px 15px;
  border-radius: 16px;
}

/* Móvil */
@media (max-width: 860px){
  .topbar{
    padding-inline: 14px !important;
  }
  .topbar .search{
    min-width: 0;
  }
  .topbar .company{
    max-width: none;
  }
  .dashboardHero--airy{
    padding: 22px 18px !important;
  }
  .card{
    padding: 18px !important;
  }
}
@media (max-width: 520px){
  .heroQuickActions{
    gap: 8px;
  }
  .heroQuickActions .btn{
    width: 100%;
    justify-content: center;
  }
  .sidebar .nav a{
    min-height: 50px;
  }
}


/* ===== V3 Flows: Documentos + Solicitudes + Operación ===== */
.pageHead--spacious{ margin-bottom: 18px; }
.pageHead__actions{ display:flex; gap:10px; flex-wrap:wrap; }

.card--airy{ padding: 24px; border-radius: 22px; }
.card__head--airy{ margin-bottom: 18px; }
.tabs--airy{ margin-bottom: 18px; }

.portalSplit{
  display:grid;
  grid-template-columns: minmax(0, 1.7fr) minmax(300px, .95fr);
  gap: 20px;
  align-items:start;
}
.portalSplit__main, .portalSplit__side{ min-width:0; }
.stackCol{ display:flex; flex-direction:column; gap:20px; }

.miniStats{
  display:grid;
  gap:14px;
  margin-bottom: 18px;
}
.miniStats--3{ grid-template-columns: repeat(3, minmax(0,1fr)); }
.miniStats--4{ grid-template-columns: repeat(4, minmax(0,1fr)); }
.miniStats--5{ grid-template-columns: repeat(5, minmax(0,1fr)); }

.miniStat{
  border:1px solid var(--card-border);
  background: var(--card);
  border-radius: 18px;
  padding: 16px 18px;
  box-shadow: 0 8px 24px rgba(15,23,42,.05);
}
.miniStat--soft{
  background: linear-gradient(180deg, rgba(0,80,158,.05), rgba(0,165,207,.04));
}
.miniStat--warn{
  background: linear-gradient(180deg, rgba(245,158,11,.09), rgba(245,158,11,.03));
}
.miniStat__label{
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 6px;
}
.miniStat__value{
  font-size: 28px;
  font-weight: 800;
  line-height: 1.05;
  color: var(--text);
}
.miniStat__value--sm{
  font-size: 18px;
  line-height: 1.2;
}
.miniStat__meta{
  margin-top: 8px;
  font-size: 13px;
  color: var(--muted);
}

.featureGrid{
  display:grid;
  gap: 14px;
}
.featureGrid--4{
  grid-template-columns: repeat(4, minmax(0,1fr));
}
.featureCard{
  border:1px solid var(--card-border);
  border-radius: 18px;
  padding: 18px;
  background: rgba(255,255,255,.55);
}
:root[data-theme="dark"] .featureCard{
  background: rgba(255,255,255,.03);
}
.featureCard--soft{
  background: linear-gradient(180deg, rgba(0,80,158,.05), rgba(255,255,255,.55));
}
:root[data-theme="dark"] .featureCard--soft{
  background: linear-gradient(180deg, rgba(0,165,207,.08), rgba(255,255,255,.03));
}
.featureCard__icon{
  font-size: 22px;
  margin-bottom: 12px;
}
.featureCard__title{
  font-weight: 800;
  margin-bottom: 6px;
}
.featureCard__text{ font-size: 14px; }

.featureStack{
  display:flex;
  flex-direction:column;
  gap: 14px;
}
.featureLine{
  display:flex;
  gap: 12px;
  align-items:flex-start;
}
.featureLine__icon{
  width: 42px;
  height: 42px;
  border-radius: 14px;
  display:grid;
  place-items:center;
  background: rgba(0,80,158,.10);
  flex: 0 0 42px;
}
:root[data-theme="dark"] .featureLine__icon{
  background: rgba(0,165,207,.12);
}
.featureLine__title{
  font-weight: 700;
  margin-bottom: 4px;
}
.featureLine__text{ font-size: 14px; }

.softList{
  display:flex;
  flex-direction:column;
  gap: 12px;
}
.softList__item{
  padding: 14px 0;
  border-top: 1px solid var(--card-border);
}
.softList__item:first-child{ border-top: 0; padding-top: 0; }
.softList__title{
  font-weight: 700;
  margin-bottom: 4px;
}
.softList__text{
  font-size: 14px;
  line-height: 1.55;
}

.tagRow{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.tag--soft{
  background: rgba(0,80,158,.08);
  border: 1px solid rgba(0,80,158,.12);
}
:root[data-theme="dark"] .tag--soft{
  background: rgba(0,165,207,.10);
  border-color: rgba(0,165,207,.16);
}

.rowActions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.table__actions{ text-align:right; }
.table--airy th,
.table--airy td{ padding: 15px 16px; }
.tableTitle{
  font-weight: 700;
  color: var(--text);
}
.tableSub{
  font-size: 13px;
  margin-top: 2px;
}

.emptyState{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding: 26px 16px;
  min-height: 180px;
  gap: 8px;
}
.emptyState--inline{
  min-height: unset;
  flex-direction:row;
  justify-content:flex-start;
  text-align:left;
  padding: 20px 0;
}
.emptyState__icon{
  font-size: 28px;
}
.emptyState__title{
  font-size: 18px;
  font-weight: 800;
  color: var(--text);
}
.emptyState__text{
  max-width: 560px;
  line-height: 1.55;
}

.infoNote{
  border:1px dashed rgba(0,80,158,.28);
  border-radius: 18px;
  padding: 16px 18px;
  background: rgba(0,80,158,.04);
}
:root[data-theme="dark"] .infoNote{
  border-color: rgba(0,165,207,.24);
  background: rgba(0,165,207,.06);
}
.infoNote__title{
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--muted);
  margin-bottom: 8px;
}
.infoNote__text{
  font-weight: 800;
  margin-bottom: 4px;
}
.infoNote__sub{
  font-size: 13px;
  line-height: 1.5;
}

.form--airy label{ margin-bottom: 14px; display:block; }
.formActions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top: 8px;
}
.formInline{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
}
.formInline--search input[type="search"]{
  min-width: 280px;
  flex:1 1 280px;
}

.hero--airy .heroQuickActions{
  margin-top: 18px;
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.hero--airy h1 span{ display:block; }

.hrGrid--airy{
  gap: 14px;
}
.hrCard--airy{
  padding: 18px;
  border-radius: 20px;
  min-height: 180px;
  display:flex;
  flex-direction:column;
}
.hrCard--airy .hrCard__go{
  margin-top:auto;
  padding-top: 16px;
}

.chat--airy{
  display:flex;
  flex-direction:column;
  gap: 14px;
}
.chatMsg--airy{
  padding: 16px 18px;
  border-radius: 18px;
  border:1px solid var(--card-border);
  background: rgba(255,255,255,.45);
}
:root[data-theme="dark"] .chatMsg--airy{
  background: rgba(255,255,255,.03);
}

.sidebarCompany{
  border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  border-radius: 18px;
  padding: 14px 14px 16px;
  margin: 4px 4px 16px;
}
.sidebarCompany__label{
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--sideMuted);
  margin-bottom: 6px;
}
.sidebarCompany__name{
  color: var(--sideText);
  font-weight: 800;
  margin-bottom: 4px;
}
.sidebarCompany__meta{
  color: var(--sideMuted);
  font-size: 12px;
  line-height: 1.4;
}

.sidebar .nav a{
  min-height: 50px;
  padding: 10px 12px;
  border-radius: 16px;
}
.sidebar .nav a .label{
  font-weight: 700;
}
.sidebar .nav a .sub{
  margin-top: 2px;
  line-height: 1.3;
}
.sidebar .navGroup{
  margin-bottom: 10px;
}
.sidebar .navGroup__title{
  border-radius: 14px;
  padding: 10px 12px;
}

@media (max-width: 1180px){
  .featureGrid--4{ grid-template-columns: repeat(2, minmax(0,1fr)); }
  .miniStats--5{ grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 980px){
  .portalSplit{ grid-template-columns: 1fr; }
  .miniStats--3,
  .miniStats--4,
  .miniStats--5{ grid-template-columns: repeat(2, minmax(0,1fr)); }
}
@media (max-width: 640px){
  .miniStats--3,
  .miniStats--4,
  .miniStats--5,
  .featureGrid--4{ grid-template-columns: 1fr; }
  .rowActions{
    justify-content:flex-start;
  }
  .emptyState--inline{
    flex-direction:column;
    text-align:center;
    align-items:center;
  }
}

/* === UX uplift pack [20260314] === */
.notifBtnWrap{ position: relative; }
.notifDot{
  position:absolute; top:6px; right:6px; width:10px; height:10px; border-radius:999px;
  background: var(--ems-cyan); box-shadow: 0 0 0 2px #fff;
}

.insightGrid{
  display:grid;
  grid-template-columns: minmax(0,1fr) minmax(0,1.1fr);
  gap:16px;
  margin-bottom:18px;
}
.insightGrid--dashboard{ margin-top:18px; }
.scoreCard__main{
  display:flex; align-items:center; gap:16px; margin-bottom:14px;
}
.scoreRing{
  width:96px; height:96px; border-radius:999px; display:grid; place-items:center;
  background: conic-gradient(var(--ems-cyan) 0 72%, rgba(0,80,158,.12) 72% 100%);
  position:relative; flex:0 0 96px;
}
.scoreRing::after{
  content:""; position:absolute; inset:10px; background:#fff; border-radius:999px; border:1px solid rgba(15,23,42,.08);
}
.scoreRing span{ position:relative; z-index:1; font-size:28px; font-weight:800; color:var(--ems-navy); }
.scoreCard__title{ font-weight:700; margin-bottom:4px; }
.summaryGrid{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:10px;
}
.summaryMetric{
  padding:14px; border:1px solid rgba(15,23,42,.08); border-radius:16px; background:linear-gradient(180deg,#fff,rgba(246,248,251,.9));
}
.summaryMetric span{ display:block; color:var(--muted); font-size:13px; margin-bottom:6px; }
.summaryMetric strong{ font-size:28px; letter-spacing:-.04em; }
.summaryCard__foot{ border-top:1px solid rgba(15,23,42,.08); padding-top:12px; }

.statusTiles{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.statusTile{
  border:1px solid rgba(15,23,42,.08); border-radius:18px; padding:16px; background:#fff;
}
.statusTile--ok{ background:linear-gradient(180deg, rgba(240,252,249,.96), #fff); border-color:rgba(16,185,129,.20); }
.statusTile--warn{ background:linear-gradient(180deg, rgba(255,247,237,.96), #fff); border-color:rgba(245,158,11,.22); }
.statusTile--soft{ background:linear-gradient(180deg, rgba(239,246,255,.96), #fff); border-color:rgba(0,80,158,.14); }
.statusTile__top{ display:flex; justify-content:space-between; gap:12px; margin-bottom:10px; align-items:flex-start; }
.statusTile__title{ font-weight:700; }
.statusTile__percent{ font-size:13px; color:var(--muted); }
.statusTile__state{ font-size:18px; font-weight:800; margin-bottom:6px; color:var(--ems-navy); }
.statusTile__text{ font-size:14px; color:var(--muted); line-height:1.45; }

.pendingBoard{
  display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px;
}
.pendingBoard--full{ margin-bottom:18px; }
.pendingCard{
  border:1px solid rgba(15,23,42,.08); border-radius:18px; padding:16px; background:#fff;
}
.pendingCard--ok{ border-color:rgba(16,185,129,.20); background:linear-gradient(180deg, rgba(240,252,249,.96), #fff); }
.pendingCard--warn{ border-color:rgba(245,158,11,.22); background:linear-gradient(180deg, rgba(255,247,237,.96), #fff); }
.pendingCard--soft{ border-color:rgba(0,80,158,.14); background:linear-gradient(180deg, rgba(239,246,255,.96), #fff); }
.pendingCard__top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:8px; }
.pendingCard__title{ font-weight:800; font-size:18px; }
.pendingCard__state{ color:var(--muted); font-size:13px; margin-top:4px; }
.pendingCard__count{ font-size:34px; font-weight:800; color:var(--ems-navy); line-height:1; }
.pendingCard__text{ color:var(--muted); line-height:1.45; margin-bottom:12px; }

.checkListBoard{ display:flex; flex-direction:column; gap:10px; }
.checkItem{
  display:flex; gap:12px; align-items:flex-start; padding:14px; border:1px solid rgba(15,23,42,.08);
  border-radius:16px; color:inherit; text-decoration:none; background:#fff;
}
.checkItem:hover{ border-color:rgba(0,80,158,.18); background:rgba(239,246,255,.55); }
.checkItem.is-done{ background:rgba(240,252,249,.92); border-color:rgba(16,185,129,.18); }
.checkItem__icon{ width:28px; height:28px; display:grid; place-items:center; border-radius:999px; background:rgba(0,80,158,.08); color:var(--ems-blue); font-weight:700; flex:0 0 28px; }
.checkItem.is-done .checkItem__icon{ background:rgba(16,185,129,.12); color:#059669; }
.checkItem__body{ display:flex; flex-direction:column; gap:4px; }
.checkItem__title{ font-weight:700; }
.checkItem__text{ color:var(--muted); line-height:1.45; }

.guidedGrid{
  display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px;
}
.guidedCard{
  display:flex; flex-direction:column; gap:10px; padding:16px; border-radius:18px;
  border:1px solid rgba(15,23,42,.08); background:linear-gradient(180deg, rgba(255,255,255,.98), rgba(246,248,251,.96));
  color:inherit; text-decoration:none; min-height:180px;
}
.guidedCard:hover{ border-color:rgba(0,80,158,.18); transform:translateY(-1px); }
.guidedCard__title{ font-weight:800; font-size:18px; color:var(--ems-navy); }
.guidedCard__text{ line-height:1.5; }
.guidedCard__cta{ margin-top:auto; color:var(--ems-blue); font-weight:700; }

.supportCard{ margin-top:18px; }
.supportLinks{ display:flex; flex-wrap:wrap; gap:10px; }
.supportLinks__item{
  display:inline-flex; align-items:center; justify-content:center; padding:11px 14px; border-radius:12px;
  border:1px solid rgba(15,23,42,.08); background:rgba(255,255,255,.9); color:var(--ems-navy); text-decoration:none; font-weight:600;
}
.supportLinks__item:hover{ background:rgba(239,246,255,.7); border-color:rgba(0,80,158,.18); }

.heroQuickActions--wrap{ flex-wrap:wrap; }
.portalSplit--homeDash{ align-items:start; }

@media (max-width: 1100px){
  .statusTiles{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .guidedGrid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
  .pendingBoard{ grid-template-columns:1fr; }
}
@media (max-width: 900px){
  .insightGrid{ grid-template-columns:1fr; }
  .summaryGrid{ grid-template-columns:1fr 1fr; }
}
@media (max-width: 640px){
  .statusTiles, .guidedGrid, .summaryGrid{ grid-template-columns:1fr; }
  .scoreCard__main{ align-items:flex-start; }
  .scoreRing{ width:82px; height:82px; flex-basis:82px; }
}
