/* ── Portal do Cliente — estilos complementares ao Sneat ──────── */

/* ── Layout ──────────────────────────────────────────────────── */
.portal-page         { max-width:1100px; margin:0 auto; padding:2rem 1rem; }
.portal-page-narrow  { max-width:760px;  margin:0 auto; padding:2rem 1rem; }

/* ── Nav superior (todas as páginas autenticadas) ────────────── */
.portal-nav { display:flex; justify-content:space-between; align-items:center; margin-bottom:1.5rem; gap:1rem; flex-wrap:wrap; }
.portal-nav-title { font-size:1.35rem; font-weight:700; color:var(--text-heading); margin:0; line-height:1.3; }
.portal-nav-sub   { margin:.25rem 0 0; color:var(--text-secondary); font-size:.88rem; }
.portal-nav-actions { display:flex; gap:.6rem; align-items:center; flex-wrap:wrap; }

/* ── KPI grid ────────────────────────────────────────────────── */
.portal-kpi-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-bottom:1.5rem; }
@media (max-width:640px) { .portal-kpi-grid { grid-template-columns:1fr; } }

/* ── Table ───────────────────────────────────────────────────── */
.portal-table           { width:100%; border-collapse:collapse; }
.portal-table th        { padding:.75rem 1rem; font-weight:600; color:var(--text-secondary);
                          background:var(--bg-table-header); text-align:left; font-size:.78rem;
                          text-transform:uppercase; letter-spacing:.04em; white-space:nowrap; }
.portal-table td        { padding:.7rem 1rem; color:var(--text-primary); font-size:.9rem; }
.portal-table tbody tr  { border-top:1px solid var(--border-light); transition:background .12s; cursor:pointer; }
.portal-table tbody tr:hover { background:var(--bg-hover); }
.portal-table td.portal-col-id   { font-family:monospace; font-size:.82rem; color:var(--text-secondary); font-weight:500; }
.portal-table td.portal-col-date { white-space:nowrap; color:var(--text-secondary); font-size:.85rem; }

/* ── Table → cards mobile ────────────────────────────────────── */
.portal-table-mobile { display:none; }
@media (max-width:640px) {
  .portal-table-wrap { overflow-x:auto; }
  .portal-table thead { display:none; }
  .portal-table tbody tr { display:block; padding:1rem; margin-bottom:.75rem; border:1px solid var(--border-default); border-radius:.5rem; background:var(--bg-surface); }
  .portal-table td { display:flex; justify-content:space-between; padding:.3rem 0; border:none; }
  .portal-table td::before { content:attr(data-label); font-weight:600; color:var(--text-secondary); font-size:.78rem; }
}

/* ── Badge com cor do banco ──────────────────────────────────── */
.portal-badge { display:inline-block; padding:.2rem .65rem; border-radius:9999px; font-size:.78rem; font-weight:600; line-height:1.4; }

/* ── Empty state ─────────────────────────────────────────────── */
.portal-empty { padding:2.5rem 1.5rem; text-align:center; color:var(--text-muted); font-size:.9rem; }
.portal-empty i { font-size:1.6rem; display:block; margin-bottom:.6rem; color:var(--text-muted); }

/* ── Section card ────────────────────────────────────────────── */
.portal-section { background:var(--bg-surface); border-radius:.625rem; box-shadow:var(--shadow-card); padding:1.5rem; margin-top:1.25rem; }
.portal-section-title { font-size:1rem; font-weight:600; color:var(--text-heading); margin:0 0 .75rem; }
.portal-section-title i { color:var(--accent); margin-right:.45rem; }

/* ── Timeline ────────────────────────────────────────────────── */
.portal-tl-item { border-left:4px solid var(--accent); border-radius:.6rem; background:var(--bg-surface);
                  box-shadow:var(--shadow-card); padding:.85rem 1rem; margin-bottom:.7rem; }
.portal-tl-item.tl-comentario { border-left-color:var(--success); }
.portal-tl-item.tl-status     { border-left-color:var(--info); }
.portal-tl-header { display:flex; justify-content:space-between; font-size:.76rem; color:var(--text-muted); margin-bottom:.3rem; }
.portal-tl-header span:first-child { font-weight:600; }
.portal-tl-text { color:var(--text-primary); font-size:.88rem; white-space:pre-wrap; }

/* ── Login ───────────────────────────────────────────────────── */
.portal-login-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:1rem; }
.portal-login-card { width:100%; max-width:400px; background:var(--bg-surface); border-radius:1rem;
                     box-shadow:var(--shadow-card); padding:2.25rem; }
.portal-login-icon { width:42px; height:42px; border-radius:.75rem; background:var(--accent);
                     display:flex; align-items:center; justify-content:center; color:var(--accent-text); flex-shrink:0; }
.portal-login-error { display:none; align-items:flex-start; gap:.5rem; background:var(--danger-bg);
                      border:1px solid var(--danger-border); color:var(--danger-strong);
                      padding:.65rem .85rem; border-radius:.5rem; font-size:.82rem; margin-bottom:1.125rem; }
.portal-login-error.visible { display:flex; }

/* ── Form labels ─────────────────────────────────────────────── */
.portal-label { display:block; font-size:.78rem; font-weight:600; color:var(--text-secondary); margin-bottom:.35rem; letter-spacing:.02em; }

/* ── Info / notice boxes ─────────────────────────────────────── */
.portal-notice { border-radius:.6rem; padding:1rem 1.25rem; font-size:.85rem; line-height:1.5; }
.portal-notice-success { background:var(--success-bg); border:1px solid var(--success-border); color:var(--success-strong); }
.portal-notice-warning { background:var(--warning-bg); border:1px solid var(--warning-border); color:var(--warning-strong); }
.portal-notice-info    { background:var(--info-bg); border:1px solid var(--info-border); color:var(--text-primary); }

/* ── Filtros (chips) ─────────────────────────────────────────── */
.portal-filters { display:flex; gap:.45rem; flex-wrap:wrap; margin-bottom:1rem; }
.portal-chip { display:inline-flex; align-items:center; gap:.3rem; padding:.35rem .75rem; border-radius:9999px;
               font-size:.82rem; font-weight:500; text-decoration:none; transition:all .15s;
               border:1px solid var(--border-default); color:var(--text-primary); background:var(--bg-surface); }
.portal-chip:hover { background:var(--bg-hover); border-color:var(--accent); }
.portal-chip.active { background:var(--accent); color:var(--accent-text); border-color:var(--accent); }
.portal-chip-count { font-size:.72rem; opacity:.7; }

/* ── Scrollbar ───────────────────────────────────────────────── */
.portal-table-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }

/* ── Topbar ──────────────────────────────────────────────────── */
.portal-topbar { border-bottom:1px solid var(--border-light); background:var(--bg-surface); }
.portal-topbar-inner { max-width:1100px; margin:0 auto; padding:.65rem 1rem; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
.portal-topbar-brand { display:flex; align-items:center; gap:.6rem; text-decoration:none; color:var(--text-heading); font-weight:700; }
.portal-topbar-logo { width:34px; height:34px; border-radius:.6rem; background:var(--accent); color:var(--accent-text); display:flex; align-items:center; justify-content:center; font-size:.9rem; }
.portal-topbar-title { font-size:.95rem; }
.portal-topbar-nav { display:flex; align-items:center; gap:.35rem; flex-wrap:wrap; margin-left:auto; }
.portal-topbar-link { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .7rem; border-radius:.5rem; font-size:.85rem; color:var(--text-secondary); text-decoration:none; transition:all .15s; }
.portal-topbar-link:hover { background:var(--bg-hover); color:var(--text-primary); }
.portal-topbar-link.active { background:var(--accent); color:var(--accent-text); font-weight:600; }
.portal-topbar-btn { display:inline-flex; align-items:center; gap:.4rem; padding:.45rem .8rem; border-radius:.5rem; font-size:.85rem; font-weight:600; color:#fff; background:var(--accent); text-decoration:none; }
.portal-topbar-btn:hover { filter:brightness(1.05); }
.portal-topbar-right { display:flex; align-items:center; gap:.35rem; }
.portal-topbar-iconbtn { border:1px solid var(--border-default); background:var(--bg-surface); color:var(--text-secondary); width:34px; height:34px; border-radius:.5rem; cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:.85rem; }
.portal-topbar-iconbtn:hover { color:var(--text-primary); border-color:var(--accent); }
.portal-topbar-context { max-width:1100px; margin:0 auto; padding:.25rem 1rem .6rem; font-size:.75rem; color:var(--text-secondary); display:flex; align-items:center; gap:.4rem; }
.portal-topbar-context i { color:var(--accent); }

/* ── Toolbar da lista (filtros + busca) ──────────────────────── */
.portal-toolbar { display:flex; justify-content:space-between; align-items:flex-start; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.portal-search { display:flex; align-items:center; gap:.4rem; background:var(--bg-surface); border:1px solid var(--border-default); border-radius:.5rem; padding:.25rem .4rem .25rem .7rem; }
.portal-search i { color:var(--text-muted); font-size:.85rem; }
.portal-search input { border:none; background:transparent; outline:none; color:var(--text-primary); font-size:.85rem; min-width:180px; padding:.35rem 0; }
.portal-search .sneat-btn { padding:.3rem .7rem; font-size:.8rem; white-space:nowrap; }

/* ── Banner de etapa ─────────────────────────────────────────── */
.portal-etapa { display:flex; align-items:flex-start; gap:.6rem; border-radius:.6rem; padding:.85rem 1.1rem; font-size:.85rem; line-height:1.5; margin-bottom:1.25rem; }
.portal-etapa i { margin-top:.15rem; }
.portal-etapa-action { background:var(--info-bg); border:1px solid var(--info-border); color:var(--text-primary); }
.portal-etapa-wait   { background:var(--warning-bg); border:1px solid var(--warning-border); color:var(--warning-strong); }
.portal-etapa-success{ background:var(--success-bg); border:1px solid var(--success-border); color:var(--success-strong); }

/* ── Tabs — Sneat Filled Tabs (nav-fill) ─────────────────────── */
.portal-tabs { display:flex; gap:.5rem; border-bottom:none; margin-bottom:1.25rem; background:var(--bg-hover);
               border-radius:.5rem; padding:.3rem; }
.portal-tabs .nav-link { flex:1; display:inline-flex; align-items:center; justify-content:center; gap:.4rem;
                         padding:.55rem .75rem; border:none; border-radius:.375rem; background:transparent;
                         color:var(--text-secondary); font-size:.85rem; font-weight:500; cursor:pointer;
                         white-space:nowrap; transition:all .15s; }
.portal-tabs .nav-link i { font-size:.82rem; }
.portal-tabs .nav-link:hover { color:var(--text-primary); background:var(--bg-surface); }
.portal-tabs .nav-link.active { color:var(--accent); background:var(--bg-surface); box-shadow:var(--shadow-card); font-weight:600; }
.portal-tab-panel { animation:portalTabFade .15s ease-out; }
@keyframes portalTabFade { from{opacity:0;transform:translateY(3px)} to{opacity:1;transform:translateY(0)} }

/* ── Detalhe: barra de info (acima das tabs) ────────────────── */
.portal-detail-info { padding:1.5rem 1.75rem; }
.portal-detail-info h1 { font-size:1.25rem; font-weight:700; color:var(--text-heading); margin:0 0 .35rem; }
.portal-detail-meta { color:var(--text-muted); font-size:.8rem; margin:0; }

/* ── Quill editor (conversas / demanda nova) ────────────────── */
.portal-ql-wrap { background:var(--bg-surface); border:1px solid var(--border-default); border-radius:.375rem; }
.portal-ql-wrap .ql-toolbar { border:none; border-bottom:1px solid var(--border-light); border-radius:.375rem .375rem 0 0; }
.portal-ql-wrap .ql-container { min-height:120px; border:none; font-size:.92rem; }
.portal-ql-wrap .ql-editor { color:var(--text-primary); min-height:120px; }
.portal-ql-wrap .ql-editor.ql-blank::before { color:var(--text-muted); font-style:normal; }
.portal-ql-desc .ql-container { min-height:180px; }
.portal-ql-desc .ql-editor { min-height:180px; }

/* ── File preview (upload de anexos) ─────────────────────────── */
.portal-file-preview { display:flex; flex-wrap:wrap; gap:.5rem; margin-top:.5rem; }
.portal-file-item { display:inline-flex; align-items:center; gap:.4rem; background:var(--bg-hover);
                    border:1px solid var(--border-default); border-radius:.5rem; padding:.3rem .6rem;
                    font-size:.8rem; color:var(--text-primary); }
.portal-file-item img { height:2rem; width:2rem; object-fit:cover; border-radius:.25rem; }
.portal-file-item .fp-remove { cursor:pointer; color:var(--danger); margin-left:.25rem; font-size:.75rem; }
.portal-file-item .fp-remove:hover { opacity:.7; }
.portal-desc-counter { display:block; text-align:right; font-size:.72rem; color:var(--text-muted); margin-top:.3rem; }

/* ── Seção colapsável (homologação) ──────────────────────────── */
.portal-collapse > summary { cursor:pointer; list-style:none; }
.portal-collapse > summary::-webkit-details-marker { display:none; }
.portal-collapse > summary::after { content:'\f107'; font-family:'Font Awesome 6 Free'; font-weight:900; margin-left:auto; color:var(--text-muted); font-size:.8rem; transition:transform .15s; }
.portal-collapse[open] > summary::after { transform:rotate(180deg); }
.portal-collapse[open] { }

/* ── Paginação: reticências ──────────────────────────────────── */
.sneat-page-ellipsis { display:inline-flex; align-items:center; padding:.3rem .45rem; color:var(--text-muted); font-size:.85rem; }

@media (max-width: 640px) {
  .portal-topbar-inner { padding:.6rem .85rem; gap:.6rem; }
  .portal-topbar-title { display:none; }
  .portal-topbar-link span, .portal-topbar-btn span { display:none; }
  .portal-topbar-link, .portal-topbar-btn { padding:.5rem .65rem; }
  .portal-topbar-context { padding-left:.85rem; }
  .portal-search { width:100%; }
  .portal-search input { flex:1; min-width:0; }
}

/* ── Layout com sidebar (Sneat) ──────────────────────────────── */
.portal-layout { min-height:100vh; }
.portal-shell { min-height:100vh; display:flex; flex-direction:column; margin-left:0; transition:margin-left .2s ease; }

.portal-sidebar {
  position:fixed; top:0; left:0; bottom:0; z-index:60;
  width:250px; display:flex; flex-direction:column;
  background:var(--bg-surface); border-right:1px solid var(--border-default);
  transform:translateX(-100%); transition:transform .2s ease;
}
.portal-sidebar.open { transform:translateX(0); box-shadow:var(--shadow-card); }

.portal-overlay {
  position:fixed; inset:0; z-index:55;
  background:rgba(0,0,0,.45);
}

.portal-sidebar-brand { padding:1rem; border-bottom:1px solid var(--border-light); }
.portal-sidebar-nav { padding:1rem .75rem; display:flex; flex-direction:column; gap:.25rem; flex:1; overflow-y:auto; }
.portal-sidebar-link {
  display:flex; align-items:center; gap:.7rem; padding:.55rem .75rem;
  border-radius:.5rem; font-size:.88rem; text-decoration:none;
  color:var(--text-secondary); transition:all .15s; border-left:3px solid transparent;
}
.portal-sidebar-link i { width:1.1rem; text-align:center; font-size:.92rem; }
.portal-sidebar-link:hover { background:var(--bg-hover); color:var(--text-primary); }
.portal-sidebar-link.active { background:var(--accent); color:var(--accent-text); font-weight:600; }

.portal-sidebar-footer { padding:.9rem 1rem; border-top:1px solid var(--border-light); display:flex; flex-direction:column; gap:.6rem; }
.portal-sidebar-user { display:flex; align-items:center; gap:.6rem; min-width:0; }
.portal-sidebar-user-icon { width:34px; height:34px; border-radius:.6rem; background:var(--bg-hover); border:1px solid var(--border-default); color:var(--text-secondary); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.portal-sidebar-user-name { margin:0; font-size:.85rem; font-weight:600; color:var(--text-primary); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-sidebar-user-role { margin:0; font-size:.75rem; color:var(--text-muted); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.portal-sidebar-logout { display:flex; align-items:center; gap:.6rem; padding:.5rem .75rem; border-radius:.5rem; font-size:.85rem; text-decoration:none; color:var(--danger); border:1px solid var(--border-default); }
.portal-sidebar-logout:hover { background:var(--danger-bg); }

/* Topbar do layout com sidebar */
.portal-topbar { position:sticky; top:0; z-index:40; }
.portal-topbar-inner { max-width:none; }
.portal-topbar-burger { display:inline-flex; border:1px solid var(--border-default); background:var(--bg-surface); color:var(--text-secondary); width:34px; height:34px; border-radius:.5rem; cursor:pointer; align-items:center; justify-content:center; font-size:.9rem; }
.portal-topbar-burger:hover { color:var(--text-primary); border-color:var(--accent); }
.portal-topbar-spacer { flex:1; }
.portal-topbar-user { display:inline-flex; align-items:center; gap:.45rem; font-size:.82rem; color:var(--text-secondary); background:var(--bg-hover); border:1px solid var(--border-default); padding:.3rem .7rem; border-radius:9999px; }

.portal-main { flex:1; width:100%; }
.portal-container { max-width:1100px; margin:0 auto; padding:1.75rem 1.25rem 3rem; }

@media (min-width:1024px) {
  .portal-sidebar { transform:translateX(0); }
  .portal-shell { margin-left:250px; }
  .portal-overlay, .portal-topbar-burger { display:none !important; }
}
@media (min-width:640px) and (max-width:1023px) {
  .portal-overlay { display:block; }
}
@media (max-width:640px) {
  .portal-topbar-user { display:none; }
  .portal-overlay { display:block; }
  .portal-container { padding:1.25rem .85rem 2.5rem; }
}

/* ── Collapse da sidebar (desktop) ───────────────────────────── */
.portal-topbar-collapse { display:none; }
.portal-sidebar, .portal-sidebar-brand, .portal-sidebar-nav, .portal-sidebar-footer {
  transition: width .2s ease;
}
@media (min-width:1024px) {
  .portal-topbar-collapse { display:inline-flex; }
  .portal-layout.portal-collapsed .portal-sidebar { width:76px; }
  .portal-layout.portal-collapsed .portal-shell { margin-left:76px; }
  .portal-layout.portal-collapsed .portal-sidebar-brand a { justify-content:center; }
  .portal-layout.portal-collapsed .portal-topbar-title { display:none; }
  .portal-layout.portal-collapsed .portal-sidebar-brand { padding:.9rem 0; }
  .portal-layout.portal-collapsed .portal-sidebar-nav { padding:.9rem .5rem; }
  .portal-layout.portal-collapsed .portal-sidebar-link,
  .portal-layout.portal-collapsed .portal-sidebar-logout,
  .portal-layout.portal-collapsed .portal-sidebar-user { justify-content:center; }
  .portal-layout.portal-collapsed .portal-sidebar-link span,
  .portal-layout.portal-collapsed .portal-sidebar-user div,
  .portal-layout.portal-collapsed .portal-sidebar-logout span { display:none; }
  .portal-layout.portal-collapsed .portal-sidebar-link { padding:.6rem 0; }
  .portal-layout.portal-collapsed .portal-sidebar-footer { padding:.9rem .5rem; }
}

/* ── Botão voltar ao topo ────────────────────────────────────── */
.portal-backtop {
  position:fixed; right:1.25rem; bottom:1.25rem; z-index:45;
  width:42px; height:42px; border-radius:.625rem;
  border:1px solid var(--border-default);
  background:var(--accent); color:var(--accent-text); box-shadow:var(--shadow-card);
  display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:.95rem;
}
.portal-backtop:hover { filter:brightness(1.08); }

/* ── Badge de prioridade ─────────────────────────────────────── */
.portal-prio { display:inline-block; padding:.15rem .55rem; border-radius:9999px; font-size:.74rem; font-weight:600; white-space:nowrap; }
.portal-prio-baixa   { color:var(--success-strong); background:var(--success-bg); border:1px solid var(--success-border); }
.portal-prio-media   { color:var(--info); background:var(--info-bg); border:1px solid var(--info-border); }
.portal-prio-alta    { color:var(--warning-strong); background:var(--warning-bg); border:1px solid var(--warning-border); }
.portal-prio-critica { color:var(--danger-strong); background:var(--danger-bg); border:1px solid var(--danger-border); }
.portal-prio-none    { color:var(--text-muted); background:var(--bg-hover); border:1px solid var(--border-default); }

/* ── Hover elevado nas linhas de tabela ──────────────────────── */
.portal-table tbody tr { transition: transform .15s ease, box-shadow .15s ease, background .12s; }
.portal-table tbody tr:hover {
  background:var(--bg-hover);
  transform:translateY(-1px);
  box-shadow:0 4px 14px -6px rgba(0,0,0,.18);
  position:relative; z-index:1;
}

/* ── Callout "Preciso de você" ───────────────────────────────── */
.portal-callout {
  display:flex; align-items:center; gap:.9rem; border-radius:.625rem;
  padding:.9rem 1.1rem; margin-bottom:1.25rem;
  background:var(--warning-bg); border:1px solid var(--warning-border); text-decoration:none;
}
.portal-callout:hover { border-color:var(--warning-strong); }
.portal-callout-icon {
  width:38px; height:38px; border-radius:.6rem; flex-shrink:0;
  background:var(--warning-strong); color:#fff; display:flex; align-items:center; justify-content:center; font-size:1rem;
}
.portal-callout-title { font-weight:700; color:var(--text-heading); font-size:.95rem; }
.portal-callout-text { font-size:.82rem; color:var(--text-secondary); }
.portal-callout-arrow { margin-left:auto; color:var(--warning-strong); font-size:.95rem; flex-shrink:0; }

/* ── Login split-screen ──────────────────────────────────────── */
.portal-login-shell { min-height:100vh; display:grid; grid-template-columns:1fr 1.1fr; }
.portal-login-brand {
  background:linear-gradient(135deg, var(--accent), var(--accent-hover));
  color:#fff; display:flex; align-items:center; justify-content:center;
  padding:2.5rem; position:relative; overflow:hidden;
}
.portal-login-brand::before, .portal-login-brand::after {
  content:''; position:absolute; border-radius:50%; background:rgba(255,255,255,.08);
}
.portal-login-brand::before { width:22rem; height:22rem; top:-8rem; right:-8rem; }
.portal-login-brand::after  { width:16rem; height:16rem; bottom:-6rem; left:-5rem; }
.portal-login-brand-inner { max-width:390px; width:100%; position:relative; z-index:1; }

.portal-login-logo-wrap {
  flex-shrink:0; background:#fff; border-radius:.75rem; padding:.55rem .9rem;
  box-shadow:0 6px 18px rgba(0,0,0,.18); display:flex; align-items:center; justify-content:center;
}
.portal-login-logo { height:36px; max-width:200px; object-fit:contain; display:block; }

.portal-login-carousel { display:flex; flex-direction:column; align-items:center; gap:1.5rem; }
.portal-login-slides { position:relative; width:100%; min-height:9rem; display:flex; align-items:center; justify-content:center; }
.portal-login-slide { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
                      opacity:0; visibility:hidden; transition:opacity .6s ease, visibility .6s; }
.portal-login-slide.is-active { opacity:1; visibility:visible; }
.portal-login-logo-wrap--big { padding:1rem 1.6rem; border-radius:1rem; }
.portal-login-logo-wrap--big .portal-login-logo { height:64px; max-width:300px; }
.portal-login-fallback-icon { width:84px; height:84px; border-radius:1.25rem;
                              background:rgba(255,255,255,.18); display:flex; align-items:center; justify-content:center; }
.portal-login-fallback-icon i { color:#fff; font-size:2.4rem; }
.portal-login-carousel-dots { display:flex; gap:.4rem; }
.portal-login-carousel-dots span { width:8px; height:8px; border-radius:50%; background:rgba(255,255,255,.4); transition:background .3s; }
.portal-login-carousel-dots span.is-active { background:#fff; }

.portal-login-features li { display:flex; align-items:center; gap:.7rem; font-size:.88rem; color:rgba(255,255,255,.95); }
.portal-login-feature-icon {
  width:30px; height:30px; border-radius:.5rem; flex-shrink:0;
  background:rgba(255,255,255,.16); display:flex; align-items:center; justify-content:center; font-size:.85rem;
}
.portal-login-form { display:flex; align-items:center; justify-content:center; padding:2rem 1.25rem; }

@media (max-width:900px) {
  .portal-login-shell { grid-template-columns:1fr; }
  .portal-login-brand { display:none; }
  .portal-login-form { padding:1.25rem; }
}

/* ── Distribuição por status ─────────────────────────────────── */
.portal-dist { display:flex; flex-direction:column; gap:.7rem; }
.portal-dist-row { display:grid; grid-template-columns:130px 1fr 40px; gap:.6rem; align-items:center; font-size:.82rem; }
.portal-dist-name { color:var(--text-secondary); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.portal-dist-track { height:.55rem; border-radius:9999px; background:var(--bg-hover); overflow:hidden; }
.portal-dist-fill { height:100%; border-radius:9999px; transition:width .3s ease; }
.portal-dist-count { text-align:right; color:var(--text-muted); font-variant-numeric:tabular-nums; }
