:root {
  --ec-primary: #0aa496;
  --ec-primary-700: #087d75;
  --ec-primary-800: #06635e;
  --ec-primary-100: #dff6f3;
  --ec-primary-50: #f0fbf9;
  --ec-slate-950: #22262d;
  --ec-slate-800: #353a43;
  --ec-slate-700: #4f5661;
  --ec-slate-600: #65707b;
  --ec-slate-500: #839096;
  --ec-slate-300: #cbd5d8;
  --ec-slate-200: #dde5e7;
  --ec-slate-100: #edf2f3;
  --ec-bg: #f5f8f8;
  --ec-surface: #ffffff;
  --ec-danger: #c43d4b;
  --ec-danger-100: #fdebed;
  --ec-warning: #c98108;
  --ec-warning-100: #fff5dd;
  --ec-success: #218b5b;
  --ec-success-100: #e7f7ef;
  --ec-info: #3276b9;
  --ec-info-100: #eaf3fd;
  --ec-shadow-sm: 0 1px 2px rgba(25, 40, 45, .05), 0 2px 8px rgba(25, 40, 45, .04);
  --ec-shadow-md: 0 12px 32px rgba(34, 49, 54, .09);
  --ec-shadow-lg: 0 24px 64px rgba(26, 43, 48, .18);
  --ec-radius-sm: 10px;
  --ec-radius: 16px;
  --ec-radius-lg: 24px;
  --sidebar-width: 286px;
  --topbar-height: 78px;
}

* { box-sizing: border-box; }
html { min-height: 100%; scroll-behavior: smooth; }
body {
  margin: 0;
  min-height: 100vh;
  color: var(--ec-slate-800);
  background:
    radial-gradient(circle at 100% 0, rgba(10,164,150,.06), transparent 28rem),
    var(--ec-bg);
  font-family: Inter, "Segoe UI Variable", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, Arial, sans-serif;
  line-height: 1.45;
  -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
a { color: var(--ec-primary-700); text-decoration: none; }
a:hover { color: var(--ec-primary-800); }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.ec-icon { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: 0 0 auto; }

/* Central de alertas */
.notification-bell { position: relative; }
.notification-bell > summary { position: relative; list-style: none; cursor: pointer; }
.notification-bell > summary::-webkit-details-marker { display: none; }
.notification-bell[open] > summary { background: var(--ec-primary-100); color: var(--ec-primary-800); }
.notification-count { position: absolute; top: -4px; right: -7px; min-width: 19px; height: 19px; padding: 0 4px; border-radius: 10px; background: var(--ec-danger); color: white; font-size: 10px; font-weight: 700; line-height: 19px; text-align: center; }
.notification-count[hidden] { display: none; }
.notification-popover { position: absolute; right: 0; top: calc(100% + 14px); width: min(440px, calc(100vw - 28px)); background: var(--ec-surface); border: 1px solid var(--ec-slate-200); border-radius: var(--ec-radius); box-shadow: var(--ec-shadow-lg); overflow: hidden; z-index: 90; }
.notification-popover-header { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 18px 18px 6px; }
.notification-popover-header a { font-size: 12px; }
.notification-hint { padding: 4px 18px 12px; margin: 0; font-size: 12px; color: var(--ec-slate-600); }
#notificationPreview { max-height: min(480px, 60vh); overflow-y: auto; overscroll-behavior: contain; }
.notification-preview-item { padding: 15px 18px; border-top: 1px solid var(--ec-slate-200); }
.notification-preview-item.is-unread { background: var(--ec-primary-50); border-left: 3px solid var(--ec-primary); padding-left: 15px; }
.notification-preview-meta { display: block; color: var(--ec-slate-600); font-size: 11px; margin-bottom: 5px; }
.notification-preview-title { display: block; font-size: 13px; font-weight: 650; }
.notification-preview-body { margin: 6px 0 10px; color: var(--ec-slate-600); font-size: 12px; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; overflow-wrap: anywhere; }
.notification-footer { padding: 13px 18px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--ec-slate-200); font-size: 12px; font-weight: 600; }
.notification-center > .panel-header { flex-wrap: wrap; gap: 12px; }
.notification-center .tabs { padding: 8px 0; }
.notification-history { margin-bottom: 18px; }
.notification-entry { padding: 20px 16px; border-top: 1px solid var(--ec-slate-200); }
.notification-entry.is-unread { border-left: 3px solid var(--ec-primary); background: var(--ec-primary-50); }
.notification-entry h3 { font-size: 15px; margin: 10px 0; overflow-wrap: anywhere; }
.notification-entry-meta { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; font-size: 11px; color: var(--ec-slate-600); }
.notification-body { font-size: 13px; }
.notification-body summary { cursor: pointer; color: var(--ec-primary-700); }
.notification-body p { white-space: pre-wrap; overflow-wrap: anywhere; }
.notification-entry-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
@media (max-width: 680px) {
  .notification-popover { position: fixed; top: 76px; right: 14px; }
  .notification-center .panel-header { align-items: flex-start; }
  .notification-entry { padding: 16px 10px; }
}

/* Shell */
.app-shell { min-height: 100vh; }
.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  width: var(--sidebar-width);
  z-index: 40;
  display: flex;
  flex-direction: column;
  padding: 22px 16px 18px;
  background: rgba(255,255,255,.96);
  border-right: 1px solid var(--ec-slate-200);
  box-shadow: 8px 0 30px rgba(44,65,68,.025);
  backdrop-filter: blur(12px);
  transition: transform .24s ease, width .24s ease;
}
.brand { display: flex; align-items: center; min-height: 70px; padding: 4px 12px 16px; border-bottom: 1px solid var(--ec-slate-100); }
.brand img { width: 206px; max-width: 100%; height: auto; display: block; }
.sidebar-nav { flex: 1; overflow-y: auto; padding: 18px 2px; scrollbar-width: thin; }
.nav-group-label { padding: 16px 12px 7px; color: var(--ec-slate-500); font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.nav-item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 46px;
  margin: 3px 0;
  padding: 11px 13px;
  border-radius: 13px;
  color: var(--ec-slate-700);
  font-weight: 650;
  transition: background .15s, color .15s, transform .15s;
}
.nav-item:hover { background: var(--ec-primary-50); color: var(--ec-primary-700); transform: translateX(2px); }
.nav-item.active { color: var(--ec-primary-800); background: linear-gradient(135deg, var(--ec-primary-100), #edf9f7); box-shadow: inset 3px 0 0 var(--ec-primary); }
.nav-item .ec-icon { width: 21px; height: 21px; }
.nav-details > summary { list-style: none; cursor: pointer; }
.nav-details > summary::-webkit-details-marker { display: none; }
.nav-chevron { margin-left: auto; width: 17px !important; transition: transform .18s; }
.nav-details[open] .nav-chevron { transform: rotate(90deg); }
.nav-submenu { margin: 3px 0 8px 24px; padding-left: 15px; border-left: 1px solid var(--ec-slate-200); }
.nav-subitem { display: block; padding: 8px 11px; border-radius: 9px; color: var(--ec-slate-600); font-size: 13px; font-weight: 600; }
.nav-subitem:hover, .nav-subitem.active { color: var(--ec-primary-800); background: var(--ec-primary-50); }
.sidebar-footer { padding: 14px 12px 2px; border-top: 1px solid var(--ec-slate-100); color: var(--ec-slate-500); font-size: 12px; }
.app-version { margin-bottom: 8px; }
.local-status { display: flex; align-items: center; gap: 7px; }
.local-status span { width: 8px; height: 8px; border-radius: 50%; background: var(--ec-success); box-shadow: 0 0 0 4px var(--ec-success-100); }
.sidebar-backdrop { display: none; position: fixed; inset: 0; z-index: 35; border: 0; background: rgba(21,31,35,.45); backdrop-filter: blur(2px); }

.main-area { min-height: 100vh; margin-left: var(--sidebar-width); }
.topbar {
  position: sticky;
  top: 0;
  z-index: 30;
  min-height: var(--topbar-height);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 12px 28px;
  border-bottom: 1px solid rgba(203,213,216,.8);
  background: rgba(245,248,248,.88);
  backdrop-filter: blur(14px);
}
.topbar-left, .topbar-actions { display: flex; align-items: center; gap: 14px; }
.topbar-left, .topbar-left .page-heading { min-width: 0; }
.topbar-left .page-heading h1 { overflow-wrap: anywhere; }
.global-refresh { display: grid; justify-items: end; gap: 3px; }
.global-refresh form { margin: 0; }
.global-refresh-status { display: inline-flex; align-items: center; gap: 5px; color: var(--ec-slate-500); font-size: 10px; line-height: 1.2; white-space: nowrap; }
.global-refresh-status .status-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--ec-slate-300); }
.global-refresh-status .status-dot.success { background: var(--ec-success); box-shadow: 0 0 0 3px var(--ec-success-100); }
.global-refresh-status .status-dot.warning { background: var(--ec-warning); box-shadow: 0 0 0 3px var(--ec-warning-100); }
.global-refresh-status .status-dot.running { background: var(--ec-primary); box-shadow: 0 0 0 3px var(--ec-primary-100); animation: refreshPulse 1.2s ease-in-out infinite; }
@keyframes refreshPulse { 50% { opacity: .45; transform: scale(.82); } }
.page-heading h1 { margin: 0; color: var(--ec-slate-950); font-size: clamp(20px, 2vw, 27px); font-weight: 780; letter-spacing: -.025em; }
.page-heading p { margin: 2px 0 0; color: var(--ec-slate-500); font-size: 13px; }
.icon-button {
  width: 42px; height: 42px; display: inline-flex; align-items: center; justify-content: center;
  padding: 0; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: var(--ec-surface); color: var(--ec-slate-700); cursor: pointer; box-shadow: var(--ec-shadow-sm);
}
.icon-button:hover { border-color: var(--ec-primary); color: var(--ec-primary-700); background: var(--ec-primary-50); }
.menu-button { display: none; }
.user-menu { position: relative; }
.user-menu > summary { list-style: none; display: flex; align-items: center; gap: 10px; cursor: pointer; padding: 5px 8px 5px 5px; border: 1px solid transparent; border-radius: 14px; }
.user-menu > summary::-webkit-details-marker { display: none; }
.user-menu[open] > summary { background: var(--ec-surface); border-color: var(--ec-slate-200); box-shadow: var(--ec-shadow-sm); }
.avatar { width: 39px; height: 39px; display: grid; place-items: center; border-radius: 12px; background: linear-gradient(135deg, var(--ec-primary), var(--ec-primary-700)); color: #fff; font-weight: 800; }
.user-meta { display: grid; min-width: 100px; }
.user-meta strong { color: var(--ec-slate-800); font-size: 13px; }
.user-meta small { color: var(--ec-slate-500); font-size: 11px; }
.user-chevron { width: 15px; }
.user-menu[open] .user-chevron { transform: rotate(90deg); }
.user-dropdown { position: absolute; right: 0; top: calc(100% + 10px); width: 248px; padding: 8px; border: 1px solid var(--ec-slate-200); border-radius: 15px; background: #fff; box-shadow: var(--ec-shadow-md); }
.dropdown-user { display: grid; padding: 10px 11px 12px; border-bottom: 1px solid var(--ec-slate-100); margin-bottom: 5px; }
.dropdown-user span { color: var(--ec-slate-500); font-size: 12px; overflow-wrap: anywhere; }
.dropdown-user .email-chip { justify-self: start; margin-top: 4px; color: var(--ec-primary-800); font-size: 10px; }
.user-dropdown a { display: flex; align-items: center; gap: 9px; padding: 10px 11px; border-radius: 10px; color: var(--ec-slate-700); font-weight: 650; }
.user-dropdown a:hover { background: var(--ec-primary-50); color: var(--ec-primary-700); }
.user-dropdown form { margin: 0; }
.user-dropdown .dropdown-action {
  width: 100%; min-height: 40px; justify-content: flex-start; padding: 10px 11px; border: 0; border-radius: 10px; background: transparent; box-shadow: none; color: var(--ec-slate-700); font-size: 14px;
}
.user-dropdown .dropdown-action:hover { transform: none; box-shadow: none; }
.user-dropdown .danger-link:hover { background: var(--ec-danger-100); color: var(--ec-danger); }
.content-wrap { width: min(100%, 1680px); margin: 0 auto; padding: 26px 30px 48px; }

/* Common components */
.panel { margin: 0 0 20px; padding: 22px; border: 1px solid var(--ec-slate-200); border-radius: var(--ec-radius); background: var(--ec-surface); box-shadow: var(--ec-shadow-sm); }
.panel-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; margin-bottom: 18px; }
.panel-header h2, .panel h2 { margin: 0; color: var(--ec-slate-950); font-size: 18px; letter-spacing: -.01em; }
.panel-header p, .panel > p:first-of-type { margin: 5px 0 0; color: var(--ec-slate-500); }
.panel-soft { background: linear-gradient(145deg, #fff, #f8fbfb); }
.sticky-actions { position: sticky; top: calc(var(--topbar-height) + 10px); z-index: 20; }
.grid { display: grid; gap: 18px; }
.grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.span-2 { grid-column: span 2; }
.actions-row { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; }
.actions-row.end { justify-content: flex-end; }
.inline-form { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.muted { color: var(--ec-slate-500); }
.text-danger { color: var(--ec-danger); }
.text-success { color: var(--ec-success); }
.empty-state { display: grid; place-items: center; min-height: 170px; padding: 26px; text-align: center; color: var(--ec-slate-500); }
.empty-state .ec-icon { width: 34px; height: 34px; color: var(--ec-slate-300); margin-bottom: 8px; }

.button, button {
  min-height: 42px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 10px 15px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 11px;
  background: #fff;
  color: var(--ec-slate-700);
  font-weight: 700;
  cursor: pointer;
  transition: transform .12s, box-shadow .12s, background .12s, border-color .12s;
}
.button:hover, button:hover { transform: translateY(-1px); border-color: var(--ec-primary); background: var(--ec-primary-50); color: var(--ec-primary-800); box-shadow: var(--ec-shadow-sm); }
.button.primary, button.primary { border-color: var(--ec-primary); background: linear-gradient(135deg, var(--ec-primary), #079285); color: #fff; box-shadow: 0 8px 18px rgba(10,164,150,.18); }
.button.primary:hover, button.primary:hover { background: linear-gradient(135deg, #07998d, var(--ec-primary-700)); color: #fff; }
.button.danger, button.danger { border-color: #efc4c9; color: var(--ec-danger); background: #fff; }
.button.danger:hover, button.danger:hover { background: var(--ec-danger-100); }
.button.ghost, button.ghost { background: transparent; box-shadow: none; }
.button.small, button.small { min-height: 34px; padding: 7px 10px; border-radius: 9px; font-size: 12px; }
.button .ec-icon, button .ec-icon { width: 18px; height: 18px; }

/* Alerts and badges */
.alert { display: grid; grid-template-columns: auto 1fr auto; align-items: start; gap: 10px; margin: 0 0 16px; padding: 13px 15px; border: 1px solid; border-radius: 13px; font-size: 14px; }
.alert .ec-icon { margin-top: 1px; }
.alert button { min-height: 26px; width: 26px; padding: 2px; border: 0; background: transparent; box-shadow: none; }
.alert-success { color: #176a47; border-color: #b9e2cc; background: var(--ec-success-100); }
.alert-danger { color: #982f3a; border-color: #efc3c8; background: var(--ec-danger-100); }
.alert-warning { color: #885600; border-color: #efd497; background: var(--ec-warning-100); }
.alert-info { color: #245b8c; border-color: #bdd6ee; background: var(--ec-info-100); }
.complement-review-form { display: grid; gap: 14px; margin-top: 14px; }
.complement-key-fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.complement-key-fieldset legend { margin-bottom: 8px; color: var(--ec-slate-800); font-size: 12px; font-weight: 800; }
.complement-key-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 8px; max-height: 310px; overflow: auto; padding: 2px; }
.complement-key-option { min-width: 0; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid #efd497; border-radius: 11px; background: rgba(255,255,255,.72); cursor: pointer; }
.complement-key-option:hover { border-color: var(--ec-warning); background: #fff; }
.complement-key-option:has(input:checked) { border-color: var(--ec-primary); background: var(--ec-primary-50); box-shadow: 0 0 0 2px rgba(10,164,150,.12); }
.complement-key-option input { width: 18px; height: 18px; margin: 0; accent-color: var(--ec-primary); }
.complement-key-option > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.complement-key-option strong { color: var(--ec-slate-800); font-size: 12px; }
.complement-key-option small { overflow: hidden; color: var(--ec-slate-500); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.alert .complement-review-submit { width: auto; min-height: 42px; padding: 10px 15px; border: 1px solid var(--ec-primary); background: linear-gradient(135deg, var(--ec-primary), #079285); color: #fff; box-shadow: 0 8px 18px rgba(10,164,150,.18); }
.alert .complement-review-submit:hover { background: linear-gradient(135deg, #07998d, var(--ec-primary-700)); color: #fff; }
.mini-badge, .status-badge { display: inline-flex; align-items: center; gap: 5px; width: fit-content; padding: 4px 9px; border-radius: 999px; font-size: 11px; font-weight: 800; white-space: nowrap; }
.mini-badge.success { color: var(--ec-success); background: var(--ec-success-100); }
.mini-badge.neutral { color: var(--ec-slate-600); background: var(--ec-slate-100); }
.mini-badge.warning { color: var(--ec-warning); background: var(--ec-warning-100); }
.mini-badge.danger { color: var(--ec-danger); background: var(--ec-danger-100); }
.status-email_enviado { color: #1c6b66; background: #dff6f3; }
.status-aguardando_analise { color: #8a5900; background: #fff2ce; }
.status-em_andamento { color: #6543a5; background: #eee8fb; }
.status-email_respondido { color: #2d5f9a; background: #e7f1fc; }
.status-concluido { color: #25704c; background: #e6f6ed; }
.status-pendente_envio, .status-rascunho { color: #68588d; background: #eee9f8; }

/* Dashboard */
.hero {
  position: relative; overflow: hidden; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .7fr); gap: 24px;
  margin-bottom: 20px; padding: 28px; border-radius: var(--ec-radius-lg); color: #fff;
  background: linear-gradient(130deg, #078f84 0%, #0aa496 55%, #4db8ae 100%); box-shadow: 0 18px 44px rgba(8,125,117,.22);
}
.hero::after { content: ""; position: absolute; width: 330px; height: 330px; right: -95px; top: -145px; border: 54px solid rgba(255,255,255,.12); border-radius: 50%; }
.hero-content, .hero-side { position: relative; z-index: 1; }
.hero-actions form { margin: 0; }
.hero-eyebrow { display: inline-flex; align-items: center; gap: 7px; margin-bottom: 9px; font-size: 12px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; opacity: .9; }
.hero h2 { margin: 0 0 9px; font-size: clamp(25px, 3vw, 38px); line-height: 1.12; letter-spacing: -.035em; }
.dashboard-refresh-panel { display: flex; align-items: center; justify-content: space-between; gap: 24px; background: linear-gradient(135deg, #fff, var(--ec-primary-50)); }
.dashboard-refresh-panel > div { min-width: 0; }
.dashboard-refresh-panel .eyebrow { display: inline-flex; align-items: center; gap: 7px; }
.dashboard-refresh-panel h2 { margin-top: 5px; }
.dashboard-refresh-panel p { margin: 6px 0 0; color: var(--ec-slate-600); }
.dashboard-refresh-panel form { flex: 0 0 auto; margin: 0; }

.initial-refresh-card {
  width: min(760px, 100%);
  min-height: 330px;
  margin: clamp(36px, 8vh, 100px) auto;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 26px;
  padding: clamp(28px, 5vw, 52px);
  background: linear-gradient(145deg, #fff, var(--ec-primary-50));
  box-shadow: var(--ec-shadow-md);
}
.initial-refresh-card h2 { margin: 6px 0 10px; font-size: clamp(24px, 4vw, 34px); }
.initial-refresh-card p { margin: 0 0 10px; color: var(--ec-slate-600); font-size: 16px; }
.initial-refresh-card small { color: var(--ec-slate-500); }
.initial-refresh-card form { grid-column: 1 / -1; }
.initial-refresh-visual { position: relative; width: 92px; height: 92px; display: grid; place-items: center; color: var(--ec-primary-700); }
.initial-refresh-visual .spinner { position: absolute; inset: 0; width: 92px; height: 92px; margin: 0; border-width: 6px; }
.initial-refresh-visual > .ec-icon { width: 34px; height: 34px; }
.hero p { max-width: 700px; margin: 0; color: rgba(255,255,255,.88); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 20px; }
.hero .button { border-color: rgba(255,255,255,.3); color: #fff; background: rgba(255,255,255,.13); box-shadow: none; }
.hero .button:hover { background: rgba(255,255,255,.22); }
.hero .button.light { color: var(--ec-primary-800); background: #fff; }
.setup-ring { display: grid; place-items: center; height: 100%; min-height: 160px; }
.ring { --progress: 0; width: 136px; height: 136px; display: grid; place-items: center; border-radius: 50%; background: conic-gradient(#fff calc(var(--progress) * 1%), rgba(255,255,255,.22) 0); }
.ring::before { content: ""; width: 104px; height: 104px; border-radius: 50%; background: rgba(4,102,95,.55); position: absolute; }
.ring-content { z-index: 1; text-align: center; }
.ring-content strong { display: block; font-size: 28px; }
.ring-content span { font-size: 11px; opacity: .85; }
.metrics { grid-template-columns: repeat(6, minmax(140px, 1fr)); margin-bottom: 20px; }
.metric-card { position: relative; overflow: hidden; min-height: 112px; padding: 17px; border: 1px solid var(--ec-slate-200); border-radius: 15px; background: #fff; box-shadow: var(--ec-shadow-sm); }
.metric-card::after { content: ""; position: absolute; width: 70px; height: 70px; right: -28px; bottom: -34px; border-radius: 50%; background: var(--ec-primary-100); }
.metric-card .metric-icon { width: 32px; height: 32px; display: grid; place-items: center; margin-bottom: 12px; border-radius: 10px; color: var(--ec-primary-700); background: var(--ec-primary-100); }
.metric-card .metric-icon .ec-icon { width: 18px; height: 18px; }
.metric-card span { display: block; color: var(--ec-slate-500); font-size: 11px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.metric-card strong { display: block; margin-top: 2px; color: var(--ec-slate-950); font-size: 28px; line-height: 1; }
.metric-card-link { color: inherit; transition: transform .15s, border-color .15s, box-shadow .15s; }
.metric-card-link:hover { color: inherit; transform: translateY(-2px); border-color: var(--ec-primary); box-shadow: var(--ec-shadow-md); }
.metric-card-link small { position: relative; z-index: 1; display: flex; align-items: center; gap: 3px; margin-top: 10px; color: var(--ec-primary-700); font-size: 11px; font-weight: 750; }
.metric-card-link small .ec-icon { width: 13px; height: 13px; }
.pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 10px; margin-top: 18px; }
.email-preview-body { max-width: 520px; max-height: 260px; overflow: auto; white-space: pre-wrap; font-size: 12px; }
.email-chip-list { display: flex; flex-wrap: wrap; gap: 5px; margin: 4px 0 8px; }
.email-chip, .email-tag-chip { display: inline-flex; align-items: center; gap: 5px; max-width: 100%; padding: 5px 9px; border: 1px solid #a8ddd7; border-radius: 999px; color: var(--ec-primary-800); background: var(--ec-primary-50); font-size: 11px; font-weight: 750; overflow-wrap: anywhere; }
.email-chip.secondary { border-color: var(--ec-slate-200); color: var(--ec-slate-700); background: var(--ec-slate-100); }
.email-chip.compact { margin: 0; padding: 3px 7px; font-size: 10px; }
.email-recipient-overview { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 15px; margin-bottom: 18px; padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: #fbfdfd; }
.email-recipient-overview > div, .email-review-envelope > div { min-width: 0; }
.email-recipient-overview strong, .email-review-envelope strong, .email-preview-attachments > strong { display: block; margin-bottom: 5px; color: var(--ec-slate-600); font-size: 11px; letter-spacing: .04em; text-transform: uppercase; }
.email-specific-form { padding-top: 4px; }
.email-review-envelope { display: grid; gap: 11px; padding: 15px; border: 1px solid var(--ec-slate-200); border-radius: 13px 13px 0 0; background: var(--ec-slate-50); }
.email-review-envelope > div:last-child span { color: var(--ec-slate-900); font-weight: 750; }
.email-preview-dashboard { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--ec-slate-200); border-top: 0; background: #f8fbfb; }
.email-preview-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.email-preview-stats article { padding: 13px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: #fff; }
.email-preview-stats span { display: block; color: var(--ec-slate-500); font-size: 10px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.email-preview-stats strong { display: block; margin-top: 4px; color: var(--ec-slate-900); font-size: 17px; }
.email-preview-summary-card { padding: 16px; border: 1px solid #cce8e5; border-radius: 13px; background: #fff; }
.email-preview-summary-card p { margin: 8px 0 0; color: var(--ec-slate-700); line-height: 1.55; }
.email-situation-section { display: grid; gap: 10px; }
.email-situation-section h3 { margin: 2px 0 0; font-size: 15px; }
.email-situation-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px; }
.email-situation-card { display: grid; align-content: start; gap: 7px; padding: 14px; border: 1px solid #ead39a; border-radius: 12px; background: #fffbef; }
.email-situation-card .mini-badge { justify-self: start; }
.email-situation-card strong { color: #775515; font-size: 14px; }
.email-situation-card p { margin: 0; color: var(--ec-slate-700); font-size: 12px; line-height: 1.5; }
.email-treatment-section { display: grid; gap: 10px; }
.email-treatment-section h3 { margin: 2px 0 0; font-size: 15px; }
.email-treatment-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.email-treatment-card { display: grid; align-content: start; gap: 7px; padding: 14px; border: 1px solid #b9ddd9; border-radius: 12px; background: #f3fbfa; }
.email-treatment-card .mini-badge { justify-self: start; }
.email-treatment-card strong { color: var(--ec-primary-800); font-size: 14px; }
.email-treatment-card p { margin: 0; color: var(--ec-slate-700); font-size: 12px; line-height: 1.5; }
.email-treatment-alert { display: flex; align-items: flex-start; gap: 8px; padding: 11px 13px; border: 1px solid #e7c36c; border-radius: 11px; color: #75530d; background: #fff8e7; font-size: 12px; font-weight: 700; line-height: 1.45; }
.email-treatment-alert .ec-icon { flex: 0 0 auto; width: 17px; height: 17px; margin-top: 1px; }
.email-preview-complete { margin-top: 13px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: #fff; }
.email-preview-complete > summary { display: flex; align-items: center; gap: 7px; padding: 13px 15px; color: var(--ec-primary-800); font-weight: 800; cursor: pointer; }
.email-preview-complete > summary .ec-icon { width: 17px; }
.email-preview-full { max-height: 520px; overflow: auto; padding: 20px; border-top: 1px solid var(--ec-slate-200); color: var(--ec-slate-800); background: #fff; white-space: pre-wrap; line-height: 1.65; }
.email-preview-list-summary { max-width: 520px; padding: 10px 0; }
.email-preview-list-summary p { margin: 0 0 7px; color: var(--ec-slate-600); font-size: 12px; line-height: 1.5; }
.email-preview-attachments { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 14px 0; }
.email-preview-attachments > strong { width: 100%; margin: 0; }
.bulk-selection-toolbar { position: sticky; top: calc(var(--topbar-height) + 8px); z-index: 15; display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 14px; padding: 12px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: rgba(255,255,255,.96); box-shadow: var(--ec-shadow-sm); }
.select-all-label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.pending-ticket-checkbox, #selectAllPending { width: 18px; height: 18px; cursor: pointer; accent-color: var(--ec-primary); }
.ticket-risk-value { display: inline-block; margin-top: 4px; color: var(--ec-danger); font-size: 11px; font-weight: 800; white-space: nowrap; }
.setup-list { display: grid; gap: 10px; }
.setup-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 12px; border: 1px solid var(--ec-slate-100); border-radius: 12px; background: #fbfdfd; }
.setup-check { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--ec-slate-500); background: var(--ec-slate-100); }
.setup-item.done .setup-check { color: #fff; background: var(--ec-success); }
.setup-info strong { display: block; color: var(--ec-slate-800); font-size: 13px; }
.setup-info span { color: var(--ec-slate-500); font-size: 12px; }
.quick-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; }
.quick-action { display: flex; align-items: center; gap: 12px; padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 13px; color: var(--ec-slate-700); background: #fff; }
.quick-action:hover { border-color: var(--ec-primary); color: var(--ec-primary-800); background: var(--ec-primary-50); }
.quick-action-icon { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 11px; color: var(--ec-primary-700); background: var(--ec-primary-100); }
.quick-action strong { display: block; font-size: 13px; }
.quick-action small { color: var(--ec-slate-500); }

/* Forms */
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 17px; }
.field { display: flex; flex-direction: column; gap: 7px; }
.field > span, label > span { color: var(--ec-slate-700); font-size: 13px; font-weight: 750; }
.required-mark { color: var(--ec-danger); }
input, select, textarea {
  width: 100%; min-height: 44px; padding: 10px 12px; border: 1px solid var(--ec-slate-300); border-radius: 11px; outline: none;
  color: var(--ec-slate-800); background: #fff; transition: border .15s, box-shadow .15s, background .15s;
}
input:focus, select:focus, textarea:focus { border-color: var(--ec-primary); box-shadow: 0 0 0 4px rgba(10,164,150,.11); }
input::placeholder, textarea::placeholder { color: #a6b0b4; }
textarea { min-height: 110px; resize: vertical; }
.email-tags-source { position: absolute !important; width: 1px !important; height: 1px !important; min-height: 1px !important; padding: 0 !important; opacity: 0; pointer-events: none; }
.email-tag-editor { min-height: 46px; padding: 6px 8px; border: 1px solid var(--ec-slate-300); border-radius: 11px; background: #fff; cursor: text; transition: border .15s, box-shadow .15s; }
.email-tag-editor:focus-within { border-color: var(--ec-primary); box-shadow: 0 0 0 4px rgba(10,164,150,.11); }
.email-tag-editor.invalid { border-color: var(--ec-danger); box-shadow: 0 0 0 3px rgba(196,62,62,.09); }
.email-tag-editor.readonly { min-height: 42px; background: var(--ec-slate-50); cursor: default; }
.email-tag-chips { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.email-tag-chip { padding-right: 5px; }
.email-tag-chip button { width: 20px; height: 20px; min-height: 20px; padding: 0; border: 0; border-radius: 50%; color: var(--ec-primary-800); background: rgba(10,164,150,.12); line-height: 1; box-shadow: none; }
.email-tag-chip button:hover { color: #fff; background: var(--ec-danger); }
.email-tag-draft { flex: 1 1 210px; width: auto; min-width: 160px; min-height: 31px; padding: 3px 4px; border: 0; background: transparent; box-shadow: none !important; }
.email-tag-error { display: block; min-height: 0; margin-top: 3px; color: var(--ec-danger) !important; }
.email-tag-error:empty { display: none; }
.field-textarea { grid-column: 1 / -1; }
.field small, label small { color: var(--ec-slate-500); font-size: 11px; }
.field-checkbox { justify-content: flex-end; }
.switch-row { min-height: 44px; display: flex; align-items: center; gap: 10px; }
.switch { position: relative; width: 46px; height: 26px; flex: 0 0 auto; }
.switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.switch-track { position: absolute; inset: 0; border-radius: 99px; background: var(--ec-slate-300); cursor: pointer; transition: .18s; }
.switch-track::after { content: ""; position: absolute; width: 20px; height: 20px; left: 3px; top: 3px; border-radius: 50%; background: #fff; box-shadow: 0 2px 5px rgba(0,0,0,.2); transition: .18s; }
.switch input:checked + .switch-track { background: var(--ec-primary); }
.switch input:checked + .switch-track::after { transform: translateX(20px); }
.form-section { margin: 0 0 22px; padding-bottom: 20px; border-bottom: 1px solid var(--ec-slate-100); }
.form-section:last-child { border-bottom: 0; padding-bottom: 0; }
.form-section-title { margin: 0 0 14px; }
.form-section-title h3 { margin: 0; font-size: 15px; color: var(--ec-slate-800); }
.form-section-title p { margin: 4px 0 0; color: var(--ec-slate-500); font-size: 12px; }
.file-picker { position: relative; display: flex; align-items: center; gap: 10px; min-height: 46px; padding: 7px; border: 1px dashed var(--ec-slate-300); border-radius: 12px; background: #fbfdfd; }
.file-picker input[type=file] { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.file-picker-label { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 8px; color: var(--ec-primary-800); background: var(--ec-primary-100); font-weight: 700; font-size: 12px; }
.file-picker-name { min-width: 0; color: var(--ec-slate-500); font-size: 12px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.search-box { position: relative; min-width: min(320px, 100%); }
.search-box .ec-icon { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); width: 18px; color: var(--ec-slate-500); }
.search-box input { padding-left: 40px; }

/* Table */
.table-wrap { width: 100%; overflow: auto; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: #fff; }
table { width: 100%; min-width: 760px; border-collapse: collapse; }
th, td { padding: 12px 13px; border-bottom: 1px solid var(--ec-slate-100); text-align: left; vertical-align: top; font-size: 13px; }
th { position: sticky; top: 0; z-index: 2; color: var(--ec-slate-600); background: #f4f8f8; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
tbody tr:hover { background: #fbfefe; }
tbody tr:last-child td { border-bottom: 0; }
.table-link { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; }
.table-link .ec-icon { width: 15px; height: 15px; }
.table-secondary { display: block; max-width: 420px; margin-top: 4px; color: var(--ec-slate-500); font-size: 11px; line-height: 1.4; }
.ticket-fiscal-table table { min-width: 1450px; }
.ticket-fiscal-table td { min-width: 120px; }
.ticket-fiscal-table .ticket-fiscal-identity { min-width: 210px; max-width: 250px; }
.ticket-fiscal-key { display: block; overflow-wrap: anywhere; font-family: monospace; font-size: 12px; line-height: 1.5; }
.ticket-fiscal-table .ticket-fiscal-parties { min-width: 230px; max-width: 300px; overflow-wrap: anywhere; }
.ticket-fiscal-table .ticket-fiscal-product { min-width: 170px; max-width: 250px; overflow-wrap: anywhere; }
.ticket-fiscal-table .ticket-fiscal-operation { min-width: 160px; }
.ticket-fiscal-field { display: grid; gap: 4px; margin-top: 8px; }
.ticket-fiscal-field > span { color: var(--ec-slate-500); font-size: 11px; }
.ticket-fiscal-field input, .ticket-fiscal-field select { min-width: 0; padding: 8px; font-size: 12px; }
.actions-row.compact { flex-wrap: nowrap; gap: 8px; }
.actions-row.compact form { margin: 0; }
.layout-field-search { width: min(560px, 100%); margin-bottom: 18px; }
.layout-mapping-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 18px; }
.layout-mapping-field { padding: 12px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: var(--ec-slate-50); }
.layout-mapping-field:focus-within { border-color: var(--ec-primary); background: #fff; box-shadow: 0 0 0 3px rgba(23, 128, 119, .08); }
.empty-state.compact { min-height: 120px; padding: 20px; }
.table-summary { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 12px; color: var(--ec-slate-500); font-size: 12px; }

/* Auth */
.login-page { min-height: 100vh; display: grid; grid-template-columns: minmax(360px, .9fr) minmax(500px, 1.25fr); background: #fff; }
.login-visual { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: space-between; padding: clamp(30px, 5vw, 70px); color: #fff; background: linear-gradient(145deg, #066e68, #0aa496 58%, #55bdb4); }
.login-visual::before, .login-visual::after { content: ""; position: absolute; border-radius: 50%; border: 70px solid rgba(255,255,255,.1); }
.login-visual::before { width: 420px; height: 420px; top: -180px; right: -180px; }
.login-visual::after { width: 310px; height: 310px; bottom: -180px; left: -180px; }
.login-visual > * { position: relative; z-index: 1; }
.login-visual img { width: min(290px, 75%); filter: brightness(0) invert(1); }
.login-visual h2 { max-width: 580px; margin: auto 0 12px; font-size: clamp(30px, 4.2vw, 52px); line-height: 1.04; letter-spacing: -.045em; }
.login-visual p { max-width: 570px; color: rgba(255,255,255,.85); }
.login-benefits { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 26px; }
.login-benefits span { display: inline-flex; align-items: center; gap: 7px; padding: 8px 10px; border-radius: 999px; background: rgba(255,255,255,.13); font-size: 12px; font-weight: 700; }
.login-form-area { display: grid; place-items: center; padding: 34px; background: radial-gradient(circle at 80% 10%, var(--ec-primary-50), transparent 34rem); }
.login-card { width: min(440px, 100%); }
.login-card.wide { width: min(690px, 100%); }
.login-mobile-logo { display: none; width: 220px; margin: 0 auto 28px; }
.login-card h1 { margin: 0 0 7px; color: var(--ec-slate-950); font-size: 29px; letter-spacing: -.035em; }
.login-card > p { margin: 0 0 26px; color: var(--ec-slate-500); }
.login-form { display: grid; gap: 17px; }
.login-footer { margin-top: 22px; color: var(--ec-slate-500); font-size: 12px; text-align: center; }

/* Stepper and process */
.stepper { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 22px; }
.step { position: relative; display: flex; align-items: center; gap: 10px; color: var(--ec-slate-500); font-size: 12px; font-weight: 700; }
.step:not(:last-child)::after { content: ""; flex: 1; height: 2px; background: var(--ec-slate-200); }
.step-number { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; color: var(--ec-slate-600); background: var(--ec-slate-100); }
.step.active { color: var(--ec-primary-800); }
.step.active .step-number { color: #fff; background: var(--ec-primary); }
.requirement-list { display: grid; gap: 9px; }
.requirement { display: flex; align-items: flex-start; gap: 9px; color: var(--ec-slate-600); font-size: 13px; }
.requirement .ec-icon { width: 17px; height: 17px; margin-top: 1px; color: var(--ec-primary); }

/* Gmail */
.gmail-status-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.status-card { padding: 15px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: #fff; }
.status-card-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.status-card-top .ec-icon { color: var(--ec-primary); }
.status-card strong { display: block; color: var(--ec-slate-800); font-size: 13px; }
.status-card span { display: block; margin-top: 3px; color: var(--ec-slate-500); font-size: 11px; overflow-wrap: anywhere; }
.setup-steps { display: grid; gap: 13px; }
.setup-step { display: grid; grid-template-columns: 40px 1fr; gap: 13px; padding: 15px; border: 1px solid var(--ec-slate-200); border-radius: 14px; background: #fff; }
.setup-step-number { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 12px; color: #fff; background: linear-gradient(135deg, var(--ec-primary), var(--ec-primary-700)); font-weight: 800; }
.setup-step h3 { margin: 0 0 4px; font-size: 14px; }
.setup-step p { margin: 0 0 10px; color: var(--ec-slate-500); font-size: 12px; }
.config-checks { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }
.checkbox-card { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid var(--ec-slate-200); border-radius: 11px; cursor: pointer; }
.checkbox-card input { width: 18px; min-height: 18px; margin-top: 1px; }
.checkbox-card strong { display: block; font-size: 12px; }
.checkbox-card span { color: var(--ec-slate-500); font-size: 11px; }
.scope-list { display: grid; gap: 8px; }
.scope-item { padding: 10px 12px; border-radius: 10px; color: var(--ec-slate-600); background: var(--ec-slate-100); font: 11px/1.4 ui-monospace, SFMono-Regular, Consolas, monospace; overflow-wrap: anywhere; }

/* Compact filter pattern */
.filter-toolbar {
  position: relative;
  display: block;
  margin-bottom: 16px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 10px 28px rgba(34,49,54,.08);
  overflow: visible;
}
.filter-toolbar-form { display: block; min-width: 0; }
.filter-toolbar-main { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: center; gap: 8px; }
.filter-toolbar-main.no-primary-search { grid-template-columns: minmax(220px, 1fr) auto; }
.filter-primary-search { min-width: 0; }
.filter-primary-search input { min-height: 42px; }
.filter-context-summary { min-width: 0; display: grid; gap: 2px; }
.filter-context-summary strong { color: var(--ec-slate-800); font-size: 13px; }
.filter-context-summary span { overflow: hidden; color: var(--ec-slate-500); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.filter-toolbar-button { position: relative; min-height: 42px; white-space: nowrap; }
.filter-toolbar-secondary { min-height: 42px; white-space: nowrap; }
.filter-count[hidden] { display: none !important; }
.filter-count { min-width: 21px; justify-content: center; padding-inline: 6px; }
.filter-active-bar { min-width: 0; display: flex; align-items: center; gap: 8px; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ec-slate-100); }
.filter-active-bar[hidden] { display: none !important; }
.filter-chips { min-width: 0; display: flex; flex: 1 1 auto; gap: 6px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
.filter-chip { min-height: 28px; flex: 0 0 auto; gap: 5px; padding: 4px 8px; border: 0; border-radius: 999px; color: var(--ec-primary-800); background: var(--ec-primary-50); box-shadow: none; font-size: 10px; }
.filter-chip:hover { transform: none; color: var(--ec-danger); background: var(--ec-danger-100); box-shadow: none; }
.filter-chip strong { font-weight: 850; }
.filter-chip span:last-child { font-size: 15px; line-height: 1; }
.filter-clear-inline { min-height: 28px; flex: 0 0 auto; padding: 4px 7px; border: 0; color: var(--ec-slate-500); background: transparent; box-shadow: none; font-size: 11px; }
.filter-clear-inline:hover { transform: none; color: var(--ec-danger); background: transparent; box-shadow: none; }
.filter-panel {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  right: 0;
  z-index: 36;
  max-height: min(620px, calc(100vh - var(--topbar-height) - 100px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 17px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 15px;
  background: #fff;
  box-shadow: var(--ec-shadow-lg);
}
.filter-panel[hidden] { display: none !important; }
.filter-popover-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.filter-popover-header h2 { margin-top: 3px; }
.filter-panel-grid { min-height: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; align-items: end; overflow-y: auto; padding: 2px; }
.filter-panel-grid.cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.filter-mode-row { display: grid; grid-template-columns: minmax(104px, .42fr) minmax(0, 1fr); gap: 7px; }
.filter-mode-row > select { min-width: 0; width: 100%; }
.filter-mode-select { color: var(--ec-slate-700); background-color: var(--ec-slate-100); font-weight: 750; }
.filter-panel-description { margin: -5px 0 14px !important; color: var(--ec-slate-500); font-size: 12px; }
.filter-panel-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--ec-slate-100); }
.filter-inline-form { display: flex; align-items: center; gap: 8px; min-width: 0; }
.filter-inline-form .search-box { min-width: 0; flex: 1 1 320px; }
.filter-inline-form .button, .filter-inline-form button { flex: 0 0 auto; }
.live-filter-meta { flex: 0 0 auto; color: var(--ec-slate-500); font-size: 11px; white-space: nowrap; }
.filter-view-tabs-viewport { min-width: 0; max-width: 100%; overflow: hidden; contain: paint; }
.filter-view-tabs { width: 100%; min-width: 0; display: flex; gap: 7px; margin-top: 8px; overflow-x: auto; overscroll-behavior-x: contain; scrollbar-width: thin; padding-top: 8px; border-top: 1px solid var(--ec-slate-100); }
.filter-view-tabs .button { min-height: 34px; flex: 0 0 auto; padding: 7px 10px; font-size: 11px; }
.mail-triage-grid { min-width: 0; grid-template-columns: repeat(auto-fill, minmax(min(330px, 100%), 1fr)); }
.mail-thread-card { min-width: 0; overflow-wrap: anywhere; }
.mail-thread-card h3, .mail-thread-card .mail-sender { overflow-wrap: anywhere; }

/* Kanban */
.kanban-toolbar {
  display: block;
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.97);
  box-shadow: 0 10px 28px rgba(34,49,54,.08);
  overflow: visible;
}
.kanban-toolbar-main { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto auto auto; align-items: center; gap: 8px; }
.kanban-search-box { min-width: 0; }
.kanban-search-box input { min-height: 42px; }
.kanban-visible-count { justify-self: end; }
.kanban-toolbar-button { min-height: 42px; white-space: nowrap; }
.kanban-refresh-form { margin: 0; }
.kanban-actions-menu { position: relative; }
.kanban-actions-menu > summary { list-style: none; }
.kanban-actions-menu > summary::-webkit-details-marker { display: none; }
.kanban-actions-menu > summary .ec-icon { transition: transform .18s ease; }
.kanban-actions-menu[open] > summary .ec-icon { transform: rotate(90deg); }
.kanban-actions-popover {
  position: absolute;
  top: calc(100% + 9px);
  right: 0;
  z-index: 38;
  width: 280px;
  padding: 7px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 13px;
  background: #fff;
  box-shadow: var(--ec-shadow-md);
}
.kanban-menu-item {
  width: 100%;
  min-height: 42px;
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  justify-content: initial;
  gap: 9px;
  padding: 9px 10px;
  border: 0;
  border-radius: 9px;
  color: var(--ec-slate-700);
  background: transparent;
  box-shadow: none;
  font-size: 13px;
  text-align: left;
}
.kanban-menu-item:hover { transform: none; color: var(--ec-primary-800); background: var(--ec-primary-50); box-shadow: none; }
.kanban-menu-item .ec-icon { width: 17px; height: 17px; color: var(--ec-primary-700); }
.kanban-active-filters { display: flex; align-items: center; gap: 8px; min-width: 0; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--ec-slate-100); }
.kanban-active-filters[hidden] { display: none !important; }
.kanban-filter-chips { min-width: 0; display: flex; flex: 1 1 auto; gap: 6px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 2px; }
.kanban-filter-chip { min-height: 28px; flex: 0 0 auto; gap: 5px; padding: 4px 8px; border: 0; border-radius: 999px; color: var(--ec-primary-800); background: var(--ec-primary-50); box-shadow: none; font-size: 10px; }
.kanban-filter-chip:hover { transform: none; color: var(--ec-danger); background: var(--ec-danger-100); box-shadow: none; }
.kanban-filter-chip strong { font-weight: 850; }
.kanban-filter-chip span:last-child { font-size: 15px; line-height: 1; }
.kanban-clear-inline { min-height: 28px; flex: 0 0 auto; padding: 4px 7px; border: 0; color: var(--ec-slate-500); background: transparent; box-shadow: none; font-size: 11px; }
.kanban-clear-inline:hover { transform: none; color: var(--ec-danger); background: transparent; box-shadow: none; }
.kanban-filter-count[hidden] { display: none !important; }
.kanban-filter-count { min-width: 21px; justify-content: center; padding-inline: 6px; }
.kanban-filter-panel,
.kanban-help-popover {
  position: absolute;
  top: calc(100% + 8px);
  z-index: 36;
  padding: 17px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 15px;
  background: #fff;
  box-shadow: var(--ec-shadow-lg);
}
.kanban-filter-panel { left: 0; right: 0; max-height: min(620px, calc(100vh - var(--topbar-height) - 100px)); overflow-y: auto; }
.kanban-help-popover { right: 0; width: min(560px, 100%); }
.kanban-filter-panel[hidden],
.kanban-help-popover[hidden] { display: none !important; }
.kanban-popover-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.kanban-popover-header h2 { margin-top: 3px; }
.kanban-filter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; align-items: end; }
.kanban-filter-grid .filter-mode-row { grid-template-columns: minmax(104px, .42fr) minmax(0, 1fr); }
.kanban-filter-panel-actions { display: flex; align-items: center; justify-content: flex-end; gap: 9px; margin-top: 15px; padding-top: 13px; border-top: 1px solid var(--ec-slate-100); }
.kanban-help-popover p { margin: 0; color: var(--ec-slate-600); font-size: 13px; }
.mailbox-search-form { display: flex; align-items: center; gap: 10px; min-width: 0; }
.mailbox-search-form .search-box { flex: 1 1 360px; }
.mailbox-search-form .button { flex: 0 0 auto; }
.kanban {
  height: max(480px, calc(100dvh - var(--topbar-height) - 116px));
  min-height: 0;
  display: grid;
  grid-template-columns: repeat(5, minmax(295px, 1fr));
  align-items: stretch;
  gap: 15px;
  overflow-x: auto;
  overflow-y: hidden;
  padding: 2px 2px 12px;
  scroll-snap-type: x proximity;
}
.kanban-column { min-height: 0; height: 100%; display: flex; flex-direction: column; overflow: hidden; border: 1px solid var(--ec-slate-200); border-radius: 17px; background: #eef4f4; scroll-snap-align: start; }
.kanban-column[data-status="EMAIL_ENVIADO"] { --column-color: #0aa496; --column-bg: #e7f7f5; }
.kanban-column[data-status="AGUARDANDO_ANALISE"] { --column-color: #d18a11; --column-bg: #fff5dd; }
.kanban-column[data-status="EM_ANDAMENTO"] { --column-color: #7553b7; --column-bg: #f0ebfb; }
.kanban-column[data-status="EMAIL_RESPONDIDO"] { --column-color: #4a82bd; --column-bg: #eaf3fd; }
.kanban-column[data-status="CONCLUIDO"] { --column-color: #2c8b5d; --column-bg: #e7f7ef; }
.kanban-column > header { position: sticky; top: 0; z-index: 5; flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 13px 14px; border-bottom: 1px solid var(--ec-slate-200); border-radius: 17px 17px 0 0; background: var(--column-bg); }
.column-title-wrap { display: flex; align-items: center; gap: 9px; }
.column-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--column-color); box-shadow: 0 0 0 4px color-mix(in srgb, var(--column-color) 16%, transparent); }
.kanban-column h2 { margin: 0; font-size: 14px; }
.column-count { min-width: 28px; height: 26px; display: grid; place-items: center; border-radius: 999px; color: var(--column-color); background: #fff; font-size: 11px; font-weight: 800; }
.drop-zone { flex: 1 1 auto; min-height: 0; display: flex; flex-direction: column; gap: 11px; overflow-y: auto; overscroll-behavior: contain; padding: 11px; scrollbar-width: thin; transition: background .15s, outline .15s; }
.drop-zone.drag-over { outline: 2px dashed var(--column-color); outline-offset: -7px; background: var(--column-bg); }
.ticket-card { position: relative; padding: 13px; border: 1px solid var(--ec-slate-200); border-left: 4px solid var(--column-color, var(--ec-primary)); border-radius: 13px; background: #fff; box-shadow: 0 4px 13px rgba(31,52,55,.055); cursor: grab; transition: transform .14s, box-shadow .14s, opacity .14s; }
.ticket-card:hover { transform: translateY(-2px); box-shadow: 0 10px 22px rgba(31,52,55,.09); }
.ticket-card.dragging { opacity: .5; transform: scale(.98); }
.ticket-card.hidden-by-filter { display: none; }
.ticket-card-header { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ticket-code { color: var(--ec-primary-800); font-size: 11px; font-weight: 850; letter-spacing: .03em; }
.priority-badge { padding: 3px 7px; border-radius: 999px; color: var(--ec-slate-600); background: var(--ec-slate-100); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.priority-alta, .priority-critica { color: var(--ec-danger); background: var(--ec-danger-100); }
.ticket-card h3 { margin: 9px 0 3px; color: var(--ec-slate-900); font-size: 14px; line-height: 1.25; }
.ticket-card p { margin: 0 0 9px; color: var(--ec-slate-500); font-size: 12px; }
.ticket-chip-row { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0; }
.ticket-chip { display: inline-flex; align-items: center; gap: 4px; padding: 4px 7px; border-radius: 7px; color: var(--ec-slate-600); background: #f4f7f7; font-size: 10px; font-weight: 700; }
.ticket-chip.overdue { color: var(--ec-danger); background: var(--ec-danger-100); }
.ticket-card-footer { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 6px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--ec-slate-100); }
.ticket-card-footer form { display: flex; min-width: 0; margin: 0; }
.ticket-card-footer .button { width: 100%; min-width: 0; padding-inline: 5px; gap: 4px; white-space: nowrap; }
.ticket-card-footer .button .ec-icon { width: 14px; height: 14px; }
.ticket-value { color: var(--ec-slate-600); font-size: 11px; font-weight: 700; }
.card-actions { display: flex; gap: 5px; }
.card-action { width: 29px; height: 29px; display: grid; place-items: center; padding: 0; border-radius: 8px; }
.card-action .ec-icon { width: 14px; height: 14px; }
.kanban-empty { display: grid; place-items: center; min-height: 110px; color: var(--ec-slate-500); font-size: 12px; text-align: center; }
.kanban-empty[hidden] { display: none !important; }
#retryKanbanSummary[hidden] { display: none !important; }
.kanban-loading, .kanban-error { margin: 8px 2px; padding: 18px 12px; border-radius: 10px; color: var(--ec-slate-500); background: #fff; font-size: 12px; text-align: center; }
.kanban-loading { min-height: 90px; background: linear-gradient(90deg, #fff 20%, #f3f7f7 50%, #fff 80%); background-size: 200% 100%; animation: kanban-skeleton 1.4s ease-in-out infinite; }
.kanban-loading[hidden], .kanban-error[hidden], .kanban-load-more[hidden] { display: none !important; }
.kanban-load-more { flex: 0 0 auto; width: 100%; }
.kanban-card-saving { opacity: .6; pointer-events: none; }
@keyframes kanban-skeleton { to { background-position: -200% 0; } }

@media (min-width: 961px) {
  body.kanban-focus-mode .sidebar { transform: translateX(-105%); box-shadow: var(--ec-shadow-lg); }
  body.kanban-focus-mode.sidebar-open .sidebar { transform: translateX(0); }
  body.kanban-focus-mode.sidebar-open .sidebar-backdrop { display: block; }
  body.kanban-focus-mode .main-area { margin-left: 0; }
  body.kanban-focus-mode .menu-button { display: inline-flex; }
}

/* Ticket detail */
.ticket-detail-view > .panel { margin-bottom: 10px; }
.ticket-detail-view .ticket-hero { flex-wrap: wrap; padding: 18px 20px; gap: 14px; }
.ticket-detail-view .ticket-hero > div:first-child { flex: 1 1 460px; min-width: 0; }
.ticket-detail-view .ticket-hero > .actions-row { flex: 1 1 100%; justify-content: flex-start; }
.ticket-detail-view .ticket-hero .button { min-height: 34px; padding: 8px 12px; font-size: 12px; }
.ticket-detail-view .ticket-subject { margin: 6px 0 10px; color: var(--ec-slate-600); overflow-wrap: anywhere; }
.ticket-quick-context { display: flex; flex-wrap: wrap; gap: 8px 24px; margin-bottom: 10px; }
.ticket-quick-context > span { min-width: 0; }
.ticket-quick-context small, .ticket-quick-context strong { display: block; }
.ticket-quick-context small { color: var(--ec-slate-500); font-size: 10px; }
.ticket-quick-context strong { font-size: 12px; overflow-wrap: anywhere; }
.ticket-detail-view .ticket-section-summary { padding: 13px 18px; gap: 12px; }
.ticket-detail-view .ticket-section-summary .eyebrow { display: none; }
.ticket-detail-view .ticket-section-summary strong { font-size: 14px; margin-top: 0; }
.ticket-detail-view .ticket-collapsible { scroll-margin-top: 100px; }
.ticket-detail-view .ticket-section-body { padding: 18px; }
.ticket-action-sections > .panel { margin-bottom: 8px; }
.ticket-action-sections > .panel:last-child { margin-bottom: 0; }
.ticket-action-sections > details.alert { display: block; padding: 0; }
.ticket-detail-view .ticket-email { padding: 0; overflow: hidden; }
.ticket-email-summary { display: grid; gap: 6px; padding: 12px 14px; cursor: pointer; list-style: none; }
.ticket-email-summary::-webkit-details-marker { display: none; }
.ticket-email-summary .mail-history-head { align-items: center; flex-wrap: wrap; }
.ticket-email-summary .mail-history-head > span { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; min-width: 0; }
.ticket-email-summary .mail-history-subject { display: block; margin: 0; overflow-wrap: anywhere; font-size: 13px; }
.ticket-email[open] > summary .ticket-section-chevron { transform: rotate(90deg); }
.ticket-email-body { padding: 14px; border-top: 1px solid var(--ec-slate-200); }
.ticket-email-summary:focus-visible, .ticket-detail-view .ticket-section-summary:focus-visible { outline: 2px solid var(--ec-primary); outline-offset: -3px; }
@media (max-width: 700px) {
  .ticket-detail-view .ticket-hero { padding: 16px; }
  .ticket-detail-view .ticket-hero > .actions-row { justify-content: flex-start; margin-top: 10px; }
  .ticket-detail-view .ticket-section-summary { padding: 12px 14px; }
  .ticket-detail-view .ticket-section-summary-end .mini-badge { display: inline-flex; font-size: 10px; }
  .ticket-detail-view .ticket-section-body { padding: 12px; }
  .ticket-detail-view .ticket-section-summary-end { gap: 6px; }
  .ticket-email-summary .email-chip { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
}
.ticket-hero { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.ticket-stage-panel { border-left: 4px solid var(--ec-primary); }
.ticket-stage-panel > .panel-header > .ec-icon { flex: 0 0 auto; color: var(--ec-primary-700); }
.ticket-stage-form { align-items: end; }
.ticket-stage-form [hidden] { display: none !important; }
.ticket-stage-form textarea { min-height: 88px; }
.ticket-stage-actions { grid-column: 1 / -1; }
.ticket-title h2 { margin: 5px 0 3px; font-size: 24px; }
.ticket-title p { margin: 0; color: var(--ec-slate-500); }
.ticket-section-controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-block: 14px; }
.ticket-section-controls > div { display: flex; align-items: center; gap: 10px; }
.ticket-section-controls > div > .ec-icon { color: var(--ec-primary-700); }
.ticket-section-controls strong, .ticket-section-controls small { display: block; }
.ticket-section-controls small { margin-top: 2px; color: var(--ec-slate-500); font-size: 11px; }
.ticket-collapsible { padding: 0; overflow: hidden; }
.ticket-section-summary { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 18px 22px; cursor: pointer; list-style: none; }
.ticket-section-summary::-webkit-details-marker { display: none; }
.ticket-section-summary > span:first-child { min-width: 0; }
.ticket-section-summary strong, .ticket-section-summary small { display: block; }
.ticket-section-summary strong { margin-top: 2px; color: var(--ec-slate-950); font-size: 17px; }
.ticket-section-summary small { margin-top: 3px; color: var(--ec-slate-500); font-size: 11px; font-weight: 500; }
.ticket-section-summary-end { display: flex; align-items: center; flex: 0 0 auto; gap: 10px; }
.ticket-section-chevron { width: 18px; height: 18px; color: var(--ec-slate-500); transition: transform .18s ease; }
.ticket-collapsible[open] > .ticket-section-summary { border-bottom: 1px solid var(--ec-slate-200); background: linear-gradient(145deg, #fff, #f8fbfb); }
.ticket-collapsible[open] > .ticket-section-summary .ticket-section-chevron { transform: rotate(90deg); }
.ticket-section-body { padding: 22px; }
.ticket-section-body > .panel-header:last-child { margin-bottom: 0; }
.ticket-section-intro { margin: 0; }
.ticket-section-intro + .panel-subsection { margin-top: 16px; }
.detail-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; }
.detail-item { padding: 13px; border: 1px solid var(--ec-slate-100); border-radius: 12px; background: #fbfdfd; }
.detail-item strong { display: block; margin-bottom: 5px; color: var(--ec-slate-500); font-size: 10px; letter-spacing: .07em; text-transform: uppercase; }
.detail-item span { color: var(--ec-slate-800); font-size: 13px; font-weight: 650; overflow-wrap: anywhere; }
.tabs { display: flex; gap: 5px; margin-bottom: 16px; padding: 5px; border-radius: 12px; background: var(--ec-slate-100); overflow-x: auto; }
.tab-button { flex: 0 0 auto; min-height: 36px; padding: 8px 12px; border: 0; border-radius: 8px; color: var(--ec-slate-600); background: transparent; box-shadow: none; font-size: 12px; }
.tab-button.active { color: var(--ec-primary-800); background: #fff; box-shadow: var(--ec-shadow-sm); }
.tab-panel { display: none; }
.tab-panel.active { display: block; }
.timeline { position: relative; display: grid; gap: 12px; }
.timeline::before { content: ""; position: absolute; left: 13px; top: 10px; bottom: 10px; width: 2px; background: var(--ec-slate-200); }
.timeline-item { position: relative; display: grid; grid-template-columns: 28px 1fr; gap: 12px; }
.timeline-dot { z-index: 1; width: 28px; height: 28px; display: grid; place-items: center; border: 3px solid #fff; border-radius: 50%; color: #fff; background: var(--ec-primary); box-shadow: 0 0 0 1px var(--ec-primary); }
.timeline-dot .ec-icon { width: 13px; height: 13px; }
.timeline-content { padding: 12px 13px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: #fff; }
.timeline-content header { display: flex; justify-content: space-between; gap: 10px; }
.timeline-content strong { font-size: 12px; }
.timeline-content time { color: var(--ec-slate-500); font-size: 11px; }
.timeline-content p { margin: 6px 0 0; color: var(--ec-slate-600); font-size: 12px; }
.operational-timeline .timeline-content { padding: 13px 14px; }
.operational-timeline .timeline-content > small { display: block; margin-top: 7px; color: var(--ec-slate-500); font-size: 10px; }
.timeline-dot-importacao { color: var(--ec-primary-800); background: var(--ec-primary-100); box-shadow: 0 0 0 1px var(--ec-primary); }
.timeline-dot-envio { background: var(--ec-info); box-shadow: 0 0 0 1px var(--ec-info); }
.timeline-dot-resposta, .timeline-dot-resultado, .timeline-dot-conclusao { background: var(--ec-success); box-shadow: 0 0 0 1px var(--ec-success); }
.timeline-dot-etapa { background: var(--ec-warning); box-shadow: 0 0 0 1px var(--ec-warning); }

/* Modal, busy, toast */
.busy-overlay, .modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(235,242,243,.84); backdrop-filter: blur(6px); }
.hidden { display: none !important; }
.busy-card { width: min(400px, 92vw); padding: 30px; border: 1px solid var(--ec-slate-200); border-radius: 22px; background: #fff; box-shadow: var(--ec-shadow-lg); text-align: center; }
.busy-logo img { width: 175px; margin-bottom: 18px; }
.spinner { width: 46px; height: 46px; margin: 0 auto 16px; border: 5px solid var(--ec-primary-100); border-top-color: var(--ec-primary); border-radius: 50%; animation: spin .9s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.busy-card h2 { margin: 0 0 6px; }
.busy-card p { margin: 0; color: var(--ec-slate-500); }
.busy-dots { display: flex; justify-content: center; gap: 5px; margin-top: 16px; }
.busy-dots span { width: 7px; height: 7px; border-radius: 50%; background: var(--ec-primary); animation: pulse 1.1s infinite alternate; }
.busy-dots span:nth-child(2) { animation-delay: .2s; }
.busy-dots span:nth-child(3) { animation-delay: .4s; }
@keyframes pulse { from { opacity: .25; transform: translateY(2px); } to { opacity: 1; transform: translateY(-2px); } }
.modal-card { width: min(540px, 94vw); max-height: 88vh; overflow: auto; border: 1px solid var(--ec-slate-200); border-radius: 19px; background: #fff; box-shadow: var(--ec-shadow-lg); }
.modal-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px 18px; border-bottom: 1px solid var(--ec-slate-100); }
.modal-header h2 { margin: 0; font-size: 17px; }
.modal-body { padding: 18px; }
.modal-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 8px; padding: 14px 18px; border-top: 1px solid var(--ec-slate-100); }
.toast-region { position: fixed; right: 20px; bottom: 20px; z-index: 120; display: grid; gap: 8px; }
.toast { min-width: 280px; max-width: 420px; display: grid; grid-template-columns: auto 1fr; gap: 9px; padding: 12px 14px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: #fff; box-shadow: var(--ec-shadow-md); animation: toast-in .2s ease; }
.toast.success { border-left: 4px solid var(--ec-success); }
.toast.danger { border-left: 4px solid var(--ec-danger); }
@keyframes toast-in { from { opacity: 0; transform: translateY(10px); } }

.refresh-notice {
  position: fixed;
  top: calc(var(--topbar-height) + 14px);
  right: 20px;
  z-index: 90;
  width: min(430px, calc(100vw - 40px));
  overflow: hidden;
  border: 1px solid #b9ded9;
  border-radius: 16px;
  color: var(--ec-slate-700);
  background: rgba(255,255,255,.98);
  box-shadow: var(--ec-shadow-lg);
  animation: refresh-notice-in .22s ease;
  transition: width .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.refresh-notice-header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 13px 14px; }
.refresh-notice-icon { width: 36px; height: 36px; display: grid; place-items: center; flex: 0 0 auto; border-radius: 11px; color: var(--ec-primary-700); background: var(--ec-primary-100); }
.refresh-notice-icon .ec-icon { width: 19px; height: 19px; }
.refresh-notice.running .refresh-notice-icon .ec-icon { animation: spin 1.25s linear infinite; }
.refresh-notice-copy { min-width: 0; display: grid; gap: 2px; }
.refresh-notice-copy strong { color: var(--ec-slate-900); font-size: 13px; line-height: 1.3; }
.refresh-notice-copy span { color: var(--ec-slate-500); font-size: 11px; line-height: 1.4; }
.refresh-notice-actions { display: flex; align-self: start; gap: 4px; }
.refresh-notice-button { width: 27px; height: 27px; display: grid; place-items: center; padding: 0; border: 0; border-radius: 8px; color: var(--ec-slate-500); background: var(--ec-slate-100); font-size: 17px; line-height: 1; cursor: pointer; }
.refresh-notice-button:hover { color: var(--ec-primary-800); background: var(--ec-primary-100); }
.refresh-notice-details { display: grid; gap: 8px; padding: 0 14px 13px 61px; color: var(--ec-slate-600); font-size: 11px; }
.refresh-notice-progress { height: 4px; overflow: hidden; border-radius: 999px; background: var(--ec-primary-100); }
.refresh-notice-progress span { display: block; width: 38%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ec-primary), #61cfc5); animation: refresh-progress 1.55s ease-in-out infinite; }
.refresh-notice.success { border-color: #acdabc; }
.refresh-notice.success .refresh-notice-icon { color: var(--ec-success); background: var(--ec-success-100); }
.refresh-notice.success .refresh-notice-progress span { width: 100%; background: var(--ec-success); animation: none; }
.refresh-notice.warning { border-color: #ead39a; }
.refresh-notice.warning .refresh-notice-icon { color: #956813; background: var(--ec-warning-100); }
.refresh-notice.warning .refresh-notice-progress span { width: 100%; background: var(--ec-warning); animation: none; }
.refresh-notice.minimized { width: min(285px, calc(100vw - 40px)); }
.refresh-notice.minimized .refresh-notice-header { padding: 9px 10px; }
.refresh-notice.minimized .refresh-notice-icon { width: 30px; height: 30px; border-radius: 9px; }
.refresh-notice.minimized .refresh-notice-copy span,
.refresh-notice.minimized .refresh-notice-details,
.refresh-notice.minimized [data-refresh-close] { display: none !important; }
@keyframes refresh-notice-in { from { opacity: 0; transform: translateY(-8px); } }
@keyframes refresh-progress { from { transform: translateX(-105%); } to { transform: translateX(275%); } }

/* Manual */
.manual-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 13px; }
.manual-card { padding: 16px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: #fff; }
.manual-card .ec-icon { color: var(--ec-primary); }
.manual-card h3 { margin: 10px 0 4px; font-size: 14px; }
.manual-card p { margin: 0; color: var(--ec-slate-500); font-size: 12px; }

/* Responsive */
@media (max-width: 1420px) {
  .metrics { grid-template-columns: repeat(3, minmax(150px, 1fr)); }
  .detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gmail-status-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1120px) {
  .grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hero { grid-template-columns: 1fr; }
  .hero-side { display: none; }
  .kanban { grid-template-columns: repeat(5, 305px); }
  .kanban-filter-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .kanban-toolbar-action-label { display: none; }
  .kanban-toolbar-button { position: relative; width: 42px; padding: 0; }
  .kanban-filter-count { position: absolute; top: -6px; right: -6px; }
  .filter-panel-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .filter-toolbar-action-label { display: none; }
  .filter-toolbar-button { width: 42px; padding: 0; }
  .filter-count { position: absolute; top: -6px; right: -6px; }
  .detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .manual-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .email-preview-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 960px) {
  .sidebar { transform: translateX(-105%); box-shadow: var(--ec-shadow-lg); }
  body.sidebar-open .sidebar { transform: translateX(0); }
  body.sidebar-open .sidebar-backdrop { display: block; }
  .main-area { margin-left: 0; }
  .menu-button { display: inline-flex; }
  .content-wrap { padding: 20px 18px 36px; }
  .grid-2, .form-grid, .layout-mapping-grid { grid-template-columns: 1fr; }
  .span-2, .field-textarea { grid-column: auto; }
  .kanban-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .filter-panel-grid, .filter-panel-grid.cols-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .mailbox-search-form { grid-column: 1 / -1; }
  .global-refresh-status { display: none; }
}
@media (max-width: 720px) {
  :root { --topbar-height: 68px; }
  .topbar { padding: 10px 13px; }
  .page-heading h1 { font-size: 19px; }
  .page-heading p, .help-button, .user-meta, .global-refresh-button span { display: none; }
  .global-refresh-button { width: 42px; min-height: 42px; padding: 0; }
  .content-wrap { padding: 14px 11px 28px; }
  .panel { padding: 16px; border-radius: 14px; }
  .panel-header { display: block; }
  .panel-header .actions-row { margin-top: 12px; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .metric-card { min-height: 104px; }
  .hero { padding: 21px; border-radius: 17px; }
  .hero h2 { font-size: 27px; }
  .dashboard-refresh-panel { display: grid; }
  .dashboard-refresh-panel form, .dashboard-refresh-panel button { width: 100%; }
  .initial-refresh-card { grid-template-columns: 1fr; text-align: center; }
  .initial-refresh-visual { margin: 0 auto; }
  .quick-actions, .manual-grid, .config-checks, .gmail-status-grid, .email-recipient-overview, .email-preview-stats { grid-template-columns: 1fr; }
  .setup-item { grid-template-columns: auto 1fr; }
  .setup-item .button { grid-column: 1 / -1; }
  .form-grid { gap: 13px; }
  .actions-row > .button, .actions-row > button, .actions-row > form { width: 100%; }
  .inline-form { width: 100%; }
  .inline-form > * { flex: 1; }
  .kanban-filter-grid { grid-template-columns: 1fr; }
  .kanban-toolbar { padding: 8px; }
  .filter-toolbar-main.kanban-toolbar-main { grid-template-columns: minmax(0, 1fr) auto auto auto; gap: 7px; }
  .kanban-visible-count { display: none; }
  .kanban-search-box input { padding-right: 8px; font-size: 13px; }
  .kanban-filter-panel, .kanban-help-popover { left: 0; right: 0; width: auto; padding: 14px; }
  .kanban-actions-popover { width: min(280px, calc(100vw - 22px)); }
  .kanban-filter-panel-actions { align-items: stretch; }
  .kanban-filter-panel-actions .button { flex: 1 1 0; padding-inline: 9px; }
  .filter-toolbar { padding: 8px; }
  .filter-toolbar-main { grid-template-columns: minmax(0, 1fr) auto auto; gap: 7px; }
  .filter-toolbar-main.no-primary-search { grid-template-columns: minmax(0, 1fr) auto; }
  .filter-primary-search input { padding-right: 8px; font-size: 13px; }
  .filter-panel { padding: 14px; }
  .filter-panel-grid, .filter-panel-grid.cols-3 { grid-template-columns: 1fr; }
  .filter-panel-actions { align-items: stretch; }
  .filter-panel-actions .button { flex: 1 1 0; padding-inline: 9px; }
  .filter-view-tabs { flex-wrap: wrap; overflow-x: visible; }
  .filter-view-tabs .button { flex: 1 1 auto; }
  .filter-inline-form { flex-wrap: wrap; }
  .filter-inline-form .search-box { flex-basis: 100%; }
  .filter-inline-form .button, .filter-inline-form button { flex: 1 1 0; }
  .mailbox-search-form { align-items: stretch; flex-direction: column; }
  .mailbox-search-form .search-box { flex-basis: auto; width: 100%; }
  .mailbox-search-form .button { width: 100%; }
  .mailbox-filter-select select { width: 100%; max-width: none; }
  .kanban { grid-template-columns: repeat(5, 86vw); }
  .detail-grid { grid-template-columns: 1fr; }
  .ticket-hero { display: block; }
  .ticket-hero .actions-row { margin-top: 13px; }
  .ticket-section-controls { align-items: stretch; flex-direction: column; }
  .ticket-section-controls .button { width: 100%; }
  .ticket-section-summary { align-items: flex-start; padding: 16px; }
  .ticket-section-summary-end .mini-badge { display: none; }
  .ticket-section-body { padding: 16px; }
  .login-page { grid-template-columns: 1fr; }
  .login-visual { display: none; }
  .login-form-area { min-height: 100vh; padding: 24px; }
  .login-mobile-logo { display: block; }
  .stepper { grid-template-columns: repeat(4, auto); overflow-x: auto; }
  .step span:last-child { display: none; }
  .step:not(:last-child)::after { min-width: 30px; }
  .toast-region { left: 12px; right: 12px; bottom: 12px; }
  .toast { min-width: 0; max-width: none; }
  .refresh-notice { top: calc(var(--topbar-height) + 10px); left: 12px; right: 12px; width: auto; }
  .refresh-notice.minimized { left: auto; width: min(285px, calc(100vw - 24px)); }
  .bulk-selection-toolbar { position: static; align-items: stretch; flex-direction: column; }
  .bulk-selection-toolbar > button { width: 100%; }
}
@media (max-width: 430px) {
  .metrics { grid-template-columns: 1fr; }
  .user-menu > summary { padding-right: 2px; }
  .avatar { width: 37px; height: 37px; }
  .brand img { width: 190px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}

/* v7 refinements */
.sr-only { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; margin: -1px !important; overflow: hidden !important; clip: rect(0,0,0,0) !important; white-space: nowrap !important; border: 0 !important; }
.compact-field select { min-width: 190px; }
.kanban-help { margin-top: -4px; }
.kanban-column-header > div { display: flex; align-items: center; gap: 9px; }
.status-dot { width: 10px; height: 10px; flex: 0 0 auto; border-radius: 50%; background: var(--column-color); box-shadow: 0 0 0 4px color-mix(in srgb, var(--column-color) 16%, transparent); }
.ticket-card:focus-visible { outline: 3px solid color-mix(in srgb, var(--ec-primary) 35%, transparent); outline-offset: 2px; }
.ticket-card.is-overdue { border-color: #efc2c7; border-left-color: var(--ec-danger); }
.ticket-card-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.ticket-partner { min-height: 29px; }
.ticket-card-stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; margin: 10px 0; }
.ticket-card-stats > div { padding: 8px; border-radius: 9px; background: var(--ec-slate-100); }
.ticket-card-stats span { display: block; color: var(--ec-slate-500); font-size: 9px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.ticket-card-stats strong { display: block; margin-top: 2px; color: var(--ec-slate-800); font-size: 12px; }
.ticket-alert { display: flex; align-items: center; gap: 6px; margin: 8px 0; padding: 7px 8px; border-radius: 8px; color: var(--ec-danger); background: var(--ec-danger-100); font-size: 10px; font-weight: 800; }
.ticket-alert .ec-icon { width: 14px; height: 14px; }
.ticket-alert.guide-authorization { color: #0b5f58; background: #def5f1; }
.ticket-alert.guide-aguardando_data_pagamento,
.ticket-alert.guide-aguardando_data_valida { color: #77550b; background: var(--ec-warning-100); }
.ticket-alert.guide-pronta_para_emissao { color: #17633a; background: #dcf3e5; }
.ticket-meta-list { display: grid; gap: 4px; }
.ticket-meta-list span { display: flex; align-items: center; gap: 6px; color: var(--ec-slate-600); font-size: 10px; }
.ticket-meta-list .ec-icon { width: 13px; height: 13px; color: var(--ec-slate-500); }
.ticket-assignee-form { display: grid; gap: 5px; margin-top: 10px; padding-top: 9px; border-top: 1px solid var(--ec-slate-100); }
.ticket-assignee-form > label { color: var(--ec-slate-500); font-size: 10px; font-weight: 800; text-transform: uppercase; }
.ticket-assignee-form > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.ticket-assignee-form select { min-width: 0; min-height: 34px; padding: 6px 8px; font-size: 11px; }
.ticket-assignee-form .button { min-height: 34px; }
.ticket-title-row { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
.ticket-title-row h2 { margin: 4px 0; font-size: clamp(23px, 2.8vw, 32px); letter-spacing: -.03em; }
.eyebrow { color: var(--ec-primary-700); font-size: 10px; font-weight: 850; letter-spacing: .1em; text-transform: uppercase; }
.detail-card { padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: linear-gradient(145deg, #fff, #f8fbfb); }
.detail-card span { display: block; margin-bottom: 5px; color: var(--ec-slate-500); font-size: 9px; font-weight: 850; letter-spacing: .07em; text-transform: uppercase; }
.detail-card strong { display: block; color: var(--ec-slate-800); font-size: 13px; overflow-wrap: anywhere; }
.ticket-content-grid { align-items: start; }
.description-list { display: grid; gap: 0; margin: 0; }
.description-list > div { display: grid; grid-template-columns: minmax(145px, .8fr) minmax(0, 1.2fr); gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--ec-slate-100); }
.description-list dt { color: var(--ec-slate-500); font-size: 11px; font-weight: 750; }
.description-list dd { margin: 0; color: var(--ec-slate-800); font-size: 12px; font-weight: 650; overflow-wrap: anywhere; }
.note-box { margin-top: 14px; padding: 13px; border-left: 4px solid var(--ec-primary); border-radius: 0 11px 11px 0; background: var(--ec-primary-50); }
.note-box strong { color: var(--ec-primary-800); font-size: 12px; }
.note-box p { margin: 5px 0 0; color: var(--ec-slate-600); font-size: 12px; }
.timeline-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.timeline-content blockquote { margin: 8px 0 0; padding: 8px 10px; border-left: 3px solid var(--ec-primary-100); color: var(--ec-slate-600); background: var(--ec-slate-100); font-size: 11px; }
.inline-status { color: var(--ec-primary-800); font-weight: 800; }
.manual-hero-icon { width: 76px; height: 76px; display: grid; place-items: center; border-radius: 22px; color: #fff; background: linear-gradient(135deg, var(--ec-primary), var(--ec-primary-700)); }
.manual-hero-icon .ec-icon { width: 34px; height: 34px; }
@media (max-width: 720px) {
  .compact-field select { width: 100%; min-width: 0; }
  .description-list > div { grid-template-columns: 1fr; gap: 3px; }
}

/* Indicators and client value delivery - v8 */
.impact-hero {
  display: flex; align-items: center; justify-content: space-between; gap: 24px;
  margin-bottom: 18px; padding: clamp(24px, 4vw, 42px); border-radius: var(--ec-radius-lg);
  color: #fff; background:
    radial-gradient(circle at 88% 18%, rgba(255,255,255,.18), transparent 15rem),
    linear-gradient(135deg, var(--ec-primary-800), var(--ec-primary) 62%, #54bdb4);
  box-shadow: var(--ec-shadow-md);
}
.impact-hero h2 { max-width: 840px; margin: 7px 0 10px; color: #fff; font-size: clamp(24px, 3.2vw, 38px); line-height: 1.08; letter-spacing: -.035em; }
.impact-hero p { max-width: 850px; margin: 0; color: rgba(255,255,255,.86); }
.impact-hero .hero-eyebrow { color: #fff; background: rgba(255,255,255,.13); }
.impact-hero-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; min-width: min(360px, 100%); }
.impact-hero-actions .button { border-color: rgba(255,255,255,.25); }
.metrics-filter-form { display: grid; grid-template-columns: repeat(4, minmax(150px, 1fr)) auto; gap: 12px; align-items: end; }
.metrics-filter-actions { align-self: end; flex-wrap: nowrap; }
.impact-metrics { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 16px; }
.impact-card { position: relative; min-height: 150px; overflow: hidden; padding: 22px; border: 1px solid var(--ec-slate-200); border-radius: 18px; background: #fff; box-shadow: var(--ec-shadow-sm); }
.impact-card::before { content: ""; position: absolute; inset: 0 auto 0 0; width: 5px; background: var(--impact-color, var(--ec-primary)); }
.impact-card::after { content: ""; position: absolute; width: 100px; height: 100px; right: -42px; top: -42px; border-radius: 50%; background: color-mix(in srgb, var(--impact-color, var(--ec-primary)) 12%, transparent); }
.impact-card span { display: block; max-width: 88%; color: var(--ec-slate-600); font-size: 12px; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.impact-card strong { display: block; margin: 13px 0 8px; color: var(--ec-slate-950); font-size: clamp(24px, 2.5vw, 34px); line-height: 1; letter-spacing: -.04em; }
.impact-card small { display: block; color: var(--ec-slate-500); font-size: 11px; }
.indicator-card-link { color: inherit; cursor: pointer; transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease, background .16s ease; }
.indicator-card-link:hover { color: inherit; transform: translateY(-2px); border-color: var(--impact-color, var(--ec-primary)); box-shadow: var(--ec-shadow-md); }
.indicator-card-link:focus-visible, .indicator-row-link:focus-visible { outline: 3px solid rgba(10,164,150,.28); outline-offset: 2px; }
.indicator-card-link em { position: relative; z-index: 1; display: flex; align-items: center; gap: 4px; margin-top: 12px; color: var(--ec-primary-700); font-size: 10.5px; font-style: normal; font-weight: 800; }
.indicator-card-link em .ec-icon { width: 13px; height: 13px; }
.accent-primary { --impact-color: var(--ec-primary); }
.accent-blue { --impact-color: var(--ec-info); }
.accent-warning { --impact-color: var(--ec-warning); }
.accent-success { --impact-color: var(--ec-success); }
.metrics-compact { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.metrics-compact .metric-card { min-height: 120px; }
.metrics-analytics-grid { align-items: stretch; }
.bar-chart-list { display: grid; gap: 17px; }
.bar-chart-row { display: grid; gap: 7px; }
.bar-chart-label { display: flex; align-items: center; justify-content: space-between; gap: 12px; font-size: 12px; }
.bar-chart-label span { color: var(--ec-slate-600); }
.bar-chart-label strong { color: var(--ec-slate-800); }
.bar-chart-track { height: 10px; overflow: hidden; border-radius: 999px; background: var(--ec-slate-100); }
.bar-chart-track span { display: block; min-width: 2px; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ec-primary-700), var(--ec-primary)); transition: width .35s ease; }
.result-bars .bar-chart-track span { background: linear-gradient(90deg, var(--ec-info), #75a8d6); }
.kpi-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.kpi-list > div, .kpi-list > a { padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 12px; color: inherit; background: #fbfdfd; }
.kpi-list span { display: block; color: var(--ec-slate-500); font-size: 11px; }
.kpi-list strong { display: block; margin-top: 6px; color: var(--ec-slate-900); font-size: 17px; }
.split-summary { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.summary-group h3 { margin: 0 0 10px; font-size: 13px; color: var(--ec-slate-700); }
.summary-line { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 9px 0; border-bottom: 1px solid var(--ec-slate-100); font-size: 12px; }
.summary-line:last-child { border-bottom: 0; }
.summary-line span { color: var(--ec-slate-600); }
.summary-line strong { color: var(--ec-slate-800); }
.indicator-row-link { color: inherit; transition: color .16s, border-color .16s, background .16s, transform .16s; }
.indicator-row-link:hover { color: inherit; border-color: var(--ec-primary); background: var(--ec-primary-50); transform: translateY(-1px); }
.bar-chart-row.indicator-row-link { padding: 8px; margin: -8px; border: 1px solid transparent; border-radius: 10px; }
.summary-line.indicator-row-link { padding-inline: 7px; border-radius: 8px; }
.inline-upload-form { display: grid; grid-template-columns: minmax(260px, 1fr) auto; gap: 12px; align-items: center; }
.result-status { display: inline-flex; padding: 5px 8px; border-radius: 999px; color: var(--ec-slate-700); background: var(--ec-slate-100); font-size: 10px; font-weight: 800; white-space: nowrap; }
.result-regularizada_due, .result-icms_recolhido, .result-concluida_outro { color: var(--ec-success); background: var(--ec-success-100); }
.result-quebra_mapeada { color: #885600; background: var(--ec-warning-100); }
.result-parcialmente_regularizada { color: var(--ec-info); background: var(--ec-info-100); }
.result-pendente, .result-em_tratativa { color: var(--ec-warning); background: var(--ec-warning-100); }
.result-cancelada_ou_invalidada_sefaz { color: var(--ec-slate-700); background: var(--ec-slate-200); }
.metrics-table small { color: var(--ec-slate-500); }
.methodology-note { border-left: 4px solid var(--ec-primary); }
.item-result-layout { align-items: start; }
.item-impact-summary { margin-top: 16px; }
.item-impact-summary .impact-card { min-height: 130px; }
.impact-status-text { font-size: 21px !important; line-height: 1.15 !important; }
.detail-span-2 { grid-column: 1 / -1; }
.evidence-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.evidence-chips span { padding: 7px 9px; border-radius: 999px; color: var(--ec-primary-800); background: var(--ec-primary-100); font-size: 11px; font-weight: 700; overflow-wrap: anywhere; }
.timeline-title { display: flex; justify-content: space-between; gap: 10px; }
.timeline-title span { color: var(--ec-slate-500); font-size: 11px; }
.timeline-note { margin-top: 8px; padding: 9px; border-radius: 9px; background: var(--ec-slate-100); color: var(--ec-slate-600); font-size: 11px; }
.muted { color: var(--ec-slate-500); }

@media (max-width: 1200px) {
  .impact-metrics, .metrics-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metrics-filter-form { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .metrics-filter-actions { grid-column: 1 / -1; }
}
@media (max-width: 800px) {
  .impact-hero { align-items: flex-start; flex-direction: column; }
  .impact-hero-actions { justify-content: flex-start; min-width: 0; width: 100%; }
  .impact-hero-actions .button { flex: 1 1 220px; }
  .impact-metrics, .metrics-compact, .kpi-list, .split-summary, .metrics-filter-form { grid-template-columns: 1fr; }
  .metrics-filter-actions { grid-column: auto; flex-wrap: wrap; }
  .inline-upload-form { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
  .impact-metrics, .metrics-compact { grid-template-columns: 1fr; }
  .impact-card { min-height: 130px; }
}
.dashboard-impact-panel { margin-top: 16px; }
.dashboard-impact-cards { margin-bottom: 0; }
.dashboard-impact-cards .impact-card { min-height: 132px; }
.ticket-impact-strip { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--ec-slate-100); }
.ticket-impact-strip span { padding: 5px 7px; border-radius: 8px; color: var(--ec-primary-800); background: var(--ec-primary-50); font-size: 9px; }
.ticket-impact-strip strong { display: block; margin-top: 2px; font-size: 11px; }

/* Executive materiality indicators and printable client report - v8 */
.materiality-highlight {
  position: relative;
  overflow: hidden;
  border-top: 4px solid var(--ec-primary);
  background: linear-gradient(145deg, #fff, var(--ec-primary-50));
}
.materiality-highlight::after {
  content: "";
  position: absolute;
  width: 220px;
  height: 220px;
  right: -130px;
  top: -130px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--ec-primary) 10%, transparent);
  pointer-events: none;
}
.materiality-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); position: relative; z-index: 1; }
.materiality-kpis article, .materiality-kpis > a {
  min-height: 118px;
  padding: 17px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 14px;
  background: rgba(255,255,255,.88);
  box-shadow: var(--ec-shadow-sm);
}
.materiality-kpis span { display: block; color: var(--ec-slate-600); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .035em; }
.materiality-kpis strong { display: block; margin: 10px 0 7px; color: var(--ec-slate-950); font-size: clamp(22px, 2.3vw, 31px); letter-spacing: -.035em; }
.materiality-kpis small { color: var(--ec-slate-500); font-size: 10.5px; line-height: 1.4; }
.bar-chart-detail { display: block; color: var(--ec-slate-500); font-size: 10px; }
.indicator-detail-hero h2 { max-width: 980px; }
.indicator-detail-summary { overflow: hidden; }
.indicator-items-table table { min-width: 2050px; }
.indicator-items-table th:nth-child(2), .indicator-items-table td:nth-child(2) { min-width: 330px; }
.indicator-items-table th:nth-child(8), .indicator-items-table td:nth-child(8) { min-width: 330px; }
.indicator-tickets-table table { min-width: 1320px; }
.indicator-interactions-table table { min-width: 1280px; }

@media (max-width: 1200px) {
  .materiality-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
  .materiality-kpis { grid-template-columns: 1fr; }
}

@media print {
  @page { size: A4 landscape; margin: 12mm; }
  body { color: #1c2a2d; background: #fff !important; font-size: 10px; }
  .sidebar, .topbar, .sidebar-backdrop, .filters-panel, .filter-toolbar, .impact-hero-actions,
  .inline-upload-form, .button, .toast-region, .busy-overlay, .refresh-notice, .user-menu,
  .metrics-table td:last-child, .metrics-table th:last-child { display: none !important; }
  .main-area { margin: 0 !important; }
  .content-wrap { max-width: none !important; padding: 0 !important; }
  .impact-hero { margin: 0 0 10px; padding: 16px 18px; border-radius: 10px; box-shadow: none; print-color-adjust: exact; -webkit-print-color-adjust: exact; }
  .impact-hero h2 { font-size: 23px; }
  .impact-metrics, .materiality-kpis, .metrics-compact { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 7px; }
  .impact-card, .materiality-kpis article, .materiality-kpis > a, .metric-card, .panel { break-inside: avoid; box-shadow: none; }
  .indicator-card-link em { display: none; }
  .impact-card { min-height: 104px; padding: 13px; }
  .impact-card strong { font-size: 21px; }
  .metric-card { min-height: 90px; padding: 12px; }
  .metrics-analytics-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px; }
  .panel { margin-bottom: 8px; padding: 13px; border-radius: 9px; }
  .panel-header h2 { font-size: 14px; }
  .materiality-highlight::after { display: none; }
  .metrics-table { font-size: 8px; }
  .metrics-table tr { break-inside: avoid; }
  .methodology-note { page-break-before: auto; }
}

/* ========================================================================== */
/* v9 - SSO federado, aprovações e caixa integrada                            */
/* ========================================================================== */
.sso-login-page .login-form-area{background:radial-gradient(circle at 80% 10%,rgba(10,164,150,.13),transparent 35%),#f7fbfb}
.sso-login-card{max-width:540px}
.sso-actions{display:grid;gap:13px;margin:25px 0}
.login-password-form{display:grid;gap:12px;margin:20px 0}.login-password-form button{width:100%;justify-content:center}
.login-divider{display:flex;align-items:center;gap:12px;margin:22px 0 4px;color:var(--ec-slate-500);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.login-divider::before,.login-divider::after{content:"";height:1px;flex:1;background:var(--ec-slate-200)}
.sso-button{display:grid;grid-template-columns:48px 1fr 22px;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--border,#d9e4e4);border-radius:14px;background:#fff;text-decoration:none;color:var(--text,#263238);box-shadow:0 8px 24px rgba(37,70,70,.07);transition:.18s ease}
.sso-button:hover{transform:translateY(-2px);border-color:#0aa496;box-shadow:0 12px 28px rgba(10,164,150,.15)}
.sso-button strong,.sso-button small{display:block}.sso-button small{margin-top:2px;color:#738181}
.provider-mark{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:#fff;font-weight:800;font-size:20px;box-shadow:inset 0 0 0 1px #e1e9e9}
.google-mark{color:#4285f4}
.microsoft-mark{grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px);gap:2px}
.microsoft-mark i:nth-child(1){background:#f35325}.microsoft-mark i:nth-child(2){background:#81bc06}.microsoft-mark i:nth-child(3){background:#05a6f0}.microsoft-mark i:nth-child(4){background:#ffba08}
.local-login-fallback{margin-top:18px;border-top:1px solid #e3ecec;padding-top:16px}.local-login-fallback summary{cursor:pointer;color:#657474}.local-login-fallback form{display:grid;gap:10px;margin-top:12px}
.login-privacy-note,.mail-readonly-note{display:flex;align-items:flex-start;gap:9px;padding:12px 13px;border-radius:12px;background:#eef8f7;color:#46615f;font-size:13px;line-height:1.5}
.setup-public-page,.approval-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:linear-gradient(135deg,#edf8f7 0%,#f8fbfb 55%,#eef2f2 100%)}
.setup-public-card{width:min(1120px,100%);background:#fff;border-radius:24px;padding:34px;box-shadow:0 28px 80px rgba(38,70,70,.15)}
.setup-logo{width:260px;max-width:70%;margin-bottom:22px}.setup-provider-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:25px 0}.provider-setup-form,.provider-config-card{display:grid;gap:12px}
.approval-card{width:min(620px,100%);text-align:center;background:#fff;border-radius:24px;padding:42px;box-shadow:0 28px 80px rgba(38,70,70,.15)}.approval-card>img{width:240px;max-width:70%}.approval-icon{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin:22px auto;background:#e9f8f6;color:#0aa496}.approval-icon svg{width:34px;height:34px}.approval-icon.danger{background:#fff0f0;color:#bc3b3b}.approval-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:28px 0}.approval-steps div{padding:13px 8px;border-radius:12px;background:#eef8f7}.approval-steps div.pending{background:#fff7df}.approval-steps span{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;margin:0 auto 8px;background:#0aa496;color:#fff}.approval-steps .pending span{background:#d99b1d}.approval-steps strong{font-size:12px}.actions-row.center{justify-content:center}.rejection-card blockquote{margin:20px 0;padding:14px;background:#fff3f3;border-left:4px solid #bc3b3b;text-align:left}
.users-summary-panel .requirement-list.horizontal{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.stacked-actions{display:grid;gap:8px;min-width:230px}.stacked-actions form{display:grid;grid-template-columns:1fr auto;gap:6px}.stacked-actions input,.stacked-actions select{min-width:0}
.provider-config-card form{display:grid;gap:12px}.scope-list.compact{margin-top:14px}.scope-list.compact .scope-item{font-size:12px}
.mailbox-hero{background:linear-gradient(135deg,#fff,#eff9f8)}.mail-readonly-note{margin-top:15px}.mailbox-queue-panel{padding:12px}.mailbox-queue-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.mailbox-queue-tab{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;padding:14px;border:1px solid var(--ec-slate-200);border-radius:14px;color:var(--ec-slate-700);background:#fff;text-decoration:none}.mailbox-queue-tab>span:first-child{width:38px;height:38px;display:grid;place-items:center;border-radius:11px;color:var(--ec-primary);background:var(--ec-primary-100)}.mailbox-queue-tab>span:nth-child(2){display:grid;gap:2px}.mailbox-queue-tab small{color:var(--ec-slate-500)}.mailbox-queue-tab>b{min-width:32px;height:32px;display:grid;place-items:center;border-radius:999px;background:var(--ec-slate-100)}.mailbox-queue-tab.active{border-color:var(--ec-primary);box-shadow:0 0 0 2px color-mix(in srgb,var(--ec-primary) 16%,transparent);background:var(--ec-primary-50)}.mailbox-toolbar{grid-template-columns:1fr}.mailbox-toolbar>.actions-row{grid-column:1/-1}.mailbox-filter-select select{min-width:180px;max-width:230px}.mail-triage-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:16px}.mail-thread-card{display:flex;flex-direction:column;gap:10px}.mail-thread-top{display:flex;justify-content:space-between;gap:8px;align-items:center}.mail-thread-top>div{display:flex;gap:8px;align-items:center}.mail-thread-card h3{font-size:17px;line-height:1.35;margin:0}.mail-sender{color:#60706f;margin:0}.mail-suggestion{display:grid;gap:3px;padding:10px 12px;border:1px solid #c9e7e3;border-radius:11px;color:#216a63;background:#eefaf8;font-size:12px}.mail-suggestion.high{border-color:#f0cf8c;color:#815a0d;background:#fff8e8}.mail-suggestion strong{font-size:12px}.mail-thread-meta{display:flex;flex-wrap:wrap;gap:12px;color:#6a7b7a;font-size:12px}.triage-action{border:1px solid #dce8e7;border-radius:12px;padding:10px}.triage-action summary{cursor:pointer;font-weight:700}.triage-action form{display:grid;gap:9px;margin-top:10px}.empty-state.wide{grid-column:1/-1}.form-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.mail-permission-note{margin-top:12px}.mail-permission-note a,.mail-actions-panel a{font-weight:800;color:var(--ec-primary-800)}.mail-unread-count{padding:3px 7px;border-radius:999px;background:#fff1ce;color:#885d00;font-weight:800}.mail-deleted-note{padding:9px 10px;border-radius:10px;background:#f4f6f6;color:#687675;font-size:12px}.mail-thread-detail-hero{background:linear-gradient(135deg,#fff,#edf9f7)}.mail-action-grid,.mail-classification-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.mail-action-grid>form,.mail-classification-grid>form{display:grid;align-content:start;gap:11px;padding:15px;border:1px solid var(--ec-slate-200);border-radius:14px;background:#fbfdfd}.mail-action-grid p{margin:0;color:var(--ec-slate-600);font-size:13px}.button.danger{border-color:#dfb9b9;color:#a62f2f;background:#fff7f7}.button.danger:hover{background:#ffeded}.button:disabled,.button[disabled]{cursor:not-allowed;opacity:.48;transform:none}.mail-conversation-history{display:grid;gap:15px}.mail-message-detail{padding:17px;border:1px solid #dce7e6;border-left:4px solid #8b9998;border-radius:14px;background:#fff}.mail-message-detail.outbound{border-left-color:var(--ec-primary);background:#f4fbfa}.mail-message-detail.unread{box-shadow:inset 0 0 0 1px #e4b953}.mail-message-detail>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.mail-message-detail>header div{display:grid;gap:3px}.mail-message-detail>header span,.mail-message-detail time{color:var(--ec-slate-500);font-size:11px}.mail-message-routing{display:grid;gap:3px;margin:11px 0;color:var(--ec-slate-600);font-size:12px}.mail-message-detail h3{margin:10px 0;font-size:15px}.mail-message-body{max-height:520px;overflow:auto;padding:14px;border-radius:10px;background:#f7f9f9;white-space:pre-wrap;overflow-wrap:anywhere;color:#334342;font-size:13px;line-height:1.55}.mail-message-detail>footer{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;color:var(--ec-slate-500);font-size:11px}.mail-attachment-list{display:flex;flex-wrap:wrap;gap:9px;margin-top:12px}.mail-attachment{display:flex;align-items:center;gap:9px;min-width:210px;padding:10px 12px;border:1px solid #d5e5e3;border-radius:11px;background:#fff;color:inherit;text-decoration:none}.mail-attachment:hover{border-color:var(--ec-primary);background:#effaf8}.mail-attachment span,.mail-attachment strong,.mail-attachment small{display:block}.mail-attachment small{margin-top:2px;color:var(--ec-slate-500);font-size:10px}.mail-attachment-pending{display:flex;gap:8px;margin-top:12px;padding:10px;border-radius:10px;background:#fff7df;color:#7b5d12;font-size:12px}
.mail-message-detail>header .email-chip { color: var(--ec-primary-800); font-size: 10px; }
.mail-message-routing > div { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.mail-message-routing .email-chip-list { margin: 0; }
.email-images-control{margin-bottom:14px}.email-images-control a{font-weight:800;color:var(--ec-primary-800)}.email-content-shell{position:relative;min-height:180px;overflow:hidden;border:1px solid #dce7e6;border-radius:11px;background:#fff}.email-content-shell::before{content:"Carregando conteúdo formatado…";position:absolute;inset:0;display:grid;place-items:center;color:var(--ec-slate-500);font-size:12px}.email-content-frame{position:relative;display:block;width:100%;min-height:180px;border:0;background:#fff}.email-content-shell.compact .email-content-frame{min-height:150px}

.mailbox-bulk-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:13px 16px;border-color:#c9e7e3;background:linear-gradient(135deg,#fff,#f3fbfa)}.mailbox-bulk-main,.mailbox-bulk-actions{display:flex;align-items:center;gap:11px}.mailbox-bulk-main{min-width:0}.mailbox-bulk-icon{flex:0 0 auto;width:36px;height:36px;display:grid;place-items:center;border-radius:11px;color:var(--ec-primary-700);background:var(--ec-primary-100)}.mailbox-bulk-icon .ec-icon{width:17px;height:17px}.mailbox-bulk-copy{display:grid;gap:1px;min-width:0}.mailbox-bulk-copy strong{color:var(--ec-slate-800);font-size:13px}.mailbox-bulk-copy span{color:var(--ec-slate-500);font-size:11px}.mailbox-select-all{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:6px 10px;border:1px solid var(--ec-slate-200);border-radius:10px;background:#fff;color:var(--ec-slate-700);cursor:pointer;font-size:12px;font-weight:750;transition:border-color .15s,background .15s,color .15s}.mailbox-select-all:hover{border-color:var(--ec-primary);background:var(--ec-primary-50);color:var(--ec-primary-800)}.mailbox-checkbox-visual{flex:0 0 auto;width:19px;height:19px;display:grid;place-items:center;border:1.5px solid var(--ec-slate-300);border-radius:6px;background:#fff;color:#fff;transition:border-color .15s,background .15s,box-shadow .15s}.mailbox-checkbox-visual .ec-icon{width:12px;height:12px;opacity:0;transform:scale(.65);transition:opacity .12s,transform .12s}.mailbox-select-all input:checked+.mailbox-checkbox-visual,.mailbox-select-all input:indeterminate+.mailbox-checkbox-visual,.mail-thread-select input:checked+.mailbox-checkbox-visual{border-color:var(--ec-primary);background:var(--ec-primary);box-shadow:0 0 0 3px color-mix(in srgb,var(--ec-primary) 12%,transparent)}.mailbox-select-all input:checked+.mailbox-checkbox-visual .ec-icon,.mail-thread-select input:checked+.mailbox-checkbox-visual .ec-icon{opacity:1;transform:scale(1)}.mailbox-select-all input:indeterminate+.mailbox-checkbox-visual .ec-icon{opacity:0}.mailbox-select-all input:focus-visible+.mailbox-checkbox-visual,.mail-thread-select input:focus-visible+.mailbox-checkbox-visual{outline:3px solid color-mix(in srgb,var(--ec-primary) 30%,transparent);outline-offset:2px}.mail-thread-top-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px}.mail-thread-select{flex:0 0 auto;width:30px;height:30px;display:grid;place-items:center;border-radius:9px;cursor:pointer}.mail-thread-select .mailbox-checkbox-visual{width:27px;height:27px;border-color:var(--ec-slate-200);border-radius:8px;background:var(--ec-slate-50)}.mail-thread-select:hover .mailbox-checkbox-visual{border-color:var(--ec-primary);background:var(--ec-primary-50)}.mail-thread-select input:checked+.mailbox-checkbox-visual{background:var(--ec-primary)}.mail-thread-card{transition:border-color .15s,box-shadow .15s,background .15s}.mail-thread-card.is-selected{border-color:var(--ec-primary);background:linear-gradient(145deg,#fff,#f4fbfa);box-shadow:0 0 0 2px color-mix(in srgb,var(--ec-primary) 12%,transparent)}

.mail-thread-card.has-mail-selection{position:relative}.mail-thread-card.has-mail-selection .mail-thread-top{padding-left:39px}.mail-thread-card .mail-thread-top{display:grid;justify-content:stretch;gap:7px;align-items:initial}.mail-thread-card .mail-thread-top>.mail-thread-source-list{display:flex;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}.mail-thread-card .mail-thread-top>.mail-thread-secondary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:7px;min-width:0}.mail-thread-secondary time{color:var(--ec-slate-500);font-size:11px;font-variant-numeric:tabular-nums;line-height:1.2;white-space:nowrap}.mail-thread-secondary .mini-badge{flex:0 0 auto;white-space:nowrap}.mail-thread-card>.mail-thread-select{position:absolute;z-index:2;top:19px;left:18px;width:28px;height:28px;border-radius:999px}.mail-thread-card>.mail-thread-select .mailbox-checkbox-visual{width:25px;height:25px;border:2px solid var(--ec-slate-300);border-radius:999px;background:#fff}.mail-thread-card>.mail-thread-select:hover .mailbox-checkbox-visual{border-color:var(--ec-primary);background:var(--ec-primary-50)}.mail-thread-card>.mail-thread-select input:checked+.mailbox-checkbox-visual{border-color:var(--ec-primary);background:var(--ec-primary)}.mail-thread-card>.mail-thread-select .mailbox-checkbox-visual .ec-icon{width:11px;height:11px}
.mailbox-bulk-action-field{flex:1 1 250px}.mailbox-bulk-action-field select{width:100%;min-width:250px;min-height:34px;padding:6px 34px 6px 10px;border-radius:10px;font-size:12px;font-weight:700}.mailbox-bulk-actions>.button{flex:0 0 auto;white-space:nowrap}.mail-thread-card.is-bulk-processing{opacity:.58;pointer-events:none}

@media(max-width:900px){.setup-provider-tabs{grid-template-columns:1fr}.users-summary-panel .requirement-list.horizontal{grid-template-columns:1fr}.approval-steps{grid-template-columns:1fr}.mailbox-queue-tabs{grid-template-columns:1fr}.mail-triage-grid,.mail-action-grid,.mail-classification-grid{grid-template-columns:1fr}.mailbox-bulk-toolbar{align-items:flex-start;flex-direction:column}.mailbox-bulk-actions{width:100%;justify-content:flex-start;flex-wrap:wrap}.mailbox-bulk-action-field{order:3;flex-basis:100%}.mailbox-bulk-action-field select{min-width:0}.mail-thread-top{align-items:flex-start}.mail-thread-top-actions{flex-wrap:wrap}}
@media(max-width:560px){.setup-public-card,.approval-card{padding:24px 18px;border-radius:18px}.sso-button{grid-template-columns:42px 1fr 18px;padding:12px}.form-grid.two{grid-template-columns:1fr}}
.thread-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;margin-bottom:18px}.thread-summary-card{display:grid;gap:7px;padding:14px;border:1px solid #dfe9e8;border-radius:13px;background:#fbfdfd}.thread-summary-card>div{display:flex;justify-content:space-between;gap:8px}.mail-history-list{display:grid;gap:12px}.mail-history-item{padding:15px;border:1px solid #dfe9e8;border-left:4px solid #889898;border-radius:12px;background:#fff}.mail-history-item.outbound{border-left-color:#0aa496;background:#f3fbfa}.mail-history-head{display:flex;justify-content:space-between;gap:12px}.mail-history-subject{font-weight:700;margin-top:5px}.mail-history-body-text{margin-top:10px;padding:12px;border:1px solid #dfe9e8;border-radius:10px;background:#fff;white-space:pre-wrap;overflow-wrap:anywhere;max-height:420px;overflow:auto}.mail-history-item p{white-space:pre-wrap;max-height:150px;overflow:auto}.mail-history-meta{display:flex;gap:10px;flex-wrap:wrap;color:#6c7b7a;font-size:12px}

.setup-help-details {
  margin-top: 16px;
  border: 1px solid var(--border);
  border-radius: 14px;
  background: var(--surface-soft);
  padding: 12px 14px;
  color: var(--text);
}
.setup-help-details summary {
  cursor: pointer;
  font-weight: 700;
  color: var(--primary-dark);
}
.setup-help-details ol {
  margin: 12px 0 0 20px;
  padding: 0;
  color: var(--muted);
  line-height: 1.6;
}

/* v10 - login social simplificado e diagnóstico seguro */
.login-guidance { margin-bottom: 20px; }
.environment-not-ready {
  display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start;
  padding: 17px; border: 1px solid var(--ec-warning-200, #efd497); border-radius: 14px;
  background: var(--ec-warning-100); color: #6f4b08;
}
.environment-not-ready p { margin: 5px 0 0; font-size: 13px; line-height: 1.55; }
.environment-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; background: #fff8e7; }
.login-first-access-note { margin-top: 14px; padding: 14px; border-radius: 12px; background: var(--ec-primary-50); color: var(--ec-slate-700); }
.login-first-access-note p { margin: 5px 0 0; font-size: 12px; line-height: 1.5; }
.login-recovery-link { display: inline-flex; width: fit-content; margin: 2px auto 0; color: var(--ec-primary-800); font-size: 13px; font-weight: 800; text-decoration: none; }
.login-recovery-link:hover { text-decoration: underline; }
.user-edit-details { min-width: 290px; }
.user-edit-details > summary { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; color: var(--ec-primary-800); font-size: 12px; font-weight: 800; list-style: none; }
.user-edit-details > summary::-webkit-details-marker { display: none; }
.user-edit-details > summary .ec-icon { width: 16px; height: 16px; }
.user-edit-form { display: grid; gap: 11px; margin-top: 12px; padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: var(--ec-slate-50, #f7fafa); }
.user-edit-form .field { min-width: 0; }
.user-edit-form .checkbox-field { display: flex; align-items: center; gap: 8px; color: var(--ec-slate-700); font-size: 12px; font-weight: 700; }
.user-edit-form .checkbox-field input { width: 17px; height: 17px; margin: 0; accent-color: var(--ec-primary); }
.user-password-fields { display: grid; gap: 10px; padding-top: 10px; border-top: 1px solid var(--ec-slate-200); }
.user-password-fields > strong { color: var(--ec-slate-700); font-size: 12px; }
.user-password-fields > strong small { color: var(--ec-slate-500); font-weight: 500; }
.signature-hero { border-top: 4px solid var(--ec-primary); background: linear-gradient(135deg, #fff, var(--ec-primary-50)); }
.signature-hero .requirement-list.horizontal { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.signature-layout { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(330px, .75fr); gap: 20px; align-items: start; }
.signature-editor { display: grid; gap: 20px; }
.signature-mode-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; }
.signature-mode-card { position: relative; display: grid; grid-template-columns: auto 1fr; gap: 10px; align-items: center; min-height: 92px; padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 14px; color: var(--ec-slate-700); background: #fff; cursor: pointer; transition: border-color .16s, box-shadow .16s, background .16s; }
.signature-mode-card:hover { border-color: var(--ec-primary); background: var(--ec-primary-50); }
.signature-mode-card.selected { border-color: var(--ec-primary); background: var(--ec-primary-50); box-shadow: 0 0 0 2px color-mix(in srgb, var(--ec-primary) 14%, transparent); }
.signature-mode-card input { position: absolute; top: 10px; right: 10px; width: 16px; height: 16px; margin: 0; accent-color: var(--ec-primary); }
.signature-mode-card > span:last-child { display: grid; gap: 4px; padding-right: 10px; }
.signature-mode-card strong { color: var(--ec-slate-900); font-size: 14px; }
.signature-mode-card small { color: var(--ec-slate-500); font-size: 11px; line-height: 1.4; }
.signature-mode-icon { width: 36px; height: 36px; display: grid; place-items: center; border-radius: 11px; color: var(--ec-primary-700); background: var(--ec-primary-100); }
.signature-mode-icon .ec-icon { width: 18px; height: 18px; }
.signature-text-field { margin: 0; }
.signature-source-panel { display: grid; gap: 14px; padding: 16px; border: 1px solid var(--ec-slate-200); border-radius: 15px; background: var(--ec-slate-50, #f7fafa); }
.signature-source-panel[hidden] { display: none; }
.signature-source-heading { display: grid; gap: 3px; }
.signature-source-heading strong { color: var(--ec-slate-800); font-size: 13px; }
.signature-source-heading small { color: var(--ec-slate-500); line-height: 1.45; }
.signature-actions { justify-content: space-between; padding-top: 4px; }
.signature-preview-panel { position: sticky; top: 92px; }
.signature-email-sample { min-height: 290px; padding: 20px; border: 1px solid var(--ec-slate-200); border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px rgba(15, 92, 84, .02); }
.signature-email-body { color: var(--ec-slate-700); font-family: Arial, sans-serif; font-size: 14px; line-height: 1.5; }
.signature-email-sample iframe { display: block; width: 100%; min-height: 150px; margin-top: 4px; border: 0; background: #fff; }
.signature-email-sample iframe[hidden] { display: none; }
.signature-preview-empty { display: grid; min-height: 135px; place-items: center; color: var(--ec-slate-400); font-size: 12px; text-align: center; }
.signature-preview-empty[hidden] { display: none; }
.signature-preview-status { min-height: 18px; margin-top: 8px; color: var(--ec-slate-500); font-size: 11px; }
.signature-preview-status[data-state="error"] { color: var(--ec-danger); font-weight: 700; }
.signature-security-note { margin: 16px 0 0; font-size: 12px; }
@media (max-width: 1080px) {
  .signature-layout { grid-template-columns: 1fr; }
  .signature-preview-panel { position: static; }
}

/* Portal institucional do cliente/parceiro */
.portal-page { min-height: 100dvh; padding: clamp(18px, 3vw, 38px); color: var(--ec-slate-800); background: radial-gradient(circle at 10% 0, #e5f7f4 0, transparent 34%), #f5f8f8; }
.portal-header { max-width: 1480px; display: grid; grid-template-columns: 180px minmax(280px, 1fr) auto; align-items: center; gap: 28px; margin: 0 auto 24px; padding: 22px 24px; border: 1px solid rgba(10,164,150,.18); border-radius: 20px; background: rgba(255,255,255,.94); box-shadow: var(--ec-shadow-md); }
.portal-header.compact { grid-template-columns: 165px minmax(280px, 1fr) auto; }
.portal-brand img, .portal-logo { display: block; width: 165px; max-width: 100%; height: auto; }
.portal-header-copy h1 { margin: 4px 0 3px; font-size: clamp(24px, 3vw, 38px); letter-spacing: -.035em; }
.portal-header-copy p { max-width: 760px; margin: 0; color: var(--ec-slate-600); }
.portal-header-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px; }
.portal-header-actions form { margin: 0; }
.portal-team-panel { max-width: 1480px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, 430px); gap: 24px; margin: 0 auto 16px; padding: 22px; border: 1px solid #a9ddd7; border-radius: 17px; background: #fff; box-shadow: var(--ec-shadow-md); }
.portal-team-panel[hidden] { display: none; }
.portal-team-copy h2, .portal-team-form h3 { margin: 4px 0 7px; }
.portal-team-copy > p { max-width: 780px; margin: 0; color: var(--ec-slate-600); font-size: 12px; line-height: 1.55; }
.portal-team-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 8px; margin-top: 16px; }
.portal-team-list article { display: flex; align-items: center; gap: 9px; min-width: 0; padding: 9px 11px; border: 1px solid var(--ec-slate-200); border-radius: 11px; background: var(--ec-slate-100); }
.portal-team-list article > div { min-width: 0; }
.portal-team-list strong, .portal-team-list small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.portal-team-list small { margin-top: 2px; color: var(--ec-slate-500); font-size: 10px; }
.portal-team-avatar { width: 32px; height: 32px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; color: var(--ec-primary-800); background: var(--ec-primary-100); font-size: 12px; font-weight: 850; }
.portal-team-form { display: grid; gap: 11px; padding: 17px; border-radius: 13px; background: var(--ec-slate-100); }
.portal-team-form .button { justify-self: start; }
.portal-summary-grid { max-width: 1480px; display: grid; grid-template-columns: repeat(5, minmax(150px, 1fr)); gap: 12px; margin: 0 auto 16px; }
.portal-summary-grid article { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px; border: 1px solid var(--ec-slate-200); border-radius: 14px; background: #fff; }
.portal-summary-grid span { color: var(--ec-slate-600); font-size: 12px; font-weight: 750; }
.portal-summary-grid strong { color: var(--ec-primary-800); font-size: 24px; }
.portal-toolbar { position: relative; max-width: 1480px; display: block; margin: 0 auto 14px; padding: 12px; border: 1px solid var(--ec-slate-200); border-radius: 14px; background: #fff; }
.portal-toolbar-main { display: grid; grid-template-columns: minmax(260px, 1fr) auto auto; align-items: center; gap: 10px; }
.portal-search { width: min(620px, 100%); }
.portal-filter-active { margin-top: 10px; }
.portal-filter-panel { position: absolute; z-index: 45; top: calc(100% + 8px); right: 0; width: min(820px, calc(100vw - 30px)); max-height: min(620px, calc(100vh - 150px)); padding: 18px; border: 1px solid var(--ec-slate-200); border-radius: 15px; background: #fff; box-shadow: var(--ec-shadow-lg); overflow: auto; }
.portal-filter-panel[hidden] { display: none !important; }
.portal-kanban-help { max-width: 1480px; margin: 0 auto 10px; color: var(--ec-slate-600); font-size: 11px; }
.portal-kanban { max-width: 1480px; min-height: 520px; display: grid; grid-template-columns: repeat(4, minmax(275px, 1fr)); gap: 15px; margin: 0 auto; overflow-x: auto; }
.portal-kanban-column { min-width: 290px; border: 1px solid var(--ec-slate-200); border-radius: 17px; background: #eaf0f0; overflow: hidden; }
.portal-kanban-column > header { display: flex; align-items: center; justify-content: space-between; padding: 14px 15px; border-bottom: 1px solid var(--ec-slate-200); background: #fff; }
.portal-kanban-column > header > div { display: flex; align-items: center; gap: 8px; }
.portal-kanban-column h2 { margin: 0; font-size: 14px; }
.portal-kanban-column > header > strong { min-width: 26px; padding: 4px 7px; border-radius: 999px; color: var(--ec-primary-800); background: var(--ec-primary-50); text-align: center; }
.portal-column-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--ec-warning); }
.portal-kanban-column[data-status="EM_ANDAMENTO"] .portal-column-dot { background: #7553b7; }
.portal-kanban-column[data-status="EMAIL_RESPONDIDO"] .portal-column-dot { background: #2879bd; }
.portal-kanban-column[data-status="CONCLUIDO"] .portal-column-dot { background: var(--ec-success); }
.portal-card-list { min-height: 150px; display: grid; align-content: start; gap: 10px; padding: 11px; transition: background .15s, outline .15s; }
.portal-card-list.drag-over { outline: 2px dashed var(--ec-primary); outline-offset: -7px; background: var(--ec-primary-50); }
.portal-ticket-card { display: grid; gap: 10px; padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: #fff; box-shadow: var(--ec-shadow-sm); transition: opacity .15s, transform .15s, box-shadow .15s; }
.portal-ticket-card[draggable="true"] { cursor: grab; }
.portal-ticket-card[draggable="true"]:active { cursor: grabbing; }
.portal-ticket-card.dragging { opacity: .48; transform: scale(.98); box-shadow: none; }
.portal-ticket-card[hidden] { display: none; }
.portal-ticket-top, .portal-ticket-actions { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px; }
.portal-ticket-top > a { font-weight: 850; }
.portal-ticket-card h3 { margin: 0; font-size: 14px; line-height: 1.4; }
.portal-ticket-card > p { margin: 0; color: var(--ec-slate-600); font-size: 11px; }
.portal-ticket-stats { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0; }
.portal-ticket-stats div { padding: 8px; border-radius: 9px; background: var(--ec-slate-100); }
.portal-ticket-stats dt { color: var(--ec-slate-500); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.portal-ticket-stats dd { margin: 2px 0 0; font-weight: 850; }
.portal-ticket-assignee { display: grid; gap: 5px; padding-top: 9px; border-top: 1px solid var(--ec-slate-100); }
.portal-ticket-assignee > label { color: var(--ec-slate-500); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.portal-ticket-assignee > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px; }
.portal-ticket-assignee select { min-width: 0; min-height: 34px; padding: 6px 8px; font-size: 11px; }
.portal-ticket-assignee .button { min-height: 34px; }
.portal-ticket-actions form { margin: 0; }
.portal-column-empty { padding: 42px 14px; color: var(--ec-slate-500); font-size: 12px; text-align: center; }
.portal-ticket-hero { max-width: 1480px; display: grid; grid-template-columns: auto minmax(420px, 1fr) auto; align-items: center; gap: 24px; margin: 0 auto 18px; padding: 19px 22px; border: 1px solid var(--ec-slate-200); border-radius: 16px; background: #fff; }
.portal-ticket-hero > div:first-child { display: grid; gap: 7px; }
.portal-status { display: inline-flex; padding: 7px 10px; border-radius: 999px; color: #8a5900; background: #fff2ce; font-size: 12px; font-weight: 850; }
.portal-status-em_andamento { color: #6543a5; background: #eee8fb; }
.portal-status-email_respondido { color: #1f659e; background: #e4f1fb; }
.portal-status-concluido { color: #25704c; background: #e6f6ed; }
.portal-ticket-hero dl { display: grid; grid-template-columns: repeat(4, minmax(90px, 1fr)); gap: 9px; margin: 0; }
.portal-ticket-hero dl div { min-width: 0; padding: 9px 10px; border-radius: 10px; background: var(--ec-slate-100); }
.portal-ticket-hero dt { color: var(--ec-slate-500); font-size: 9px; font-weight: 800; text-transform: uppercase; }
.portal-ticket-hero dd { margin: 3px 0 0; overflow-wrap: anywhere; font-size: 12px; font-weight: 800; }
.portal-detail-grid { max-width: 1480px; display: grid; grid-template-columns: minmax(0, 1fr) 360px; align-items: start; gap: 17px; margin: 0 auto; }
.portal-detail-main, .portal-detail-side { display: grid; gap: 17px; }
.portal-detail-main > .ticket-collapsible, .portal-detail-side > .ticket-collapsible { margin-bottom: 0; }
.portal-detail-width, .portal-final-section { max-width: 1480px; margin-inline: auto; }
.portal-key { display: block; max-width: 260px; margin-top: 3px; color: var(--ec-slate-500); font-family: ui-monospace, monospace; font-size: 9px; overflow-wrap: anywhere; }
.portal-file-list, .portal-mail-history { display: grid; gap: 10px; }
.portal-file { display: grid; grid-template-columns: 25px minmax(0, 1fr) 22px; align-items: center; gap: 10px; padding: 12px; border: 1px solid var(--ec-slate-200); border-radius: 11px; color: inherit; }
.portal-file:hover { border-color: var(--ec-primary); background: var(--ec-primary-50); }
.portal-file strong, .portal-file small { display: block; overflow-wrap: anywhere; }
.portal-file small { margin-top: 3px; color: var(--ec-slate-500); }
.portal-mail-history article { padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: var(--ec-slate-100); }
.portal-mail-history article > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.portal-mail-history h3 { margin: 9px 0 5px; font-size: 14px; }
.portal-mail-history p { max-height: 170px; margin: 0 0 10px; color: var(--ec-slate-600); font-size: 12px; white-space: pre-wrap; overflow: auto; }
.portal-conclusion { border-top: 4px solid var(--ec-primary); }
.portal-conclusion > h2 { margin: 5px 0 7px; }
.portal-conclusion > p { margin: 0 0 16px; color: var(--ec-slate-600); font-size: 12px; }
.portal-conclusion form { display: grid; gap: 13px; }
.portal-check { display: flex; align-items: flex-start; gap: 9px; padding: 11px; border: 1px solid var(--ec-slate-200); border-radius: 10px; font-size: 12px; font-weight: 750; cursor: pointer; }
.portal-check input { width: 17px; height: 17px; margin: 0; }
.portal-conclusion.complete { text-align: center; }
.portal-timeline { display: grid; gap: 0; margin: 14px 0 0; padding: 0; list-style: none; }
.portal-timeline li { position: relative; display: grid; gap: 3px; padding: 0 0 18px 19px; border-left: 2px solid var(--ec-slate-200); }
.portal-timeline li::before { content: ""; position: absolute; left: -6px; top: 2px; width: 10px; height: 10px; border-radius: 50%; background: var(--ec-primary); }
.portal-timeline time { color: var(--ec-slate-500); font-size: 10px; }
.portal-timeline p { margin: 3px 0; color: var(--ec-slate-600); font-size: 11px; }
.portal-timeline a { display: flex; align-items: center; gap: 5px; font-size: 11px; }
.portal-timeline .ec-icon { width: 14px; }
.portal-access-page { display: grid; place-items: center; }
.portal-access-card { width: min(480px, 100%); padding: 34px; border: 1px solid rgba(10,164,150,.2); border-radius: 22px; background: #fff; box-shadow: var(--ec-shadow-lg); text-align: center; }
.portal-access-card .portal-logo { margin: 0 auto 27px; }
.portal-access-card h1 { margin: 13px 0 7px; }
.portal-access-card p { color: var(--ec-slate-600); }
.portal-access-icon { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto; border-radius: 16px; color: var(--ec-primary-800); background: var(--ec-primary-50); }
.portal-access-icon.danger { color: var(--ec-danger); background: var(--ec-danger-100); }
.portal-access-icon .ec-icon { width: 26px; height: 26px; }
.portal-inline-loader { width: 28px; height: 28px; margin: 20px auto 0; border: 3px solid var(--ec-slate-200); border-top-color: var(--ec-primary); border-radius: 50%; animation: spin .8s linear infinite; }

@media (max-width: 980px) {
  .portal-header, .portal-header.compact { grid-template-columns: 140px minmax(0, 1fr); }
  .portal-header-actions { grid-column: 1 / -1; justify-content: flex-start; }
  .portal-team-panel { grid-template-columns: 1fr; }
  .portal-summary-grid { grid-template-columns: repeat(2, minmax(140px, 1fr)); }
  .portal-kanban { grid-template-columns: repeat(4, 320px); }
  .portal-ticket-hero { grid-template-columns: 1fr; }
  .portal-detail-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .portal-page { padding: 11px; }
  .portal-header, .portal-header.compact { grid-template-columns: 1fr; gap: 14px; padding: 17px; }
  .portal-header-actions .button, .portal-header-actions form { width: 100%; }
  .portal-header-actions form .button { width: 100%; }
  .portal-team-panel { padding: 16px; }
  .portal-team-form .button { width: 100%; justify-content: center; }
  .portal-summary-grid { grid-template-columns: 1fr 1fr; }
  .portal-toolbar-main { grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; }
  .portal-toolbar-main > .muted { grid-column: 1 / -1; }
  .portal-filter-panel { left: 0; right: 0; width: auto; padding: 14px; }
  .portal-kanban { grid-template-columns: repeat(4, 86vw); }
  .portal-ticket-hero dl { grid-template-columns: 1fr 1fr; }
  .portal-access-card { padding: 24px 18px; }
}
@media (max-width: 680px) {
  .signature-hero .requirement-list.horizontal { grid-template-columns: 1fr; }
  .signature-mode-grid { grid-template-columns: 1fr; }
  .signature-mode-card { min-height: 76px; }
  .signature-actions { align-items: stretch; }
  .signature-actions .button, .signature-actions button { width: 100%; }
}
.suggestion-approval-form { display: grid; gap: 8px; min-width: 230px; }
.suggestion-approval-form input, .suggestion-approval-form select { min-width: 0; }
.suggestion-reject { margin-top: 8px; }
.table-primary, td > small.muted { display: block; margin-top: 5px; }
.simple-public-page { min-height: 100vh; display: grid; place-items: center; padding: 28px; background: linear-gradient(145deg, #edf9f7, #f7fafb); }
.simple-public-card { width: min(100%, 620px); padding: 34px; border: 1px solid var(--ec-slate-200); border-radius: 24px; background: #fff; box-shadow: var(--ec-shadow-lg); text-align: center; }
.public-logo { width: 190px; height: auto; margin-bottom: 25px; }
.public-status-icon { width: 58px; height: 58px; display: grid; place-items: center; margin: 0 auto 16px; border-radius: 18px; color: var(--ec-primary-700); background: var(--ec-primary-100); }
.public-status-icon .ec-icon { width: 28px; height: 28px; }
.simple-public-card h1 { margin: 8px 0 12px; color: var(--ec-slate-950); }
.simple-public-card > p { color: var(--ec-slate-600); line-height: 1.65; }
.provider-status-card { border-top: 4px solid var(--ec-slate-300); }
.provider-status-card.is-ready { border-top-color: var(--ec-primary); }
.provider-status-card.is-missing { border-top-color: var(--ec-warning); }
.safe-config-list { display: grid; gap: 0; margin: 0; }
.safe-config-list > div { display: grid; grid-template-columns: minmax(150px, .55fr) minmax(0, 1fr); gap: 14px; padding: 11px 0; border-bottom: 1px solid var(--ec-slate-100); }
.safe-config-list > div:last-child { border-bottom: 0; }
.safe-config-list dt { color: var(--ec-slate-500); font-size: 12px; font-weight: 750; }
.safe-config-list dd { margin: 0; color: var(--ec-slate-800); font-size: 13px; font-weight: 650; }
.admin-setup-hero { border-top: 4px solid var(--ec-primary); background: linear-gradient(135deg, #fff, var(--ec-primary-50)); }
.admin-setup-checklist { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; }
.admin-provider-grid .provider-config-card { border-top: 4px solid var(--ec-warning); }
.admin-provider-grid .provider-config-card.is-ready { border-top-color: var(--ec-primary); }
.provider-config-card form { align-content: start; }
.provider-config-card .actions-row { margin-top: 4px; }
.password-change-panel { width: min(820px, 100%); margin-inline: auto; border-top: 4px solid var(--ec-warning); }
.break-all { overflow-wrap: anywhere; }
.flow-steps { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.flow-step { display: flex; gap: 10px; align-items: flex-start; padding: 13px; border: 1px solid var(--ec-slate-200); border-radius: 13px; background: #fff; }
.flow-step > span { width: 28px; height: 28px; flex: 0 0 28px; display: grid; place-items: center; border-radius: 50%; color: #fff; background: var(--ec-primary); font-weight: 800; }
.flow-step strong, .flow-step small { display: block; }
.flow-step small { margin-top: 3px; color: var(--ec-slate-500); line-height: 1.4; }
@media (max-width: 900px) {
  .flow-steps { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
  .flow-steps { grid-template-columns: 1fr; }
  .safe-config-list > div { grid-template-columns: 1fr; gap: 4px; }
}

/* Nota fiscal: listagem rica e rastreabilidade consolidada */
.fiscal-history-table table { min-width: 2050px; }
.fiscal-history-table th:first-child, .fiscal-history-table td:first-child { min-width: 310px; }
.monitor-items-table table { min-width: 1700px; }
.monitor-stage { margin-bottom: 5px; color: var(--ec-info); background: var(--ec-info-100); }
.monitor-preventiva, .monitor-cobranca_preventiva { color: var(--ec-info); background: var(--ec-info-100); }
.monitor-vencida, .monitor-cobranca_vencida { color: var(--ec-danger); background: var(--ec-danger-100); }
.monitor-concluida, .monitor-concluido { color: var(--ec-success); background: var(--ec-success-100); }
.monitor-erro_atualizacao { color: var(--ec-danger); background: var(--ec-danger-100); }
.monitor-reaberta { color: var(--ec-warning); background: var(--ec-warning-100); }
.monitor-detail-card { border-color: #c8e8e3; background: linear-gradient(145deg, #fff, var(--ec-primary-50)); }
.monitor-balance-list { display: grid; gap: 2px; }
.access-key { color: var(--ec-slate-700); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 11px; font-weight: 750; line-height: 1.55; overflow-wrap: anywhere; }
.access-key-large { max-width: 720px; margin: 8px 0 0; color: var(--ec-slate-600); font-size: 13px; }
.clickable-row { cursor: pointer; transition: background .16s, box-shadow .16s; }
.clickable-row:hover { background: var(--ec-primary-50); box-shadow: inset 3px 0 0 var(--ec-primary); }
.clickable-row:focus-visible { outline: 3px solid rgba(10,164,150,.28); outline-offset: -3px; }
.note-trace-hero { align-items: flex-start; }
.note-summary-grid { margin-bottom: 18px; }
.note-summary-grid .detail-card small { display: block; margin-top: 6px; color: var(--ec-slate-500); font-size: 11px; }
.admin-finalize-note { border-color: #efd9a5; background: #fffdf8; }
.admin-finalize-note > details > summary { display: grid; grid-template-columns: 30px minmax(0, 1fr) 20px; align-items: center; gap: 10px; cursor: pointer; list-style: none; }
.admin-finalize-note > details > summary::-webkit-details-marker { display: none; }
.admin-finalize-note > details > summary > span:first-child { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 9px; color: var(--ec-warning); background: var(--ec-warning-100); }
.admin-finalize-note > details > summary strong, .admin-finalize-note > details > summary small { display: block; }
.admin-finalize-note > details > summary small { margin-top: 3px; color: var(--ec-slate-500); }
.admin-finalize-note > details[open] > summary > .ec-icon:last-child { transform: rotate(90deg); }
.admin-finalize-note-body { display: grid; gap: 14px; margin-top: 18px; padding-top: 18px; border-top: 1px solid #efd9a5; }
.note-trace-grid { align-items: start; }
.trace-ticket-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 11px; }
.trace-ticket-card { display: grid; gap: 7px; padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 13px; color: inherit; background: linear-gradient(145deg, #fff, #f8fbfb); transition: border-color .16s, transform .16s; }
.trace-ticket-card:hover { border-color: var(--ec-primary); transform: translateY(-1px); }
.trace-ticket-card > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.trace-ticket-card small { color: var(--ec-slate-500); }
.origin-data-details { min-width: 190px; }
.origin-data-details summary { color: var(--ec-primary-800); cursor: pointer; font-size: 12px; font-weight: 750; }
.origin-data-details dl { display: grid; gap: 5px; max-height: 260px; margin: 9px 0 0; overflow: auto; }
.origin-data-details dl div { display: grid; grid-template-columns: minmax(90px, .8fr) minmax(110px, 1.2fr); gap: 8px; padding: 6px 8px; border-radius: 7px; background: var(--ec-slate-100); }
.origin-data-details dt { color: var(--ec-slate-500); font-size: 10px; font-weight: 800; overflow-wrap: anywhere; }
.origin-data-details dd { margin: 0; color: var(--ec-slate-700); font-size: 11px; overflow-wrap: anywhere; }
.monetary-status-grid { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); margin-bottom: 18px; }
.monetary-status-grid .detail-card { min-height: 132px; }
.monetary-status-grid .detail-card small { display: block; margin-top: 7px; color: var(--ec-slate-500); line-height: 1.45; }
.monetary-estimate-warning { margin-bottom: 18px; }
.monetary-source-panel { border-top: 4px solid var(--ec-primary); }
.monetary-index-table table { min-width: 980px; }
.monetary-index-table code { color: var(--ec-slate-700); font-size: 11px; }
.monetary-rule-grid .detail-card { border-color: var(--ec-slate-200); background: #fff; }
.monetary-rule-grid .detail-card small { display: block; margin-top: 8px; color: var(--ec-slate-500); line-height: 1.5; }

/* Internal management of external portal links */
.external-link-result { border-color: #9ddbd4; background: linear-gradient(145deg, #fff, var(--ec-primary-50)); }
.external-link-copy-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: end; gap: 10px; }
.external-link-copy-row input { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; font-size: 12px; }
.external-link-result-meta { display: flex; flex-wrap: wrap; gap: 12px 22px; margin-top: 15px; color: var(--ec-slate-600); font-size: 12px; }
.external-link-result-meta span { display: inline-flex; align-items: center; gap: 7px; }
.external-link-result-meta .ec-icon { width: 17px; color: var(--ec-primary-700); }
.external-link-security-note { margin: 14px 0 0; padding: 11px 13px; border-left: 3px solid var(--ec-warning); border-radius: 8px; color: #73520e; background: var(--ec-warning-100); font-size: 12px; }
.external-link-entity-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.external-link-entity-card { display: grid; grid-template-columns: auto 1fr; align-content: start; gap: 13px; padding: 18px; border: 1px solid var(--ec-slate-200); border-radius: 15px; background: #fbfdfd; }
.external-link-entity-card:hover { border-color: #b5ded9; background: #fff; box-shadow: var(--ec-shadow-sm); }
.external-link-entity-card > div h3 { margin: 1px 0 4px; color: var(--ec-slate-900); font-size: 17px; }
.external-link-entity-card > div p { margin: 0; color: var(--ec-slate-500); font-size: 12px; line-height: 1.5; }
.external-link-entity-card > .field, .external-link-entity-card > button { grid-column: 1 / -1; }
.external-link-entity-card > button { justify-self: start; }
.external-link-entity-icon { width: 42px; height: 42px; display: grid; place-items: center; border-radius: 12px; color: var(--ec-primary-700); background: var(--ec-primary-100); }
.external-link-scope-note { margin: 16px 0 0; }
.external-link-table table { min-width: 1040px; }
.external-link-table form { margin: 0; }

@media (max-width: 860px) {
  .external-link-copy-row { grid-template-columns: 1fr 1fr; }
  .external-link-copy-row .field { grid-column: 1 / -1; }
  .external-link-copy-row .button { justify-content: center; }
  .external-link-entity-grid { grid-template-columns: 1fr; }
}

@media (max-width: 520px) {
  .external-link-copy-row { grid-template-columns: 1fr; }
  .external-link-copy-row .button { width: 100%; }
  .external-link-entity-card > button { width: 100%; justify-content: center; }
}
.monetary-source-links { margin-top: 16px; }
.status-sucesso { color: var(--ec-success) !important; }
.status-falha { color: var(--ec-danger) !important; }
.status-contingencia { color: var(--ec-warning) !important; }
.trace-file-list { display: grid; gap: 9px; }
.trace-file { display: grid; grid-template-columns: 24px minmax(0, 1fr) 20px; align-items: center; gap: 10px; padding: 11px; border: 1px solid var(--ec-slate-200); border-radius: 11px; color: inherit; background: #fff; }
.trace-file:hover { border-color: var(--ec-primary); background: var(--ec-primary-50); }
.trace-file.static { grid-template-columns: 24px minmax(0, 1fr) auto; }
.trace-file.static:hover { border-color: var(--ec-slate-200); background: #fff; }
.trace-file > .ec-icon { color: var(--ec-primary); }
.trace-file span { min-width: 0; }
.trace-file strong, .trace-file small { display: block; overflow-wrap: anywhere; }
.trace-file small { margin-top: 3px; color: var(--ec-slate-500); font-size: 10px; }
.panel-subsection { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--ec-slate-100); }
.panel-subsection h3 { margin: 0 0 10px; font-size: 14px; }
.audit-details { margin-top: 14px; border: 1px solid var(--ec-slate-200); border-radius: 11px; background: var(--ec-slate-100); }
.audit-details > summary { padding: 11px 13px; color: var(--ec-slate-700); cursor: pointer; font-size: 12px; font-weight: 750; }
.audit-details[open] > summary { border-bottom: 1px solid var(--ec-slate-200); }
.audit-details > .table-wrap { margin: 0; padding: 10px; background: #fff; }
.trace-section-title { margin: 22px 0 12px; color: var(--ec-slate-800); font-size: 14px; }
.trace-section-title:first-of-type { margin-top: 0; }
.compact-timeline { margin-bottom: 18px; }
.trace-thread-links { display: grid; gap: 9px; margin: 16px 0; }
.trace-thread-links > a { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border: 1px solid var(--ec-slate-200); border-radius: 11px; background: var(--ec-slate-100); }
.trace-thread-links > a:hover { border-color: var(--ec-primary); }
.trace-thread-links strong, .trace-thread-links small { display: block; }
.trace-thread-links small { margin-top: 2px; color: var(--ec-slate-500); }

@media (max-width: 720px) {
  .note-trace-hero .actions-row { width: 100%; margin-top: 14px; }
  .note-trace-hero .actions-row .button { flex: 1; }
  .origin-data-details dl div { grid-template-columns: 1fr; }
}

/* Painel privativo de atividade e desempenho - v1 */
.activity-hero { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 24px; margin-bottom: 14px; padding: 24px; border: 1px solid #bfe2de; border-radius: 18px; color: var(--ec-slate-800); background: linear-gradient(135deg, #fff 0%, #eef9f7 100%); box-shadow: var(--ec-shadow-sm); }
.activity-hero h2 { margin: 7px 0 6px; color: var(--ec-slate-950); font-size: clamp(22px, 2.5vw, 32px); letter-spacing: -.025em; }
.activity-hero p { max-width: 850px; margin: 0; color: var(--ec-slate-600); line-height: 1.55; }
.activity-period-card { min-width: 245px; padding: 16px; border: 1px solid var(--ec-slate-200); border-radius: 14px; background: rgba(255,255,255,.88); }
.activity-period-card small, .activity-period-card span { display: block; color: var(--ec-slate-500); font-size: 11px; }
.activity-period-card strong { display: block; margin: 5px 0; color: var(--ec-primary-800); font-size: 16px; }
.activity-tabs { margin-bottom: 14px; }
.activity-tabs .button { flex: 0 0 auto; }
.activity-date-shortcuts { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 0 14px; }
.activity-metrics { grid-template-columns: repeat(6, minmax(145px, 1fr)); margin-bottom: 18px; }
.activity-metrics .metric-card { min-height: 138px; }
.activity-metrics .metric-card small { position: relative; z-index: 1; display: block; margin-top: 9px; color: var(--ec-slate-500); font-size: 10.5px; line-height: 1.4; }
.activity-user-table table, .activity-external-table table { min-width: 1180px; }
.activity-timeline-table table { min-width: 980px; }
.activity-company-list { display: flex; max-width: 350px; flex-wrap: wrap; gap: 5px; }
.activity-progress { width: 130px; height: 8px; margin-top: 8px; overflow: hidden; border-radius: 999px; background: var(--ec-slate-100); }
.activity-progress span { display: block; min-width: 2px; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--ec-primary-700), var(--ec-primary)); }
.activity-progress.external span { background: linear-gradient(90deg, #3978b7, #6ca6db); }
.activity-methodology { background: #fbfdfd; }
.activity-method-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.activity-method-grid > div { padding: 14px; border: 1px solid var(--ec-slate-200); border-radius: 12px; background: #fff; }
.activity-method-grid strong, .activity-method-grid span { display: block; }
.activity-method-grid span { margin-top: 6px; color: var(--ec-slate-500); font-size: 11px; line-height: 1.5; }

@media (max-width: 1180px) {
  .activity-metrics { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .activity-hero { grid-template-columns: 1fr; padding: 18px; }
  .activity-period-card { min-width: 0; }
  .activity-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .activity-method-grid { grid-template-columns: 1fr; }
}
@media (max-width: 440px) {
  .activity-metrics { grid-template-columns: 1fr; }
  .activity-tabs .button { flex: 1 1 100%; }
}
/* A navegação mantém o conteúdo disponível enquanto busca a próxima visão. */
.progressive-skeleton { margin-bottom: 14px; }
.progressive-skeleton > span, .progressive-skeleton > strong, .progressive-skeleton > small, .progressive-placeholder { display: block; border-radius: 6px; background: linear-gradient(90deg, #e9f0ef 20%, #f4f8f7 50%, #e9f0ef 80%); background-size: 200% 100%; animation: progressive-shimmer 1.6s linear infinite; }
.progressive-skeleton > span { width: 68%; height: 12px; }
.progressive-skeleton > strong { width: 42%; height: 26px; margin-top: 14px; }
.progressive-skeleton > small { width: 55%; height: 10px; margin-top: 12px; }
.progressive-placeholder { min-height: 100px; }
.progressive-error { margin-top: 14px; }
@keyframes progressive-shimmer { to { background-position-x: -200%; } }
@media (prefers-reduced-motion: reduce) { .progressive-skeleton > span, .progressive-skeleton > strong, .progressive-skeleton > small, .progressive-placeholder { animation: none; } }
.navigation-progress { position:fixed; z-index:1200; right:20px; bottom:20px; max-width:calc(100vw - 32px); padding:12px 18px; border:1px solid #bcdad6; border-radius:12px; background:#fff; color:#164d48; box-shadow:0 6px 26px #173f4026; font-size:14px; }
.navigation-progress[hidden] { display:none; }
.navigation-progress button { margin-left:10px; border:0; background:transparent; color:#087e73; cursor:pointer; font:inherit; text-decoration:underline; }
.pc-main .filter-toolbar { position:relative; z-index:25; }
.portal-ticket-actions [hidden] { display:none !important; }
.ticket-card[aria-busy="true"], .portal-ticket-card[aria-busy="true"] { opacity:.65; pointer-events:none; }
[data-navigation-region] :is(h1,h2)[tabindex="-1"]:focus { outline:none; }
.jornada-command-panel {
  border-top: 4px solid var(--primary, #0aa496);
}

.jornada-command-panel .panel-header,
.jornada-manager-header .panel-header {
  align-items: center;
}

.jornada-live-time {
  min-width: 220px;
  padding: 16px 18px;
  border-radius: 16px;
  background: linear-gradient(135deg, rgba(10, 164, 150, .12), rgba(10, 164, 150, .03));
  border: 1px solid rgba(10, 164, 150, .22);
  display: grid;
  gap: 4px;
}

.jornada-live-time strong {
  font-size: clamp(1.6rem, 3vw, 2.35rem);
  font-variant-numeric: tabular-nums;
}

.jornada-actions form,
.jornada-month-filter form,
.jornada-close-panel form {
  margin: 0;
}

.jornada-policy-note {
  margin: 14px 0 0;
  color: var(--text-muted, #667085);
  font-size: .9rem;
}

.jornada-month-filter .panel-header {
  align-items: end;
}

.jornada-month-filter input[type="month"] {
  min-height: 38px;
}

.money-card {
  background: linear-gradient(145deg, rgba(10, 164, 150, .11), rgba(255, 255, 255, .92));
}

.jornada-days {
  display: grid;
  gap: 14px;
}

.jornada-day {
  border: 1px solid var(--border, #e4e7ec);
  border-radius: 16px;
  overflow: hidden;
  background: var(--surface, #fff);
}

.jornada-day > header {
  padding: 14px 16px;
  display: flex;
  justify-content: space-between;
  gap: 16px;
  background: rgba(16, 24, 40, .025);
  border-bottom: 1px solid var(--border, #e4e7ec);
}

.jornada-day > header > div,
.jornada-day-total {
  display: grid;
  gap: 2px;
}

.jornada-day-total {
  text-align: right;
}

.jornada-session-row {
  padding: 14px 16px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
  gap: 12px;
}

.jornada-session-row > div {
  display: grid;
  gap: 3px;
}

.jornada-session-row small,
.jornada-day small,
.jornada-manager-header small {
  color: var(--text-muted, #667085);
}

.jornada-occurrences {
  padding: 0 16px 14px;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.jornada-occurrence {
  padding: 7px 10px;
  border-radius: 999px;
  background: #f2f4f7;
  color: #344054;
  font-size: .82rem;
}

.jornada-occurrence.bloqueio {
  background: #fff4e5;
  color: #8a4b08;
}

.jornada-occurrence.alerta {
  background: #fef3f2;
  color: #b42318;
}

.jornada-occurrence.pendente,
.jornada-occurrence.sem_comunicacao {
  background: #fef3f2;
  color: #b42318;
}

.jornada-occurrence.navegador-ausente {
  background: #fff1f3;
  color: #c01048;
}

.jornada-occurrence.restituicao {
  background: #ecfdf3;
  color: #067647;
}

.jornada-occurrence.desconsideracao {
  background: #fef3f2;
  color: #b42318;
}

.jornada-restitution-form,
.jornada-exclusion-form {
  margin: 0 16px 16px;
  padding: 14px;
  border-radius: 12px;
}

.jornada-restitution-form {
  border: 1px solid #a6f4c5;
  background: #f6fef9;
}

.jornada-exclusion-form {
  border: 1px solid #fecdca;
  background: #fffafa;
}

.jornada-adjustment-panel {
  border-left: 4px solid var(--ec-primary);
}

.jornada-adjustment-panel .form-grid > .actions-row,
.jornada-restitution-form > .actions-row,
.jornada-exclusion-form > .actions-row {
  grid-column: 1 / -1;
}

.jornada-request-table table {
  min-width: 1120px;
}

.jornada-request-table td {
  vertical-align: top;
}

.jornada-request-table td small {
  display: block;
  margin-top: 3px;
  color: var(--ec-slate-500);
  font-size: 10px;
}

.jornada-request-actions {
  display: grid;
  gap: 8px;
  min-width: 210px;
}

.jornada-request-actions form {
  margin: 0;
}

.jornada-reject-form {
  display: grid;
  grid-template-columns: minmax(110px, 1fr) auto;
  gap: 7px;
}

.jornada-reject-form input {
  min-height: 34px;
  font-size: 12px;
}

.jornada-request-details {
  margin: 0 16px 16px;
}

.jornada-request-details > summary {
  cursor: pointer;
  width: fit-content;
  color: var(--ec-primary-800);
  font-size: 12px;
  font-weight: 800;
}

.jornada-request-details .jornada-exclusion-form {
  margin: 10px 0 0;
}

.jornada-month-shortcuts {
  margin-top: 12px;
}

.token-once-panel textarea,
.token-once-panel input {
  font-family: ui-monospace, SFMono-Regular, Consolas, monospace;
}

@media (max-width: 980px) {
  .jornada-session-row { grid-template-columns: repeat(3, minmax(100px, 1fr)); }
}

@media (max-width: 640px) {
  .jornada-live-time { width: 100%; }
  .jornada-session-row { grid-template-columns: repeat(2, minmax(110px, 1fr)); }
  .jornada-day > header { align-items: start; }
}

/* Solicitações de melhoria */
.improvement-hero,
.improvement-detail-hero,
.improvement-form-intro {
  background: linear-gradient(135deg, #fff 35%, #edf9f7);
}

.improvement-metrics {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  margin-bottom: 20px;
}

.improvement-metrics .metric-card small {
  position: relative;
  z-index: 1;
  display: block;
  margin-top: 10px;
  color: var(--ec-slate-500);
  font-size: 11px;
}

.improvement-list {
  display: grid;
  gap: 12px;
}

.improvement-card {
  display: grid;
  gap: 10px;
  min-height: 132px;
  padding: 16px 18px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 14px;
  color: inherit;
  background: #fff;
  text-decoration: none;
  transition: border-color .15s, transform .15s, box-shadow .15s;
}

.improvement-card:hover {
  color: inherit;
  border-color: var(--ec-primary);
  transform: translateY(-1px);
  box-shadow: var(--ec-shadow-sm);
}

.improvement-card-top,
.improvement-card-meta,
.improvement-badges {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}

.improvement-card-top { justify-content: space-between; }
.improvement-code { color: var(--ec-primary-800); font-size: 12px; letter-spacing: .04em; }
.improvement-card h3 { margin: 0; color: var(--ec-slate-950); font-size: 16px; }
.improvement-card-meta { gap: 8px 18px; color: var(--ec-slate-500); font-size: 11px; }
.improvement-card.progressive-skeleton { min-height: 120px; }

.improvement-form { display: grid; gap: 20px; }
.improvement-title-field { grid-column: span 1; }
.improvement-form textarea,
.improvement-comment-panel textarea,
.improvement-development-panel textarea { resize: vertical; }

.improvement-upload-zone {
  display: grid;
  grid-template-columns: minmax(220px, .8fr) minmax(320px, 1.2fr);
  align-items: center;
  gap: 14px 22px;
  padding: 17px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 14px;
  background: var(--ec-slate-50, #f8fbfb);
}

.improvement-upload-zone p { margin: 4px 0 0; color: var(--ec-slate-500); font-size: 12px; }
.improvement-file-preview { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 8px; }
.improvement-file-chip { display: grid; gap: 2px; max-width: 270px; padding: 8px 10px; border-radius: 9px; background: var(--ec-primary-100); color: var(--ec-primary-800); }
.improvement-file-chip strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }
.improvement-file-chip small { font-size: 9px; opacity: .8; }

.improvement-detail-meta > div {
  display: grid;
  gap: 4px;
  padding: 12px;
  border: 1px solid var(--ec-slate-200);
  border-radius: 11px;
  background: rgba(255,255,255,.72);
}

.improvement-detail-meta span { color: var(--ec-slate-500); font-size: 10px; font-weight: 750; text-transform: uppercase; }
.improvement-detail-meta strong { color: var(--ec-slate-900); font-size: 13px; }
.improvement-detail-layout { display: grid; grid-template-columns: minmax(0, 1fr) 370px; align-items: start; gap: 20px; }
.improvement-detail-layout > main,
.improvement-detail-layout > aside { min-width: 0; }
.improvement-detail-layout > aside { position: sticky; top: calc(var(--topbar-height) + 16px); }
.improvement-copy { white-space: pre-wrap; overflow-wrap: anywhere; color: var(--ec-slate-700); font-size: 13px; line-height: 1.65; }
.improvement-section { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--ec-slate-100); }
.improvement-section h3 { margin: 0 0 9px; color: var(--ec-slate-900); font-size: 14px; }

.improvement-attachments { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 11px; }
.improvement-attachment { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 11px; border: 1px solid var(--ec-slate-200); border-radius: 11px; color: inherit; text-decoration: none; background: #fff; }
.improvement-attachment:hover { color: inherit; border-color: var(--ec-primary); }
.improvement-attachment.image { display: grid; padding: 7px; }
.improvement-attachment img { width: 100%; height: 145px; object-fit: cover; border-radius: 8px; background: var(--ec-slate-100); }
.improvement-attachment span { min-width: 0; }
.improvement-attachment strong,
.improvement-attachment small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.improvement-attachment strong { font-size: 11px; }
.improvement-attachment small { margin-top: 3px; color: var(--ec-slate-500); font-size: 9px; }

.stacked-form { display: grid; gap: 13px; }
.improvement-development-panel { border-color: #bfe6e1; }
.improvement-activity { min-height: 80px; }
.improvement-activity .timeline-content header > div { display: grid; gap: 2px; }
.improvement-activity .timeline-content header small { color: var(--ec-slate-500); font-size: 10px; }
.improvement-activity .timeline-item.internal .timeline-content { border-color: #e4ca83; background: #fffbef; }
.improvement-activity .timeline-item.internal .timeline-dot { background: #c79116; box-shadow: 0 0 0 1px #c79116; }
.improvement-activity-attachments { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.improvement-activity-attachment { display: flex; align-items: center; gap: 7px; max-width: 220px; padding: 7px 9px; border: 1px solid var(--ec-slate-200); border-radius: 9px; background: #fff; text-decoration: none; font-size: 10px; }
.improvement-activity-attachment.image { display: grid; padding: 5px; }
.improvement-activity-attachment img { width: 150px; height: 95px; object-fit: cover; border-radius: 6px; }
.improvement-activity-attachment span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 1100px) {
  .improvement-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .improvement-detail-layout { grid-template-columns: 1fr; }
  .improvement-detail-layout > aside { position: static; }
}

@media (max-width: 640px) {
  .improvement-metrics { grid-template-columns: 1fr; }
  .improvement-upload-zone { grid-template-columns: 1fr; }
  .improvement-card-top { align-items: flex-start; }
  .improvement-detail-meta { grid-template-columns: 1fr; }
  .improvement-attachments { grid-template-columns: 1fr; }
}
