/* ============================================================
   MEMORYPRO — DESIGN SYSTEM PREMIUM
   Dark Glassmorphism • Plus Jakarta Sans • Sidebar Layout
   ============================================================ */

/* — 1. CSS Custom Properties (Design Tokens) — */
:root {
  --bg-app:            #f5f3f0;  /* Bege claro */
  --bg-surface:        #ffffff;  /* Branco */
  --bg-card:           #fafaf8;  /* Bege bem claro */
  --bg-elevated:       #f0ebe5;  /* Bege médio */
  --bg-hover:          #ede7df;  /* Bege com hover */
  --bg-input:          #ffffff;  /* Branco para inputs */
  --bg-glass:          rgba(245,243,240,.85);  /* Bege com transparência */
  --bg-overlay:        rgba(0,0,0,.08);  /* Overlay sutil */

  --border-subtle:     rgba(0,0,0,.06);  /* Borda sutil */
  --border-mid:        rgba(0,0,0,.12);  /* Borda média */
  --border-focus:      rgba(56,189,248,.45);  /* Foco ciano */

  --text-main:         #2c2420;  /* Texto principal escuro */
  --text-secondary:    #5c514a;  /* Texto secundário */
  --text-dim:          #8b7f77;  /* Texto atenuado */
  --text-muted:        #b8ada3;  /* Texto mudo */

  --primary:           #38bdf8;  /* Ciano */
  --primary-dim:       rgba(56,189,248,.15);  /* Ciano transparente */
  --emerald:           #34d399;  /* Verde */
  --emerald-dim:       rgba(52,211,153,.12);  /* Verde transparente */
  --amber:             #fbbf24;  /* Âmbar */
  --amber-dim:         rgba(251,191,36,.12);  /* Âmbar transparente */
  --rose:              #fb7185;  /* Rosa */
  --rose-dim:          rgba(251,113,133,.12);  /* Rosa transparente */
  --violet:            #c084fc;  /* Violeta */
  --violet-dim:        rgba(192,132,252,.12);  /* Violeta transparente */
  --cyan:              #22d3ee;  /* Ciano claro */

  --radius-sm:         6px;
  --radius-md:         10px;
  --radius-lg:         14px;
  --radius-xl:         18px;

  --sidebar-width:     260px;
  --header-height:     56px;

  --shadow-card:       0 2px 8px rgba(0,0,0,.08);  /* Sombra suave */
  --shadow-modal:      0 24px 64px rgba(0,0,0,.12);  /* Sombra modal */
  --transition:        .2s cubic-bezier(.4,0,.2,1);
}


/* — 2. Reset & Base — */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { height:100%; -webkit-font-smoothing:antialiased; }
body {
  height:100%;
  font-family:'Plus Jakarta Sans','Inter','Segoe UI',system-ui,sans-serif;
  font-size:13.5px;
  line-height:1.55;
  color:var(--text-main);
  background:var(--bg-app);
  overflow:hidden;
}

a { color:var(--primary); text-decoration:none; }
button { font-family:inherit; cursor:pointer; }
input, select, textarea { font-family:inherit; font-size:inherit; }
::selection { background:var(--primary); color:#000; }

.hidden { display:none !important; }
.font-mono { font-family:'JetBrains Mono','Fira Code','Consolas',monospace; }
.font-semibold { font-weight:600; }
.font-medium { font-weight:500; }
.text-main { color:var(--text-main); }
.text-cyan { color:var(--primary); }
.text-emerald { color:var(--emerald); }
.text-amber { color:var(--amber); }
.text-rose { color:var(--rose); }
.text-dim { color:var(--text-dim); }
.text-muted { color:var(--text-secondary); }
.text-right { text-align:right; }
.text-center { text-align:center; }
.mt-6 { margin-top:24px; }

/* — 3. App Shell (Sidebar + Content) — */
.app-shell {
  display:flex;
  height:100vh;
  overflow:hidden;
}

/* — 4. Sidebar — */
.sidebar {
  width:var(--sidebar-width);
  min-width:var(--sidebar-width);
  height:100vh;
  background:var(--bg-surface);
  border-right:1px solid var(--border-subtle);
  display:flex;
  flex-direction:column;
  overflow-y:auto;
  z-index:50;
}
.sidebar-header {
  padding:20px 18px 14px;
  border-bottom:1px solid var(--border-subtle);
}
.brand {
  display:flex;
  align-items:center;
  gap:10px;
}
.brand-mark {
  width:36px; height:36px;
  border-radius:var(--radius-md);
  background:linear-gradient(135deg,var(--primary),#818cf8);
  display:flex;align-items:center;justify-content:center;
  color:#fff;
  flex-shrink:0;
}
.brand-info { display:flex; flex-direction:column; }
.brand-name { font-size:15px; font-weight:700; color:var(--text-main); letter-spacing:-.3px; }
.brand-name strong { color:var(--primary); }
.brand-badge {
  font-size:9.5px; font-weight:700; letter-spacing:.8px; text-transform:uppercase;
  color:var(--text-dim); margin-top:1px;
}

.tenant-selector {
  display:flex; align-items:center; gap:10px;
  padding:12px 18px;
  border-bottom:1px solid var(--border-subtle);
}
.tenant-icon {
  width:30px; height:30px; border-radius:var(--radius-sm);
  background:var(--bg-elevated); display:flex; align-items:center; justify-content:center;
  color:var(--text-secondary);
}
.tenant-details { display:flex; flex-direction:column; }
.tenant-name { font-size:12.5px; font-weight:700; color:var(--text-main); }
.tenant-doc { font-size:10.5px; color:var(--text-dim); font-family:'JetBrains Mono',monospace; }

/* — 5. Navigation — */
.nav-section { padding:10px 0; flex:1; }
.nav-label {
  padding:14px 20px 6px;
  font-size:10px; font-weight:700; letter-spacing:1px; text-transform:uppercase;
  color:var(--text-dim);
}
.nav-link {
  display:flex; align-items:center; gap:10px;
  padding:9px 18px;
  border:none; background:none; width:100%;
  font-size:13px; font-weight:500;
  color:var(--text-secondary);
  border-left:3px solid transparent;
  transition:var(--transition);
  text-align:left;
  position:relative;
}
.nav-link:hover { background:var(--bg-hover); color:var(--text-main); }
.nav-link.active {
  color:var(--primary);
  background:var(--primary-dim);
  border-left-color:var(--primary);
  font-weight:600;
}
.nav-link svg { flex-shrink:0; }
.nav-tag {
  margin-left:auto; font-size:10px; font-weight:700;
  padding:2px 7px; border-radius:10px;
  background:var(--rose-dim); color:var(--rose);
}
.tag-unread { background:var(--primary-dim); color:var(--primary); }

.sidebar-footer {
  padding:14px 18px;
  border-top:1px solid var(--border-subtle);
}

/* — 6. Main Content Area — */
.main-content {
  flex:1;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  min-width:0;
}

/* — 7. Top Header Bar — */
.top-header {
  height:var(--header-height);
  min-height:var(--header-height);
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 24px;
  background:var(--bg-surface);
  border-bottom:1px solid var(--border-subtle);
}
.header-title {
  font-size:15px; font-weight:700; color:var(--text-main); white-space:nowrap;
}
.header-controls {
  display:flex; align-items:center; gap:12px; margin-left:auto; flex-wrap:nowrap;
}
.company-picker {
  display:flex; align-items:center; gap:8px;
}
.picker-label { font-size:11px; font-weight:600; color:var(--text-dim); white-space:nowrap; }
.select-container { position:relative; }
.select-icon {
  position:absolute; left:10px; top:50%; transform:translateY(-50%);
  color:var(--text-dim); pointer-events:none;
}
.native-select {
  appearance:none;
  padding:7px 30px 7px 32px;
  background:var(--bg-input);
  border:1px solid var(--border-mid);
  border-radius:var(--radius-sm);
  color:var(--text-main);
  font-size:12px; font-weight:500;
  min-width:260px; max-width:380px;
  cursor:pointer;
}
.native-select:focus { border-color:var(--border-focus); outline:none; }

.btn-header-cert {
  display:flex; align-items:center; gap:6px;
  padding:6px 14px;
  background:var(--bg-input); border:1px solid var(--border-mid);
  border-radius:var(--radius-sm);
  font-size:11.5px; font-weight:600; color:var(--text-secondary);
  transition:var(--transition);
}
.btn-header-cert:hover { border-color:var(--border-focus); color:var(--text-main); }
.dot-live {
  width:7px; height:7px; border-radius:50%;
  display:inline-block; flex-shrink:0;
}

.env-chip {
  display:flex; align-items:center; gap:6px;
  padding:5px 12px;
  background:var(--emerald-dim); border:1px solid rgba(52,211,153,.25);
  border-radius:20px;
  font-size:10.5px; font-weight:700; color:var(--emerald);
  white-space:nowrap;
}
.chip-pulse {
  width:6px; height:6px; border-radius:50%; background:var(--emerald);
  animation:pulse 2s infinite;
}
@keyframes pulse { 0%,100%{opacity:1}50%{opacity:.4} }

/* — 8. Content Body — */
.content-body {
  flex:1;
  overflow-y:auto;
  padding:24px;
  background:var(--bg-app);
}

/* — 9. Tab Panes — */
.tab-pane { display:none; animation:fadeUp .25s ease; }
.tab-pane.active { display:block; }
@keyframes fadeUp { from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none} }

/* — 10. Stats Strip — */
.stats-strip {
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
  gap:16px;
  margin-bottom:24px;
}
.stat-box {
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  padding:18px 20px;
  transition:var(--transition);
}
.stat-box:hover { border-color:var(--border-mid); box-shadow:var(--shadow-card); }
.stat-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:10px; }
.stat-caption { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--text-dim); }
.stat-icon-wrap {
  width:30px; height:30px; border-radius:var(--radius-sm);
  display:flex; align-items:center; justify-content:center;
}
.icon-cyan { background:var(--primary-dim); color:var(--primary); }
.icon-emerald { background:var(--emerald-dim); color:var(--emerald); }
.icon-amber { background:var(--amber-dim); color:var(--amber); }
.icon-violet { background:var(--violet-dim); color:var(--violet); }
.stat-number { font-size:26px; font-weight:800; line-height:1; margin-bottom:6px; }
.stat-trend { font-size:11px; color:var(--text-dim); font-weight:500; }
.trend-positive { color:var(--emerald); }

/* — 11. Toolbar — */
.table-toolbar {
  display:flex; align-items:center; gap:12px;
  margin-bottom:14px; flex-wrap:wrap;
}
.search-field {
  position:relative; display:flex; align-items:center; flex:1; min-width:220px;
}
.search-glyph {
  position:absolute; left:12px; color:var(--text-dim); pointer-events:none;
}
.search-field input {
  width:100%;
  padding:9px 14px 9px 38px;
  background:var(--bg-input);
  border:1px solid var(--border-mid);
  border-radius:var(--radius-sm);
  color:var(--text-main);
  font-size:12.5px;
}
.search-field input:focus { border-color:var(--border-focus); outline:none; }
.search-field input::placeholder { color:var(--text-dim); }

.toolbar-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }

.segmented-control { display:flex; gap:2px; background:var(--bg-input); border-radius:var(--radius-sm); padding:2px; }
.seg-btn, .seg-btn-size {
  padding:5px 12px;
  border:none; background:none;
  font-size:11.5px; font-weight:600;
  color:var(--text-dim);
  border-radius:var(--radius-sm);
  transition:var(--transition);
}
.seg-btn:hover, .seg-btn-size:hover { color:var(--text-secondary); }
.seg-btn.active, .seg-btn-size.active {
  background:var(--bg-elevated);
  color:var(--primary);
  box-shadow:0 1px 4px rgba(0,0,0,.18);
}

.page-size-selector { display:flex; align-items:center; gap:6px; }

/* — 12. Buttons — */
.btn {
  display:inline-flex; align-items:center; gap:6px;
  padding:8px 16px;
  border:1px solid var(--border-mid);
  border-radius:var(--radius-sm);
  font-size:12.5px; font-weight:600;
  color:var(--text-main);
  background:var(--bg-elevated);
  transition:var(--transition);
  white-space:nowrap;
}
.btn:hover { border-color:var(--border-focus); }
.btn-primary {
  background:var(--primary); border-color:var(--primary);
  color:#0c0e14; font-weight:700;
}
.btn-primary:hover { background:#5dcdfb; }
.btn-secondary {
  background:var(--bg-elevated); color:var(--text-secondary);
}
.btn-ghost {
  background:transparent; border-color:transparent; color:var(--text-dim);
}
.btn-ghost:hover { color:var(--text-main); background:var(--bg-hover); }
.btn-sm { padding:5px 10px; font-size:11.5px; }
.btn-action { padding:10px 24px; font-size:13px; }
.btn:disabled { opacity:.5; cursor:not-allowed; }

.spinner {
  display:inline-block; width:14px; height:14px;
  border:2px solid var(--text-dim); border-top-color:var(--primary);
  border-radius:50%; animation:spin .6s linear infinite;
}
@keyframes spin { to{transform:rotate(360deg)} }

/* — 13. Data Grid / Table — */
.data-sheet {
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.data-sheet-scroll { max-height:65vh; overflow-y:auto; }
.grid-table {
  width:100%; border-collapse:collapse;
}
.grid-table thead { position:sticky; top:0; z-index:5; }
.grid-table th {
  padding:11px 14px;
  background:var(--bg-elevated);
  font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.6px;
  color:var(--text-dim);
  border-bottom:1px solid var(--border-mid);
  text-align:left; white-space:nowrap;
}
.grid-table td {
  padding:10px 14px;
  font-size:12.5px;
  border-bottom:1px solid var(--border-subtle);
  vertical-align:middle;
}
.grid-table tbody tr:hover { background:var(--bg-hover); }
.grid-table tbody tr.row-selected { background:var(--primary-dim); }

.cell-loading { text-align:center; padding:30px !important; color:var(--text-dim); }
.shimmer-line {
  height:10px; width:200px; margin:0 auto 10px;
  background:linear-gradient(90deg,var(--bg-elevated) 25%,var(--bg-hover) 50%,var(--bg-elevated) 75%);
  background-size:400% 100%;
  border-radius:4px;
  animation:shimmer 1.5s infinite;
}
@keyframes shimmer { to{background-position:-400% 0} }

/* — 14. Badges — */
.badge-status {
  display:inline-flex; align-items:center;
  padding:3px 10px;
  border-radius:20px;
  font-size:11px; font-weight:700;
  white-space:nowrap;
}
.badge-unread { background:var(--primary-dim); color:var(--primary); }
.badge-read { background:var(--bg-elevated); color:var(--text-dim); }
.badge-contract-indiv { background:var(--violet-dim); color:var(--violet); font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; }
.badge-contract-office { background:var(--primary-dim); color:var(--primary); font-size:11px; font-weight:700; padding:3px 10px; border-radius:20px; }

.badge-freq-pill { padding:4px 12px; border-radius:20px; font-size:11px; font-weight:700; }
.badge-freq-30 { background:var(--emerald-dim); color:var(--emerald); }
.badge-freq-60 { background:var(--amber-dim); color:var(--amber); }
.badge-freq-90 { background:var(--violet-dim); color:var(--violet); }
.badge-freq-custom { background:var(--primary-dim); color:var(--primary); }
.badge-locked-lote { background:var(--rose-dim); color:var(--rose); font-size:10px; padding:2px 8px; border-radius:10px; font-weight:700; }

/* — 15. Panel Card — */
.panel-card {
  background:var(--bg-card);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg);
  overflow:hidden;
}
.panel-header {
  display:flex; justify-content:space-between; align-items:flex-start;
  padding:20px 22px; gap:16px;
  border-bottom:1px solid var(--border-subtle);
}
.panel-title { font-size:15px; font-weight:700; color:var(--text-main); margin-bottom:4px; }
.panel-subtitle { font-size:12px; color:var(--text-secondary); }
.panel-action-badge {
  padding:5px 14px; border-radius:20px;
  background:var(--primary-dim); color:var(--primary);
  font-size:11px; font-weight:700; white-space:nowrap;
}
.panel-body { padding:22px; }

/* — 16. Section Headings — */
.section-heading {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:18px;
}
.section-heading h3 { font-size:16px; font-weight:700; color:var(--text-main); }
.section-heading p { font-size:12px; color:var(--text-secondary); margin-top:2px; }

/* — 17. Forms — */
.workstation-form { display:flex; flex-direction:column; gap:16px; }
.field-item { display:flex; flex-direction:column; gap:4px; }
.field-label { font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--text-dim); }
.field-control {
  padding:9px 14px;
  background:var(--bg-input);
  border:1px solid var(--border-mid);
  border-radius:var(--radius-sm);
  color:var(--text-main);
  font-size:13px;
}
.field-control:focus { border-color:var(--border-focus); outline:none; }
.field-input-wrap { position:relative; }
.field-submit { padding-top:8px; }

/* — 18. Modals — */
.modal-overlay {
  position:fixed; inset:0;
  background:var(--bg-overlay);
  backdrop-filter:blur(6px);
  z-index:900;
  display:flex; align-items:center; justify-content:center;
  padding:20px;
}
.modal-box {
  background:var(--bg-card);
  border:1px solid var(--border-mid);
  border-radius:var(--radius-xl);
  width:100%; max-width:620px;
  max-height:90vh; overflow-y:auto;
  box-shadow:var(--shadow-modal);
  animation:modalIn .25s ease;
}
.modal-box-wide { max-width:780px; }
@keyframes modalIn { from{opacity:0;transform:scale(.96) translateY(10px)}to{opacity:1;transform:none} }

.modal-header {
  display:flex; justify-content:space-between; align-items:center;
  padding:18px 22px;
  border-bottom:1px solid var(--border-subtle);
}
.modal-header h3 { font-size:15px; font-weight:700; color:var(--text-main); }
.modal-header-sub { font-size:12px; color:var(--text-secondary); margin-top:2px; }
.modal-close {
  width:30px; height:30px; border-radius:50%;
  background:var(--bg-elevated); border:1px solid var(--border-mid);
  color:var(--text-dim); display:flex; align-items:center; justify-content:center;
  font-size:16px; transition:var(--transition);
}
.modal-close:hover { background:var(--bg-hover); color:var(--text-main); }
.modal-body { padding:22px; }
.modal-footer {
  display:flex; justify-content:flex-end; gap:10px;
  padding:16px 22px;
  border-top:1px solid var(--border-subtle);
}

.modal-meta-item {
  display:flex; gap:12px; padding:8px 0;
  border-bottom:1px solid var(--border-subtle);
}
.modal-meta-item:last-child { border-bottom:none; }
.modal-meta-label { font-size:11px; font-weight:700; color:var(--text-dim); min-width:140px; text-transform:uppercase; letter-spacing:.4px; }
.modal-meta-value { font-size:13px; color:var(--text-main); }

/* — 19. Cert Status Pills — */
.cert-status-pill {
  display:block; padding:10px 14px;
  border-radius:var(--radius-md);
  font-size:12px; line-height:1.5;
  border:1px solid var(--border-subtle);
}
.cert-status-pill.valid { background:var(--emerald-dim); border-color:rgba(52,211,153,.25); color:var(--emerald); }
.cert-status-pill.warning { background:var(--amber-dim); border-color:rgba(251,191,36,.25); color:var(--amber); }
.cert-status-pill.expired { background:var(--rose-dim); border-color:rgba(251,113,133,.25); color:var(--rose); }
.cert-status-pill.none { background:var(--bg-elevated); color:var(--text-secondary); }

.cert-feedback {
  padding:12px 16px; border-radius:var(--radius-md);
  font-size:12px; line-height:1.5;
}
.cert-feedback.success { background:var(--emerald-dim); color:var(--emerald); border:1px solid rgba(52,211,153,.2); }
.cert-feedback.error { background:var(--rose-dim); color:var(--rose); border:1px solid rgba(251,113,133,.2); }
.cert-feedback.warning { background:var(--amber-dim); color:var(--amber); border:1px solid rgba(251,191,36,.2); }

/* — 20. Status Banners — */
.status-banner {
  padding:14px 18px; border-radius:var(--radius-md);
  font-size:12.5px; display:flex; align-items:center; justify-content:space-between; gap:12px;
}
.status-banner.success { background:var(--emerald-dim); color:var(--emerald); border:1px solid rgba(52,211,153,.2); }
.status-banner.error { background:var(--rose-dim); color:var(--rose); border:1px solid rgba(251,113,133,.2); }

/* — 21. Toast Notifications — */
.toast {
  display:flex; align-items:center; gap:10px;
  padding:12px 18px;
  background:var(--bg-card);
  border:1px solid var(--border-mid);
  border-radius:var(--radius-md);
  box-shadow:0 8px 24px rgba(0,0,0,.35);
  font-size:12.5px; font-weight:500; color:var(--text-main);
  margin-bottom:8px;
  animation:toastIn .3s ease;
}
.toast-success { border-left:3px solid var(--emerald); }
.toast-error { border-left:3px solid var(--rose); }
@keyframes toastIn { from{opacity:0;transform:translateX(30px)}to{opacity:1;transform:none} }

/* — 22. Cert Dropzone — */
.cert-dropzone {
  border:2px dashed var(--border-mid);
  border-radius:var(--radius-md);
  padding:28px;
  text-align:center;
  cursor:pointer;
  transition:var(--transition);
  color:var(--text-dim);
  font-size:13px;
}
.cert-dropzone:hover, .cert-dropzone.dragover {
  border-color:var(--primary);
  background:var(--primary-dim);
  color:var(--text-main);
}

/* — 23. Validation Messages — */
.validation-status-msg {
  padding:8px 12px; border-radius:var(--radius-sm);
  font-size:11.5px; line-height:1.5;
}
.validation-status-msg.success { background:var(--emerald-dim); color:var(--emerald); }
.validation-status-msg.error { background:var(--rose-dim); color:var(--rose); }
.validation-status-msg.warning { background:var(--amber-dim); color:var(--amber); }

input.is-valid { border-color:var(--emerald) !important; }
input.is-invalid { border-color:var(--rose) !important; }

/* — 24. Consumo Stats Grid — */
.consumo-stats-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:14px; margin-bottom:22px; }
.consumo-stat-card {
  background:var(--bg-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-lg); padding:18px 20px;
  display:flex; flex-direction:column; gap:6px;
}
.consumo-stat-title { font-size:11px; font-weight:700; color:var(--text-dim); text-transform:uppercase; letter-spacing:.4px; }
.consumo-stat-val { font-size:22px; font-weight:800; }
.consumo-stat-sub { font-size:11px; color:var(--text-dim); }

/* — 25. Quota Bar — */
.quota-bar-wrap {
  display:flex; align-items:center; gap:12px;
  padding:14px 18px;
  background:var(--bg-card); border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  margin-bottom:20px;
}
.quota-bar-track { flex:1; height:6px; background:var(--bg-elevated); border-radius:3px; overflow:hidden; }
.quota-bar-fill { height:100%; background:var(--primary); border-radius:3px; transition:width .5s ease; width:0%; }

/* — 26. Lote Company Chips — */
.lote-company-chip {
  display:flex; justify-content:space-between; align-items:center;
  background:var(--bg-input); border:1px solid var(--border-subtle);
  border-radius:var(--radius-sm); padding:6px 10px; font-size:12px;
  margin-bottom:4px;
}
.lote-companies-list { max-height:110px; overflow-y:auto; }

.company-check-item {
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  padding:8px 12px;
  border:1px solid var(--border-subtle); border-radius:var(--radius-sm);
  margin-bottom:4px; cursor:pointer;
  transition:var(--transition);
}
.company-check-item:hover { background:var(--bg-hover); }
.company-check-item.selected { background:var(--primary-dim); border-color:rgba(56,189,248,.3); }
.company-check-item.locked { opacity:.5; cursor:not-allowed; }
.company-check-left { display:flex; align-items:center; gap:10px; }
.company-check-item input[type="checkbox"] { accent-color:var(--primary); width:16px; height:16px; }

/* — 27. Leitura de Mensagem (Modal wide) — */
.leitura-body-text {
  background:var(--bg-input);
  border:1px solid var(--border-subtle);
  border-radius:var(--radius-md);
  padding:20px;
  font-family:'JetBrains Mono','Consolas',monospace;
  font-size:12.5px;
  line-height:1.7;
  color:var(--text-main);
  white-space:pre-wrap;
  max-height:50vh;
  overflow-y:auto;
}

/* — 28. Ciencia confirm box — */
.ciencia-warning {
  background:var(--amber-dim);
  border:1px solid rgba(251,191,36,.25);
  border-radius:var(--radius-md);
  padding:16px;
  font-size:12px;
  color:var(--amber);
  line-height:1.6;
}

/* — 29. Tab Modifiers for Modal — */
.modal-tabs { display:flex; gap:2px; margin-bottom:18px; }
.tab-btn-modal {
  padding:8px 18px;
  border:1px solid var(--border-mid);
  background:var(--bg-input);
  border-radius:var(--radius-sm) var(--radius-sm) 0 0;
  font-size:12px; font-weight:600;
  color:var(--text-dim);
  transition:var(--transition);
}
.tab-btn-modal.active {
  background:var(--bg-card);
  color:var(--primary);
  border-bottom-color:var(--bg-card);
}

/* — 30. Scrollbar — */
::-webkit-scrollbar { width:7px; height:7px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--text-muted); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--text-dim); }

/* — 31. Responsive — */
@media (max-width:900px) {
  .sidebar { display:none; }
  .stats-strip { grid-template-columns:1fr 1fr; }
}
@media (max-width:600px) {
  .stats-strip { grid-template-columns:1fr; }
  .table-toolbar { flex-direction:column; }
  .content-body { padding:14px; }
}

/* — Bloco recolhível: endereço e nome fantasia — */
.toggle-detalhes {
  display: inline-flex; align-items: center; gap: 6px;
  margin: 6px 0 4px; padding: 4px 2px;
  background: none; border: none; cursor: pointer;
  font-size: 12px; font-weight: 600; color: var(--text-secondary);
  transition: color var(--transition);
}
.toggle-detalhes:hover { color: var(--text-main); }
.toggle-detalhes .chev { transition: transform var(--transition); }
.toggle-detalhes[aria-expanded="true"] .chev { transform: rotate(180deg); }
.detalhes-box {
  border: 1px solid var(--border-subtle); border-radius: var(--radius-md);
  background: var(--bg-card); padding: 14px; margin-bottom: 8px;
}
.detalhes-box.hidden { display: none; }

/* — Certificado anexado na edição — */
.cert-anexado {
  display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
  border: 1px solid var(--border-mid); border-radius: var(--radius-md);
  background: var(--bg-card); padding: 12px 14px; margin-top: 14px;
}
.cert-anexado.hidden { display: none; }
.cert-anexado-info { display: flex; align-items: center; gap: 10px; min-width: 0; flex: 1; }
.cert-anexado-icone { font-size: 20px; }
.cert-anexado-nome { font-size: 13px; font-weight: 700; color: var(--text-main); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cert-anexado-meta { font-size: 12px; color: var(--text-secondary); margin-top: 2px; }

/* — Rodapé do menu: usuário e logout — */
.sidebar-user { display:flex; align-items:center; gap:10px; margin-bottom:10px; min-width:0; }
.sidebar-user-avatar {
  width:34px; height:34px; border-radius:50%; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  background:var(--bg-elevated); color:var(--text-main);
  font-size:14px; font-weight:700; border:1px solid var(--border-mid);
}
.sidebar-user-info { min-width:0; }
.sidebar-user-nome { font-size:12.5px; font-weight:700; color:var(--text-main); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sidebar-user-sub { font-size:11px; color:var(--text-dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.btn-logout { width:100%; justify-content:flex-start; font-size:12px; padding:8px 10px; color:var(--text-secondary); }
.btn-logout:hover { color:var(--rose); }

/* ===== Aba Guias FGTS ===== */
.fgts-kpis { display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:4px 0 16px; }
.fgts-kpi {
  display:flex; align-items:center; gap:12px;
  padding:14px 16px; border-radius:var(--radius-lg);
  background:var(--bg-surface); border:1px solid var(--border-subtle);
  box-shadow:var(--shadow-card);
}
.fgts-kpi-ico {
  width:40px; height:40px; flex:none; border-radius:12px;
  display:flex; align-items:center; justify-content:center;
}
.fgts-kpi-ico.azul { background:var(--primary-dim); color:#0b7bb5; }
.fgts-kpi-ico.verde { background:var(--emerald-dim); color:#0f9d6e; }
.fgts-kpi-ico.cinza { background:var(--bg-elevated); color:var(--text-dim); }
.fgts-kpi-ico.ambar { background:var(--amber-dim); color:#b7791f; }
.fgts-kpi-num { font-size:20px; font-weight:800; color:var(--text-main); line-height:1.1; font-variant-numeric:tabular-nums; }
.fgts-kpi-rot { font-size:11px; font-weight:600; color:var(--text-dim); text-transform:uppercase; letter-spacing:.5px; margin-top:2px; }

.fgts-table td { padding:12px 14px; }
.fgts-table tbody tr { transition:background .12s ease; }
.fgts-table tbody tr.fgts-vazia { opacity:.72; }
.fgts-table tbody tr.fgts-vazia:hover { opacity:1; }
.fgts-table tbody tr.fgts-com-guia { background:linear-gradient(90deg, rgba(56,189,248,.07), transparent 40%); }

.fgts-emp { display:flex; align-items:center; gap:12px; min-width:0; }
.fgts-avatar {
  width:36px; height:36px; flex:none; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  font-size:12px; font-weight:800; letter-spacing:.3px;
}
.fgts-av0 { background:var(--primary-dim); color:#0b7bb5; }
.fgts-av1 { background:var(--emerald-dim); color:#0f9d6e; }
.fgts-av2 { background:var(--violet-dim); color:#8b4fd1; }
.fgts-av3 { background:var(--amber-dim); color:#b7791f; }
.fgts-av4 { background:var(--rose-dim); color:#d6455b; }
.fgts-emp-nome { font-size:13px; font-weight:600; color:var(--text-main); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:260px; }
.fgts-emp-cnpj { font-family:ui-monospace,Consolas,monospace; font-size:11px; color:var(--text-dim); margin-top:2px; }

.fgts-comp { display:inline-block; padding:3px 9px; border-radius:8px; background:var(--bg-elevated); font-family:ui-monospace,Consolas,monospace; font-size:12px; font-weight:600; color:var(--text-secondary); }
.fgts-tipo { font-size:12px; color:var(--text-secondary); }
.fgts-venc { font-size:12.5px; font-weight:600; font-variant-numeric:tabular-nums; }
.fgts-venc small { display:block; font-size:10.5px; font-weight:600; margin-top:1px; }
.fgts-venc.ok { color:var(--text-main); }
.fgts-venc.ok small { color:var(--text-dim); }
.fgts-venc.logo { color:#b7791f; }
.fgts-venc.logo small { color:#b7791f; }
.fgts-venc.atrasado { color:#d6455b; }
.fgts-venc.atrasado small { color:#d6455b; }
.fgts-valor { text-align:right; font-weight:800; font-size:13.5px; color:var(--text-main); font-variant-numeric:tabular-nums; white-space:nowrap; }
.fgts-nada { color:var(--text-muted); }

.fgts-chip { display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:20px; font-size:11px; font-weight:700; white-space:nowrap; }
.fgts-chip::before { content:""; width:6px; height:6px; border-radius:50%; background:currentColor; }
.fgts-chip.emitida { background:var(--primary-dim); color:#0b7bb5; }
.fgts-chip.paga { background:var(--emerald-dim); color:#0f9d6e; }
.fgts-chip.sem { background:var(--bg-elevated); color:var(--text-dim); }

.fgts-guia { display:flex; align-items:center; gap:10px; }
.fgts-guia-num { font-family:ui-monospace,Consolas,monospace; font-size:11px; color:var(--text-dim); line-height:1.25; }
.fgts-barcode-btn {
  display:inline-flex; align-items:center; justify-content:center; flex:none;
  width:38px; height:38px; border-radius:11px;
  color:#0b7bb5; background:rgba(56,189,248,.14);
  border:1px solid rgba(56,189,248,.35);
  transition:transform .12s ease, background .12s ease, box-shadow .12s ease;
  text-decoration:none;
}
.fgts-barcode-btn:hover { background:rgba(56,189,248,.28); transform:translateY(-1px); box-shadow:0 4px 10px rgba(11,123,181,.18); }
.fgts-barcode-btn svg { display:block; }

/* cabeçalhos ordenáveis (Guias FGTS) */
.fgts-th { cursor:pointer; user-select:none; transition:background .12s ease, color .12s ease; }
.fgts-th:hover { background:var(--bg-hover); color:var(--text-main); }
.fgts-th.ativa { color:#0b7bb5; }
.fgts-seta { display:inline-block; width:12px; margin-left:5px; font-size:10px; opacity:.35; vertical-align:middle; }
.fgts-seta::before { content:"\21C5"; }                       /* ⇅ neutra */
.fgts-th.ativa .fgts-seta { opacity:1; }
.fgts-th.ativa.asc .fgts-seta::before { content:"\25B2"; }    /* ▲ */
.fgts-th.ativa.desc .fgts-seta::before { content:"\25BC"; }   /* ▼ */
.fgts-th.text-right { text-align:right; }

/* ===== Central DCTFWeb: caixa de competência ===== */
.dctf-comp-bar { margin:4px 0 14px; }
.dctf-comp-box {
  display:flex; align-items:center; gap:14px; cursor:pointer;
  width:100%; max-width:420px; padding:12px 16px;
  background:var(--bg-surface); border:1px solid var(--border-mid);
  border-radius:var(--radius-lg); box-shadow:var(--shadow-card);
  transition:border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.dctf-comp-box:hover { border-color:rgba(56,189,248,.55); box-shadow:0 6px 16px rgba(11,123,181,.12); transform:translateY(-1px); }
.dctf-comp-box:focus-within { border-color:var(--primary); box-shadow:0 0 0 3px rgba(56,189,248,.22); }
.dctf-comp-ico { width:42px; height:42px; flex:none; border-radius:12px; display:flex; align-items:center; justify-content:center; background:var(--primary-dim); color:#0b7bb5; }
.dctf-comp-txt { flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.dctf-comp-rot { font-size:10.5px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; color:var(--text-dim); }
.dctf-comp-select {
  width:100%; border:0; outline:0; background:transparent; cursor:pointer;
  font:inherit; font-size:16px; font-weight:700; color:var(--text-main);
  appearance:none; -webkit-appearance:none; padding:0; text-overflow:ellipsis;
}
.dctf-comp-chevron { flex:none; color:var(--text-dim); display:flex; }
.dctf-acoes { display:inline-flex; gap:6px; justify-content:flex-end; flex-wrap:nowrap; }

/* ===== Modal sessão assistida FGTS: só a tela do portal ===== */
.fgts-sessao-box { position:relative; width:min(92vw, calc((100vh - 150px) * 16 / 9)); aspect-ratio:16/9; overflow:visible; background:#0f172a; border-radius:14px; box-shadow:var(--shadow-modal); }
.fgts-sessao-tela { width:100%; height:100%; display:block; border-radius:14px; object-fit:fill; cursor:pointer; outline:none; user-select:none; }
.fgts-sessao-carregando { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; color:#94a3b8; font-size:13px; pointer-events:none; }
.fgts-sessao-x { position:absolute; top:8px; right:8px; z-index:2; width:28px; height:28px; border:none; border-radius:50%; background:rgba(15,23,42,.65); color:#fff; font-size:13px; cursor:pointer; }
.fgts-sessao-x:hover { background:rgba(15,23,42,.9); }
.fgts-comp-grid { padding:6px 9px; border:1px solid var(--border-mid); border-radius:8px; background:var(--bg-elevated); color:var(--text-main); font-size:12.5px; }
#btn-fgts-buscar { display:inline-flex; align-items:center; gap:6px; }
.fgts-robo-pill { align-items:center; padding:5px 12px; border-radius:999px; font-size:11.5px; font-weight:700; cursor:pointer; white-space:nowrap; }
.fgts-robo-pill.ok { background:var(--emerald-dim); color:#0f9d6e; }
.fgts-robo-pill.busca { background:var(--primary-dim); color:#0b7bb5; }
.fgts-robo-pill.espera { background:var(--amber-dim); color:#b7791f; }

.fgts-buscar-btn { display:inline-flex; align-items:center; gap:6px; padding:6px 12px; border:1px solid var(--border-mid); border-radius:9px; background:var(--bg-card); color:#0b7bb5; font-size:12px; font-weight:700; cursor:pointer; transition:all .12s ease; }
.fgts-buscar-btn:hover { background:var(--primary-dim); border-color:var(--primary); }

/* aviso "robô executando" */
.fgts-prog-overlay { position:fixed; right:24px; bottom:24px; z-index:950; display:flex; }
.fgts-prog-card { display:grid; grid-template-columns:auto 1fr; column-gap:14px; align-items:center; background:var(--bg-card); border:1px solid var(--border-mid); border-radius:14px; box-shadow:var(--shadow-modal); padding:14px 18px; min-width:300px; max-width:380px; animation:modalIn .2s ease; }
.fgts-prog-card .fgts-prog-spin { grid-row:span 2; margin:0; width:30px; height:30px; border-width:3px; }
.fgts-prog-spin { width:38px; height:38px; margin:0 auto 14px; border-radius:50%; border:4px solid var(--primary-dim); border-top-color:var(--primary); animation:fgtsGira .8s linear infinite; }
.fgts-prog-card.ok .fgts-prog-spin { animation:none; border-color:#0f9d6e; background:#0f9d6e; position:relative; }
.fgts-prog-card.ok .fgts-prog-spin::after { content:"\2713"; color:#fff; font-weight:800; font-size:20px; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
.fgts-prog-titulo { font-size:13.5px; font-weight:800; color:var(--text-main); }
.fgts-prog-sub { font-size:12.5px; color:var(--text-dim); margin-top:4px; }
@keyframes fgtsGira { to { transform:rotate(360deg); } }

.fgts-sessao-rodape { position:absolute; left:0; right:0; bottom:-44px; height:40px; display:flex; align-items:center; justify-content:center; border-radius:10px; background:#f59e0b; color:#1f2937; font-size:15px; font-weight:900; letter-spacing:1.5px; box-shadow:var(--shadow-modal); }

/* ===== Simples Nacional (DAS) ===== */
.das-table td { padding:12px 14px; vertical-align:middle; }
.das-table tbody tr { transition:background .12s ease; }
.das-table tbody tr:hover { background:var(--bg-elevated); }
.das-table tbody tr.das-buscando { background:linear-gradient(90deg, rgba(56,189,248,.08), transparent 45%); }
.das-table tbody tr.das-disponivel { background:linear-gradient(90deg, rgba(16,185,129,.07), transparent 45%); }

.das-th { cursor:pointer; user-select:none; font-size:12px; font-weight:700; color:var(--text-secondary); text-transform:uppercase; letter-spacing:0.5px; }
.das-th:hover { color:var(--text-main); }
.das-seta { display:inline-block; margin-left:4px; font-size:10px; opacity:0.6; }

.das-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 10px; border-radius:999px; font-size:11px; font-weight:700; }
.das-badge.buscando { background:rgba(56,189,248,.15); color:#38bdf8; border:1px solid rgba(56,189,248,.3); }
.das-badge.disponivel { background:rgba(16,185,129,.15); color:#10b981; border:1px solid rgba(16,185,129,.3); }
.das-badge.pendente { background:rgba(245,158,11,.15); color:#f59e0b; border:1px solid rgba(245,158,11,.3); }
.das-badge.falha { background:rgba(239,68,68,.15); color:#ef4444; border:1px solid rgba(239,68,68,.3); }

.das-pulse-dot { width:8px; height:8px; border-radius:50%; background:#38bdf8; animation:dasPulse 1.2s infinite; }
@keyframes dasPulse { 0% { opacity:0.3; transform:scale(0.8); } 50% { opacity:1; transform:scale(1.2); } 100% { opacity:0.3; transform:scale(0.8); } }

.btn-das-download { display:inline-flex; align-items:center; gap:6px; padding:5px 12px; border-radius:8px; background:rgba(16,185,129,.15); color:#10b981; border:1px solid rgba(16,185,129,.3); font-size:11.5px; font-weight:700; text-decoration:none; transition:all .15s ease; cursor:pointer; }
.btn-das-download:hover { background:#10b981; color:#fff; }

/* ===== Certidoes ===== */
.cert-cel { display:flex; align-items:center; gap:6px; }
.cert-badge { display:inline-flex; flex-direction:column; padding:4px 10px; border-radius:8px; font-size:11px; font-weight:700; line-height:1.25; cursor:pointer; border:1px solid transparent; text-align:left; }
.cert-badge small { font-weight:500; opacity:.85; font-size:10.5px; }
.cert-badge.ok { background:var(--emerald-dim); color:#0f7a56; }
.cert-badge.vencer { background:var(--amber-dim); color:#9a6412; }
.cert-badge.vencida { background:#fdecea; color:#b3261e; }
.cert-badge.positiva { background:#fdecea; color:#b3261e; }
.cert-badge.vazio { background:var(--bg-elevated); color:var(--text-dim); border:1px dashed var(--border, #cfd8e3); font-weight:600; }
.cert-pdf { text-decoration:none; font-size:15px; }
.cert-modal { position:fixed; inset:0; background:rgba(15,23,42,.45); z-index:9000; display:flex; align-items:center; justify-content:center; }
.cert-box { background:var(--bg-card, #fff); color:var(--text-main); border-radius:14px; padding:22px; width:min(94vw,480px); box-shadow:0 20px 60px rgba(0,0,0,.25); display:flex; flex-direction:column; gap:12px; }
.cert-box h3 { margin:0; font-size:17px; }
.cert-m-emp { font-size:12px; color:var(--text-dim); margin-top:-8px; }
.cert-m-link { font-size:12px; color:var(--primary); }
.cert-box label { display:flex; flex-direction:column; gap:4px; font-size:11px; font-weight:600; color:var(--text-dim); text-transform:uppercase; letter-spacing:.4px; }
.cert-box input, .cert-box select { padding:8px 10px; border:1px solid var(--border, #d5dde6); border-radius:8px; font-size:13px; background:var(--bg-elevated, #fff); color:var(--text-main); text-transform:none; letter-spacing:0; font-weight:400; }
.cert-m-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.cert-m-erro { color:#c0392b; font-size:12px; min-height:14px; }
.cert-m-acoes { display:flex; gap:8px; align-items:center; }

/* ===== Submenu Certidoes ===== */
.nav-group-btn {
  display:flex; align-items:center; gap:10px; padding:9px 18px; border:none; background:none; width:100%;
  font-size:13px; font-weight:500; color:var(--text-secondary); border-left:3px solid transparent;
  transition:var(--transition); text-align:left; cursor:pointer;
}
.nav-group-btn:hover { background:var(--bg-hover); color:var(--text-main); }
.nav-group-btn svg:first-child { flex-shrink:0; }
.nav-chevron { margin-left:auto; transition:transform .2s ease; opacity:.7; }
.nav-group.open .nav-chevron { transform:rotate(90deg); }
.nav-submenu { display:none; flex-direction:column; padding:2px 0 4px; }
.nav-group.open .nav-submenu { display:flex; }
.nav-link.nav-sub { padding:7px 18px 7px 46px; font-size:12.5px; }
.nav-link.nav-sub::before { content:''; position:absolute; left:28px; top:50%; width:5px; height:5px; margin-top:-2.5px; border-radius:50%; background:currentColor; opacity:.45; }
.cert-portal { text-decoration:none; align-self:center; }
.cert-acao { font-size:12px; }

.cert-robo-status { margin:0 0 12px; padding:10px 14px; border-radius:10px; font-size:12.5px; background:var(--primary-dim); color:var(--text-main); display:flex; align-items:center; gap:10px; }
.cert-robo-status.ok { background:var(--emerald-dim); }
.cert-robo-status.erro { background:#fdecea; color:#b3261e; }
.cert-robo-spin { width:16px; height:16px; border:2px solid rgba(0,0,0,.15); border-top-color:var(--primary); border-radius:50%; animation:fgtsGira .8s linear infinite; flex-shrink:0; }

.cert-visivel { display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--text-dim); cursor:pointer; white-space:nowrap; }
.cert-log { margin-top:6px; font:11px/1.45 ui-monospace, Consolas, monospace; color:var(--text-dim); max-height:110px; overflow:auto; }
.cert-robo-status { flex-wrap:wrap; }

/* Certidões: ações da tabela */
.cert-pdf-btn { display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px; font-size:11.5px; font-weight:600; color:#0b7bb5; background:var(--primary-dim); text-decoration:none; transition:background .15s, box-shadow .15s; }
.cert-pdf-btn:hover { background:rgba(56,189,248,.28); box-shadow:0 0 0 1px rgba(11,123,181,.35); }
.cert-btn-emitir { padding:4px 11px; border:1px solid var(--border-mid); border-radius:8px; background:transparent; color:var(--text-main); font-size:11.5px; font-weight:600; cursor:pointer; transition:border-color .15s, color .15s, background .15s; }
.cert-btn-emitir:hover { border-color:#0b7bb5; color:#0b7bb5; background:var(--primary-dim); }
.cert-btn-emitir:disabled { opacity:.5; cursor:default; }
.cert-btn-edit { padding:4px 8px; border:0; background:transparent; color:var(--text-dim); font-size:11.5px; cursor:pointer; }
.cert-btn-edit:hover { color:var(--text-main); text-decoration:underline; }

.cert-linha { display:flex; align-items:center; gap:10px; margin:10px 0; font-size:12px; color:var(--text-dim); }
.cert-robo-toggle { display:inline-flex; align-items:center; gap:5px; padding:2px 8px; border:1px solid var(--border-mid); border-radius:999px; background:transparent; color:var(--text-dim); font-size:11.5px; cursor:pointer; }
.cert-robo-toggle:hover { color:var(--text-main); border-color:#0b7bb5; }
.cert-robo-toggle svg { transition:transform .15s; }
.cert-robo-toggle.aberto svg { transform:rotate(180deg); }
.cert-robo-dot { width:7px; height:7px; border-radius:50%; background:var(--text-dim); display:none; }
.cert-robo-toggle.rodando .cert-robo-dot { display:inline-block; background:#0b7bb5; animation:certpulso 1.2s infinite; }
@keyframes certpulso { 50% { opacity:.25; } }

/* ===== Ícones SVG (substituem emojis) ===== */
.ico { width:1.1em; height:1.1em; display:inline-block; vertical-align:-0.2em; flex-shrink:0; margin-right:.3em; }
button .ico:only-child, .btn-pin-empresa .ico { margin-right:0; }
.ico-ok { color:var(--emerald, #10b981); }
.ico-warn { color:#d97706; }
.ico-err { color:#e11d48; }
.ico-mute { color:#9ca3af; }
.ico-dot { width:.75em; height:.75em; vertical-align:.02em; margin-right:.35em; }

/* ===== Cabeçalho responsivo ===== */
.top-header { min-width:0; }
.header-title { flex-shrink:0; }
.header-controls { min-width:0; flex:1; justify-content:flex-end; }
.company-picker { min-width:0; flex:0 1 auto; }
.select-container { min-width:0; }
.native-select { width:100%; min-width:180px; max-width:340px; text-overflow:ellipsis; }
.btn-header-cert, #btn-header-nova-empresa, .env-chip { flex-shrink:0; }
@media (max-width:1280px) { .picker-label { display:none; } }
@media (max-width:1180px) { .env-chip { display:none; } .top-header { padding:0 16px; } .header-controls { gap:8px; } }
@media (max-width:1000px) { .btn-header-cert span:last-child { display:none; } .header-title { font-size:14px; } .native-select { min-width:150px; } }

/* ===== Tabela de empresas ===== */
.tabela-empresas { table-layout:auto; width:100%; }
.tabela-empresas .col-cnpj { width:190px; white-space:nowrap; }
.tabela-empresas .col-razao { min-width:240px; }
.tabela-empresas .col-auth { width:150px; }
.tabela-empresas .col-status { width:150px; }
.tabela-empresas .col-acoes { width:1%; white-space:nowrap; }
.tabela-empresas td.col-razao { line-height:1.35; word-break:normal; overflow-wrap:break-word; }
.tabela-empresas td.col-cnpj { white-space:nowrap; }
.tabela-empresas .acoes-wrap { display:inline-flex; gap:6px; justify-content:flex-end; flex-wrap:nowrap; }
@media (max-width:1320px) { .tabela-empresas .btn-label { display:none; } .tabela-empresas .acoes-wrap .btn { padding-left:10px; padding-right:10px; } }

/* ===== Aviso de escopo (Caixa Postal) ===== */
.escopo-link { background:none; border:none; padding:0; margin-left:6px; color:var(--primary-color, #2563eb); font-weight:600; font-size:inherit; cursor:pointer; text-decoration:underline; }
.escopo-extra { color:var(--text-dim); margin-left:6px; }
