/* ========== SALO.IA DESIGN SYSTEM ========== */
/* Tokens */
:root{
  --bg: #0f141a;            /* topo/dark shell */
  --bg-2: #121820;          /* barras */
  --surface: #ffffff;       /* superfícies */
  --surface-2: #f7f9fc;     /* fundos suaves */
  --text: #0f172a;          /* texto base */
  --muted: #64748b;         /* texto secundário */
  --line: #e6ebf2;          /* divisórias */
  --brand: #1d47a5;         /* azul principal */
  --brand-600:#153070;
  --brand-200:#e0ecff;
  --accent:#5da0ff;         /* realce */
  --danger:#ef4444;
  --danger-200:#fee2e2;
  --warn:#f59e0b;
  --warn-200:#fef3c7;
  --ok:#10b981;
  --ok-200:#dcfce7;

  --radius: 10px;
  --shadow: 0 6px 20px rgba(15, 23, 42, .08);
  --shadow-soft: 0 2px 10px rgba(15, 23, 42, .06);

  --w: 1200px;
}

/* Reset */
*{ box-sizing:border-box }
html,body{ margin:0; padding:0 }
body{
  font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  color: var(--text);
  background: #fff;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}

/* Topbar */
.topbar{ position:sticky; top:0; z-index:1000; background:var(--bg); color:#fff; border-bottom:1px solid rgba(255,255,255,.06) }
.topbar__inner{
  max-width:var(--w); margin:0 auto; padding:14px 20px;
  display:flex; align-items:center; justify-content:space-between; gap:24px;
}
.brand{ display:flex; align-items:center; gap:.5rem }
.brand__logo{ color:#fff; text-decoration:none; font-weight:800; letter-spacing:.2px; }
.brand__sep{ opacity:.5 }
.brand__scope{ opacity:.85 }

.mainnav{ display:flex; gap:26px; align-items:center }
.mainnav__list{ list-style:none; display:flex; gap:26px; margin:0; padding:0 }
.mainnav__item{ white-space:nowrap }
.mainnav__link{ color:#cdd6e1; text-decoration:none; font-weight:600; display:inline-flex; align-items:center; gap:8px }
.mainnav__link:hover{ color:#fff }
.mainnav__item.is-active .mainnav__link{ color:#fff; position:relative }
.mainnav__item.is-active .mainnav__link::after{
  content:""; position:absolute; left:0; right:0; bottom:-10px; height:2px; background:var(--accent);
}
.mainnav__logout-form{ margin:0 }
.mainnav__logout-button{
  appearance:none; background:none; border:0; padding:0; cursor:pointer; font:inherit;
}
.mainnav__link--danger{ color:#ffb4ba }
.mainnav__link--danger:hover{ color:#fff }
.mainnav__link-badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:20px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#e0ecff;
  color:#153070;
  font-size:.78rem;
  font-weight:800;
}

/* Página */
.page{ max-width:var(--w); margin:0 auto; padding:28px 20px 56px }

/* Page header (título + ações) */
.page-header{
  display:flex; align-items:end; justify-content:space-between; gap:16px; margin:4px 0 24px;
  border-bottom:1px solid var(--line); padding-bottom:16px;
}
.page-title{ margin:0; font-size: clamp(1.6rem, 2vw, 2.1rem); color:#0b1f5f; letter-spacing:.2px }
.page-sub{ margin:.2rem 0 0; color:var(--muted); font-size:.95rem }
.page-actions{ display:flex; gap:10px; align-items:center; flex-wrap:wrap }

/* Cards, grids, util */
.card{ background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-soft) }
.card-body{ padding:18px }
.grid-2{ display:grid; grid-template-columns:1fr 1fr; gap:16px }
.grid-3{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px }
@media (max-width: 900px){ .grid-2,.grid-3{ grid-template-columns:1fr } }

/* Botões */
.btn{ --b:#cfd6dd; --bg:#fff; --fg:var(--text);
  display:inline-flex; align-items:center; gap:8px; padding:9px 14px;
  border:1px solid var(--b); background:var(--bg); color:var(--fg);
  border-radius:8px; cursor:pointer; text-decoration:none; font-weight:600; transition:.15s ease;
}
.btn:hover{ transform:translateY(-1px); box-shadow:var(--shadow-soft) }
.btn:active{ transform:translateY(0) }
.btn-primary{
  --bg: var(--brand);
  --b: var(--brand);
  --fg: #ffffff !important;   /* texto sempre branco */
  color: #ffffff !important;
}
.btn-outline{ --bg:#fff; --b:var(--brand); --fg:var(--brand) }
.btn-danger{ --bg:var(--danger); --b:var(--danger); --fg:#fff }
.btn-ghost{ --bg:transparent; --b:transparent; --fg:var(--brand) }
.btn-sm{ padding:7px 12px; font-size:.92rem; border-radius:7px }

/* Badges / estados */
.badge{ display:inline-flex; align-items:center; gap:6px; font-size:.85rem; padding:4px 10px; border-radius:999px; border:1px solid var(--line); background:#fff }
.badge.ok{ background:var(--ok-200); color:#065f46; border-color:#a7f3d0 }
.badge.warn{ background:var(--warn-200); color:#92400e; border-color:#fcd34d }
.badge.info{ background:var(--brand-200); color:#153070; border-color:#bfd5ff }

/* Alerts */
.alert{ padding:12px 14px; border-radius:10px; border:1px solid var(--line); background:var(--surface-2); margin:10px 0 }
.alert-success{ background:var(--ok-200); border-color:#a7f3d0; color:#065f46 }
.alert-danger{ background:var(--danger-200); border-color:#fecaca; color:#991b1b }
.alert-warn{ background:var(--warn-200); border-color:#fde68a; color:#92400e }


/* Footer */
.sitefooter{ border-top:1px solid var(--line); margin-top:40px }
.sitefooter__inner{ max-width:var(--w); margin:0 auto; padding:18px 20px; color:#445; font-size:.95rem }
.sitefooter__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
}
.sitefooter__links{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
}
.sitefooter__link{
  color:var(--brand);
  text-decoration:none;
  font-weight:700;
}
.sitefooter__link:hover{
  text-decoration:underline;
}
.sitefooter .disc{ margin-top:8px; color:#667; font-size:.85rem }

/* Utilidades */
.row{ display:flex; gap:12px; align-items:center; flex-wrap:wrap }
.gap-2{ gap:8px } .gap-3{ gap:12px }
.mt-2{ margin-top:8px } .mb-2{ margin-bottom:8px } .mb-3{ margin-bottom:16px } .mb-4{ margin-bottom:22px }
.text-muted{ color:var(--muted) } .text-right{ text-align:right }
.hr{ height:1px; background:var(--line); margin:10px 0 }

/* Modal básico do index (melhorado só um pouco) */
#confidencialModal .inner{ background:#fff; border-radius:12px; box-shadow:var(--shadow) }


.folder-header { cursor: pointer; user-select: none; }
.folder-header:hover { filter: brightness(0.95); }

/* ============================
   Cabeçalho de página
   ============================ */

   .page-head {
    margin: 0 0 1.5rem 0;
    display: flex;
    flex-direction: column;
    gap: .25rem;
  }
  
  .page-head h1 {
    font-size: 1.6rem;
    font-weight: 600;
    color: #111827;
  }
  
  .page-head p {
    font-size: .95rem;
    color: #6b7280;
  }
  
  .page-head .page-actions {
    margin-left: auto;
    display: flex;
    gap: .5rem;
  }
  
  
  /* ============================
     Cards / content blocks
     ============================ */
  
  .card {
    background: #ffffff;
    border-radius: 10px;
    border: 1px solid #e5e7eb;
    box-shadow: 0 8px 20px rgba(15, 23, 42, .04);
    margin-bottom: 1.25rem;
  }
  
  .card-body {
    padding: 1rem 1.25rem;
  }
  
  /* Pequena variação para blocos dentro de Gestão do Município se quiseres usar no futuro */
  .card + .card {
    margin-top: 1rem;
  }

  
  /* ============================
   Tabelas
   ============================ */

.table {
  width: 100%;
  border-collapse: collapse;
  font-size: .95rem;
}

.table th,
.table td {
  padding: .45rem .75rem;
  border-bottom: 1px solid #e5e7eb;
  text-align: left;
  vertical-align: middle;
}

.table thead th {
  background: #f9fafb;
  font-size: .75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: #6b7280;
}

.table tbody tr:nth-child(even) {
  background: #f9fafb;
}

.table tbody tr:hover {
  background: #eef2ff;
}

/* versão "compacta" usada em toda a app */
.table-sm th,
.table-sm td {
  padding: .35rem .6rem;
}

/* links dentro de tabelas: discretos mas visíveis */
.table a {
  color: #1d4ed8;
  text-decoration: none;
}

.table a:hover {
  text-decoration: underline;
}

.messaging-reference-picker{
  margin-top:14px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:var(--surface-2);
}

.messaging-reference-picker__head{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin-bottom:12px;
}

.messaging-reference-picker__head span{
  color:var(--muted);
  font-size:.92rem;
}

.messaging-reference-groups{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.messaging-reference-group{
  background:#fff;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
}

.messaging-reference-group h3{
  margin:0 0 10px;
  font-size:1rem;
}

.messaging-reference-options{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.messaging-reference-option{
  display:flex;
  gap:10px;
  align-items:flex-start;
  border:1px solid #edf1f6;
  border-radius:10px;
  background:#fbfdff;
  padding:10px;
}

.messaging-reference-option input{
  margin-top:3px;
}

.messaging-reference-option span{
  display:flex;
  flex-direction:column;
  gap:2px;
}

.messaging-reference-option small{
  color:var(--muted);
}

.messaging-reference-option__meta{
  font-size:.82rem;
}

.messaging-reference-list{
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:12px;
}

.messaging-reference-card{
  display:flex;
  flex-direction:column;
  gap:4px;
  text-decoration:none;
  color:inherit;
  border:1px solid #dbe6f6;
  border-radius:12px;
  background:#f8fbff;
  padding:10px 12px;
}

.messaging-reference-card:hover{
  box-shadow:var(--shadow-soft);
  transform:translateY(-1px);
}

.messaging-reference-card__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
}

.messaging-reference-card__meta{
  color:var(--muted);
  font-size:.82rem;
}

.messaging-reference-card small{
  color:var(--muted);
}

.messaging-filters{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:12px;
  align-items:end;
}

.messaging-filter-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.messaging-filter-field span{
  font-weight:600;
  color:#153070;
}

.messaging-filter-actions{
  display:flex;
  gap:8px;
  align-items:center;
  justify-content:flex-end;
}

@media (max-width: 900px){
  .messaging-filters{
    grid-template-columns:1fr;
  }

  .messaging-filter-actions{
    justify-content:flex-start;
  }

  .messaging-reference-groups{
    grid-template-columns:1fr;
  }
}
.table--two-cols th:nth-child(1),
.table--two-cols td:nth-child(1) {
  width: 65%;
}

.table--two-cols th:nth-child(2),
.table--two-cols td:nth-child(2) {
  width: 35%;
}

/* wrapper para tabelas responsivas */
.table-responsive {
  width: 100%;
  overflow-x: auto;
}

.pipeline-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

.profile-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 16px;
}
.profile-summary div{
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
}
.profile-summary strong{
  display:block;
  margin-bottom:4px;
  color:#153070;
  font-size:.84rem;
}
.profile-summary span{
  color:#334155;
}

.messaging-shell{
  display:grid;
  grid-template-columns:340px minmax(0,1fr);
  gap:16px;
  align-items:start;
}
.messaging-sidebar{
  position:sticky;
  top:92px;
}
.messaging-conversation-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.messaging-conversation{
  display:block;
  padding:12px 14px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  text-decoration:none;
  color:inherit;
  transition:.15s ease;
}
.messaging-conversation:hover{
  border-color:#bfd5ff;
  box-shadow:var(--shadow-soft);
}
.messaging-conversation.is-active{
  border-color:#8ab2ff;
  background:#f5f9ff;
}
.messaging-conversation__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:6px;
}
.messaging-thread-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.messaging-thread{
  display:flex;
  flex-direction:column;
  gap:12px;
  min-height:180px;
  max-height:620px;
  overflow:auto;
  padding-right:4px;
}
.messaging-bubble-row{
  display:flex;
}
.messaging-bubble-row.is-mine{
  justify-content:flex-end;
}
.messaging-bubble{
  max-width:min(720px, 88%);
  padding:12px 14px;
  border-radius:14px;
  border:1px solid var(--line);
  background:#f8fafc;
  box-shadow:var(--shadow-soft);
}
.messaging-bubble-row.is-mine .messaging-bubble{
  background:#e9f1ff;
  border-color:#bfd5ff;
}
.messaging-bubble__meta{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-bottom:8px;
  font-size:.82rem;
  color:#64748b;
}
.messaging-send-form{
  margin-top:16px;
  padding-top:16px;
  border-top:1px solid var(--line);
}
.messaging-directory{
  max-height:260px;
  overflow:auto;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}
.messaging-directory__item{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:12px 14px;
  border-bottom:1px solid var(--line);
}
.messaging-directory__item:last-child{
  border-bottom:0;
}
.messaging-directory__item strong{
  display:block;
}
.messaging-directory__item small{
  display:block;
  margin-top:2px;
  color:#64748b;
}

@media (max-width: 1100px){
  .messaging-shell{
    grid-template-columns:1fr;
  }
  .messaging-sidebar{
    position:static;
  }
}

@media (max-width: 900px){
  .profile-summary{
    grid-template-columns:1fr;
  }
}

.about-popup{
  background:#f4f7fb;
}
.about-popup .page{
  max-width:940px;
  padding-top:24px;
}
.about-popup__header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin-bottom:18px;
}
.about-popup__eyebrow{
  font-size:.8rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:#1d47a5;
  margin-bottom:6px;
}
.about-popup__title{
  margin:0;
  color:#0b1f5f;
  font-size:clamp(1.7rem, 2.2vw, 2.3rem);
}
.about-popup__lead{
  margin:.5rem 0 0;
  max-width:720px;
  color:#566579;
}
.about-popup__section{
  margin-bottom:16px;
}
.about-popup__section h2{
  margin:0 0 10px;
  color:#153070;
  font-size:1.05rem;
}
.about-popup__section p{
  margin:0 0 10px;
  color:#4e5d72;
}
.about-popup__list{
  margin:0;
  padding-left:18px;
  color:#4e5d72;
}
.about-popup__list li + li{
  margin-top:8px;
}

.pipeline-step{
  border:1px solid var(--line);
  border-radius:12px;
  padding:14px;
  background:#f8fbff;
}

.pipeline-step.is-active{
  border-color:#bfd5ff;
  background:#eef4ff;
}

.pipeline-step__eyebrow{
  font-size:.75rem;
  text-transform:uppercase;
  letter-spacing:.06em;
  color:var(--muted);
  margin-bottom:8px;
  font-weight:700;
}

.pipeline-step__title{
  font-size:1rem;
  font-weight:700;
  color:#0f172a;
}

.pipeline-step__meta{
  margin-top:8px;
  font-size:.92rem;
  color:var(--muted);
}

.doc-ai-collapsible{
  border:1px solid var(--line);
  border-radius:10px;
  background:#fbfcfe;
  padding:12px 14px;
  margin-top:12px;
}

.doc-ai-collapsible > summary{
  cursor:pointer;
  font-weight:700;
  color:#0f172a;
}

.doc-ai-collapsible[open] > summary{
  margin-bottom:12px;
}

.doc-ai-loading-open{
  overflow:hidden;
}

.doc-ai-loading{
  position:fixed;
  inset:0;
  background:rgba(15, 23, 42, .46);
  backdrop-filter: blur(2px);
  display:flex;
  align-items:center;
  justify-content:center;
  z-index:3000;
  padding:20px;
}

.doc-ai-loading[hidden]{
  display:none !important;
}

.doc-ai-loading__panel{
  width:min(460px, 100%);
  background:#fff;
  border-radius:16px;
  border:1px solid #dbe5f3;
  box-shadow:0 18px 48px rgba(15, 23, 42, .22);
  padding:28px 24px;
  text-align:center;
}

.doc-ai-loading__spinner{
  width:52px;
  height:52px;
  border-radius:999px;
  margin:0 auto 16px;
  border:4px solid #d9e6ff;
  border-top-color:var(--brand);
  animation:docAiSpin .9s linear infinite;
}

.doc-ai-loading__title{
  font-size:1.08rem;
  font-weight:800;
  color:#0f172a;
}

.doc-ai-loading__message{
  margin-top:8px;
  color:var(--muted);
  font-size:.95rem;
}

@keyframes docAiSpin{
  from{ transform:rotate(0deg); }
  to{ transform:rotate(360deg); }
}

/* tornar tabelas mais compactas em ecrãs pequenos */
@media (max-width: 768px) {
  .table {
    font-size: .85rem;
  }

  .table th,
  .table td {
    padding: .35rem .5rem;
  }

  .pipeline-grid{
    grid-template-columns:1fr;
  }
}


/* ============================
   Badges / etiquetas
   ============================ */

   .badge {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 0 .5rem;
    font-size: .75rem;
    line-height: 1.6;
    font-weight: 500;
    border: 1px solid transparent;
  }
  
  .bg-primary {
    background: #2563eb;
    border-color: #1d4ed8;
    color: #ffffff;
  }
  
  .bg-secondary {
    background: #e5e7eb;
    border-color: #d1d5db;
    color: #374151;
  }
  
  /* opcional: texto escuro genérico (já usas noutros sítios) */
  .text-dark {
    color: #111827;
  }

  /* ============================
   Gestão do Município (ajustes suaves)
   ============================ */

/* cada h2 da página */
.card h2 {
  font-size: 1.1rem;
  font-weight: 600;
}

/* bloco de cada freguesia dentro do card */
.card h2 + div > h3 {
  font-size: 1rem;
  font-weight: 600;
  margin-top: 1rem;
  margin-bottom: .35rem;
}

.card h2 + div > h3:not(:first-of-type) {
  padding-top: .75rem;
  border-top: 1px dashed #e5e7eb;
}
/* ============================
   Auth / Login
   ============================ */

   .auth-wrap {
    max-width: 420px;
    margin: 64px auto 48px;
  }
  
  .auth-card {
    box-shadow: var(--shadow);
  }
  
  .auth-title {
    margin: 0 0 .25rem;
    font-size: 1.55rem;
    font-weight: 600;
    color: #111827;
  }
  
  .auth-sub {
    margin: 0 0 1.25rem;
    font-size: .9rem;
    color: var(--muted);
  }
  
  /* Campos de formulário */
  
  .field {
    margin-bottom: 12px;
  }
  
  .field-label {
    display: block;
    margin-bottom: 4px;
    font-size: .9rem;
    font-weight: 500;
    color: #111827;
  }
  
  .field-input {
    width: 100%;
    padding: 9px 11px;
    border-radius: 8px;
    border: 1px solid #d1d5db;
    font-size: .95rem;
    outline: none;
    transition: border-color .15s ease, box-shadow .15s ease, background-color .15s ease;
    background: #f9fafb;
  }
  
  .field-input:focus {
    border-color: var(--brand);
    box-shadow: 0 0 0 1px rgba(37, 99, 235, .18);
    background: #ffffff;
  }
  
  /* Botão ocupar toda a largura */
  .btn-full {
    width: 100%;
    justify-content: center;
    margin-top: 8px;
  }
  
  /* Texto de apoio em baixo do formulário */
  .auth-meta {
    margin-top: 10px;
    font-size: .8rem;
    color: var(--muted);
  }



/* ============================
   Main nav – dropdowns
   ============================ */

   .mainnav__item.has-submenu {
    position: relative;
  }
  
  /* Botão do item de grupo (parece um link normal) */
  .mainnav__link--parent {
    border: 0;
    background: transparent;
    padding: 0;
    margin: 0;
    font: inherit;
    color: #cdd6e1;
    cursor: pointer;
  }
  .mainnav__item.has-submenu.is-active .mainnav__link--parent {
    color: #fff;
  }
  .mainnav__link--parent:hover {
    color: #fff;
  }
  
  /* Caixa do dropdown */
  .mainnav__submenu {
    position: absolute;
    top: 100%;
    left: 0;
    margin-top: 8px;
    min-width: 230px;
    background: var(--surface);
    border-radius: 10px;
    border: 1px solid var(--line);
    box-shadow: var(--shadow);
    list-style: none;
    padding: 6px 0;
    z-index: 1200;
    display: none;          /* escondido por defeito */
  }
  
  /* Quando o grupo está aberto */
  .mainnav__item.has-submenu.is-open .mainnav__submenu {
    display: block;
  }
  
  /* Linha/título de secção dentro do dropdown */
  .mainnav__submenu-section {
    padding: 4px 14px 6px;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .06em;
    color: var(--muted);
    border-bottom: 1px solid var(--line);
    margin-bottom: 4px;
    white-space: nowrap;
  }
  
  /* Itens clicáveis do dropdown */
  .mainnav__submenu-item {
    list-style: none;
  }
  
  .mainnav__submenu-link {
    display: block;
    padding: 6px 14px;
    font-size: .9rem;
    text-decoration: none;
    color: var(--text);
    white-space: nowrap;
  }
  
  .mainnav__submenu-link:hover {
    background: var(--surface-2);
    color: var(--brand);
  }
  
  .mainnav__submenu-item.is-active > .mainnav__submenu-link {
    font-weight: 600;
    color: var(--brand);
  }
  
  /* No mobile: dropdown ocupa a largura do menu */
  @media (max-width: 768px) {
    .mainnav__item.has-submenu {
      position: static;
    }
    .mainnav__submenu {
      position: static;
      margin-top: 4px;
      box-shadow: none;
      border-radius: 8px;
    }
  }
  



  

  /* ============================
   Responsivo geral
   ============================ */

/* Até 900px: apertar um pouco o layout */
@media (max-width: 900px) {
  .topbar__inner {
    padding: 10px 14px;
    gap: 12px;
  }

  .page {
    padding: 20px 16px 40px;
  }

  .page-head h1 {
    font-size: 1.35rem;
  }

  .card-body {
    padding: 0.9rem 1rem;
  }
}

/* Até 768px: menu em duas linhas e menos espaço */
@media (max-width: 768px) {
  .topbar__inner {
    flex-direction: column;
    align-items: flex-start;
  }

  .mainnav {
    width: 100%;
  }

  .mainnav__list {
    flex-wrap: wrap;             /* deixa partir em 2 linhas */
    row-gap: 6px;
    column-gap: 16px;
    font-size: .9rem;
  }

  .mainnav__item--right {
    margin-left: auto;
  }
}

/* Wrapper com scroll vertical para a tabela de intenções */
/* Wrapper com scroll vertical para a tabela de intenções */
.table-scroll-votos {
  max-height: 70vh;
  overflow: auto;
  border: 1px solid var(--line);
  border-radius: 8px;
  background: #ffffff;
  box-shadow: var(--shadow-soft);
}

/* Tabela específica da reunião OT */
.table-votos {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: .9rem;
  min-width: 980px;
}

/* Cabeçalho fixo (partidos visíveis ao fazer scroll vertical) */
.table-scroll-votos .table-votos thead th {
  position: sticky;
  top: 0;
  z-index: 5;
  background: #f9fafb;
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: var(--muted);
}

/* Primeiras colunas “congeladas” (Nº e Descrição) */

/* cabeçalho */
.table-votos thead th.col-num,
.table-votos thead th.col-desc {
  z-index: 6;
}

.table-votos thead th.col-num {
  position: sticky;
  left: 0;
}

.table-votos thead th.col-desc {
  position: sticky;
  left: 60px; /* largura aproximada da coluna Nº */
  box-shadow: 4px 0 4px rgba(15, 23, 42, .04);
}

/* células do corpo */
.table-votos td.col-num,
.table-votos td.col-desc {
  background: #ffffff;
  position: sticky;
  z-index: 4;
}

.table-votos td.col-num {
  left: 0;
  white-space: nowrap;
}

.table-votos td.col-desc {
  left: 60px;
  box-shadow: 4px 0 4px rgba(15, 23, 42, .04);
}

/* Larguras de colunas (ajusta se quiseres) */
.table-votos .col-num {
  width: 50px;
  text-align: left;
}

.table-votos .col-desc {
  min-width: 260px;
}

.table-votos .col-partido {
  width: 170px;
  vertical-align: top;
}

.table-votos .col-chega {
  border-left: 1px solid #ddd;
}

.table-votos .col-estado {
  width: 190px;
}

.table-votos .col-obs {
  width: 230px;
}

/* Cabeçalho dos partidos um pouco mais marcado */
.table-votos thead th.col-partido {
  text-align: center;
  font-weight: 600;
}

.table-votos thead th.col-chega {
  border-left: 1px solid #ddd;
}

/* Linhas da tabela */
.table-votos tbody tr.linha-ponto {
  transition: background .12s ease-in-out, opacity .12s ease-in-out;
}

.table-votos tbody tr.linha-ponto:hover {
  background: #f3f4ff;
}

/* Quando o ponto não está aberto (MANTER / REMOVIDO) */
.linha-ponto--bloqueada {
  opacity: 0.55;
  background: #f3f4f6;
}

.linha-ponto--bloqueada textarea,
.linha-ponto--bloqueada select {
  background: #e5e7eb;
}

.linha-ponto--bloqueada .voto-radio {
  cursor: not-allowed;
}

/* Badges de estado de reunião */
.badge-live-reuniao,
.badge-agendada-reuniao {
  font-size: 0.9rem;
}

.badge-text {
  margin-left: 8px;
  color: #555;
  font-size: 0.9rem;
}

/* Info dentro da coluna descrição */
.linha-proposta,
.linha-subscritor {
  font-size: 0.8rem;
  color: #6b7280;
  margin-bottom: 2px;
}

.linha-descricao {
  margin-top: 4px;
  font-size: .87rem;
}

/* ===== Legenda das intenções de voto ===== */

.legend-votos {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 10px;
  font-size: 0.8rem;
  align-items: center;
}

.legend-item {
  padding: 3px 9px;
  border-radius: 999px;
  border: 1px solid var(--line);
  background: #f9fafb;
}

.legend-favor {
  background: var(--ok-200);
  border-color: #bbf7d0;
  color: #166534;
}

.legend-contra {
  background: var(--danger-200);
  border-color: #fecaca;
  color: #b91c1b;
}

.legend-abstencao {
  background: var(--warn-200);
  border-color: #fed7aa;
  color: #92400e;
}

/* ===== Radios em modo “pill” por partido ===== */

.lbl-radio-partido {
  display: block;
  margin-bottom: 3px;
  font-weight: normal;
  font-size: 0.82rem;
  cursor: pointer;
  user-select: none;
  position: relative;
}

.lbl-radio-partido input {
  position: absolute;
  opacity: 0;
  pointer-events: none;
}

.lbl-radio-text {
  display: inline-block;
  padding: 3px 8px;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  background: #f9fafb;
  font-size: 0.78rem;
  line-height: 1.4;
  transition: all .12s ease-in-out;
}

/* Hover genérico */
.lbl-radio-partido:hover .lbl-radio-text {
  background: #e5e7eb;
}

/* Cores por tipo de voto (estado normal / não selecionado) */
.op-favor .lbl-radio-text {
  background: #ecfdf3;
  border-color: #bbf7d0;
  color: #166534;
}

.op-contra .lbl-radio-text {
  background: #fef2f2;
  border-color: #fecaca;
  color: #b91c1b;
}

.op-abstencao .lbl-radio-text {
  background: #fffbeb;
  border-color: #fed7aa;
  color: #92400e;
}

/* Quando o rádio está checked, reforçamos a cor */
.op-favor input:checked + .lbl-radio-text {
  background: #16a34a;
  border-color: #15803d;
  color: #ffffff;
}

.op-contra input:checked + .lbl-radio-text {
  background: #dc2626;
  border-color: #b91c1c;
  color: #ffffff;
}

.op-abstencao input:checked + .lbl-radio-text {
  background: #f59e0b;
  border-color: #d97706;
  color: #1f2937;
}

/* Texto auxiliar / descrição do estado */
.estado-label {
  margin-top: 4px;
  font-size: .78rem;
  color: #6b7280;
}


/* Ações na lista de ODs: botões mais compactos e alinhados */
.acoes-ot {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

/* Botão extra pequeno para tabelas densas */
.btn-xs {
  padding: 4px 8px;
  font-size: .78rem;
  border-radius: 6px;
}

/* Versão ghost mais subtil, usada no "Ver" */
.btn-ghost {
  --bg: transparent;
  --b: transparent;
  --fg: var(--brand);
  background: transparent;
  border-color: transparent;
}

.btn-ghost:hover {
  background: #eef2ff;
  border-color: #e5e7eb;
}

.btn-outline{
  --fg: var(--brand);
  --b: var(--brand);
  color: var(--brand);
}

.btn-outline:hover{
  background: var(--brand);
  color: #ffffff;
}

.btn-ghost{
  --fg: var(--brand);
  color: var(--brand);
}

.btn-ghost:hover{
  background: #eef2ff;
  color: var(--brand-600);
}

.btn-xs.btn-primary,
.btn-xs.btn-danger {
  color: #ffffff !important;
}

.btn-xs.btn-outline {
  color: var(--brand);
}

.btn-xs.btn-ghost {
  color: var(--brand);
}


.brand__logo {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  text-decoration: none;
  font-weight: 800;
  letter-spacing: .2px;
}

.brand__logo-img {
  height: 38px;      /* antes: 26px — agora maior e mais elegante */
  width: auto;
  display: block;
  margin-top: -2px;  /* para alinhar visualmente com o texto */
}

.brand__logo-text {
  line-height: 1;
}



/* ============================
   Barra de atividade de IA
   ============================ */

.ai-status {
  background: var(--bg-2);
  border-bottom: 1px solid rgba(148, 163, 184, .35);
}

.ai-status__inner {
  max-width: var(--w);
  margin: 0 auto;
  padding: 6px 20px;
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: .8rem;
  color: #e5e7eb;
}

/* Dots animados tipo "loading" */
.ai-status__dots {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}

.ai-status__dot {
  width: 7px;
  height: 7px;
  border-radius: 999px;
  background: var(--accent);
  animation: ai-pulse 1.2s infinite ease-in-out;
  opacity: .7;
}

.ai-status__dot:nth-child(2) {
  animation-delay: .15s;
}

.ai-status__dot:nth-child(3) {
  animation-delay: .3s;
}

@keyframes ai-pulse {
  0% {
    transform: scale(.9);
    opacity: .4;
  }
  50% {
    transform: scale(1.25);
    opacity: 1;
  }
  100% {
    transform: scale(.9);
    opacity: .4;
  }
}

.ai-status__text {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Em ecrãs pequenos deixa quebrar a linha do texto */
@media (max-width: 768px) {
  .ai-status__inner {
    flex-wrap: wrap;
    padding: 6px 14px;
  }
  .ai-status__text {
    white-space: normal;
  }
}



/* ============================
   Chat Salo.ia (assistente)
   ============================ */

.chat-saloia {
  position: fixed;
  right: 20px;
  bottom: 20px;
  z-index: 1400;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
}

/* Botão flutuante */
.chat-saloia-toggle {
  width: 56px;
  height: 56px;
  border-radius: 999px;
  border: none;
  padding: 0;
  cursor: pointer;
  background: var(--brand);
  box-shadow: var(--shadow);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: transform .15s ease, box-shadow .15s ease, background .15s ease;
}

.chat-saloia-toggle:hover {
  transform: translateY(-1px);
  box-shadow: 0 10px 25px rgba(15, 23, 42, .22);
  background: var(--brand-600);
}

.chat-saloia-toggle__logo {
  width: 30px;
  height: 30px;
  border-radius: 6px;
  object-fit: contain;
}

/* Painel de chat */
.chat-saloia-panel {
  width: 360px;
  max-width: calc(100vw - 32px);
  max-height: 560px;
  background: #ffffff;
  border-radius: 14px;
  border: 1px solid var(--line);
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  transform: translateY(10px);
  pointer-events: none;
  transition: opacity .18s ease, transform .18s ease;
}

.chat-saloia-panel.is-open {
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
}

/* Header do painel */
.chat-saloia-panel__header {
  padding: 10px 12px;
  background: var(--bg-2);
  color: #e5ecff;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.chat-saloia-panel__brand {
  display: flex;
  align-items: center;
  gap: 8px;
}

.chat-saloia-panel__logo {
  width: 26px;
  height: 26px;
  border-radius: 6px;
  object-fit: contain;
  background: #fff;
}

.chat-saloia-panel__title {
  font-size: .95rem;
  font-weight: 600;
}

.chat-saloia-panel__subtitle {
  font-size: .8rem;
  opacity: .8;
}

.chat-saloia-panel__close {
  border: none;
  background: transparent;
  color: #e5ecff;
  font-size: 1.3rem;
  line-height: 1;
  cursor: pointer;
  padding: 2px 4px;
}

/* Corpo e mensagens */
.chat-saloia-panel__body {
  padding: 10px 10px 6px;
  background: #f9fafb;
  flex: 1;
  overflow: hidden;
}

.chat-saloia-messages {
  height: 100%;
  overflow-y: auto;
  padding-right: 4px;
}

/* Bolhas de chat */
.chat-msg {
  display: flex;
  margin-bottom: 6px;
}

.chat-msg__bubble {
  padding: 7px 10px;
  border-radius: 12px;
  font-size: .9rem;
  line-height: 1.4;
  max-width: 100%;
  white-space: pre-wrap;
  word-wrap: break-word;
}

/* Bot (esquerda) */
.chat-msg-bot {
  justify-content: flex-start;
}

.chat-msg-bot .chat-msg__bubble {
  background: #e5edff;
  color: #111827;
  border-top-left-radius: 2px;
}

/* Utilizador (direita) */
.chat-msg-user {
  justify-content: flex-end;
}

.chat-msg-user .chat-msg__bubble {
  background: var(--brand);
  color: #ffffff;
  border-top-right-radius: 2px;
}

/* Formulário do input */
.chat-saloia-form {
  display: flex;
  gap: 6px;
  padding: 8px 10px;
  border-top: 1px solid var(--line);
  background: #ffffff;
}

.chat-saloia-input {
  flex: 1;
  border-radius: 999px;
  border: 1px solid #d1d5db;
  padding: 7px 10px;
  font-size: .9rem;
  outline: none;
  background: #f9fafb;
}

.chat-saloia-input:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 1px rgba(37, 99, 235, .16);
  background: #ffffff;
}

.chat-saloia-send {
  border-radius: 999px;
  border: none;
  background: var(--brand);
  color: #fff;
  padding: 7px 12px;
  font-size: .9rem;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s ease, transform .15s ease, box-shadow .15s ease;
}

.chat-saloia-send:hover {
  background: var(--brand-600);
  transform: translateY(-1px);
  box-shadow: var(--shadow-soft);
}

/* Mobile: aproximar mais às margens */
@media (max-width: 600px) {
  .chat-saloia {
    right: 12px;
    bottom: 12px;
  }

  .chat-saloia-panel {
    width: calc(100vw - 24px);
  }
}



/* CHATBOX FIXO COM SCROLL INTERNO */
.chatbox {
  position: fixed;
  bottom: 90px;
  right: 30px;
  width: 360px;
  height: 480px;                 /* altura fixa */
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow);
  display: flex;
  flex-direction: column;
  overflow: hidden;              /* impede que fuja do container */
  z-index: 9999;
}

.chatbox-header {
  padding: 10px 14px;
  background: var(--bg);
  color: #fff;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}

.chatbox-logo {
  height: 22px;
  width: auto;
}

.chatbox-messages {
  flex: 1;                        /* ocupa o espaço todo */
  overflow-y: auto;               /* scroll só aqui */
  padding: 12px 14px;
  background: var(--surface-2);
}

.chatbox-form {
  display: flex;
  border-top: 1px solid var(--line);
  padding: 8px;
  background: #fff;
}

.chatbox-form input {
  flex: 1;
  margin-right: 8px;
}


.chat-saloia-panel {
  position: fixed;
  right: 24px;
  bottom: 90px;
  width: 360px;
  max-height: 460px;
  background: #ffffff;
  border-radius: 12px;
  box-shadow: var(--shadow);
  border: 1px solid var(--line);
  display: none;              /* escondido por defeito */
  flex-direction: column;
  overflow: hidden;
  z-index: 9999;
}

.chat-saloia-panel.is-open {
  display: flex;
}

.chat-saloia-panel__body {
  flex: 1;
  overflow: hidden;           /* o body em si não scrolla */
  display: flex;
  flex-direction: column;
}

.chat-saloia-messages {
  flex: 1;
  overflow-y: auto;           /* AQUI é onde o scroll acontece */
  padding: 10px 12px;
}

/* Até 640px: tudo mais compacto */
@media (max-width: 640px) {
  .page {
    padding: 16px 12px 32px;
  }

  .page-head {
    align-items: flex-start;
  }

  .page-head .page-actions {
    margin-left: 0;
    margin-top: .4rem;
  }

  .table-scroll-votos {
    max-height: 60vh;
  }

  .table-votos {
    font-size: .85rem;
    min-width: 800px;
  }
}

/* ============================
   Conhecimento Documental
   ============================ */

.actions-row{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  align-items:center;
}

.knowledge-intro{
  display:flex;
  justify-content:space-between;
  gap:16px;
  padding:16px 18px;
  border:1px solid var(--line);
  border-radius:12px;
  background:linear-gradient(135deg, #f7f9fc 0%, #eef4ff 100%);
}

.knowledge-intro__main{
  color:var(--text);
}

.knowledge-intro__aside{
  display:flex;
  align-items:flex-start;
}

.knowledge-stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}

.knowledge-stat{
  background:#fff;
  border:1px solid var(--line);
  border-radius:12px;
  padding:16px 18px;
  box-shadow:var(--shadow-soft);
}

.knowledge-stat--warn{
  background:#fffaf0;
  border-color:#f6d58a;
}

.knowledge-stat__label{
  color:var(--muted);
  font-size:.85rem;
  margin-bottom:8px;
}

.knowledge-stat__value{
  font-size:1.8rem;
  font-weight:800;
  color:#0b1f5f;
  line-height:1;
}

.knowledge-filters__grid{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:14px;
}

.knowledge-field{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.knowledge-field span{
  font-size:.85rem;
  font-weight:600;
  color:#334155;
}

.knowledge-results-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:12px;
  margin-bottom:16px;
}

@media (max-width: 1000px) {
  .knowledge-stats{
    grid-template-columns:repeat(2, 1fr);
  }

  .knowledge-filters__grid{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width: 680px) {
  .knowledge-intro{
    flex-direction:column;
  }

  .knowledge-stats,
  .knowledge-filters__grid{
    grid-template-columns:1fr;
  }
}

/* ============================
   Dimensão da Salo.ia
   ============================ */

.memory-teaser{
  border-color:#d7e6ff;
  background:linear-gradient(135deg, #f8fbff 0%, #edf4ff 100%);
}

.memory-teaser__head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}

.memory-teaser__stats{
  display:grid;
  grid-template-columns:repeat(4, 1fr);
  gap:12px;
  margin-top:16px;
}

.memory-teaser__stat{
  padding:14px 16px;
  border-radius:12px;
  border:1px solid #d9e4f5;
  background:#fff;
  box-shadow:var(--shadow-soft);
}

.memory-teaser__value{
  display:block;
  font-size:1.55rem;
  font-weight:800;
  color:#0b1f5f;
  line-height:1.05;
}

.memory-teaser__label{
  display:block;
  margin-top:6px;
  color:var(--muted);
  font-size:.9rem;
}

.memory-hero{
  border-color:#d7e6ff;
  background:
    radial-gradient(circle at top right, rgba(93, 160, 255, .18), transparent 32%),
    linear-gradient(135deg, #f8fbff 0%, #eef4ff 100%);
}

.memory-hero__intro{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:16px;
}

.memory-mini-list{
  display:grid;
  gap:8px;
}

.memory-modules{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:14px;
}

.memory-module{
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
  padding:16px;
  box-shadow:var(--shadow-soft);
}

.memory-module__label{
  color:var(--muted);
  font-size:.9rem;
  margin-bottom:8px;
}

.memory-module__value{
  font-size:1.65rem;
  font-weight:800;
  color:#0b1f5f;
  line-height:1;
}

.memory-module__meta{
  margin-top:8px;
  color:#334155;
  font-size:.92rem;
}

.memory-breakdown{
  display:grid;
  gap:12px;
}

.memory-breakdown__row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px 0;
  border-bottom:1px solid var(--line);
}

.memory-breakdown__row:last-child{
  border-bottom:0;
  padding-bottom:0;
}

@media (max-width: 1000px) {
  .memory-teaser__stats,
  .memory-modules{
    grid-template-columns:repeat(2, 1fr);
  }
}

@media (max-width: 720px) {
  .memory-teaser__head,
  .memory-hero__intro,
  .memory-breakdown__row{
    flex-direction:column;
  }

  .memory-teaser__stats,
  .memory-modules{
    grid-template-columns:1fr;
  }
}

/* ==========================================================
   Gestão shell · aplicação interna
   ========================================================== */

:root{
  --app-sidebar-w: 286px;
  --app-topbar-h: 68px;
  --app-bg: #f3f6fa;
  --app-sidebar: #121820;
  --app-sidebar-2: #182231;
  --app-border: #dfe6ef;
  --app-panel: #ffffff;
  --app-text: #111827;
  --app-muted: #667085;
  --app-accent: #2563eb;
  --radius: 8px;
  --w: 1600px;
}

body.saloia-app{
  background:var(--app-bg);
  color:var(--app-text);
  font-size:14px;
}

body.saloia-app .topbar{
  position:fixed;
  inset:0 auto 0 0;
  width:var(--app-sidebar-w);
  z-index:1000;
  background:var(--app-sidebar);
  color:#f8fafc;
  border-right:1px solid rgba(255,255,255,.08);
  border-bottom:0;
  overflow:auto;
}

body.saloia-app .topbar__inner{
  max-width:none;
  min-height:100%;
  margin:0;
  padding:18px 14px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:18px;
}

body.saloia-app .brand{
  display:flex;
  align-items:center;
  gap:10px;
  padding:0 4px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

body.saloia-app .brand__logo{
  display:flex;
  align-items:center;
  gap:10px;
  color:#fff;
  font-size:1.05rem;
  line-height:1;
}

body.saloia-app .brand__icon{
  width:42px;
  height:42px;
  object-fit:contain;
}

body.saloia-app .brand__sep{
  display:none;
}

body.saloia-app .brand__scope{
  margin-left:auto;
  color:#9ca3af;
  font-size:.82rem;
}

body.saloia-app .mainnav,
body.saloia-app .mainnav__list{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:4px;
  width:100%;
}

body.saloia-app .mainnav__item{
  white-space:normal;
}

body.saloia-app .mainnav__link,
body.saloia-app .mainnav__link--parent{
  width:100%;
  min-height:38px;
  padding:9px 10px;
  border-radius:8px;
  border:0;
  background:transparent;
  color:#cbd5e1;
  font:inherit;
  font-weight:650;
  justify-content:flex-start;
  text-align:left;
  cursor:pointer;
}

body.saloia-app .mainnav__link:hover,
body.saloia-app .mainnav__item.is-active > .mainnav__link,
body.saloia-app .mainnav__item.is-active > .mainnav__link--parent,
body.saloia-app .mainnav__item.has-submenu.is-open > .mainnav__link--parent{
  background:rgba(255,255,255,.08);
  color:#fff;
}

body.saloia-app .mainnav__item.is-active .mainnav__link::after{
  display:none;
}

body.saloia-app .mainnav__label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
}

body.saloia-app .mainnav__link--alerts{
  position:relative;
}

body.saloia-app .mainnav__alert-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:20px;
  height:20px;
  border-radius:999px;
  background:#334155;
  color:#cbd5e1;
  font-size:.76rem;
  font-weight:900;
  line-height:1;
}

body.saloia-app .mainnav__alert-badge{
  display:none;
  align-items:center;
  justify-content:center;
  min-width:22px;
  height:22px;
  margin-left:auto;
  padding:0 6px;
  border:2px solid var(--app-sidebar);
  border-radius:999px;
  background:#dc2626;
  color:#fff;
  font-size:.72rem;
  font-weight:900;
  line-height:1;
  box-shadow:0 0 0 3px rgba(220,38,38,.18);
}

body.saloia-app .mainnav__alert-badge.is-visible{
  display:inline-flex;
}

body.saloia-app .mainnav__link--alerts.has-new-alerts{
  color:#fff;
  background:rgba(220,38,38,.14);
}

body.saloia-app .mainnav__link--alerts.has-new-alerts .mainnav__alert-icon{
  background:#dc2626;
  color:#fff;
  box-shadow:0 0 0 4px rgba(220,38,38,.18);
}

body.saloia-app .mainnav__link--alerts.is-pulsing .mainnav__alert-icon,
body.saloia-app .mainnav__link--alerts.is-pulsing .mainnav__alert-badge{
  animation:saloiaAlertPulse .9s ease-out 2;
}

body.saloia-app .mainnav__chevron{
  margin-left:auto;
  color:#7f8ea3;
  font-size:1.1rem;
  line-height:1;
  transition:transform .16s ease, color .16s ease;
}

body.saloia-app .mainnav__item.has-submenu.is-open > .mainnav__link--parent .mainnav__chevron{
  color:#dbeafe;
  transform:rotate(90deg);
}

body.saloia-app .mainnav__submenu{
  position:static;
  display:none;
  flex-direction:column;
  gap:2px;
  margin:2px 0 8px;
  padding:4px 0 4px 12px;
  list-style:none;
  background:transparent;
  border:0;
  box-shadow:none;
}

body.saloia-app .mainnav__item.has-submenu.is-open > .mainnav__submenu{
  display:flex;
}

body.saloia-app .mainnav__submenu[hidden]{
  display:none !important;
}

body.saloia-app .mainnav__submenu-link{
  display:flex;
  padding:7px 10px;
  border-radius:7px;
  color:#aab6c7;
  text-decoration:none;
  font-size:.9rem;
}

body.saloia-app .mainnav__submenu-link:hover,
body.saloia-app .mainnav__submenu-item.is-active .mainnav__submenu-link{
  background:rgba(37,99,235,.18);
  color:#fff;
}

body.saloia-app .mainnav__submenu-section{
  margin:10px 10px 5px;
  color:#748196;
  font-size:.72rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

body.saloia-app .mainnav__item--right{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid rgba(255,255,255,.08);
}

body.saloia-app .mainnav__link--danger{
  color:#fecaca;
}

@keyframes saloiaAlertPulse{
  0%{ transform:scale(1); }
  45%{ transform:scale(1.16); }
  100%{ transform:scale(1); }
}

body.saloia-app .notification-toast{
  position:fixed;
  right:24px;
  bottom:24px;
  z-index:1300;
  display:flex;
  align-items:center;
  min-height:44px;
  max-width:min(360px, calc(100vw - 32px));
  padding:11px 14px;
  border:1px solid rgba(220,38,38,.24);
  border-radius:8px;
  background:#dc2626;
  color:#fff;
  font-weight:850;
  text-decoration:none;
  box-shadow:0 18px 40px rgba(15,23,42,.22);
  opacity:0;
  pointer-events:none;
  transform:translateY(14px);
  transition:opacity .18s ease, transform .18s ease;
}

body.saloia-app .notification-toast.is-visible{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0);
}

.workspace-topbar{
  position:fixed;
  top:0;
  left:var(--app-sidebar-w);
  right:0;
  height:var(--app-topbar-h);
  z-index:900;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:0 28px;
  background:rgba(255,255,255,.96);
  border-bottom:1px solid var(--app-border);
  backdrop-filter:saturate(160%) blur(10px);
}

.workspace-topbar__eyebrow{
  color:var(--app-muted);
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.06em;
}

.workspace-topbar__title{
  color:#101828;
  font-size:1.05rem;
  font-weight:800;
}

.workspace-topbar__user{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:10px;
  color:#344054;
  font-weight:650;
}

body.saloia-app .page{
  max-width:none;
  margin:0 0 0 var(--app-sidebar-w);
  padding:calc(var(--app-topbar-h) + 24px) 28px 40px;
}

body.saloia-app .ai-status{
  flex:1 1 auto;
  min-width:260px;
  margin:0;
  background:#eef6ff;
  border:1px solid #bfdbfe;
  border-radius:999px;
}

body.saloia-app .ai-status__inner{
  max-width:none;
  padding:7px 12px;
  color:#1d4ed8;
  justify-content:center;
  font-weight:700;
}

body.saloia-app .sitefooter{
  margin:0 0 0 var(--app-sidebar-w);
  background:#f8fafc;
  border-top:0;
}

body.saloia-app .sitefooter__inner{
  max-width:none;
  padding:14px 28px 22px;
  color:#667085;
  font-size:.86rem;
}

body.saloia-app .sitefooter__meta{
  justify-content:flex-start;
}

body.saloia-app .sitefooter .disc{
  margin-top:3px;
  color:#98a2b3;
  font-size:.82rem;
}

body.saloia-app .page-head{
  margin:0 0 18px;
  padding:0 0 14px;
  border-bottom:1px solid var(--app-border);
  display:flex;
  flex-direction:row;
  align-items:flex-end;
  justify-content:space-between;
  gap:16px;
}

body.saloia-app .page-head h1{
  margin:0;
  color:#101828;
  font-size:1.35rem;
  font-weight:800;
}

body.saloia-app .page-head p{
  margin:3px 0 0;
  color:var(--app-muted);
  font-size:.9rem;
}

body.saloia-app .card{
  border:1px solid var(--app-border);
  border-radius:8px;
  box-shadow:none;
  background:var(--app-panel);
  margin-bottom:14px;
}

body.saloia-app .card + .card{
  margin-top:0;
}

body.saloia-app .card-body{
  padding:16px 18px;
}

body.saloia-app h2{
  color:#101828;
  font-size:1.05rem;
  font-weight:800;
}

body.saloia-app h3{
  font-size:.95rem;
}

body.saloia-app .table{
  font-size:.9rem;
  background:#fff;
  table-layout:auto;
}

body.saloia-app .table th,
body.saloia-app .table td{
  padding:9px 10px;
  border-bottom:1px solid #e7edf5;
  vertical-align:middle;
}

body.saloia-app .table thead th{
  background:#f8fafc;
  color:#667085;
  font-size:.72rem;
  letter-spacing:.05em;
}

body.saloia-app .table thead,
body.saloia-app .table tbody,
body.saloia-app .table tr{
  position:static;
}

body.saloia-app .btn{
  min-height:36px;
  padding:7px 12px;
  border-radius:7px;
  box-shadow:none;
  transform:none;
}

body.saloia-app .btn:hover{
  transform:none;
  box-shadow:none;
}

body.saloia-app .field-input,
body.saloia-app input.btn,
body.saloia-app select.btn,
body.saloia-app textarea.btn{
  box-sizing:border-box;
  max-width:100%;
  border-radius:7px;
  border-color:#cfd8e3;
  background:#fff;
}

body.saloia-app .badge{
  border-radius:999px;
  font-size:.78rem;
  padding:3px 8px;
}

body.saloia-app .alert{
  border-radius:8px;
  margin:0 0 14px;
}

body.saloia-app .grid-2{
  gap:14px;
}

body.saloia-app .grid-2 > *,
body.saloia-app .grid-3 > *{
  min-width:0;
}

body.saloia-app .grid-3{
  gap:14px;
}

body.saloia-app .field{
  display:flex;
  flex-direction:column;
  gap:6px;
  min-width:0;
  margin-bottom:12px;
}

body.saloia-app .field-label{
  display:block;
  margin:0;
  color:#344054;
  font-size:.86rem;
  font-weight:700;
}

body.saloia-app .profile-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

body.saloia-app .profile-summary > div{
  padding:12px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#f8fafc;
}

body.saloia-app .profile-summary strong{
  display:block;
  margin-bottom:4px;
  color:#1d3567;
  font-size:.82rem;
}

body.saloia-app .profile-summary span{
  color:#344054;
}

body.saloia-app .module-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  margin:0 0 14px;
  padding:12px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
}

body.saloia-app .module-toolbar__search{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:min(680px, 100%);
}

body.saloia-app .module-toolbar__search .field-input{
  min-width:320px;
}

body.saloia-app .module-toolbar__stats,
body.saloia-app .bulk-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex-wrap:wrap;
}

body.saloia-app .metric-pill{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:32px;
  padding:5px 10px;
  border:1px solid #dbe4ef;
  border-radius:999px;
  background:#f8fafc;
  color:#475467;
  font-size:.84rem;
  font-weight:650;
}

body.saloia-app .metric-pill strong{
  color:#101828;
  font-size:.95rem;
}

body.saloia-app .module-panel-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

body.saloia-app .management-table-wrap{
  margin-bottom:18px;
  border:1px solid #e7edf5;
  border-radius:8px;
  overflow:auto;
}

body.saloia-app .management-table-wrap .table{
  margin:0;
}

body.saloia-app .actions-cell{
  min-width:220px;
}

body.saloia-app .actions-cell .btn,
body.saloia-app .actions-cell form{
  margin:2px;
}

body.saloia-app .data-panel .card-body{
  padding:0;
}

body.saloia-app .data-panel .table{
  margin:0;
}

body.saloia-app .metric-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin:0 0 14px;
}

body.saloia-app .metric-card{
  min-height:96px;
  padding:14px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.035);
}

body.saloia-app .metric-card__label{
  display:block;
  color:#667085;
  font-size:.82rem;
  font-weight:650;
  text-transform:uppercase;
  letter-spacing:.04em;
}

body.saloia-app .metric-card__value{
  display:block;
  margin-top:8px;
  color:#101828;
  font-size:1.55rem;
  font-weight:800;
  line-height:1.1;
}

body.saloia-app .metric-card__note{
  margin-top:6px;
  color:#667085;
  font-size:.88rem;
}

body.saloia-app .module-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}

body.saloia-app .module-card{
  display:flex;
  min-height:152px;
  padding:15px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  color:#101828;
  text-decoration:none;
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}

body.saloia-app .module-card:hover{
  border-color:#b8c7da;
  box-shadow:0 14px 30px rgba(15,23,42,.07);
  transform:translateY(-1px);
}

body.saloia-app .module-card__body{
  display:flex;
  flex-direction:column;
  min-width:0;
}

body.saloia-app .module-card__kicker{
  margin-bottom:8px;
  color:#335c9d;
  font-size:.78rem;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}

body.saloia-app .module-card h3{
  margin:0;
  color:#101828;
  font-size:1rem;
  line-height:1.25;
}

body.saloia-app .module-card p{
  margin:8px 0 0;
  color:#475467;
  font-size:.92rem;
  line-height:1.45;
}

body.saloia-app .module-card__meta{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  margin-top:auto;
  padding-top:14px;
}

body.saloia-app .section-panel{
  margin:0 0 14px;
  padding:16px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
}

body.saloia-app .section-panel__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:14px;
}

body.saloia-app .section-panel__head h2{
  margin:0;
  font-size:1.05rem;
}

body.saloia-app .section-panel__head p{
  margin:4px 0 0;
  color:#667085;
}

body.saloia-app .proposal-flow-hero{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  margin:0 0 14px;
  padding:16px;
  border:1px solid var(--app-border);
  border-radius:8px;
  background:#fff;
  box-shadow:0 8px 22px rgba(15,23,42,.035);
}

body.saloia-app .proposal-flow-hero h2{
  margin:0;
  font-size:1.08rem;
}

body.saloia-app .proposal-flow-hero p{
  margin:6px 0 0;
  color:#475467;
}

body.saloia-app .proposal-flow-steps{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  justify-content:flex-end;
  min-width:260px;
}

body.saloia-app .proposal-flow-steps span{
  display:inline-flex;
  align-items:center;
  min-height:30px;
  padding:5px 10px;
  border:1px solid #dbe4ef;
  border-radius:999px;
  background:#f8fafc;
  color:#344054;
  font-size:.82rem;
  font-weight:700;
}

body.saloia-app .proposal-hero-action{
  display:none;
}

body.saloia-app .proposal-form-section{
  display:grid;
  grid-template-columns:36px minmax(0,1fr);
  gap:12px;
  padding:16px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body.saloia-app .proposal-form-section:first-of-type{
  padding-top:16px;
}

body.saloia-app .proposal-form-section h3{
  margin:2px 0 12px;
  color:#101828;
}

body.saloia-app .proposal-field-note{
  margin:0 0 12px;
  color:#667085;
  font-size:.9rem;
  line-height:1.45;
}

body.saloia-app .proposal-form-section__label{
  display:flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  border:1px solid #bfd0e7;
  border-radius:999px;
  background:#eef5ff;
  color:#1d3567;
  font-weight:800;
}

body.saloia-app .proposal-submit-row{
  display:flex;
  align-items:center;
  gap:12px;
  flex-wrap:wrap;
  padding-top:14px;
  border-top:1px solid #e7edf5;
}

body.saloia-app .proposal-submit-row span{
  color:#667085;
  font-size:.9rem;
}

body.saloia-app .proposal-list,
body.saloia-app .proposal-admin-list,
body.saloia-app .recipient-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

body.saloia-app .proposal-list-item,
body.saloia-app .proposal-admin-row{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:12px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
  color:#101828;
  text-decoration:none;
  transition:border-color .15s ease, box-shadow .15s ease;
}

body.saloia-app .proposal-list-item:hover,
body.saloia-app .proposal-admin-row:hover{
  border-color:#b8c7da;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}

body.saloia-app .proposal-list-item{
  flex-direction:column;
}

body.saloia-app .proposal-list-item__top,
body.saloia-app .proposal-admin-row__meta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

body.saloia-app .proposal-list-item small,
body.saloia-app .proposal-admin-row small,
body.saloia-app .recipient-list__item small{
  color:#667085;
}

body.saloia-app .proposal-admin-row__main{
  display:flex;
  flex-direction:column;
  gap:4px;
  min-width:0;
}

body.saloia-app .proposal-admin-row__main span{
  color:#344054;
}

body.saloia-app .proposal-admin-row__meta{
  flex-direction:column;
  align-items:flex-end;
  min-width:150px;
}

body.saloia-app .proposal-content-block{
  margin-top:14px;
  padding:14px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fbfdff;
}

body.saloia-app .proposal-content-block h3{
  margin:0 0 8px;
  color:#1d3567;
}

body.saloia-app .proposal-content-block p,
body.saloia-app .proposal-thread__item p{
  margin:0;
  white-space:pre-line;
  line-height:1.55;
}

body.saloia-app .proposal-status-strip{
  display:grid;
  gap:8px;
  margin-bottom:14px;
}

body.saloia-app .proposal-status-strip div,
body.saloia-app .recipient-list__item{
  padding:10px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#f8fafc;
}

body.saloia-app .proposal-status-strip strong,
body.saloia-app .recipient-list__item strong{
  display:block;
  color:#1d3567;
  font-size:.84rem;
}

body.saloia-app .proposal-status-strip span,
body.saloia-app .recipient-list__item span{
  display:block;
  margin-top:4px;
  color:#344054;
  overflow-wrap:anywhere;
}

body.saloia-app .proposal-thread{
  display:flex;
  flex-direction:column;
  gap:10px;
}

body.saloia-app .proposal-thread__item{
  max-width:min(780px, 100%);
  padding:12px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body.saloia-app .proposal-thread__item.is-mine{
  margin-left:auto;
  border-color:#bfd0e7;
  background:#f6f9ff;
}

body.saloia-app .proposal-thread__meta{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
  margin-bottom:8px;
}

body.saloia-app .proposal-thread__meta strong{
  color:#101828;
}

body.saloia-app .proposal-reply-box{
  margin-top:16px;
  padding-top:14px;
  border-top:1px solid #e7edf5;
}

body.saloia-app .proposal-mobile-backdrop{
  display:none;
}

body.saloia-app .proposal-composer__close{
  display:none;
}

body.saloia-app .elected-memory-panel{
  border-color:#c7d7ea;
  background:linear-gradient(180deg,#ffffff 0%,#f7fbff 100%);
}

body.saloia-app .elected-memory-panel .section-panel__head h2{
  font-size:1.15rem;
}

body.saloia-app .elected-memory-panel__body{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,.8fr);
  gap:16px;
  align-items:start;
  margin-top:12px;
  padding-top:14px;
  border-top:1px solid #dbe7f5;
}

body.saloia-app .elected-memory-panel__body strong{
  color:#101828;
  font-size:1rem;
}

body.saloia-app .elected-memory-panel__body p{
  margin:6px 0 0;
  color:#475467;
  line-height:1.55;
}

body.saloia-app .status-list{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:0;
  padding:0;
  list-style:none;
}

body.saloia-app .status-list li{
  padding:12px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#f8fafc;
}

body.saloia-app .status-list span{
  display:block;
  color:#667085;
  font-size:.82rem;
  font-weight:700;
}

body.saloia-app .status-list strong{
  display:block;
  margin-top:5px;
  color:#101828;
}

body.saloia-app .empty-state{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px;
  border:1px dashed #cfd8e3;
  border-radius:8px;
  background:#f8fafc;
  color:#667085;
}

body.saloia-app .empty-state strong{
  color:#344054;
}

body.saloia-app .territory-news-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}

body.saloia-app .territory-news-item{
  padding:12px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body.saloia-app .territory-news-item__meta{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:6px;
  color:#667085;
  font-size:.82rem;
  font-weight:650;
}

body.saloia-app .territory-news-item a,
body.saloia-app .territory-news-item strong{
  color:#101828;
  font-weight:750;
  line-height:1.35;
  text-decoration:none;
}

body.saloia-app .territory-news-item a:hover{
  color:#1d4ed8;
}

body.saloia-app .territory-results{
  display:flex;
  flex-direction:column;
  gap:12px;
}

body.saloia-app .territory-result-card{
  padding:13px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body.saloia-app .territory-result-card__head{
  display:flex;
  justify-content:space-between;
  gap:10px;
  margin-bottom:12px;
}

body.saloia-app .territory-result-card__head strong{
  color:#101828;
}

body.saloia-app .territory-result-card__head span{
  color:#667085;
  white-space:nowrap;
}

body.saloia-app .territory-result-card__bars{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-bottom:12px;
}

body.saloia-app .territory-result-card__bars div{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}

body.saloia-app .territory-result-card__bars span{
  color:#475467;
}

body.saloia-app .territory-result-card__bars strong{
  color:#101828;
}

body.saloia-app .territory-result-card__bars i{
  grid-column:1 / -1;
  display:block;
  height:7px;
  border-radius:999px;
  background:linear-gradient(90deg, #2563eb var(--value), #e7edf5 var(--value));
}

body.saloia-app .territory-result-card__insights{
  display:flex;
  flex-direction:column;
  gap:4px;
  margin:0 0 12px;
  padding:10px;
  border-radius:8px;
  background:#f8fafc;
}

body.saloia-app .territory-result-card__insights span,
body.saloia-app .territory-result-card__contacts{
  color:#667085;
  font-size:.82rem;
  font-weight:700;
}

body.saloia-app .territory-result-card__insights strong{
  color:#344054;
  font-size:.88rem;
}

body.saloia-app .territory-result-card__contacts{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  margin-bottom:12px;
}

body.saloia-app .questionario-charts{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}

body.saloia-app .questionario-chart-card{
  min-width:0;
  padding:14px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body.saloia-app .questionario-chart-card--wide{
  grid-column:1 / -1;
}

body.saloia-app .questionario-chart-card h3{
  margin:0 0 12px;
  color:#101828;
}

body.saloia-app .css-donut{
  width:168px;
  height:168px;
  margin:8px auto 14px;
  border-radius:50%;
  background:conic-gradient(#2563eb var(--value), #e7edf5 var(--value));
  display:grid;
  place-items:center;
  position:relative;
}

body.saloia-app .css-donut::after{
  content:"";
  position:absolute;
  inset:24px;
  border-radius:50%;
  background:#fff;
}

body.saloia-app .css-donut strong,
body.saloia-app .css-donut span{
  position:relative;
  z-index:1;
  grid-area:1 / 1;
}

body.saloia-app .css-donut strong{
  align-self:center;
  color:#101828;
  font-size:1.8rem;
  font-weight:850;
}

body.saloia-app .css-donut span{
  align-self:end;
  margin-bottom:42px;
  color:#667085;
  font-size:.82rem;
  font-weight:700;
}

body.saloia-app .css-donut.is-green{
  background:conic-gradient(#16a34a var(--value), #e7edf5 var(--value));
}

body.saloia-app .chart-legend{
  display:flex;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
  color:#475467;
  font-size:.86rem;
  font-weight:650;
}

body.saloia-app .legend-dot{
  display:inline-block;
  width:9px;
  height:9px;
  margin-right:5px;
  border-radius:50%;
  background:#94a3b8;
}

body.saloia-app .legend-dot.is-blue{
  background:#2563eb;
}

body.saloia-app .legend-dot.is-green{
  background:#16a34a;
}

body.saloia-app .css-bar-chart{
  display:flex;
  flex-direction:column;
  gap:10px;
}

body.saloia-app .css-bar-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}

body.saloia-app .css-bar-row span{
  color:#344054;
  font-weight:700;
}

body.saloia-app .css-bar-row strong{
  color:#101828;
}

body.saloia-app .css-bar-row i{
  grid-column:1 / -1;
  display:block;
  height:10px;
  border-radius:999px;
  background:linear-gradient(90deg, #2563eb var(--value), #e7edf5 var(--value));
}

body.saloia-app .priority-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

body.saloia-app .priority-list__item{
  display:flex;
  justify-content:space-between;
  gap:12px;
  padding:10px;
  border:1px solid #e7edf5;
  border-radius:8px;
  background:#fff;
}

body.saloia-app .priority-list__item span{
  color:#344054;
}

body.saloia-app .priority-list__item strong{
  color:#101828;
}

body.saloia-app .workbench-layout{
  display:grid;
  grid-template-columns:minmax(0, 1.45fr) minmax(360px, .75fr);
  gap:14px;
  align-items:start;
}

body.saloia-app .workbench-main,
body.saloia-app .workbench-side{
  min-width:0;
}

body.saloia-app .workbench-side{
  position:sticky;
  top:calc(var(--app-topbar-h) + 16px);
}

body.saloia-auth{
  background:#f3f6fa;
}

body.saloia-guide{
  margin:0;
  min-height:100vh;
  background:#eef3f9;
  color:#101828;
  font-family:Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

body.saloia-guide .guide-page{
  max-width:1180px;
  margin:0 auto;
  padding:36px 22px 48px;
}

body.saloia-guide .guide-hero{
  display:grid;
  grid-template-columns:minmax(0, .95fr) minmax(360px, .85fr);
  gap:28px;
  align-items:center;
  min-height:calc(100vh - 96px);
}

body.saloia-guide .guide-brand{
  display:inline-flex;
  align-items:center;
  gap:10px;
  margin-bottom:28px;
  color:#101828;
  text-decoration:none;
  font-weight:850;
}

body.saloia-guide .guide-brand img{
  width:52px;
  height:52px;
  object-fit:contain;
}

body.saloia-guide .guide-hero__copy h1{
  max-width:720px;
  margin:0;
  font-size:clamp(2rem, 4vw, 4.35rem);
  line-height:.98;
  letter-spacing:0;
}

body.saloia-guide .guide-hero__copy p{
  max-width:620px;
  margin:18px 0 0;
  color:#475467;
  font-size:1.12rem;
  line-height:1.55;
}

body.saloia-guide .guide-hero__copy .guide-note{
  max-width:680px;
  margin-top:12px;
  padding:12px 14px;
  border:1px solid #cbd8e8;
  border-radius:8px;
  background:#fff;
  color:#1d3567;
  font-size:.96rem;
  font-weight:700;
}

body.saloia-guide .guide-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  margin-top:24px;
}

body.saloia-guide .guide-animation{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:center;
}

body.saloia-guide .guide-device{
  width:min(100%, 430px);
  min-height:560px;
  padding:14px;
  border:1px solid #d3deec;
  border-radius:26px;
  background:#111827;
  box-shadow:0 30px 70px rgba(15,23,42,.22);
}

body.saloia-guide .guide-device__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  height:36px;
  padding:0 8px 10px;
  color:#fff;
}

body.saloia-guide .guide-device__top span,
body.saloia-guide .guide-device__top i{
  display:block;
  width:42px;
  height:5px;
  border-radius:999px;
  background:#2b3547;
}

body.saloia-guide .guide-device__top strong{
  font-size:.9rem;
}

body.saloia-guide .guide-screen{
  position:relative;
  min-height:500px;
  overflow:hidden;
  border-radius:18px;
  background:#f8fafc;
}

body.saloia-guide .guide-step{
  position:absolute;
  inset:0;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  padding:28px;
  opacity:0;
  transform:translateX(26px) scale(.98);
  animation:guideStepCycle 16s infinite;
}

body.saloia-guide .guide-step--email{ animation-delay:0s; }
body.saloia-guide .guide-step--password{ animation-delay:4s; }
body.saloia-guide .guide-step--login{ animation-delay:8s; }
body.saloia-guide .guide-step--proposal{ animation-delay:12s; }

body.saloia-guide .guide-step__kicker{
  color:#335c9d;
  font-size:.78rem;
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
}

body.saloia-guide .guide-step h2{
  margin:0 0 8px;
  color:#101828;
  font-size:1.45rem;
}

body.saloia-guide .guide-input,
body.saloia-guide .guide-proposal-card,
body.saloia-guide .guide-app-shell{
  border:1px solid #dbe4ef;
  border-radius:10px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.06);
}

body.saloia-guide .guide-input{
  padding:13px 14px;
  color:#344054;
  font-weight:750;
}

body.saloia-guide .guide-input.is-filled::after{
  content:"";
  display:inline-block;
  width:2px;
  height:18px;
  margin-left:4px;
  vertical-align:-3px;
  background:#2563eb;
  animation:guideCaret .9s steps(1) infinite;
}

body.saloia-guide .guide-input.is-password{
  letter-spacing:.14em;
}

body.saloia-guide .guide-step button{
  min-height:42px;
  margin-top:6px;
  border:0;
  border-radius:8px;
  background:#1f4fb2;
  color:#fff;
  font-weight:800;
  cursor:default;
}

body.saloia-guide .guide-app-shell{
  display:grid;
  gap:10px;
  padding:14px;
}

body.saloia-guide .guide-app-shell span{
  display:block;
  height:54px;
  border-radius:8px;
  background:linear-gradient(90deg, #eaf1fb 0 38%, #f8fafc 38% 100%);
}

body.saloia-guide .guide-proposal-card{
  display:grid;
  gap:10px;
  padding:14px;
}

body.saloia-guide .guide-proposal-card strong{
  color:#1d3567;
}

body.saloia-guide .guide-proposal-card span{
  display:block;
  height:42px;
  padding:11px 12px;
  border:1px solid #e7edf5;
  border-radius:8px;
  color:#667085;
  background:#fbfdff;
}

body.saloia-guide .guide-progress{
  width:min(100%, 430px);
  height:8px;
  overflow:hidden;
  border-radius:999px;
  background:#dbe4ef;
}

body.saloia-guide .guide-progress span{
  display:block;
  width:100%;
  height:100%;
  transform-origin:left center;
  background:#1f4fb2;
  animation:guideProgress 24s linear infinite;
}

body.saloia-guide .product-demo{
  width:min(100%, 620px);
  border:1px solid #cbd8e8;
  border-radius:18px;
  overflow:hidden;
  background:#111827;
  box-shadow:0 34px 80px rgba(15,23,42,.24);
}

body.saloia-guide .product-demo__chrome{
  display:flex;
  align-items:center;
  gap:7px;
  height:38px;
  padding:0 14px;
  color:#cbd5e1;
  background:#111827;
}

body.saloia-guide .product-demo__chrome span{
  width:10px;
  height:10px;
  border-radius:999px;
  background:#ef4444;
}

body.saloia-guide .product-demo__chrome span:nth-child(2){ background:#f59e0b; }
body.saloia-guide .product-demo__chrome span:nth-child(3){ background:#22c55e; }

body.saloia-guide .product-demo__chrome strong{
  margin-left:8px;
  font-size:.78rem;
  font-weight:650;
}

body.saloia-guide .product-demo__viewport{
  position:relative;
  height:560px;
  overflow:hidden;
  background:#f4f7fb;
}

body.saloia-guide .product-demo__scene{
  position:absolute;
  inset:0;
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  opacity:0;
  transform:translateY(14px);
  animation:productScene 24s infinite;
}

body.saloia-guide .product-demo__scene--email{ animation-delay:0s; }
body.saloia-guide .product-demo__scene--password{ animation-delay:6s; }
body.saloia-guide .product-demo__scene--login{ animation-delay:12s; }
body.saloia-guide .product-demo__scene--workspace{ animation-delay:18s; }

body.saloia-guide .product-demo__scene aside{
  padding:18px 14px;
  background:#101820;
  color:#fff;
}

body.saloia-guide .product-demo__scene aside img{
  display:block;
  width:58px;
  height:58px;
  object-fit:contain;
  margin-bottom:8px;
}

body.saloia-guide .product-demo__scene section{
  min-width:0;
  padding:34px;
}

body.saloia-guide .product-demo__scene h2{
  margin:0 0 16px;
  color:#101828;
}

body.saloia-guide .demo-mail-card,
body.saloia-guide .demo-auth-panel,
body.saloia-guide .demo-form{
  max-width:360px;
  padding:18px;
  border:1px solid #dbe4ef;
  border-radius:10px;
  background:#fff;
  box-shadow:0 14px 34px rgba(15,23,42,.08);
}

body.saloia-guide .demo-mail-card p{
  margin:8px 0 16px;
  color:#475467;
}

body.saloia-guide .product-demo button{
  min-height:38px;
  padding:8px 13px;
  border:0;
  border-radius:8px;
  background:#1f4fb2;
  color:#fff;
  font-weight:800;
}

body.saloia-guide .demo-auth-panel label,
body.saloia-guide .demo-form label{
  display:block;
  margin:10px 0 5px;
  color:#344054;
  font-size:.78rem;
  font-weight:750;
}

body.saloia-guide .demo-field,
body.saloia-guide .demo-select,
body.saloia-guide .demo-textarea{
  min-height:38px;
  overflow:hidden;
  padding:9px 11px;
  border:1px solid #cfd8e3;
  border-radius:8px;
  background:#fff;
  color:#101828;
  font-size:.86rem;
}

body.saloia-guide .demo-field span,
body.saloia-guide .demo-textarea span{
  display:block;
  overflow:hidden;
  white-space:nowrap;
  width:0;
}

body.saloia-guide .demo-field--pass span{
  letter-spacing:.12em;
  animation:demoTypePass 24s steps(12,end) infinite;
}

body.saloia-guide .demo-field--pass span::before,
body.saloia-guide .demo-field--pass2 span::before,
body.saloia-guide .demo-field--login-pass span::before{
  content:"••••••••••••";
}

body.saloia-guide .demo-field--pass2 span{ animation-delay:.7s; }

body.saloia-guide .demo-field--login-email span{
  animation:demoTypeLoginEmail 24s steps(21,end) infinite;
}

body.saloia-guide .demo-field--login-email span::before{
  content:"ana.guerreiro@salo.ia";
}

body.saloia-guide .demo-field--login-pass span{
  letter-spacing:.12em;
  animation:demoTypeLoginPass 24s steps(12,end) infinite;
}

body.saloia-guide .demo-sidebar{
  min-height:560px;
}

body.saloia-guide .demo-sidebar nav{
  display:grid;
  gap:8px;
  margin-top:22px;
}

body.saloia-guide .demo-sidebar nav span{
  padding:9px 10px;
  border-radius:8px;
  color:#cbd5e1;
}

body.saloia-guide .demo-sidebar nav span.is-active{
  background:#1f4fb2;
  color:#fff;
  animation:demoMenuPulse 24s infinite;
}

body.saloia-guide .demo-workspace{
  padding:0 !important;
  background:#f3f6fa;
}

body.saloia-guide .demo-workspace header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:18px 22px;
  border-bottom:1px solid #dbe4ef;
  background:#fff;
}

body.saloia-guide .demo-workspace header small{
  display:block;
  color:#667085;
  font-size:.75rem;
}

body.saloia-guide .demo-workspace header h2{
  margin:2px 0 0;
  font-size:1.05rem;
}

body.saloia-guide .demo-workspace header em{
  color:#335c9d;
  font-size:.76rem;
  font-style:normal;
  font-weight:750;
}

body.saloia-guide .demo-flow-pills{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  padding:16px 22px 0;
}

body.saloia-guide .demo-flow-pills span{
  padding:5px 8px;
  border:1px solid #dbe4ef;
  border-radius:999px;
  background:#fff;
  color:#475467;
  font-size:.72rem;
  font-weight:750;
}

body.saloia-guide .demo-flow-pills span.is-active{
  border-color:#bfd0e7;
  background:#eef5ff;
  color:#1d3567;
}

body.saloia-guide .demo-form{
  max-width:none;
  margin:14px 22px;
  padding:14px;
}

body.saloia-guide .demo-form h3{
  margin:0 0 8px;
  color:#101828;
}

body.saloia-guide .demo-textarea{
  min-height:58px;
}

body.saloia-guide .demo-textarea--motivos span{
  animation:demoTypeMotivos 24s steps(44,end) infinite;
}

body.saloia-guide .demo-textarea--motivos span::before{
  content:"A rua precisa de melhor iluminação pública.";
}

body.saloia-guide .demo-textarea--desenvolvimento span{
  animation:demoTypeDesenvolvimento 24s steps(54,end) infinite;
}

body.saloia-guide .demo-textarea--desenvolvimento span::before{
  content:"Propõe-se reforço de iluminação e sinalização.";
}

body.saloia-guide .product-demo__toast{
  position:absolute;
  right:24px;
  bottom:22px;
  z-index:6;
  padding:12px 14px;
  border:1px solid #bbf7d0;
  border-radius:8px;
  background:#ecfdf3;
  color:#166534;
  font-size:.86rem;
  font-weight:800;
  opacity:0;
  transform:translateY(12px);
  animation:demoToast 24s infinite;
}

body.saloia-guide .product-demo__cursor{
  position:absolute;
  z-index:8;
  width:18px;
  height:18px;
  border-left:14px solid #101828;
  border-top:9px solid transparent;
  border-bottom:9px solid transparent;
  filter:drop-shadow(0 2px 3px rgba(15,23,42,.25));
  transform:rotate(42deg);
  animation:demoCursor 24s infinite;
}

body.saloia-guide .product-demo__click{
  position:absolute;
  z-index:7;
  width:34px;
  height:34px;
  margin:-17px 0 0 -17px;
  border:2px solid #2563eb;
  border-radius:999px;
  opacity:0;
  animation:demoClick 24s infinite;
}

body.saloia-guide .guide-flow{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
  margin-top:12px;
}

body.saloia-guide .guide-flow article{
  min-height:172px;
  padding:16px;
  border:1px solid #dbe4ef;
  border-radius:8px;
  background:#fff;
  box-shadow:0 10px 26px rgba(15,23,42,.045);
}

body.saloia-guide .guide-flow strong{
  display:flex;
  align-items:center;
  justify-content:center;
  width:32px;
  height:32px;
  border-radius:999px;
  background:#eef5ff;
  color:#1d3567;
}

body.saloia-guide .guide-flow h2{
  margin:14px 0 6px;
  font-size:1rem;
}

body.saloia-guide .guide-flow p{
  margin:0;
  color:#475467;
  line-height:1.45;
}

@keyframes guideStepCycle{
  0%{ opacity:0; transform:translateX(26px) scale(.98); }
  5%{ opacity:1; transform:translateX(0) scale(1); }
  22%{ opacity:1; transform:translateX(0) scale(1); }
  27%{ opacity:0; transform:translateX(-22px) scale(.985); }
  100%{ opacity:0; transform:translateX(-22px) scale(.985); }
}

@keyframes guideProgress{
  0%{ transform:scaleX(0); }
  100%{ transform:scaleX(1); }
}

@keyframes productScene{
  0%{ opacity:0; transform:translateY(14px); pointer-events:none; }
  4%{ opacity:1; transform:translateY(0); }
  22%{ opacity:1; transform:translateY(0); }
  26%{ opacity:0; transform:translateY(-12px); pointer-events:none; }
  100%{ opacity:0; transform:translateY(-12px); pointer-events:none; }
}

@keyframes demoCursor{
  0%, 2%{ left:78%; top:56%; }
  7%, 9%{ left:69%; top:58%; }
  15%, 16%{ left:68%; top:70%; }
  25%, 27%{ left:54%; top:54%; }
  33%, 34%{ left:54%; top:66%; }
  40%, 41%{ left:55%; top:78%; }
  50%, 52%{ left:54%; top:53%; }
  58%, 59%{ left:54%; top:65%; }
  64%, 65%{ left:55%; top:77%; }
  75%, 77%{ left:29%; top:19%; }
  82%, 83%{ left:67%; top:51%; }
  88%, 89%{ left:67%; top:65%; }
  94%, 96%{ left:58%; top:85%; }
  100%{ left:78%; top:56%; }
}

@keyframes demoClick{
  0%, 6%, 10%, 14%, 17%, 24%, 32%, 35%, 39%, 42%, 49%, 53%, 57%, 60%, 63%, 66%, 74%, 78%, 81%, 84%, 87%, 90%, 93%, 97%, 100%{
    opacity:0;
    transform:scale(.5);
  }
  7%, 8%{ left:69%; top:58%; }
  16%, 17%{ left:68%; top:70%; }
  33%, 34%{ left:54%; top:66%; }
  40%, 41%{ left:55%; top:78%; }
  51%, 52%{ left:54%; top:53%; }
  58%, 59%{ left:54%; top:65%; }
  76%, 77%{ left:29%; top:19%; }
  82%, 83%{ left:67%; top:51%; }
  88%, 89%{ left:67%; top:65%; }
  95%, 96%{ left:58%; top:85%; }
  7%, 16%, 33%, 40%, 51%, 58%, 76%, 82%, 88%, 95%{
    opacity:.85;
    transform:scale(1);
  }
  8%, 17%, 34%, 41%, 52%, 59%, 77%, 83%, 89%, 96%{
    opacity:0;
    transform:scale(1.8);
  }
}

@keyframes demoTypePass{
  0%, 25%{ width:0; }
  31%, 48%{ width:12ch; }
  49%, 100%{ width:0; }
}

@keyframes demoTypeLoginEmail{
  0%, 50%{ width:0; }
  57%, 72%{ width:21ch; }
  73%, 100%{ width:0; }
}

@keyframes demoTypeLoginPass{
  0%, 55%{ width:0; }
  61%, 72%{ width:12ch; }
  73%, 100%{ width:0; }
}

@keyframes demoTypeMotivos{
  0%, 80%{ width:0; }
  87%, 97%{ width:44ch; }
  98%, 100%{ width:0; }
}

@keyframes demoTypeDesenvolvimento{
  0%, 86%{ width:0; }
  93%, 97%{ width:54ch; }
  98%, 100%{ width:0; }
}

@keyframes demoMenuPulse{
  0%, 76%{ box-shadow:none; }
  78%, 83%{ box-shadow:0 0 0 4px rgba(37,99,235,.22); }
  84%, 100%{ box-shadow:none; }
}

@keyframes demoToast{
  0%, 93%{ opacity:0; transform:translateY(12px); }
  95%, 99%{ opacity:1; transform:translateY(0); }
  100%{ opacity:0; transform:translateY(12px); }
}

@keyframes guideCaret{
  0%, 45%{ opacity:1; }
  46%, 100%{ opacity:0; }
}

body.saloia-auth .page{
  max-width:520px;
  min-height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 20px;
}

body.saloia-auth .sitefooter{
  display:none;
}

@media (max-width: 1100px){
  :root{
    --app-sidebar-w: 244px;
  }
}

@media (max-width: 820px){
  body.saloia-app{
    font-size:15px;
  }

  body.saloia-app .topbar{
    position:sticky;
    top:0;
    width:auto;
    max-height:none;
    z-index:1000;
    overflow:visible;
  }

  body.saloia-app .topbar__inner{
    min-height:0;
    padding:10px 12px;
    gap:10px;
  }

  body.saloia-app .brand{
    padding:0;
    border-bottom:0;
  }

  body.saloia-app .brand__icon{
    width:34px;
    height:34px;
  }

  body.saloia-app .brand__logo{
    font-size:1rem;
  }

  body.saloia-app .mainnav{
    overflow:auto;
    margin:0 -12px -2px;
    padding:0 12px 2px;
  }

  body.saloia-app .mainnav__list{
    flex-direction:row;
    gap:6px;
    width:max-content;
    min-width:100%;
  }

  body.saloia-app .mainnav__item{
    flex:0 0 auto;
  }

  body.saloia-app .mainnav__item--right{
    margin-top:0;
    padding-top:0;
    border-top:0;
  }

  body.saloia-app .mainnav__link,
  body.saloia-app .mainnav__link--parent{
    width:auto;
    min-height:34px;
    padding:7px 9px;
    white-space:nowrap;
    border:1px solid rgba(255,255,255,.09);
    background:rgba(255,255,255,.04);
    font-size:.86rem;
  }

  body.saloia-app .mainnav__chevron,
  body.saloia-app .mainnav__submenu,
  body.saloia-app .mainnav__submenu-section{
    display:none !important;
  }

  body.saloia-app .mainnav__item.has-submenu{
    display:none;
  }

  body.saloia-app .mainnav__link--alerts{
    padding-right:32px;
  }

  body.saloia-app .mainnav__alert-badge{
    position:absolute;
    top:-7px;
    right:-7px;
    margin-left:0;
    border-color:var(--app-sidebar);
  }

  body.saloia-app .notification-toast{
    right:12px;
    bottom:12px;
  }

  .workspace-topbar{
    position:static;
    height:auto;
    padding:10px 14px;
    margin:0;
    gap:10px;
  }

  .workspace-topbar__eyebrow,
  .workspace-topbar__user{
    display:none;
  }

  .workspace-topbar__title{
    font-size:.98rem;
  }

  body.saloia-app .page{
    margin:0;
    padding:14px 12px 30px;
  }

  body.saloia-app .ai-status,
  body.saloia-app .sitefooter{
    margin-left:0;
  }

  body.saloia-app .sitefooter__inner{
    padding-left:14px;
    padding-right:14px;
  }

  body.saloia-app .ai-status{
    width:100%;
    order:3;
    min-width:0;
    border-radius:8px;
  }

  body.saloia-app .ai-status__inner{
    justify-content:flex-start;
    padding:6px 9px;
    font-size:.8rem;
  }

  body.saloia-app .ai-status__dots{
    display:none;
  }

  body.saloia-app .page-head{
    flex-direction:column;
    align-items:flex-start;
  }

  body.saloia-app .page-head h1{
    font-size:1.24rem;
    line-height:1.15;
  }

  body.saloia-app .page-head p{
    font-size:.9rem;
    line-height:1.35;
  }

  body.saloia-app .proposals-page-head{
    gap:12px;
    margin-bottom:12px;
  }

  body.saloia-app .profile-summary{
    grid-template-columns:1fr;
  }

  body.saloia-app .module-toolbar,
  body.saloia-app .module-panel-head{
    flex-direction:column;
    align-items:stretch;
  }

  body.saloia-app .module-toolbar__search{
    flex-direction:column;
    align-items:stretch;
    min-width:0;
  }

  body.saloia-app .module-toolbar__search .field-input{
    min-width:0;
  }

  body.saloia-app .elected-memory-panel__body{
    grid-template-columns:1fr;
  }

  body.saloia-app .workbench-layout{
    grid-template-columns:1fr;
  }

  body.saloia-app .workbench-side{
    position:static;
  }

  body.saloia-app .module-grid,
  body.saloia-app .status-list,
  body.saloia-app .questionario-charts{
    grid-template-columns:1fr;
  }

  body.saloia-app .metric-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:8px;
  }

  body.saloia-app .metric-card{
    min-height:82px;
    padding:11px;
  }

  body.saloia-app .metric-card__label{
    font-size:.68rem;
  }

  body.saloia-app .metric-card__value{
    margin-top:5px;
    font-size:1.28rem;
  }

  body.saloia-app .metric-card__note{
    margin-top:4px;
    font-size:.76rem;
    line-height:1.25;
  }

  body.saloia-app .proposal-flow-hero,
  body.saloia-app .proposal-admin-row,
  body.saloia-app .proposal-list-item__top,
  body.saloia-app .proposal-submit-row{
    align-items:stretch;
    flex-direction:column;
  }

  body.saloia-app .proposal-flow-hero{
    gap:12px;
    padding:14px;
  }

  body.saloia-app .proposal-flow-hero h2{
    font-size:1.18rem;
    line-height:1.16;
  }

  body.saloia-app .proposal-flow-hero p{
    font-size:.92rem;
    line-height:1.38;
  }

  body.saloia-app .proposal-flow-steps{
    min-width:0;
    justify-content:flex-start;
    gap:6px;
  }

  body.saloia-app .proposal-flow-steps span{
    min-height:28px;
    padding:4px 8px;
    font-size:.75rem;
  }

  body.saloia-app .proposal-form-section{
    grid-template-columns:1fr;
  }

  body.saloia-app .proposal-admin-row__meta{
    align-items:flex-start;
    min-width:0;
  }

  body.saloia-app.proposal-composer-open{
    overflow:hidden;
  }

  body.saloia-app .proposals-page-head .page-actions{
    width:100%;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }

  body.saloia-app .proposals-page-head .page-actions .btn{
    width:100%;
    justify-content:center;
  }

  body.saloia-app .workbench-layout{
    gap:10px;
  }

  body.saloia-app .workbench-side .card-body{
    padding:14px;
  }

  body.saloia-app .workbench-side .module-panel-head{
    margin-bottom:10px;
  }

  body.saloia-app .workbench-side .module-panel-head h2{
    font-size:1.08rem;
  }

  body.saloia-app .proposal-list{
    gap:10px;
  }

  body.saloia-app .proposal-list-item{
    padding:13px;
    border-radius:10px;
  }

  body.saloia-app .proposal-list-item strong{
    font-size:.95rem;
    line-height:1.25;
  }

  body.saloia-app .proposal-list-item .badge{
    align-self:flex-start;
    width:max-content;
  }

  body.saloia-app .proposal-list-item > span:not(.proposal-list-item__top){
    color:#344054;
    font-size:.9rem;
  }

  body.saloia-app .proposal-list-item small{
    font-size:.78rem;
  }

  body.saloia-app .empty-state{
    padding:18px;
    border-radius:10px;
    text-align:left;
  }

  body.saloia-app .proposal-mobile-backdrop{
    display:block;
    position:fixed;
    inset:0;
    z-index:180;
    background:rgba(15,23,42,.58);
    backdrop-filter:blur(4px);
  }

  body.saloia-app .proposal-mobile-backdrop[hidden]{
    display:none;
  }

  body.saloia-app .proposal-composer{
    display:none;
  }

  body.saloia-app.proposal-composer-open .proposal-composer{
    display:block;
    position:fixed;
    inset:10px;
    z-index:190;
    overflow:hidden;
    border-radius:12px;
    box-shadow:0 26px 80px rgba(15,23,42,.35);
  }

  body.saloia-app.proposal-composer-open .proposal-composer .card-body{
    height:100%;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:16px;
  }

  body.saloia-app .proposal-composer__head{
    position:sticky;
    top:0;
    z-index:2;
    margin:-16px -16px 12px;
    padding:14px 16px;
    border-bottom:1px solid #e7edf5;
    background:#fff;
  }

  body.saloia-app .proposal-composer__head h2{
    font-size:1.12rem;
  }

  body.saloia-app .proposal-composer__close{
    display:inline-flex;
    width:auto;
    align-self:flex-start;
  }

  body.saloia-app .proposal-form-section{
    gap:10px;
    padding:14px;
    border-radius:10px;
  }

  body.saloia-app .proposal-form-section__label{
    width:34px;
    height:34px;
    font-size:1rem;
  }

  body.saloia-app .proposal-form-section h3{
    margin-bottom:8px;
    font-size:1.08rem;
  }

  body.saloia-app .proposal-field-note{
    font-size:.94rem;
  }

  body.saloia-app .proposal-composer .field{
    margin-bottom:14px;
  }

  body.saloia-app .proposal-composer .field-label{
    font-size:.94rem;
  }

  body.saloia-app .proposal-composer .field-input{
    width:100%;
    min-height:46px;
    font-size:1rem;
  }

  body.saloia-app .proposal-composer textarea.field-input{
    min-height:142px;
    resize:vertical;
  }

  body.saloia-app .proposal-composer #desenvolvimento{
    min-height:190px;
  }

  body.saloia-app .proposal-submit-row{
    position:sticky;
    bottom:0;
    margin:14px -16px -16px;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
    background:#fff;
    border-top:1px solid #e7edf5;
    box-shadow:0 -10px 24px rgba(15,23,42,.08);
  }

  body.saloia-app .proposal-submit-row .btn{
    width:100%;
    min-height:48px;
    font-size:1rem;
  }

  body.saloia-app .proposal-submit-row span{
    font-size:.86rem;
    line-height:1.35;
  }

  body.saloia-app .questionario-chart-card--wide{
    grid-column:auto;
  }

  body.saloia-guide .guide-page{
    padding:22px 14px 34px;
  }

  body.saloia-guide .guide-hero{
    grid-template-columns:1fr;
    min-height:0;
  }

  body.saloia-guide .guide-flow{
    grid-template-columns:1fr;
  }

  body.saloia-guide .guide-device{
    min-height:500px;
  }

  body.saloia-guide .guide-screen{
    min-height:440px;
  }

  body.saloia-guide .product-demo__viewport{
    height:620px;
  }

  body.saloia-guide .product-demo__scene{
    grid-template-columns:1fr;
  }

  body.saloia-guide .product-demo__scene aside{
    display:none;
  }

  body.saloia-guide .product-demo__scene section{
    padding:22px;
  }

  body.saloia-guide .demo-workspace header{
    flex-direction:column;
    align-items:flex-start;
  }
}

@media (prefers-reduced-motion: reduce){
  body.saloia-guide .guide-step,
  body.saloia-guide .guide-progress span,
  body.saloia-guide .guide-input.is-filled::after{
    animation:none;
  }

  body.saloia-guide .guide-step--proposal{
    opacity:1;
    transform:none;
  }
}

body.saloia-app .proposal-rating-form{
  display:flex;
  flex-direction:column;
  gap:12px;
  margin-top:16px;
}

body.saloia-app .proposal-rating-form--compact{
  align-items:flex-end;
  margin-top:0;
}

body.saloia-app .proposal-rating-scale{
  display:grid;
  grid-template-columns:repeat(6, minmax(40px, 1fr));
  gap:8px;
}

body.saloia-app .proposal-rating-scale--compact{
  grid-template-columns:repeat(6, 34px);
  gap:5px;
}

body.saloia-app .proposal-rating-option input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

body.saloia-app .proposal-rating-option span{
  display:grid;
  place-items:center;
  min-height:42px;
  border:1px solid #cfd8e6;
  border-radius:8px;
  background:#fff;
  color:#26364d;
  font-weight:800;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}

body.saloia-app .proposal-rating-scale--compact .proposal-rating-option span{
  min-height:34px;
  border-radius:7px;
  font-size:.9rem;
}

body.saloia-app .proposal-rating-option input:checked + span,
body.saloia-app .proposal-rating-option span:hover{
  border-color:#2454c6;
  background:#2454c6;
  color:#fff;
  transform:translateY(-1px);
}

body.saloia-app .proposal-rating-locked{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-top:16px;
  padding:12px 14px;
  border:1px solid #c7f0d8;
  border-radius:8px;
  background:#f0fdf4;
  color:#14532d;
}

body.saloia-app .proposal-rating-locked strong{
  font-size:1.1rem;
}

body.saloia-app .proposal-rating-locked--compact{
  margin-top:0;
  padding:8px 10px;
  min-width:130px;
}

body.saloia-app .form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

body.saloia-app .check-row{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin:10px 0;
  color:#334155;
  font-weight:650;
  line-height:1.35;
}

body.saloia-app .check-row input{
  margin-top:3px;
}

@media (max-width: 720px){
  body.saloia-app .form-grid{
    grid-template-columns:1fr;
  }
}

body.saloia-portal{
  --portal-blue:#174ea6;
  --portal-blue-2:#0f3a83;
  --portal-sky:#e8f1ff;
  background:#f5f8ff;
}

body.saloia-portal .topbar{
  background:#081b3d;
}

body.saloia-portal .mainnav__link:hover,
body.saloia-portal .mainnav__item.is-active > .mainnav__link,
body.saloia-portal .mainnav__item.is-active > .mainnav__link--parent{
  background:rgba(219,234,254,.16);
  color:#fff;
}

body.saloia-portal .workspace-topbar{
  border-bottom-color:#cfe0f6;
  background:linear-gradient(180deg,#ffffff 0%,#f5f8ff 100%);
}

body.saloia-portal .ai-status__inner{
  border-color:#bfdbfe;
  background:#eff6ff;
  color:#174ea6;
}

body.saloia-portal .btn-primary{
  background:#174ea6;
  border-color:#174ea6;
}

body.saloia-portal .btn-primary:hover{
  background:#0f3a83;
  border-color:#0f3a83;
}

.portal-public-shell{
  min-height:100vh;
  display:grid;
  grid-template-columns:minmax(0, 1.1fr) minmax(360px, 520px);
  gap:28px;
  align-items:center;
  padding:clamp(18px, 4vw, 54px);
  background:
    linear-gradient(135deg, rgba(245,248,255,.98), rgba(224,236,255,.94)),
    url('/assets/img/logo.png') center/360px no-repeat,
    #f5f8ff;
}

.portal-public-shell--register{
  align-items:start;
}

.portal-public-hero{
  color:#102033;
  max-width:720px;
}

.portal-public-brand{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin-bottom:28px;
  font-weight:900;
}

.portal-public-brand img{
  width:72px;
  height:72px;
  object-fit:contain;
  border-radius:18px;
  background:#ffffff;
  border:1px solid #d8e4f5;
  padding:6px;
}

.portal-public-hero .module-card__kicker{
  color:#174ea6;
}

.portal-public-hero h1{
  max-width:760px;
  margin:10px 0 18px;
  font-size:clamp(2.1rem, 5vw, 4.6rem);
  line-height:1.02;
  letter-spacing:0;
}

.portal-public-hero p{
  max-width:640px;
  margin:0;
  color:#42526b;
  font-size:1.15rem;
  line-height:1.55;
}

.portal-trust-list{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:28px;
}

.portal-trust-list span{
  display:inline-flex;
  align-items:center;
  min-height:38px;
  padding:8px 12px;
  border:1px solid #cfe0f6;
  border-radius:999px;
  background:#ffffff;
  color:#174ea6;
  font-weight:800;
}

.portal-auth-panel{
  border-radius:18px;
  box-shadow:0 30px 80px rgba(23,78,166,.16);
}

.portal-auth-panel .auth-title{
  font-size:1.8rem;
}

.portal-choice-fieldset{
  margin:0 0 18px;
  padding:0;
  border:0;
}

.portal-choice-fieldset legend{
  margin-bottom:10px;
  color:#1f2a3d;
  font-weight:900;
}

.portal-choice-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
}

.portal-choice-card{
  position:relative;
  display:flex;
  cursor:pointer;
}

.portal-choice-card input{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.portal-choice-card span{
  width:100%;
  min-height:112px;
  padding:16px;
  border:1px solid #d4deeb;
  border-radius:12px;
  background:#fff;
  transition:border-color .16s ease, box-shadow .16s ease, background .16s ease;
}

.portal-choice-card strong,
.portal-choice-card small{
  display:block;
}

.portal-choice-card strong{
  color:#132033;
  font-size:1rem;
}

.portal-choice-card small{
  margin-top:7px;
  color:#64748b;
  line-height:1.35;
}

.portal-choice-card input:checked + span{
  border-color:#174ea6;
  background:#eff6ff;
  box-shadow:0 0 0 3px rgba(23,78,166,.14);
}

.portal-submit-row{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
}

.portal-submit-row span{
  color:#64748b;
  font-weight:650;
}

.is-offline body.saloia-portal::before{
  content:"Sem ligação à internet";
  position:fixed;
  z-index:10000;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  padding:10px 14px;
  border-radius:999px;
  background:#7f1d1d;
  color:#fff;
  font-weight:900;
  box-shadow:0 14px 34px rgba(15,23,42,.28);
}

@media (max-width: 900px){
  .portal-public-shell,
  .portal-public-shell--register{
    grid-template-columns:1fr;
    align-items:start;
    padding:18px;
  }

  .portal-public-hero h1{
    font-size:2.4rem;
  }

  .portal-public-brand{
    margin-bottom:18px;
  }

  .portal-auth-panel{
    border-radius:14px;
  }
}

@media (max-width: 680px){
  .portal-choice-grid{
    grid-template-columns:1fr;
  }

  .portal-public-hero p{
    font-size:1rem;
  }

  .portal-trust-list span{
    width:100%;
    justify-content:center;
  }
}
