:root {
  --red: #ef1b24;
  --red-dark: #c4121b;
  --navy: #111d2c;
  --navy-2: #1e2b3d;
  --ink: #162234;
  --muted: #68768a;
  --line: #dce4ec;
  --surface: #ffffff;
  --canvas: #f4f7fa;
  --success: #18794e;
  --warning: #a96808;
  --danger: #b4232f;
  --info: #175ca9;
  --radius: 14px;
  --shadow: 0 18px 48px rgba(17, 29, 44, .12);
  --sidebar-width: 278px;
  --font: Inter, Aptos, "Segoe UI", Arial, sans-serif;
}
* { box-sizing: border-box; }
html, body { width: 100%; margin: 0; min-height: 100%; font-family: var(--font); color: var(--ink); background: var(--canvas); }
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
img { display: block; max-width: 100%; }
.hidden { display: none !important; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Login */
.auth-page {
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  background: #fff;
}
.auth-page #app {
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
}
.login-page {
  width: 100vw;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  background: #fff;
}
.login-shell {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: 1fr 1fr;
  overflow: hidden;
  background: #fff;
}
.login-panel {
  min-width: 0;
  min-height: 0;
  display: grid;
  grid-template-rows: 1fr auto;
  align-items: center;
  justify-items: center;
  padding: clamp(22px, 4.2vh, 46px) clamp(28px, 5vw, 78px) clamp(18px, 3vh, 34px);
  overflow: hidden;
}
.login-content {
  width: min(470px, 100%);
  display: grid;
  align-content: center;
  justify-items: stretch;
}
.login-brand {
  display: grid;
  justify-items: center;
  gap: clamp(8px, 1.4vh, 14px);
  margin-bottom: clamp(22px, 3.8vh, 38px);
  text-align: center;
}
.login-brand img {
  width: clamp(138px, 13vw, 210px);
  height: auto;
}
.login-brand strong {
  font-size: clamp(22px, 2vw, 31px);
  letter-spacing: -.03em;
  color: var(--navy);
}
.login-form {
  width: 100%;
  display: grid;
  gap: clamp(12px, 1.8vh, 18px);
}
.field { display: grid; gap: 8px; font-weight: 750; color: #2a394c; }
.field input, .field select, .field textarea {
  width: 100%;
  min-height: clamp(48px, 6.1vh, 58px);
  border: 1px solid #cbd6e2;
  border-radius: 10px;
  padding: 12px 14px;
  color: var(--ink);
  background: #fff;
  outline: 0;
}
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--navy); box-shadow: 0 0 0 3px rgba(17, 29, 44, .10); }
.password-wrap { position: relative; }
.password-wrap input { padding-right: 48px; }
.icon-button { width: 40px; height: 40px; display: inline-grid; place-items: center; border: 0; border-radius: 9px; background: transparent; color: inherit; }
.password-wrap .icon-button { position: absolute; top: 50%; right: 5px; transform: translateY(-50%); }
.login-options { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 26px; }
.check-row { display: flex; align-items: center; gap: 8px; color: var(--muted); font-weight: 650; }
.check-row input { accent-color: var(--red); }
.link-button { border: 0; padding: 0; background: transparent; color: var(--info); font-weight: 750; }
.primary-button, .secondary-button, .danger-button { min-height: 42px; border: 0; border-radius: 10px; padding: 10px 16px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; }
.primary-button { background: var(--red); color: #fff; }
.primary-button:hover { background: var(--red-dark); }
.primary-button:disabled { opacity: .72; cursor: wait; }
.secondary-button { background: #edf3f8; color: var(--navy); }
.danger-button { background: #fde8ea; color: var(--danger); }
.login-submit {
  width: 100%;
  min-height: clamp(50px, 6.4vh, 58px);
  font-size: clamp(15px, 1.2vw, 17px);
}
.form-error {
  min-height: 38px;
  margin: 0;
  display: flex;
  align-items: center;
  color: var(--danger);
  font-size: 13px;
  line-height: 1.35;
}
.login-legal {
  width: min(470px, 100%);
  margin: clamp(12px, 2vh, 24px) 0 0;
  color: #8a96a5;
  text-align: center;
  font-size: 11px;
}
.login-visual {
  position: relative;
  width: 100%;
  height: 100dvh;
  min-height: 100dvh;
  max-height: 100dvh;
  overflow: hidden;
  background: var(--navy);
}
.login-visual picture {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
}
.login-visual img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  object-fit: cover;
  object-position: center center;
  filter: none;
  transform: none;
}
.login-visual::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
  background: linear-gradient(135deg, rgba(88, 5, 22, .60) 0%, rgba(44, 10, 38, .56) 45%, rgba(7, 22, 48, .60) 100%);
}


.app-loading{width:100vw;height:100dvh;display:grid;place-content:center;justify-items:center;gap:18px;overflow:hidden;background:#fff;color:var(--navy);font-weight:800}
.app-loading img{width:clamp(140px,16vw,220px);height:auto}
.app-loading span{color:var(--muted)}
@media (min-width:1600px){.login-visual img{object-position:52% center}}
@media (min-width:1200px) and (max-width:1599px){.login-visual img{object-position:54% center}}
@media (min-width:1101px) and (max-width:1199px){.login-visual img{object-position:56% center}}

/* Application */
.app-layout { min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; width: var(--sidebar-width); z-index: 50; display: flex; flex-direction: column; padding: 18px 14px; color: #fff; background: radial-gradient(circle at 78% 42%, rgba(255,255,255,.07), transparent 24%), linear-gradient(180deg, #0d1623, #172538 58%, #223146); box-shadow: 7px 0 30px rgba(17,29,44,.15); transition: width .2s ease, transform .2s ease; }
.sidebar.collapsed { width: 86px; }
.sidebar-header { display: grid; justify-items: center; gap: 8px; padding: 4px 8px 22px; }
.sidebar-logo { width: 146px; max-height: 78px; object-fit: contain; }
.sidebar-product { color: #bdc9d8; font-size: 12px; font-weight: 750; letter-spacing: .035em; text-align: center; }
.sidebar.collapsed .sidebar-product, .sidebar.collapsed .nav-title, .sidebar.collapsed .nav-label, .sidebar.collapsed .sidebar-help-copy { display: none; }
.sidebar.collapsed .sidebar-logo { width: 58px; }
.sidebar-toggle { position: absolute; right: -16px; top: 96px; width: 32px; height: 32px; border: 1px solid rgba(255,255,255,.14); border-radius: 50%; background: var(--navy-2); color: #fff; display: grid; place-items: center; }
.sidebar-nav { min-height: 0; overflow: auto; }
.nav-section { margin-bottom: 18px; }
.nav-title { margin: 0 0 7px; padding: 0 12px; color: #99aabc; text-transform: uppercase; letter-spacing: .12em; font-size: 10px; font-weight: 850; }
.nav-item { width: 100%; border: 0; background: transparent; color: #dce7f1; display: flex; align-items: center; gap: 11px; padding: 10px 12px; border-radius: 10px; text-align: left; font-weight: 680; }
.nav-item:hover, .nav-item:focus-visible { background: rgba(255,255,255,.08); color: #fff; outline: 0; }
.nav-item.active { background: var(--red); color: #fff; box-shadow: 0 8px 20px rgba(239,27,36,.24); }
.nav-icon { width: 20px; height: 20px; flex: 0 0 auto; }
.sidebar-footer { margin-top: auto; padding: 14px 8px 0; border-top: 1px solid rgba(255,255,255,.1); }
.sidebar-help { width: 100%; border: 0; border-radius: 10px; padding: 10px; display: flex; align-items: center; gap: 10px; color: #fff; background: rgba(255,255,255,.06); text-align: left; }
.sidebar-help small { display: block; color: #9fb0c2; margin-top: 2px; }
.main { margin-left: var(--sidebar-width); min-height: 100vh; transition: margin-left .2s ease; }
.sidebar.collapsed + .main { margin-left: 86px; }
.topbar { position: sticky; top: 0; z-index: 35; min-height: 76px; padding: 0 24px; background: #fff; border-bottom: 1px solid var(--line); display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.topbar-title p { margin: 0 0 2px; color: var(--red); text-transform: uppercase; letter-spacing: .09em; font-size: 10px; font-weight: 850; }
.topbar-title h1 { margin: 0; font-size: 22px; letter-spacing: -.025em; }
.topbar-actions { display: flex; align-items: center; gap: 8px; }
.global-search { width: min(420px, 34vw); min-height: 42px; display: flex; align-items: center; gap: 8px; border: 1px solid var(--line); border-radius: 10px; background: #f8fafc; padding: 0 11px; }
.global-search input { width: 100%; border: 0; outline: 0; background: transparent; }
.user-menu-wrap { position: relative; }
.user-button { border: 0; border-radius: 11px; padding: 5px 8px; background: transparent; display: flex; align-items: center; gap: 9px; color: var(--ink); }
.user-button:hover { background: #f1f5f8; }
.avatar { width: 36px; height: 36px; border-radius: 50%; display: grid; place-items: center; background: linear-gradient(135deg, #dce8f2, #aebfd0); color: var(--navy); font-weight: 900; }
.user-copy { display: grid; text-align: left; }
.user-copy small { color: var(--muted); }
.popover { position: absolute; top: calc(100% + 11px); right: 0; width: 320px; padding: 8px; background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: var(--shadow); }
.popover button { width: 100%; border: 0; border-radius: 8px; padding: 10px 11px; display: flex; align-items: center; gap: 9px; background: transparent; text-align: left; }
.popover button:hover { background: #f2f5f8; }
.popover .logout { color: var(--danger); }
.content { padding: 24px; }
.page-head { margin-bottom: 18px; display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; }
.page-head h2 { margin: 0 0 7px; font-size: 28px; letter-spacing: -.035em; }
.page-head p { margin: 0; color: var(--muted); line-height: 1.5; }
.page-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.toolbar { margin-bottom: 14px; padding: 12px; border: 1px solid var(--line); border-radius: 13px; background: #fff; display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.toolbar-left, .toolbar-right { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.search-input, .filter-select, .filter-input { min-height: 42px; border: 1px solid #cbd6e2; border-radius: 9px; background: #fff; padding: 10px 12px; color: var(--ink); outline: 0; }
.search-input { min-width: 260px; }
.filter-select { min-width: 150px; }
.filter-count { min-width: 24px; height: 24px; border-radius: 12px; display: grid; place-items: center; background: var(--red); color: #fff; font-size: 11px; font-weight: 850; }
.card, .panel, .kpi { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 3px 12px rgba(17,29,44,.035); }
.grid { display: grid; gap: 16px; }
.kpi-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); margin-bottom: 16px; }
.kpi { position: relative; padding: 18px; }
.kpi-label { color: var(--muted); font-size: 12px; font-weight: 750; }
.kpi-value { margin: 8px 0; font-size: 28px; font-weight: 900; letter-spacing: -.04em; }
.kpi-note { color: var(--success); font-size: 12px; font-weight: 750; }
.dashboard-grid { grid-template-columns: 1.3fr 1fr 1fr; }
.panel { padding: 18px; }
.panel-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; margin-bottom: 14px; }
.panel h3 { margin: 0; font-size: 16px; }
.table-card { overflow: hidden; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); }
.table-wrap { overflow: auto; }
table { width: 100%; border-collapse: collapse; }
.data-table { min-width: 980px; }
th { background: #f6f8fa; color: #637286; text-align: left; text-transform: uppercase; letter-spacing: .045em; font-size: 10px; padding: 12px 14px; border-bottom: 1px solid var(--line); }
td { padding: 13px 14px; border-bottom: 1px solid #edf1f5; vertical-align: middle; }
tr:hover td { background: #fbfcfd; }
.record-title { font-weight: 850; }
.record-sub { display: block; margin-top: 3px; color: var(--muted); font-size: 11px; }
.row-actions { display: flex; gap: 4px; }
.row-actions button { width: 34px; height: 34px; border: 0; border-radius: 8px; background: transparent; color: #526277; }
.row-actions button:hover { background: #edf2f6; color: var(--navy); }
.status { display: inline-flex; align-items: center; padding: 5px 8px; border-radius: 999px; background: #eef2f6; color: #415166; font-size: 11px; font-weight: 850; }
.status.success { background: #e7f6ed; color: var(--success); }
.status.warning { background: #fff3da; color: var(--warning); }
.status.danger { background: #fde7e9; color: var(--danger); }
.status.info { background: #e6f0fb; color: var(--info); }
.empty { padding: 56px 20px; text-align: center; color: var(--muted); }
.empty strong { display: block; color: var(--ink); font-size: 17px; margin-bottom: 7px; }
.kanban { display: grid; grid-template-columns: repeat(5, minmax(260px, 1fr)); gap: 14px; overflow: auto; }
.kanban-column { min-height: 520px; padding: 12px; border-radius: 13px; background: #edf2f6; }
.kanban-head { display: flex; justify-content: space-between; margin-bottom: 10px; }
.kanban-card { margin-bottom: 10px; padding: 13px; border: 1px solid #dbe3eb; border-radius: 11px; background: #fff; }
.kanban-card h4 { margin: 0 0 5px; }
.kanban-card p { margin: 0; color: var(--muted); font-size: 12px; }
.kanban-value { margin: 12px 0 8px; font-size: 17px; font-weight: 900; }
.alert-summary { position: fixed; right: 22px; bottom: 22px; z-index: 80; width: min(430px, calc(100vw - 44px)); padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.alert-summary header { display: flex; justify-content: space-between; gap: 12px; }
.alert-summary h2 { margin: 0; font-size: 19px; }
.alert-item { width: 100%; border: 0; background: transparent; text-align: left; display: flex; gap: 10px; padding: 12px 0; border-bottom: 1px solid #edf1f5; }
.alert-item:last-child { border-bottom: 0; }
.alert-priority { width: 9px; height: 9px; margin-top: 5px; border-radius: 50%; background: var(--red); }
.alert-item div { flex: 1; }
.alert-item small { display: block; color: var(--muted); margin-top: 4px; }
.modal-backdrop { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 20px; background: rgba(2,12,22,.58); backdrop-filter: blur(3px); }
.modal { width: min(760px, 100%); max-height: calc(100vh - 40px); display: flex; flex-direction: column; overflow: hidden; background: #fff; border-radius: 16px; box-shadow: 0 30px 90px rgba(0,0,0,.28); }
.modal-header { padding: 18px 20px; border-bottom: 1px solid var(--line); display: flex; justify-content: space-between; gap: 14px; }
.modal-header h2 { margin: 0; }
.modal-body { padding: 20px; overflow: auto; }
.modal-footer { padding: 14px 20px; border-top: 1px solid var(--line); display: flex; justify-content: flex-end; gap: 9px; background: #fafbfc; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-grid .span-2 { grid-column: 1 / -1; }
.form-grid label { display: grid; gap: 7px; font-weight: 750; }
.form-grid textarea { min-height: 96px; resize: vertical; }
.toast-root { position: fixed; right: 20px; bottom: 20px; z-index: 130; display: grid; gap: 9px; }
.toast { width: min(380px, calc(100vw - 40px)); padding: 13px 15px; border: 1px solid var(--line); border-left: 4px solid var(--success); border-radius: 10px; background: #fff; box-shadow: var(--shadow); }
.toast strong { display: block; }
.toast p { margin: 4px 0 0; color: var(--muted); font-size: 12px; }
.mobile-menu { display: none; }


@media (max-width: 820px) {
  .login-shell { grid-template-columns: 1fr; }
  .login-visual { display: none; }
  .login-panel { padding-inline: clamp(22px, 8vw, 84px); }
  .login-content, .login-legal { width: min(480px, 100%); }
}
@media (max-width: 560px) {
  .login-panel { padding: clamp(18px, 3vh, 28px) 20px clamp(14px, 2.2vh, 22px); }
  .login-brand { margin-bottom: clamp(16px, 3vh, 26px); }
  .login-brand img { width: clamp(124px, 38vw, 170px); }
  .login-brand strong { font-size: clamp(20px, 6vw, 26px); }
  .login-options { gap: 10px; font-size: 12px; }
  .form-error { min-height: 34px; font-size: 12px; }
  .login-legal { margin-top: 10px; font-size: 10px; }
}
@media (max-height: 740px) and (min-width: 821px) {
  .login-panel { padding-block: 18px 14px; }
  .login-brand { margin-bottom: 18px; }
  .login-brand img { width: 142px; }
  .login-brand strong { font-size: 22px; }
  .login-form { gap: 11px; }
  .field input { min-height: 46px; }
  .login-submit { min-height: 48px; }
  .form-error { min-height: 30px; }
  .login-legal { margin-top: 8px; }
}
@media (max-width: 1180px) {
  .kpi-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .dashboard-grid { grid-template-columns: 1fr 1fr; }
  .global-search { width: 300px; }
}
@media (max-width: 900px) {
  .sidebar { transform: translateX(-105%); }
  .sidebar.open { transform: translateX(0); width: var(--sidebar-width); }
  .sidebar.open .nav-title, .sidebar.open .nav-label, .sidebar.open .sidebar-help-copy, .sidebar.open .sidebar-product { display: initial; }
  .sidebar.open .sidebar-logo { width: 146px; }
  .sidebar-toggle { display: none; }
  .main, .sidebar.collapsed + .main { margin-left: 0; }
  .mobile-menu { display: inline-grid; }
  .dashboard-grid { grid-template-columns: 1fr; }
  .toolbar, .page-head { align-items: flex-start; flex-direction: column; }
  .toolbar-left, .toolbar-right, .page-actions { width: 100%; }
}
@media (max-width: 640px) {
  body { font-size: 13px; }
  .topbar { min-height: 68px; padding: 0 14px; }
  .global-search { display: none; }
  .user-copy { display: none; }
  .content { padding: 14px; }
  .page-head h2 { font-size: 24px; }
  .kpi-grid { grid-template-columns: 1fr; }
  .search-input, .filter-select, .filter-input { width: 100%; min-width: 0; }
  .page-actions > * { flex: 1 1 140px; }
  .form-grid { grid-template-columns: 1fr; }
  .form-grid .span-2 { grid-column: auto; }
  .modal-backdrop { padding: 0; }
  .modal { width: 100%; height: 100%; max-height: 100vh; border-radius: 0; }
  .kanban { grid-template-columns: repeat(5, 84vw); }
}
.sidebar-close { display: none; position: absolute; right: 12px; top: 12px; color: var(--navy); }
.sidebar-backdrop { display: none; position: fixed; inset: 0; z-index: 45; border: 0; background: rgba(2,12,22,.48); opacity: 0; pointer-events: none; }
.sidebar-backdrop.show { opacity: 1; pointer-events: auto; }
@media (max-width: 900px) {
  .sidebar-close { display: grid; }
  .sidebar-backdrop { display: block; }
}
.boot-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;gap:18px;background:#f4f7fa;color:#68778b}.boot-screen img{width:min(220px,58vw);height:auto}.boot-screen p{margin:0;font-weight:700}

/* Visão Global dinâmica */
.global-filter-shell { margin-bottom: 18px; padding: 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: 0 3px 14px rgba(17,29,44,.04); }
.global-filter-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:14px; }
.global-filter-head > div:first-child { display:grid; gap:3px; }
.global-filter-head span { color:var(--muted); font-size:12px; }
.global-filter-actions { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.global-filter-grid { display:grid; grid-template-columns:repeat(5,minmax(150px,1fr)); gap:10px; }
.global-filter { display:grid; gap:5px; min-width:0; }
.global-filter > span { color:#536275; font-size:11px; font-weight:800; text-transform:uppercase; letter-spacing:.035em; }
.global-filter select,.global-filter input { width:100%; min-width:0; border:1px solid #cfd8e3; background:#fff; border-radius:9px; padding:10px 11px; color:var(--ink); outline:none; }
.global-filter select:focus,.global-filter input:focus { border-color:#225f9f; box-shadow:0 0 0 3px rgba(34,95,159,.10); }
.global-filter select:disabled,.global-filter input:disabled { background:#eef2f6; color:#536275; cursor:not-allowed; }
.global-filter-progress { display:flex; align-items:center; gap:8px; margin-top:12px; color:var(--muted); font-size:12px; }
.global-filter-progress i { width:100%; max-width:180px; height:4px; border-radius:999px; overflow:hidden; background:linear-gradient(90deg,#c91420 0 35%,#d5dce5 35% 65%,#c91420 65% 100%); background-size:200% 100%; animation:globalProgress 1.1s linear infinite; }
@keyframes globalProgress { to { background-position:-200% 0; } }
.global-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:14px; }
.global-summary > div { display:flex; align-items:baseline; gap:8px; padding:12px 14px; background:#fff; border:1px solid var(--line); border-radius:10px; }
.global-summary strong { color:var(--navy); font-size:18px; }
.global-summary span { color:var(--muted); font-size:12px; }
.global-metrics-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin-bottom:16px; }
.global-kpi { min-height:126px; text-align:left; }
.global-kpi .kpi-value { font-size:24px; }
.kpi-note.positive { color:#16834c; }
.kpi-note.negative { color:#b81d2b; }
.global-dashboard-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.global-bars { display:grid; gap:10px; }
.global-bar-row { display:grid; grid-template-columns:minmax(92px,1fr) minmax(100px,2fr) auto; align-items:center; gap:9px; width:100%; border:0; background:transparent; padding:4px 0; text-align:left; }
.global-bar-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#344357; font-weight:700; font-size:12px; }
.global-bar-track { display:block; height:8px; background:#e9eef4; border-radius:999px; overflow:hidden; }
.global-bar-track i { display:block; height:100%; border-radius:999px; background:linear-gradient(90deg,#bc1520,#ef2934); }
.global-bar-row strong { min-width:65px; text-align:right; font-size:12px; color:var(--navy); }
.global-loading { min-height:360px; display:grid; place-content:center; justify-items:center; gap:10px; text-align:center; color:var(--muted); background:#fff; border:1px solid var(--line); border-radius:var(--radius); }
.global-loading strong { color:var(--ink); font-size:17px; }
.global-loading p { margin:0; max-width:480px; }
.loading-spinner { width:34px; height:34px; border:3px solid #dce3eb; border-top-color:#c91420; border-radius:50%; animation:spin .75s linear infinite; }
@keyframes spin { to { transform:rotate(360deg); } }
.global-error { display:grid; justify-items:start; gap:8px; }
.global-error p { color:var(--muted); margin:0 0 5px; }

@media(max-width:1280px){
  .global-filter-grid { grid-template-columns:repeat(4,minmax(150px,1fr)); }
  .global-metrics-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }
  .global-dashboard-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media(max-width:900px){
  .global-filter-head { align-items:flex-start; flex-direction:column; }
  .global-filter-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .global-metrics-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .global-summary { grid-template-columns:1fr; }
  .global-dashboard-grid { grid-template-columns:1fr; }
}
@media(max-width:560px){
  .global-filter-grid,.global-metrics-grid { grid-template-columns:1fr; }
  .global-filter-actions { width:100%; }
  .global-filter-actions .secondary-button { flex:1; }
}

/* Relatórios comerciais v5.6 */
.report-navigation { display:flex; gap:6px; margin:0 0 18px; padding:6px; overflow:auto; background:#e9eef4; border-radius:12px; }
.report-navigation button { border:0; background:transparent; color:#536275; padding:10px 14px; border-radius:9px; font-weight:800; white-space:nowrap; }
.report-navigation button.active,.report-navigation button:hover { background:#fff; color:var(--navy); box-shadow:0 2px 8px rgba(17,29,44,.08); }
.report-navigation button span { display:inline-grid; min-width:20px; height:20px; margin-left:5px; place-items:center; border-radius:999px; background:#dbe3ec; font-size:10px; }
.report-catalog-toolbar { display:flex; align-items:center; gap:10px; margin-bottom:14px; }
.report-catalog-toolbar input,.report-catalog-toolbar select { min-height:42px; border:1px solid #cfd8e3; border-radius:9px; background:#fff; padding:9px 12px; color:var(--ink); }
.report-catalog-toolbar input { flex:1; min-width:220px; }
.report-catalog-toolbar span { margin-left:auto; color:var(--muted); }
.report-catalog-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.report-card { display:flex; flex-direction:column; min-height:315px; padding:18px; border:1px solid var(--line); border-radius:14px; background:#fff; box-shadow:0 3px 14px rgba(17,29,44,.04); }
.report-card header,.report-card footer { display:flex; align-items:center; gap:7px; }
.report-card header { justify-content:space-between; }
.report-card h3 { margin:15px 0 7px; font-size:18px; }
.report-card p { min-height:58px; margin:0 0 13px; color:var(--muted); line-height:1.45; }
.report-card dl { display:grid; gap:7px; margin:0 0 16px; }
.report-card dl div { display:flex; justify-content:space-between; gap:12px; font-size:11px; }
.report-card dt { color:var(--muted); }
.report-card dd { margin:0; text-align:right; font-weight:750; }
.report-card footer { margin-top:auto; flex-wrap:wrap; }
.report-category { padding:5px 8px; border-radius:999px; background:#edf3f8; color:#37516d; font-size:10px; font-weight:850; text-transform:uppercase; letter-spacing:.035em; }
.report-favourite { border:0; background:transparent; color:#a9b3bf; font-size:22px; }
.report-favourite.active { color:#d89200; }
.global-advanced-filters { margin-top:12px; border-top:1px solid #e7ecf1; padding-top:10px; }
.global-advanced-filters summary { cursor:pointer; color:#3e536b; font-size:12px; font-weight:850; }
.global-filter-grid.advanced { margin-top:11px; }
.executive-report-header { display:grid; grid-template-columns:150px 1fr auto; gap:20px; align-items:center; margin-bottom:16px; padding:20px; border-top:7px solid var(--red); border-radius:13px; background:#fff; box-shadow:0 3px 14px rgba(17,29,44,.05); }
.executive-report-header img { width:130px; height:auto; }
.executive-report-header span,.executive-report-header p,.executive-report-header dt { color:var(--muted); font-size:11px; }
.executive-report-header h2 { margin:5px 0; font-size:27px; }
.executive-report-header dl { display:grid; gap:7px; margin:0; }
.executive-report-header dl div { display:grid; grid-template-columns:120px 1fr; gap:8px; }
.executive-report-header dd { margin:0; font-weight:750; }
.report-summary p { margin:8px 0; line-height:1.55; }
.report-recommendations { margin-top:16px; padding:14px; border-left:4px solid var(--red); border-radius:8px; background:#f8f1f2; }
.report-recommendations ul { margin:8px 0 0 18px; padding:0; }
.report-metric-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:11px; margin:16px 0; }
.report-metric { min-height:145px; padding:15px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 2px 10px rgba(17,29,44,.035); }
.report-metric header { display:flex; justify-content:space-between; gap:8px; color:var(--muted); font-size:11px; font-weight:800; }
.report-metric > strong { display:block; margin:14px 0 8px; color:var(--navy); font-size:23px; }
.report-metric small { display:block; min-height:30px; color:var(--muted); }
.report-metric footer { margin-top:10px; padding-top:8px; border-top:1px solid #edf1f5; color:#8b97a6; font-size:10px; }
.metric-help { width:22px; height:22px; border:0; border-radius:50%; background:#e9eff5; color:#3b5977; font-weight:900; }
.report-chart-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.report-secondary-grid { grid-template-columns:1fr 1fr; margin:16px 0; }
.report-forecast-row { display:grid; grid-template-columns:1fr 55px 110px; align-items:center; gap:8px; padding:10px 0; border-bottom:1px solid #edf1f5; }
.report-forecast-row small { grid-column:1/-1; color:var(--muted); }
.quality-row { width:100%; display:grid; grid-template-columns:12px 1fr auto; gap:9px; align-items:center; padding:9px 0; border:0; border-bottom:1px solid #edf1f5; background:transparent; text-align:left; }
.quality-dot { width:9px; height:9px; border-radius:50%; background:#8c98a7; }
.quality-dot.warning { background:#d58a00; }
.quality-dot.success { background:#16864c; }
.report-detail-section { margin-top:16px; padding:18px; border:1px solid var(--line); border-radius:13px; background:#fff; }
.report-detail-section .panel-head p { margin:5px 0 0; color:var(--muted); }
.report-table-toolbar { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:12px; border-bottom:1px solid var(--line); }
.report-table-toolbar input { min-width:280px; border:1px solid #cfd8e3; border-radius:9px; padding:10px 12px; }
.report-data-table th button { border:0; background:transparent; color:inherit; font:inherit; text-transform:inherit; letter-spacing:inherit; }
.report-data-table td[hidden],.report-data-table th[hidden] { display:none; }

@media(max-width:1180px){.report-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.report-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.executive-report-header{grid-template-columns:120px 1fr}.executive-report-header dl{grid-column:1/-1;grid-template-columns:repeat(3,1fr)}}
@media(max-width:900px){.report-catalog-grid,.report-chart-grid,.report-secondary-grid{grid-template-columns:1fr}.report-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.executive-report-header{grid-template-columns:1fr;text-align:center}.executive-report-header img{margin:auto}.report-catalog-toolbar{align-items:stretch;flex-direction:column}.report-catalog-toolbar span{margin:0}.executive-report-header dl{grid-template-columns:1fr;text-align:left}}
@media(max-width:620px){.report-metric-grid{grid-template-columns:1fr}.report-card{min-height:auto}.report-table-toolbar{align-items:stretch;flex-direction:column}.report-table-toolbar input{min-width:0;width:100%}.executive-report-header dl div{grid-template-columns:1fr}.report-navigation{margin-inline:-4px}}

/* v5.8 CRM, Apoio ao Cliente e identidade */
.login-claim{display:none!important}
.sidebar-logo{width:148px!important;max-height:100px;object-fit:contain;margin:6px auto 4px;filter:none!important}
.sidebar.collapsed .sidebar-logo{width:58px!important;object-position:left center}
.sidebar-product{font-size:13px;letter-spacing:.02em;color:#f5f7fa;text-align:center;margin-top:3px}
.crm-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.crm-kpis .metric-card{padding:18px;display:grid;gap:8px}.crm-kpis .metric-card span{color:var(--muted);font-size:12px;font-weight:700}.crm-kpis .metric-card strong{font-size:27px}
.crm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.client-card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:18px;box-shadow:0 5px 18px rgba(17,29,44,.05)}.client-card header{display:flex;justify-content:space-between;gap:15px}.client-card h3{margin:8px 0 4px;font-size:20px}.client-card p{margin:0;color:var(--muted)}.client-state,.risk-badge{display:inline-flex;border-radius:999px;padding:5px 9px;background:#eef2f6;font-size:11px;font-weight:800}.client-meta{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.client-meta span{display:grid;gap:3px;color:#3f4f62}.client-meta b{font-size:11px;color:var(--muted);text-transform:uppercase}.client-card footer{display:flex;gap:9px}.crm-tabs{display:flex;gap:6px;overflow:auto;margin:-4px 0 16px}.crm-tabs button{white-space:nowrap;border:0;background:#eef3f7;border-radius:8px;padding:9px 12px;font-weight:700}.crm-tabs button.active{background:var(--navy);color:#fff}.crm-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.detail-panel{border:1px solid var(--line);border-radius:12px;padding:15px;background:#fff}.detail-panel h3{margin:0 0 12px}.detail-panel.span-2{grid-column:1/-1}.detail-list{display:grid;gap:8px;margin:0}.detail-list div{display:grid;grid-template-columns:145px 1fr;gap:10px;border-bottom:1px solid #edf1f5;padding-bottom:7px}.detail-list dt{font-size:11px;color:var(--muted);font-weight:800}.detail-list dd{margin:0;font-weight:650}.contact-line{display:grid;gap:3px;padding:9px 0;border-bottom:1px solid #edf1f5}.contact-line span{color:var(--muted);font-size:12px}.crm-counter-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.crm-counter-row span{font-size:24px;font-weight:900;background:#f5f8fb;border-radius:10px;padding:15px}.crm-counter-row small{display:block;font-size:11px;color:var(--muted);margin-top:4px}.timeline{display:grid}.timeline button{border:0;background:transparent;display:flex;gap:10px;text-align:left;padding:9px;border-bottom:1px solid #edf1f5}.timeline button:hover{background:#f7f9fb}.timeline-dot{width:9px;height:9px;border-radius:50%;background:var(--red);margin-top:5px}.timeline small{display:block;color:var(--muted);margin-top:3px}.import-preview{border:1px dashed #bdc8d5;border-radius:10px;padding:14px;background:#fafbfd;min-height:90px}.restricted-panel{background:#fffaf2}
@media(max-width:1000px){.crm-grid{grid-template-columns:1fr}.crm-kpis{grid-template-columns:repeat(2,1fr)}.crm-detail-grid{grid-template-columns:1fr}.detail-panel.span-2{grid-column:auto}}
@media(max-width:620px){.crm-kpis{grid-template-columns:1fr}.client-meta{grid-template-columns:1fr}.client-card footer{flex-direction:column}.detail-list div{grid-template-columns:1fr}.sidebar-logo{width:132px!important}}
.compact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px solid #edf1f5}.compact-row:last-child{border-bottom:0}.compact-row>div{display:grid;gap:3px}.compact-row small{display:block;color:var(--muted);font-size:12px}.compact-row b{white-space:nowrap}

/* =========================================================
   MyTMB v6.2 — Sistema visual transversal
   Referência: Visão Global da Atividade Comercial
   ========================================================= */
:root{
  --red:#d71920;
  --red-dark:#b70f16;
  --navy:#0f1c2b;
  --navy-2:#18283a;
  --ink:#172235;
  --muted:#6d7a8d;
  --line:#dfe5ec;
  --line-soft:#edf1f5;
  --surface:#ffffff;
  --canvas:#f6f8fb;
  --success:#14914f;
  --warning:#e18a00;
  --danger:#d71920;
  --info:#246fc7;
  --radius:8px;
  --shadow:0 2px 8px rgba(15,28,43,.055);
  --shadow-hover:0 8px 22px rgba(15,28,43,.09);
  --sidebar-width:206px;
}
html,body{background:var(--canvas);font-size:13px}
body:not(.auth-page){min-width:320px}
button,input,select,textarea{transition:border-color .16s ease,box-shadow .16s ease,background .16s ease,color .16s ease,transform .16s ease}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(215,25,32,.26);outline-offset:2px}

/* Estrutura base */
.app-layout{min-height:100vh;background:var(--canvas)}
.sidebar{
  width:var(--sidebar-width);
  padding:22px 8px 14px;
  position:fixed;
  inset:0 auto 0 0;
  overflow:hidden;
  background:
    linear-gradient(180deg,rgba(255,255,255,.97) 0%,rgba(255,247,248,.98) 23%,rgba(252,220,223,.96) 62%,rgba(243,180,185,.94) 100%);
  box-shadow:8px 0 28px rgba(95,19,28,.08);
  border-right:1px solid rgba(188,34,48,.13);
}
.sidebar::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(155deg,rgba(255,255,255,.55) 0%,rgba(255,255,255,0) 42%,rgba(205,21,37,.10) 100%)}
.sidebar::after{
  content:"";
  position:absolute;
  left:-30px;
  right:-42px;
  bottom:-22px;
  height:48%;
  z-index:0;
  pointer-events:none;
  background:url("assets/tmb-login-layout-oficial-clean-v6148.png") 57% 100%/cover no-repeat;
  opacity:.075;
  filter:grayscale(1) contrast(.82) brightness(.86);
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.22) 24%,#000 100%);
  mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.22) 24%,#000 100%);
}
.sidebar > *{position:relative;z-index:1}
.sidebar.collapsed{width:68px;padding-inline:7px}
.sidebar-header{gap:6px;padding:0 8px 22px}
.sidebar-logo{width:142px!important;max-height:76px;margin:0 auto 4px!important}
.sidebar-product{font-size:14px;font-weight:800;line-height:1.35;color:var(--navy);letter-spacing:0}
.sidebar-product::first-line{font-size:16px}
.sidebar.collapsed .sidebar-logo{width:52px!important}
.sidebar.collapsed .sidebar-header{padding-inline:0}
.sidebar-toggle{display:none}
.sidebar-nav{padding-right:0;scrollbar-width:thin;scrollbar-color:rgba(77,29,35,.18) transparent}
.nav-section{margin:0 0 10px}
.nav-title{margin:11px 0 4px;padding:0 13px;color:#c82a37;font-size:9px;letter-spacing:.12em}
.nav-item{position:relative;min-height:38px;gap:10px;padding:9px 12px;margin:2px 0;border:1px solid transparent;border-radius:11px;color:#1d2839;font-size:13px;font-weight:640;background:transparent}
.nav-item .nav-icon{width:17px;height:17px;color:#4f5f70}
.nav-item:hover,.nav-item:focus-visible{background:rgba(255,255,255,.62);border-color:rgba(200,42,55,.14);color:var(--navy)}
.nav-item.active{background:rgba(255,255,255,.84);border-color:rgba(215,25,32,.2);box-shadow:0 8px 22px rgba(141,23,34,.1);color:var(--red)}
.nav-item.active::before{content:"";position:absolute;left:-8px;top:6px;bottom:6px;width:4px;border-radius:0 4px 4px 0;background:linear-gradient(180deg,#ff2633 0%,#d71920 100%)}
.nav-item.active .nav-icon{color:var(--red)}
.sidebar-footer{display:grid;gap:6px;padding:12px 8px 0}
.sidebar-collapse-action,.sidebar-help{width:100%;min-height:34px;border:1px solid transparent;border-radius:10px;padding:8px 7px;display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.28);color:#4f5f70;text-align:left;font-size:12px}
.sidebar-collapse-action:hover,.sidebar-help:hover{background:rgba(255,255,255,.72);border-color:rgba(200,42,55,.14);color:var(--navy)}
.sidebar-collapse-action>span{font-weight:650}
.sidebar-help{display:none}
.sidebar.collapsed .sidebar-collapse-action span{display:none}
.sidebar.collapsed .sidebar-collapse-action{justify-content:center;font-size:20px}
.sidebar.collapsed .nav-item{justify-content:center;padding-inline:8px}
.sidebar.collapsed .nav-item.active::before{left:-7px}

.main{margin-left:var(--sidebar-width);min-height:100vh;background:var(--canvas)}
.sidebar.collapsed + .main{margin-left:68px}
.topbar{
  min-height:58px;height:58px;padding:0 24px;
  background:#fff;border-bottom:1px solid #e6eaf0;
  box-shadow:0 1px 0 rgba(15,28,43,.015)
}
.topbar-left{display:flex;align-items:center;gap:10px}
.topbar-product{display:none;color:var(--ink);font-weight:850}
.topbar-actions{gap:7px}
.topbar-icon-button{
  position:relative;width:38px;height:38px;padding:0;border:0;border-radius:7px;
  display:grid;place-items:center;background:transparent;color:#101b2b
}
.topbar-icon-button:hover{background:#f2f5f8}
.topbar-icon-button .nav-icon{width:19px;height:19px}
.notification-badge{
  position:absolute;top:1px;right:0;min-width:16px;height:16px;padding:0 4px;border-radius:9px;
  display:grid;place-items:center;background:var(--red);color:#fff;border:2px solid #fff;font-size:8px;font-weight:900
}
.user-button{min-height:42px;padding:3px 4px 3px 8px;border-left:1px solid #edf0f4;border-radius:0;background:#fff}
.user-button:hover{background:#f7f9fb}
.avatar{width:34px;height:34px;font-size:11px;background:linear-gradient(135deg,#d8e2eb,#aebdca);box-shadow:inset 0 0 0 2px #fff,0 0 0 1px #d9e0e7}
.user-copy strong{font-size:12px}.user-copy small{font-size:10px}.user-chevron{padding:0 6px;color:#3b495b;font-size:15px}
.popover{width:270px;border-radius:8px;border-color:#dfe5ec;box-shadow:0 16px 36px rgba(15,28,43,.14)}

.content{padding:18px 24px 28px;max-width:1700px;margin:0 auto}
.page-head{margin-bottom:12px;align-items:center}
.page-head h2{margin:0 0 3px;font-size:23px;line-height:1.15;letter-spacing:-.035em;color:#111d2c}
.page-head p{font-size:11px;line-height:1.35;color:#667589}
.page-actions{gap:8px}
.page-actions .primary-button,.page-actions .secondary-button,.page-actions .danger-button{min-height:36px;padding:8px 13px}

/* Botões e formulários */
.primary-button,.secondary-button,.danger-button{min-height:38px;border-radius:7px;padding:8px 13px;font-size:12px;font-weight:750;box-shadow:none}
.primary-button{background:linear-gradient(180deg,#dd1d24,#c90f16)}
.primary-button:hover{background:#b80e15;transform:translateY(-1px)}
.secondary-button{background:#fff;border:1px solid #d8dee6;color:#253448}
.secondary-button:hover{background:#f5f7fa;border-color:#c8d1dc}
.danger-button{border:1px solid #f0c8cb;background:#fff2f3}
.link-button{color:#d3121a;font-size:11px;font-weight:780}
.field{gap:6px;font-size:11px}
.field input,.field select,.field textarea,.search-input,.filter-select,.filter-input{
  min-height:38px;border:1px solid #d5dde6;border-radius:6px;padding:8px 10px;background:#fff;color:#1c2a3d
}
.field input:focus,.field select:focus,.field textarea:focus,.search-input:focus,.filter-select:focus,.filter-input:focus{border-color:#aebac7;box-shadow:0 0 0 3px rgba(31,77,125,.08)}

/* Cartões, painéis e grelhas */
.card,.panel,.kpi,.table-card,.report-card,.report-metric,.detail-panel,.client-card,.metric-card{
  border:1px solid var(--line);border-radius:8px;background:#fff;box-shadow:var(--shadow)
}
.panel{padding:14px}
.panel:hover,.client-card:hover,.report-card:hover{box-shadow:var(--shadow-hover)}
.panel-head{margin-bottom:10px;align-items:center}
.panel h3,.panel-head h3{font-size:13px;color:#172235}
.grid{gap:12px}
.dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}

/* Filtros transversais */
.toolbar{
  margin-bottom:12px;padding:10px;border-radius:8px;border-color:var(--line);background:#fff;box-shadow:var(--shadow)
}
.toolbar-left,.toolbar-right{gap:7px}
.search-input{min-width:260px}
.filter-count{min-width:20px;height:20px;padding:0 6px;border-radius:10px;font-size:9px}
.global-filter-shell{margin-bottom:12px;padding:12px 14px;border-radius:8px;box-shadow:var(--shadow)}
.global-filter-head{margin-bottom:10px}
.global-filter-head>div:first-child strong{font-size:12px}
.global-filter-head>div:first-child span{font-size:10px}
.global-filter-actions{gap:6px}
.global-filter-actions .secondary-button{min-height:34px;padding:7px 10px}
.global-filter-grid{grid-template-columns:repeat(7,minmax(125px,1fr));gap:8px 10px}
.global-filter{gap:4px}
.global-filter>span{font-size:9px;letter-spacing:0;text-transform:none;color:#253448;font-weight:760}
.global-filter select,.global-filter input{min-height:36px;border-radius:6px;padding:7px 9px;font-size:11px}
.global-advanced-filters{margin-top:9px;padding-top:8px}
.global-advanced-filters summary{font-size:10px}
.global-summary{display:none}

/* KPIs */
.global-metrics-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:12px}
.global-kpi{
  min-height:88px;padding:13px 12px;display:flex;align-items:flex-start;gap:10px;text-align:left;border-radius:8px
}
.global-kpi:hover{border-color:#cdd6df;box-shadow:var(--shadow-hover);transform:translateY(-1px)}
.kpi-icon{width:38px;height:38px;flex:0 0 38px;border-radius:50%;display:grid;place-items:center;background:#fff1e7;color:#ef8c14}
.kpi-icon .nav-icon{width:20px;height:20px}
.global-kpi:nth-child(4n/**/+2) .kpi-icon{background:#edf3ff;color:#256ed7}
.global-kpi:nth-child(4n/**/+3) .kpi-icon{background:#f1ebff;color:#754bd1}
.global-kpi:nth-child(4n/**/+4) .kpi-icon{background:#eaf8ef;color:#168d4d}
.kpi-copy{min-width:0;display:grid;gap:2px}
.global-kpi .kpi-label{font-size:10px;color:#4e5d70;white-space:normal}
.global-kpi .kpi-value{margin:0;font-size:20px;line-height:1.15;color:#111d2c;letter-spacing:-.035em}
.global-kpi .kpi-note{font-size:9px;font-weight:760;color:#8b97a5}
.global-kpi .kpi-note small{font-weight:500;color:#7d8998}
.global-kpi .kpi-note.positive{color:#15914d}.global-kpi .kpi-note.negative{color:#d21b24}

/* Gráficos, listas e rankings */
.global-dashboard-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.global-bars{gap:8px}
.global-bar-row{grid-template-columns:minmax(82px,1fr) minmax(85px,1.6fr) auto;gap:8px;padding:3px 0}
.global-bar-label{font-size:10px}
.global-bar-track{height:7px;background:#edf1f5}
.global-bar-track i{background:linear-gradient(90deg,#d71920,#ef5f63)}
.global-bar-row strong{font-size:10px}
.alert-item{border-radius:5px;padding:9px 7px}
.alert-item:hover{background:#f7f9fb}
.alert-item strong{font-size:11px}.alert-item small{font-size:9px;color:#758296}
.alert-priority{width:7px;height:7px;background:var(--red);border-radius:50%;margin-top:4px}
.compact-row{padding:8px 0}.compact-row strong{font-size:11px}.compact-row small{font-size:9px}

/* Tabelas */
.table-card{overflow:hidden}
.table-wrap{scrollbar-width:thin}
.data-table{min-width:920px}
th{height:38px;padding:10px 12px;background:#fafbfc;color:#556477;border-bottom:1px solid #e2e7ed;font-size:9px;letter-spacing:.025em}
td{padding:10px 12px;border-bottom:1px solid #edf1f5;font-size:11px}
tr:hover td{background:#fafbfd}
.record-title{font-size:11px}.record-sub{font-size:9px}
.row-actions button{width:30px;height:30px;border-radius:6px}
.status,.client-state,.risk-badge,.report-category{padding:4px 7px;font-size:9px;border-radius:999px}
.empty{padding:38px 20px}.empty strong{font-size:14px}.empty p{font-size:11px}

/* Pipeline */
.kanban{gap:10px;grid-template-columns:repeat(5,minmax(235px,1fr))}
.kanban-column{min-height:480px;padding:10px;border-radius:8px;background:#edf1f5}
.kanban-card{padding:11px;border-radius:7px;box-shadow:0 1px 4px rgba(15,28,43,.04)}
.kanban-card h4{font-size:12px}.kanban-card p{font-size:10px}.kanban-value{font-size:15px}

/* CRM e Apoio ao Cliente */
.crm-kpis{gap:10px;margin-bottom:12px}
.crm-kpis .metric-card{padding:13px}.crm-kpis .metric-card span{font-size:10px}.crm-kpis .metric-card strong{font-size:22px}
.crm-grid{gap:12px}
.client-card{padding:14px;border-radius:8px}.client-card h3{font-size:16px}.client-card p{font-size:10px}
.client-meta{gap:9px;margin:12px 0}.client-meta b{font-size:9px}.client-meta span{font-size:11px}
.crm-tabs{gap:4px;margin-bottom:12px;padding-bottom:2px}
.crm-tabs button{padding:8px 10px;border-radius:6px;background:#eef2f6;font-size:10px}
.crm-tabs button.active{background:#19283a}
.crm-detail-grid{gap:10px}.detail-panel{padding:13px;border-radius:8px}.detail-panel h3{font-size:12px}
.detail-list div{grid-template-columns:130px 1fr}.detail-list dt{font-size:9px}.detail-list dd{font-size:11px}
.crm-counter-row{gap:8px}.crm-counter-row span{font-size:20px;border-radius:7px;padding:12px}

/* Relatórios */
.report-navigation{margin-bottom:12px;padding:4px;border-radius:7px;background:#edf1f5}
.report-navigation button{padding:8px 11px;border-radius:5px;font-size:10px}
.report-catalog-grid{gap:10px}
.report-card{min-height:275px;padding:14px;border-radius:8px}.report-card h3{margin:11px 0 5px;font-size:15px}.report-card p{font-size:10px}
.report-metric-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:9px;margin:12px 0}
.report-metric{min-height:118px;padding:12px;border-radius:8px}.report-metric>strong{font-size:20px;margin:10px 0 6px}.report-metric header{font-size:9px}.report-metric small,.report-metric footer{font-size:9px}
.executive-report-header{padding:16px;border-top-width:4px;border-radius:8px}.executive-report-header h2{font-size:22px}
.report-detail-section{padding:14px;border-radius:8px}.report-recommendations{border-radius:6px}

/* Configuração, administração e integrações */
.settings-grid,.integration-grid,.permission-grid{gap:12px}
.form-grid{gap:12px}
.form-section,.settings-card,.integration-card,.permission-card{border-radius:8px!important;box-shadow:var(--shadow)!important}

/* Modais, popups e alertas */
.modal-backdrop{background:rgba(10,20,32,.52);backdrop-filter:blur(2px)}
.modal{border-radius:9px;box-shadow:0 28px 70px rgba(10,20,32,.25)}
.modal-header{padding:16px 18px;border-bottom:1px solid #e4e8ee}
.modal-header h2{font-size:18px}.modal-header small{font-size:9px;color:var(--red)}
.modal-body{padding:17px 18px}.modal-footer{padding:12px 18px;background:#fafbfc;border-top:1px solid #e4e8ee}
.alert-summary{right:18px;bottom:18px;border-radius:9px;box-shadow:0 18px 48px rgba(15,28,43,.2)}
.toast{border-radius:7px!important;box-shadow:0 14px 34px rgba(15,28,43,.16)!important}

/* Responsividade transversal */
@media(max-width:1450px){
  .global-filter-grid{grid-template-columns:repeat(5,minmax(125px,1fr))}
  .global-metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .report-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
}
@media(max-width:1180px){
  .global-filter-grid{grid-template-columns:repeat(4,minmax(125px,1fr))}
  .dashboard-grid,.global-dashboard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .content{padding-inline:18px}
}
@media(max-width:900px){
  .sidebar{width:var(--sidebar-width)}
  .sidebar.open{width:var(--sidebar-width)}
  .main,.sidebar.collapsed + .main{margin-left:0}
  .topbar-product{display:inline}
  .topbar{padding-inline:14px}
  .content{padding:14px}
  .global-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .global-metrics-grid,.report-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-head{align-items:flex-start}
}
@media(max-width:620px){
  .topbar{height:54px;min-height:54px}
  .topbar-icon-button{width:34px;height:34px}
  .user-copy,.user-chevron{display:none}
  .content{padding:12px}
  .page-head h2{font-size:20px}
  .page-actions>*{flex:1 1 120px}
  .global-filter-grid,.global-metrics-grid,.report-metric-grid{grid-template-columns:1fr}
  .dashboard-grid,.global-dashboard-grid{grid-template-columns:1fr}
  .toolbar-left,.toolbar-right{width:100%}
  .toolbar-left>*{width:100%;min-width:0}
  .global-kpi{min-height:82px}
  .crm-kpis{grid-template-columns:1fr}
}

/* Preservação da experiência de autenticação */
.auth-page .field input{min-height:clamp(48px,6.1vh,58px);border-radius:10px;padding:12px 14px}
.auth-page .login-submit{min-height:clamp(50px,6.4vh,58px);border-radius:10px;font-size:clamp(15px,1.2vw,17px)}
.auth-page .primary-button:hover{transform:none}

/* Integração CRM, Cotações, Rotas e Apoio ao Cliente */
.quote-calculator fieldset{border:1px solid var(--line);border-radius:12px;padding:14px;background:#f9fbfd;min-width:0}
.quote-calculator legend{padding:0 8px;color:var(--navy);font-weight:850}
.quote-result{border:1px solid var(--line);border-radius:12px;padding:16px;background:#fff}
.quote-result-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.quote-result-head>div{display:grid;gap:4px}.quote-result-head span{color:var(--muted);font-size:12px}.quote-result-head small{color:var(--muted)}
.quote-total{font-size:28px;color:var(--red);white-space:nowrap}
.quote-breakdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.quote-breakdown span{display:grid;gap:4px;padding:10px;border-radius:9px;background:#f3f6f9;color:var(--muted);font-size:11px}
.quote-breakdown b{color:var(--ink);font-size:14px}
.quote-not-configured{padding:16px;border-radius:10px;background:#fff3da;color:#7a4d00}
.crm-section{display:none}.crm-section.active{display:block}
.last-conversation{margin:0 0 16px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.last-conversation>div{display:grid;gap:5px}.last-conversation span{font-size:11px;color:var(--red);font-weight:850;text-transform:uppercase;letter-spacing:.08em}.last-conversation p{margin:0;color:var(--muted)}
.crm-section .detail-panel{min-height:180px}.timeline button p{margin:5px 0 0;color:var(--muted);font-size:12px;text-align:left}
.support-alert-board{display:grid;grid-template-columns:2fr 1fr 1fr;gap:16px}
.support-alert-board .span-2{grid-row:span 2}
.support-alert{display:grid;grid-template-columns:minmax(180px,1fr) 180px auto;gap:12px;align-items:center;padding:11px 0;border-bottom:1px solid #edf1f5}
.support-alert>div:first-child{display:grid;gap:4px}.support-alert small{color:var(--muted)}
.sla-clock{display:grid;gap:2px;padding:8px 10px;border-radius:9px;background:#eef2f6;min-width:145px}
.sla-clock strong{font-size:13px}.sla-clock span,.sla-clock small{font-size:10px;color:var(--muted)}
.sla-clock.success{background:#e7f6ed;color:var(--success)}.sla-clock.warning{background:#fff3da;color:var(--warning)}.sla-clock.danger{background:#fde7e9;color:var(--danger)}
.ticket-with-sla{align-items:flex-start}.ticket-with-sla .sla-clock{margin-top:7px}
@media(max-width:1200px){.quote-breakdown{grid-template-columns:repeat(2,minmax(0,1fr))}.support-alert-board{grid-template-columns:1fr 1fr}.support-alert-board .span-2{grid-column:1/-1;grid-row:auto}}
@media(max-width:760px){.quote-result-head,.last-conversation{flex-direction:column}.quote-breakdown{grid-template-columns:1fr}.support-alert-board{grid-template-columns:1fr}.support-alert{grid-template-columns:1fr}.support-alert .row-actions{justify-content:flex-start}}

/* Relógios SLA detalhados */
.sla-clock header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.sla-clock header>span{font-size:11px;font-weight:800;text-align:right}.sla-metrics{display:grid;grid-template-columns:1fr;gap:5px;margin:9px 0}.sla-metric{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:9px;background:rgba(255,255,255,.72)}.sla-metric b{font-size:9px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}.sla-metric em{font-style:normal;font-size:11px;font-weight:850;color:var(--ink);text-align:right}.sla-metric.danger em{color:var(--danger)}.sla-metric.warning em{color:var(--warning)}.sla-metric.success em{color:var(--success)}

/* Importações e integrações */
.import-actions{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8fafc;color:var(--muted)}
.import-preview{display:grid;gap:14px;max-height:min(58vh,620px);overflow:auto;padding-right:4px}
.import-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:12px 14px;border-radius:12px;background:#f4f7fa;border:1px solid var(--line)}
.import-summary strong{margin-right:auto}.import-summary span{padding:5px 9px;border-radius:999px;background:#fff;border:1px solid var(--line);font-size:12px}
.import-mapping{display:grid;gap:10px}.import-mapping h3{margin:0}.mapping-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.text-danger{color:var(--danger)}
.integration-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.integration-card{display:flex;flex-direction:column;gap:14px}.integration-card .page-actions{margin-top:auto}
.integration-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:0}.integration-meta div{padding:10px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.integration-meta dt{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.integration-meta dd{margin:4px 0 0;font-weight:700;overflow-wrap:anywhere}
.integration-check{margin:0;padding:10px 12px;border-radius:10px;background:#f8fafc}.success-text{color:var(--success)}
.integration-log{display:grid;gap:3px;padding:10px 12px;border-left:3px solid var(--red);background:#fff8f8;border-radius:8px}.integration-log span,.integration-log small{color:var(--muted)}
.nifpt-runtime{display:grid;gap:12px;margin-top:10px;padding:14px;border:1px solid #f0c8ca;border-radius:12px;background:linear-gradient(180deg,#fff 0%,#fff8f8 100%)}
.nifpt-runtime-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.nifpt-runtime-grid>div{display:grid;gap:4px;padding:9px;border:1px solid var(--line);border-radius:9px;background:#fff}.nifpt-runtime-grid span,.nifpt-run-summary{color:var(--muted);font-size:11px}.nifpt-runtime-grid strong{font-size:13px;overflow-wrap:anywhere}.nifpt-run-summary{margin:0;line-height:1.5}.nifpt-actions{justify-content:flex-start}
.nifpt-progress{display:grid;gap:16px}.nifpt-progress-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.nifpt-progress-head>div{display:grid;gap:4px}.nifpt-progress-head span,.nifpt-progress-grid span{color:var(--muted);font-size:11px}.nifpt-progress-head>strong{color:var(--red);font-size:24px}.nifpt-progress-track{height:10px;overflow:hidden;border-radius:999px;background:#e8edf2}.nifpt-progress-track i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--red),#ff5961);transition:width .25s ease}.nifpt-progress-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.nifpt-progress-grid>div{display:grid;gap:5px;padding:12px;border:1px solid var(--line);border-radius:10px;background:#f8fafc}.nifpt-progress-grid strong{font-size:19px}.nifpt-progress-note{margin:0;padding:11px 12px;border-radius:9px;background:#f1f5f8;color:var(--muted);font-size:12px;line-height:1.5}
@media(max-width:1200px){.integration-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mapping-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.integration-grid,.mapping-grid{grid-template-columns:1fr}.import-actions{align-items:flex-start;flex-direction:column}.nifpt-runtime-grid{grid-template-columns:1fr}.nifpt-progress-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* MyTMB v6.9.3 — campos mestres e seleção múltipla */
.field select[multiple] {
  min-height: 128px;
  padding: 8px;
  background-image: none;
}
.field select[multiple] option {
  padding: 7px 8px;
  border-radius: 6px;
}
.field-help {
  display: block;
  margin-top: 5px;
  color: var(--text-muted, #667085);
  font-size: 0.76rem;
}
.modal-footer button:disabled {
  opacity: 0.62;
  cursor: wait;
}


/* MyTMB 6.9.6 — experiência responsiva web e mobile */
:root {
  --app-height: 100dvh;
  --safe-top: env(safe-area-inset-top, 0px);
  --safe-right: env(safe-area-inset-right, 0px);
  --safe-bottom: env(safe-area-inset-bottom, 0px);
  --safe-left: env(safe-area-inset-left, 0px);
}
html {
  min-width: 320px;
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  scroll-behavior: smooth;
}
body {
  min-width: 320px;
  min-height: var(--app-height);
  overflow-x: hidden;
  overscroll-behavior-x: none;
}
.app-layout, .main { min-height: var(--app-height); }
button, [role="button"], input, select, textarea { max-width: 100%; }
.table-wrap, .kanban, .report-navigation, .crm-tabs {
  -webkit-overflow-scrolling: touch;
  overscroll-behavior-inline: contain;
  scrollbar-gutter: stable;
}
.table-wrap { width: 100%; max-width: 100%; }
.data-table th, .data-table td { overflow-wrap: anywhere; }
.modal-body, .content, .panel, .card, .table-card { min-width: 0; }

@media (hover: none) and (pointer: coarse) {
  button, .primary-button, .secondary-button, .danger-button, .icon-button,
  .topbar-icon-button, .nav-item, select, input:not([type="checkbox"]):not([type="radio"]) {
    min-height: 44px;
  }
  .row-actions button { width: 40px; height: 40px; }
  .primary-button:hover, .global-kpi:hover, .panel:hover, .client-card:hover, .report-card:hover { transform: none; }
}

@media (max-width: 900px) {
  .sidebar {
    width: min(86vw, 320px);
    padding-top: calc(14px + var(--safe-top));
    padding-bottom: calc(14px + var(--safe-bottom));
    padding-left: calc(14px + var(--safe-left));
  }
  .sidebar.open { width: min(86vw, 320px); }
  .topbar {
    padding-left: calc(12px + var(--safe-left));
    padding-right: calc(12px + var(--safe-right));
  }
  .content {
    width: 100%;
    max-width: 100vw;
    padding-left: calc(14px + var(--safe-left));
    padding-right: calc(14px + var(--safe-right));
    padding-bottom: calc(22px + var(--safe-bottom));
  }
  .sidebar-backdrop.show { touch-action: none; }
  .page-actions, .toolbar-left, .toolbar-right, .global-filter-actions { max-width: 100%; }
  .table-card { max-width: 100%; }
  .modal { max-height: min(calc(var(--app-height) - 24px), calc(100dvh - 24px)); }
}

@media (max-width: 760px) {
  .topbar-product { max-width: 42vw; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .topbar-actions { margin-left: auto; min-width: 0; }
  .page-head { gap: 12px; }
  .page-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; }
  .page-actions > * { width: 100%; min-width: 0; }
  .toolbar { align-items: stretch; }
  .toolbar-left, .toolbar-right { display: grid; grid-template-columns: 1fr; align-items: stretch; }
  .toolbar-left > *, .toolbar-right > * { width: 100%; min-width: 0; }
  .search-input, .filter-select, .filter-input, .report-catalog-toolbar input, .report-catalog-toolbar select { width: 100%; min-width: 0; }
  .table-card { border-radius: 8px; }
  .data-table { min-width: 760px; }
  .table-wrap::after {
    content: "Deslize horizontalmente para consultar todas as colunas";
    display: block;
    position: sticky;
    left: 0;
    width: min(100%, 360px);
    padding: 7px 10px;
    color: #68768a;
    background: #fff;
    border-top: 1px solid #edf1f5;
    font-size: 10px;
  }
  .form-grid, .mapping-grid, .settings-grid, .permission-grid { grid-template-columns: 1fr !important; }
  .form-grid .span-2, .detail-panel.span-2 { grid-column: auto !important; }
  .modal-backdrop { padding: 0; align-items: end; }
  .modal {
    width: 100%;
    height: var(--app-height);
    max-height: var(--app-height);
    border-radius: 0;
  }
  .modal-header { padding: calc(14px + var(--safe-top)) calc(14px + var(--safe-right)) 14px calc(14px + var(--safe-left)); }
  .modal-body { padding: 14px calc(14px + var(--safe-right)) 18px calc(14px + var(--safe-left)); }
  .modal-footer {
    position: sticky;
    bottom: 0;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 12px calc(14px + var(--safe-right)) calc(12px + var(--safe-bottom)) calc(14px + var(--safe-left));
  }
  .modal-footer > * { width: 100%; min-width: 0; }
  .field input, .field select, .field textarea, .search-input, .filter-select, .filter-input { font-size: 16px; }
  .alert-summary {
    right: calc(10px + var(--safe-right));
    bottom: calc(10px + var(--safe-bottom));
    width: calc(100vw - 20px - var(--safe-left) - var(--safe-right));
    max-height: min(70dvh, 620px);
    overflow: auto;
  }
  .toast-root {
    right: calc(10px + var(--safe-right));
    bottom: calc(10px + var(--safe-bottom));
    left: calc(10px + var(--safe-left));
  }
  .toast { width: 100%; }
  .popover {
    position: fixed;
    top: calc(58px + var(--safe-top));
    right: calc(10px + var(--safe-right));
    left: calc(10px + var(--safe-left));
    width: auto;
  }
  .kanban { grid-template-columns: repeat(5, minmax(82vw, 340px)); scroll-snap-type: x proximity; }
  .kanban-column { scroll-snap-align: start; }
  .crm-tabs, .report-navigation { margin-inline: -2px; padding-bottom: 8px; }
  .crm-tabs button, .report-navigation button { min-height: 42px; white-space: nowrap; }
}

@media (max-width: 480px) {
  .topbar { min-height: 56px; height: 56px; }
  .topbar-product { font-size: 13px; }
  .topbar-icon-button { width: 38px; height: 38px; }
  .content { padding-top: 10px; }
  .page-head h2 { font-size: clamp(19px, 6vw, 22px); }
  .page-head p { font-size: 11px; }
  .page-actions { grid-template-columns: 1fr; }
  .global-filter-shell, .toolbar, .panel, .card, .table-card, .client-card, .report-card { border-radius: 7px; }
  .global-kpi { padding: 12px; }
  .global-kpi .kpi-value { font-size: 19px; }
  .data-table { min-width: 700px; }
  .modal-footer { grid-template-columns: 1fr; }
  .login-options { align-items: flex-start; flex-direction: column; }
}

@media (max-height: 520px) and (orientation: landscape) {
  .topbar { position: static; }
  .sidebar-header { padding-bottom: 10px; }
  .modal { height: var(--app-height); }
  .modal-header { padding-block: 10px; }
  .modal-body { padding-block: 10px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* MyTMB 6.12.0 — autenticação, permissões, mensagens e integridade */
.auth-page,.auth-page #app,.login-page{background:#071526}
.login-shell{grid-template-columns:minmax(430px,43%) minmax(0,57%);background:#071526;position:relative}
.login-panel{position:relative;z-index:3;background:#fff;overflow:visible;padding-left:clamp(34px,6vw,118px);padding-right:clamp(42px,7vw,128px)}
.login-panel::before{content:"";position:absolute;z-index:-1;top:-18%;right:-29%;width:62%;height:136%;border-radius:50%;background:#fff;border-right:2px solid rgba(239,27,36,.72);box-shadow:18px 0 45px rgba(239,27,36,.14);pointer-events:none}
.login-panel::after{content:"";position:absolute;z-index:-2;inset:0;background:radial-gradient(circle at 8% 93%,rgba(205,218,232,.45) 0 2px,transparent 2.5px) 0 0/16px 16px,linear-gradient(135deg,#fff 0%,#f9fbfd 72%,#fff 100%);pointer-events:none}
.login-content,.login-legal{position:relative;z-index:2;width:min(520px,100%)}
.login-brand{justify-items:start;text-align:left;gap:10px;margin-bottom:clamp(24px,4vh,42px)}
.login-brand img{width:clamp(145px,13vw,205px);margin-left:clamp(55px,7vw,95px)}
.login-brand strong{font-size:clamp(25px,2.15vw,36px);font-weight:850;white-space:nowrap}
.login-brand p{margin:0;color:var(--muted);font-size:13px;font-weight:650}
.login-form .field>span:first-child{font-size:14px;color:#182438}
.login-form .field input{box-shadow:0 8px 22px rgba(17,29,44,.05)}
.login-options{font-size:13px}
.login-submit{margin-top:2px;border-radius:11px;box-shadow:0 12px 26px rgba(239,27,36,.23)}
.login-legal{text-align:center;font-size:12px;color:#8591a2}
.login-visual{z-index:1;background:#071526}
.login-visual img{object-fit:cover;object-position:right center;filter:none;transform:none}
.login-visual::after{background:linear-gradient(90deg,rgba(8,20,37,.05),rgba(8,20,37,.05) 60%,rgba(8,20,37,.2)),linear-gradient(180deg,rgba(6,17,34,.08),rgba(6,17,34,.06))}
.password-rules{margin:-3px 0 0;color:var(--muted);font-size:12px;line-height:1.45}
.password-wrap .icon-button.is-visible{color:var(--red);background:#fff0f1}

.message-notifications{display:grid;gap:8px;margin-bottom:14px}
.message-notification{width:100%;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;border:1px solid #f0c9cd;border-radius:12px;background:#fff7f8;padding:10px 13px;text-align:left;color:var(--ink)}
.message-notification:hover{border-color:var(--red);background:#fff}
.message-notification-dot{width:9px;height:9px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(239,27,36,.12)}
.message-notification span:nth-child(2){display:grid;gap:3px;min-width:0}
.message-notification small{color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-notification time{font-size:11px;color:var(--muted);white-space:nowrap}
.message-workspace{min-height:640px;display:grid;grid-template-columns:minmax(330px,38%) minmax(0,62%);border:1px solid var(--line);border-radius:16px;background:#fff;overflow:hidden;box-shadow:var(--shadow)}
.message-sidebar{min-width:0;border-right:1px solid var(--line);background:#f8fafc;display:flex;flex-direction:column}
.message-filters{display:flex;gap:6px;padding:12px;overflow:auto;border-bottom:1px solid var(--line);background:#fff}
.message-filters button{border:1px solid var(--line);border-radius:999px;background:#fff;padding:7px 10px;display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:750;white-space:nowrap}
.message-filters button.active{background:var(--navy);border-color:var(--navy);color:#fff}
.message-filters b{min-width:20px;height:20px;border-radius:999px;display:grid;place-items:center;background:var(--red);color:#fff;font-size:11px}
.message-conversation-list{min-height:0;overflow:auto;padding:8px}
.message-conversation{width:100%;border:1px solid transparent;border-radius:12px;background:transparent;padding:12px;display:grid;gap:6px;text-align:left;color:var(--ink);position:relative}
.message-conversation:hover{background:#fff;border-color:var(--line)}
.message-conversation.active{background:#fff;border-color:#bdcddd;box-shadow:0 8px 22px rgba(17,29,44,.08)}
.message-conversation.unread::before{content:"";position:absolute;left:4px;top:16px;bottom:16px;width:3px;border-radius:3px;background:var(--red)}
.message-conversation-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.message-conversation-top strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-conversation-top time{font-size:10px;color:var(--muted);white-space:nowrap}
.message-subject{font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-preview{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.message-meta{display:flex;align-items:center;gap:7px;min-width:0}
.message-meta em{font-style:normal;font-size:10px;font-weight:850;border-radius:999px;padding:3px 7px;background:#eef3f7;color:var(--muted)}
.message-meta .priority-alta{background:#fde8ea;color:var(--danger)}
.message-meta .priority-média{background:#fff2d8;color:var(--warning)}
.message-meta small{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.message-meta b{margin-left:auto;min-width:21px;height:21px;border-radius:999px;display:grid;place-items:center;background:var(--red);color:#fff;font-size:11px}
.message-thread-panel{min-width:0;display:flex;flex-direction:column;background:#fff}
.message-thread-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}
.message-thread-head h2{margin:5px 0 4px;font-size:21px}
.message-thread-head p{margin:0;color:var(--muted);font-size:12px}
.message-thread-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}
.message-thread-actions select{min-height:42px;border:1px solid var(--line);border-radius:10px;background:#fff;padding:0 10px}
.message-context{margin:12px 18px 0;border:1px solid #cfe0ef;border-radius:10px;background:#f5f9fc;padding:9px 12px;display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:12px}
.message-thread{flex:1;min-height:360px;max-height:560px;overflow:auto;padding:20px;display:flex;flex-direction:column;gap:12px;background:linear-gradient(180deg,#f8fafc,#fff)}
.message-bubble{align-self:flex-start;max-width:min(78%,720px);border:1px solid var(--line);border-radius:14px 14px 14px 3px;background:#fff;padding:11px 13px;box-shadow:0 5px 15px rgba(17,29,44,.05)}
.message-bubble.mine{align-self:flex-end;border-color:#f3b9be;border-radius:14px 14px 3px 14px;background:#fff5f6}
.message-bubble header{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11px}
.message-bubble header strong{font-size:12px}
.message-bubble header span,.message-bubble header time{color:var(--muted)}
.message-bubble header time{margin-left:auto}
.message-bubble p{margin:8px 0 0;line-height:1.55;white-space:normal;overflow-wrap:anywhere}
.message-reply{border-top:1px solid var(--line);padding:14px 18px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}
.message-reply textarea{min-height:84px;resize:vertical}
.message-no-reply{margin:14px 18px 18px;border:1px solid #f1d1d4;border-radius:10px;background:#fff6f6;color:var(--danger);padding:12px 14px;font-weight:700}
.message-empty{height:100%;min-height:520px;display:grid;place-content:center;justify-items:center;gap:8px;text-align:center;color:var(--muted)}
.message-empty svg{width:44px;height:44px;color:#aab7c5}
.message-empty h3,.message-empty p{margin:0}

@media (max-width:1100px){
  .login-shell{grid-template-columns:minmax(390px,48%) minmax(0,52%)}
  .login-panel{padding-inline:clamp(28px,5vw,62px)}
  .login-panel::before{right:-22%;width:50%}
  .login-brand img{margin-left:30px}
  .login-brand strong{white-space:normal}
  .message-workspace{grid-template-columns:minmax(290px,42%) minmax(0,58%)}
}
@media (max-width:900px){
  .login-shell{grid-template-columns:1fr;background-image:linear-gradient(rgba(7,21,38,.5),rgba(7,21,38,.7)),url("assets/tmb-login-layout-oficial-clean-v6148.png");background-size:cover;background-position:73% center;padding:24px;align-items:center}
  .login-panel{width:min(560px,100%);height:auto;min-height:min(760px,calc(100dvh - 48px));margin:0 auto;border-radius:22px;padding:34px clamp(24px,7vw,56px) 24px;overflow:hidden;box-shadow:0 28px 80px rgba(0,0,0,.35)}
  .login-panel::before{display:none}
  .login-panel::after{z-index:-1}
  .login-visual{display:none}
  .login-brand{justify-items:center;text-align:center}
  .login-brand img{margin-left:0}
  .login-legal{margin-top:24px}
  .message-workspace{grid-template-columns:1fr;min-height:0}
  .message-sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:390px}
  .message-thread-panel{min-height:540px}
}
@media (max-width:600px){
  .login-shell{padding:0;background-position:70% center}
  .login-panel{width:100%;height:100dvh;min-height:100dvh;border-radius:0;padding:24px 20px 18px}
  .login-content{align-self:center}
  .login-brand img{width:132px}
  .login-brand strong{font-size:23px}
  .login-options{align-items:flex-start;flex-direction:column}
  .message-notification{grid-template-columns:auto 1fr}.message-notification time{display:none}
  .message-workspace{border-radius:12px}
  .message-sidebar{max-height:330px}
  .message-thread-head{flex-direction:column;padding:14px}
  .message-thread-actions{justify-content:flex-start}
  .message-thread{padding:13px;min-height:320px;max-height:460px}
  .message-bubble{max-width:92%}
  .message-reply{grid-template-columns:1fr;padding:12px}
  .message-reply>div{display:flex;justify-content:flex-end}
}

/* Eliminação segura de utilizadores */
.user-delete-dialog{display:grid;gap:16px}.user-delete-dialog>p{margin:0;color:var(--muted);line-height:1.55}.user-delete-dialog h3{margin:2px 0 -6px;font-size:13px;color:var(--ink)}
.user-delete-identity{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}.user-delete-identity>div{padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:#fafbfc;min-width:0}.user-delete-identity dt{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.user-delete-identity dd{margin:4px 0 0;font-size:12px;font-weight:750;overflow-wrap:anywhere}
.user-delete-impact{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px}.user-delete-impact>div{padding:9px 6px;border:1px solid var(--line);border-radius:8px;text-align:center;background:#fff}.user-delete-impact strong{display:block;font-size:17px;color:var(--ink)}.user-delete-impact span{display:block;margin-top:2px;font-size:9px;color:var(--muted);overflow-wrap:anywhere}
@media(max-width:760px){.user-delete-identity{grid-template-columns:1fr}.user-delete-impact{grid-template-columns:repeat(2,minmax(0,1fr))}}
.message-notification{grid-template-columns:auto minmax(0,1fr) auto}.message-notification-copy{display:grid;gap:3px;min-width:0}.message-notification-copy time{font-size:10px}.message-notification-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.message-notification-actions .link-button{font-size:10px;font-weight:800;color:var(--red)}
@media(max-width:760px){.message-notification{grid-template-columns:auto minmax(0,1fr)}.message-notification-actions{grid-column:2;justify-content:flex-start}.message-notification-copy time{display:block}}

/* MyTMB 6.12.0 — acesso cinematográfico, vidro discreto e estados de rede */
.auth-page,
.auth-page #app,
.auth-page .login-page{
  min-height:100%;
  background:#06101e;
}
.auth-page .login-page{
  position:relative;
  overflow:hidden;
  isolation:isolate;
  padding:clamp(14px,2.2vw,34px);
  background:
    radial-gradient(circle at 72% 19%,rgba(224,17,38,.22),transparent 31%),
    radial-gradient(circle at 90% 72%,rgba(16,78,132,.22),transparent 38%),
    linear-gradient(135deg,#030914 0%,#07172a 47%,#140712 100%);
}
.auth-page .login-page::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  background:
    linear-gradient(105deg,rgba(2,8,17,.88) 0%,rgba(5,19,35,.56) 42%,rgba(12,7,18,.12) 66%,rgba(2,8,17,.3) 100%),
    radial-gradient(ellipse at 76% 29%,rgba(241,30,52,.2),transparent 34%);
}
.auth-page .login-shell{
  width:min(1760px,100%);
  min-height:min(930px,calc(var(--app-height,100dvh) - clamp(28px,4.4vw,68px)));
  margin:auto;
  display:grid;
  grid-template-columns:minmax(410px,43%) minmax(0,57%);
  position:relative;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.12);
  border-radius:clamp(18px,2.2vw,34px);
  background:#071526;
  box-shadow:0 36px 100px rgba(0,0,0,.48),0 0 0 1px rgba(218,28,43,.08),0 0 48px rgba(201,19,38,.12);
}
.auth-page .login-shell::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.05),inset 0 -80px 120px rgba(0,0,0,.12);
}
.auth-page .login-panel{
  position:relative;
  z-index:3;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
  padding:clamp(42px,6vh,78px) clamp(34px,5vw,92px) clamp(28px,4vh,52px);
  color:#f5f7fb;
  background:
    linear-gradient(145deg,rgba(7,24,43,.92),rgba(7,19,35,.78) 61%,rgba(24,8,19,.72)),
    radial-gradient(circle at 22% 12%,rgba(255,255,255,.08),transparent 35%);
  -webkit-backdrop-filter:blur(16px) saturate(118%);
  backdrop-filter:blur(16px) saturate(118%);
  border-right:1px solid rgba(237,47,63,.3);
  box-shadow:22px 0 70px rgba(0,0,0,.24),inset -1px 0 rgba(255,255,255,.05);
}
.auth-page .login-panel::before{
  content:"";
  position:absolute;
  z-index:-1;
  inset:-22% -38% -16% 44%;
  border-radius:50%;
  background:linear-gradient(115deg,transparent 41%,rgba(222,26,43,.16) 60%,rgba(255,87,101,.04) 75%,transparent 88%);
  border-right:1px solid rgba(244,61,77,.3);
  filter:drop-shadow(12px 0 22px rgba(210,20,36,.16));
  pointer-events:none;
}
.auth-page .login-panel::after{
  content:"";
  position:absolute;
  z-index:-2;
  inset:0;
  pointer-events:none;
  opacity:.48;
  background:
    radial-gradient(circle at 8% 89%,rgba(255,255,255,.24) 0 1px,transparent 1.8px) 0 0/18px 18px,
    linear-gradient(180deg,rgba(255,255,255,.03),transparent 24%,rgba(175,15,32,.07));
  mask-image:linear-gradient(to top,#000,transparent 38%);
}
.auth-page .login-content{width:min(100%,560px);margin:auto 0;position:relative;z-index:2}
.auth-page .login-brand{
  display:grid;
  justify-items:start;
  gap:10px;
  margin:0 0 clamp(28px,4.2vh,46px);
  text-align:left;
}
.auth-page .login-brand img{
  width:clamp(142px,13vw,200px);
  max-height:112px;
  object-fit:contain;
  object-position:left center;
  margin:0;
  filter:drop-shadow(0 9px 24px rgba(238,25,44,.18));
}
.auth-page .login-brand strong{
  color:#f8fafc;
  font-size:clamp(25px,2.2vw,37px);
  line-height:1.15;
  font-weight:830;
  letter-spacing:-.035em;
  text-shadow:0 2px 18px rgba(0,0,0,.3);
}
.auth-page .login-brand p{margin:0;color:#aab6c7;font-size:13px;font-weight:620}
.auth-page .login-form{display:grid;gap:17px}
.auth-page .login-form .field>span:first-child{color:#e9edf4;font-size:14px;font-weight:720}
.auth-page .login-form input{
  min-height:60px;
  color:#f8fafc;
  caret-color:#ff334d;
  background:rgba(3,12,24,.66);
  border:1px solid rgba(190,207,228,.3);
  border-radius:12px;
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 12px 28px rgba(0,0,0,.15);
}
.auth-page .login-form input::placeholder{color:#7f8da2}
.auth-page .login-form input:hover{border-color:rgba(224,235,247,.48)}
.auth-page .login-form input:focus{border-color:#ef3048;box-shadow:0 0 0 3px rgba(239,48,72,.18),0 14px 32px rgba(0,0,0,.2)}
.auth-page .password-wrap .icon-button{color:#b8c5d6}
.auth-page .password-wrap .icon-button:hover,
.auth-page .password-wrap .icon-button:focus-visible{color:#fff;background:rgba(255,255,255,.08)}
.auth-page .login-options{color:#c4cedb}
.auth-page .login-options .link-button{color:#83b7ff}
.auth-page .login-options .link-button:hover{color:#b9d7ff}
.auth-page .login-options input{accent-color:#e31931}
.auth-page .login-submit{
  min-height:62px;
  margin-top:8px;
  border:1px solid rgba(255,105,119,.35);
  border-radius:12px;
  background:linear-gradient(135deg,#ed0b22,#c9071b 62%,#a80417);
  box-shadow:0 18px 36px rgba(202,7,29,.27),inset 0 1px rgba(255,255,255,.2);
}
.auth-page .login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 21px 42px rgba(202,7,29,.35),inset 0 1px rgba(255,255,255,.2)}
.auth-page .form-error{color:#ff9aa6}
.auth-page .password-rules{color:#aab6c7}
.auth-page .login-legal{position:relative;z-index:2;color:#8997aa;text-align:left;margin:26px 0 0;font-size:12px}
.auth-page .login-visual{
  position:relative;
  z-index:1;
  min-width:0;
  overflow:hidden;
  background:#071526;
}
.auth-page .login-visual img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:58% center;
  filter:contrast(1.06) saturate(1.08) brightness(.92);
  transform:scale(1.015);
  transform-origin:center;
}
.auth-page .login-visual::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(ellipse at 47% 22%,rgba(238,24,47,.24),transparent 31%),
    linear-gradient(90deg,rgba(4,15,29,.7) 0%,rgba(4,15,29,.15) 19%,transparent 44%),
    linear-gradient(180deg,rgba(3,9,18,.2),transparent 50%,rgba(2,7,14,.36));
  mix-blend-mode:normal;
}
.auth-page .login-visual::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  opacity:.34;
  background:
    repeating-linear-gradient(168deg,transparent 0 46px,rgba(255,35,55,.08) 47px,transparent 49px 84px),
    radial-gradient(ellipse at 52% 96%,rgba(255,32,49,.24),transparent 38%);
  mask-image:linear-gradient(to bottom,transparent 45%,#000 100%);
}
.auth-page .password-setup-shell .login-panel{justify-content:center}
.auth-page .password-setup-shell .login-brand p{font-size:14px}

.inline-error,.error-state{
  border:1px solid rgba(190,39,54,.25);
  background:rgba(183,22,39,.06);
  color:#8f1726;
  border-radius:12px;
}
.error-state{padding:24px;display:grid;gap:12px;justify-items:start}
.error-state .retry-button{min-height:40px}

@media (max-width:1100px){
  .auth-page .login-page{padding:18px}
  .auth-page .login-shell{grid-template-columns:minmax(370px,49%) minmax(0,51%);min-height:calc(var(--app-height,100dvh) - 36px)}
  .auth-page .login-panel{padding-inline:clamp(28px,5vw,58px)}
  .auth-page .login-visual img{object-position:64% center}
}
@media (max-width:900px){
  .auth-page .login-page{
    padding:20px;
    background:
      linear-gradient(rgba(3,12,24,.54),rgba(3,10,21,.77)),
      radial-gradient(circle at 67% 17%,rgba(233,23,45,.24),transparent 31%),
      url("assets/tmb-login-layout-oficial-clean-v6148.png") 68% center/cover no-repeat;
  }
  .auth-page .login-shell{display:flex;width:min(590px,100%);min-height:min(780px,calc(var(--app-height,100dvh) - 40px));background:transparent;border-color:rgba(255,255,255,.14)}
  .auth-page .login-panel{width:100%;min-height:inherit;border:0;border-radius:inherit;padding:38px clamp(24px,7vw,58px) 24px;background:linear-gradient(145deg,rgba(6,22,40,.93),rgba(8,18,32,.83));box-shadow:none}
  .auth-page .login-panel::before{inset:-20% -24% -20% 48%}
  .auth-page .login-content{margin:auto}
  .auth-page .login-brand{justify-items:center;text-align:center}
  .auth-page .login-brand img{object-position:center;margin:0}
  .auth-page .login-legal{text-align:center}
  .auth-page .login-visual{display:none}
}
@media (max-width:520px){
  .auth-page .login-page{padding:0;background-position:72% center}
  .auth-page .login-shell{width:100%;min-height:var(--app-height,100dvh);border:0;border-radius:0;box-shadow:none}
  .auth-page .login-panel{min-height:var(--app-height,100dvh);border-radius:0;padding:clamp(24px,5vh,42px) 20px 18px}
  .auth-page .login-brand{margin-bottom:24px}
  .auth-page .login-brand img{width:132px}
  .auth-page .login-brand strong{font-size:23px;white-space:normal}
  .auth-page .login-form{gap:14px}
  .auth-page .login-form input{min-height:56px;font-size:16px}
  .auth-page .login-options{align-items:flex-start;gap:12px}
  .auth-page .login-submit{min-height:58px}
}
@media (prefers-reduced-motion:reduce){
  .auth-page .login-visual img,.auth-page .login-submit{transform:none!important;transition:none!important}
}
.startup-error{min-height:100dvh;display:grid;place-items:center;padding:24px;background:#f4f6f9}.startup-error-card{width:min(560px,100%);padding:24px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(19,31,48,.14)}

/* MyTMB 6.12.0 — acesso aprovado, formulário real e imagem Iveco */
.auth-page,.auth-page #app,.auth-page .login-page{width:100%;height:100dvh;min-height:100dvh;max-height:100dvh;overflow:hidden;background:#fff}
.auth-page .login-page{position:relative;padding:0;isolation:isolate;background:#fff}
.auth-page .login-shell{width:100%;height:100%;min-height:100dvh;margin:0;display:grid;grid-template-columns:minmax(520px,46%) minmax(0,54%);position:relative;overflow:hidden;border:0;border-radius:0;background:#fff;box-shadow:none}
.auth-page .login-shell::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;border:0;border-radius:0;box-shadow:inset 0 0 0 1px rgba(20,35,55,.04)}
.auth-page .login-panel{position:relative;z-index:3;overflow:visible;display:grid;grid-template-rows:1fr auto;align-items:center;justify-items:center;min-width:0;padding:clamp(36px,5vh,64px) clamp(54px,7vw,126px) clamp(24px,3.5vh,42px);color:#142136;background:linear-gradient(135deg,#fff 0%,#fbfcfe 74%,#f8fafc 100%);border:0;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}
.auth-page .login-panel::before{content:"";position:absolute;z-index:-1;top:-17%;right:-32%;width:65%;height:134%;border-radius:50%;background:linear-gradient(90deg,#fff 0%,#fff 72%,rgba(255,255,255,.96) 100%);border-right:2px solid rgba(222,19,39,.82);box-shadow:18px 0 34px rgba(185,15,33,.13),inset -1px 0 rgba(255,255,255,.9);pointer-events:none}
.auth-page .login-panel::after{content:"";position:absolute;z-index:-2;inset:0;pointer-events:none;opacity:1;background:radial-gradient(ellipse at 76% 18%,rgba(223,20,39,.055),transparent 34%),linear-gradient(180deg,rgba(255,255,255,.95),rgba(247,249,252,.96));mask-image:none}
.auth-page .login-content{width:min(500px,100%);margin:auto;position:relative;z-index:2}
.auth-page .login-brand{display:grid;justify-items:start;gap:10px;margin:0 0 clamp(28px,4.5vh,48px);text-align:left}
.auth-page .login-brand img{width:clamp(142px,12vw,200px);max-height:112px;object-fit:contain;object-position:left center;margin-left:clamp(78px,7vw,112px);filter:drop-shadow(0 7px 18px rgba(221,18,37,.12))}
.auth-page .login-brand strong{color:#142136;font-size:clamp(26px,2.15vw,38px);line-height:1.16;font-weight:840;letter-spacing:-.035em;text-shadow:none;white-space:nowrap}
.auth-page .login-brand p{margin:0;color:#68768a;font-size:13px;font-weight:650}
.auth-page .login-form{display:grid;gap:17px}
.auth-page .login-form .field>span:first-child{color:#142136;font-size:14px;font-weight:750}
.auth-page .login-form input{min-height:61px;color:#142136;caret-color:#e31931;background:#fff;border:1px solid #cad5e1;border-radius:11px;box-shadow:0 9px 24px rgba(17,29,44,.055)}
.auth-page .login-form input::placeholder{color:#8794a5}
.auth-page .login-form input:hover{border-color:#9caabc}
.auth-page .login-form input:focus{border-color:#d7192d;box-shadow:0 0 0 3px rgba(215,25,45,.12),0 12px 28px rgba(17,29,44,.07)}
.auth-page .password-wrap .icon-button{color:#617087}
.auth-page .password-wrap .icon-button:hover,.auth-page .password-wrap .icon-button:focus-visible{color:#d7192d;background:#fff0f2}
.auth-page .login-options{color:#5f6d80;font-size:13px}
.auth-page .login-options .link-button{color:#1266d6}
.auth-page .login-options .link-button:hover{color:#0d4fa9;text-decoration:underline}
.auth-page .login-options input{accent-color:#df1428}
.auth-page .login-submit{min-height:63px;margin-top:8px;border:0;border-radius:11px;background:linear-gradient(135deg,#f20b20,#de0618 62%,#c20718);box-shadow:0 16px 32px rgba(211,8,28,.24),inset 0 1px rgba(255,255,255,.22);color:#fff}
.auth-page .login-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 19px 38px rgba(211,8,28,.3),inset 0 1px rgba(255,255,255,.22)}
.auth-page .form-error{color:#b4232f}
.auth-page .password-rules{color:#68768a}
.auth-page .login-legal{position:relative;z-index:2;width:min(500px,100%);color:#8490a0;text-align:center;margin:24px 0 0;font-size:12px}
.auth-page .login-visual{position:relative;z-index:1;min-width:0;height:100dvh;overflow:hidden;background:#071526}
.auth-page .login-visual img{width:100%;height:100%;display:block;object-fit:cover;object-position:58% center;filter:contrast(1.045) saturate(1.08) brightness(.99);transform:scale(1.008);transform-origin:center}
.auth-page .login-visual::before{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;background:radial-gradient(ellipse at 48% 21%,rgba(237,22,46,.14),transparent 31%),linear-gradient(90deg,rgba(60,7,23,.17) 0%,transparent 26%),linear-gradient(180deg,rgba(5,13,27,.06),transparent 58%,rgba(5,10,20,.18))}
.auth-page .login-visual::after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;opacity:.22;background:radial-gradient(ellipse at 51% 96%,rgba(255,31,50,.28),transparent 35%),linear-gradient(115deg,transparent 58%,rgba(10,39,69,.11));mask-image:none}
.auth-page .password-setup-shell .login-panel{justify-content:center}
.auth-page .password-setup-shell .login-brand p{font-size:14px}
.inline-error,.error-state{border:1px solid rgba(190,39,54,.25);background:rgba(183,22,39,.06);color:#8f1726;border-radius:12px}
.error-state{padding:24px;display:grid;gap:12px;justify-items:start}.error-state .retry-button{min-height:40px}
@media (max-width:1180px){.auth-page .login-shell{grid-template-columns:minmax(430px,49%) minmax(0,51%)}.auth-page .login-panel{padding-inline:clamp(36px,5vw,68px)}.auth-page .login-panel::before{right:-25%;width:56%}.auth-page .login-brand img{margin-left:42px}.auth-page .login-brand strong{white-space:normal}.auth-page .login-visual img{object-position:63% center}}
@media (max-width:900px){.auth-page .login-page{padding:22px;background:linear-gradient(rgba(5,16,30,.38),rgba(5,13,25,.56)),url("assets/tmb-login-layout-oficial-clean-v6148.png") 68% center/cover no-repeat}.auth-page .login-shell{display:flex;width:min(590px,100%);height:auto;min-height:min(790px,calc(100dvh - 44px));margin:auto;border-radius:24px;background:rgba(255,255,255,.97);box-shadow:0 28px 80px rgba(0,0,0,.3)}.auth-page .login-panel{width:100%;min-height:inherit;border-radius:inherit;padding:40px clamp(26px,7vw,58px) 24px;overflow:hidden;background:rgba(255,255,255,.97);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.auth-page .login-panel::before{display:none}.auth-page .login-content{margin:auto}.auth-page .login-brand{justify-items:center;text-align:center}.auth-page .login-brand img{object-position:center;margin:0}.auth-page .login-legal{text-align:center}.auth-page .login-visual{display:none}}
@media (max-width:520px){.auth-page .login-page{padding:0;background:#fff}.auth-page .login-shell{width:100%;min-height:100dvh;border-radius:0;box-shadow:none}.auth-page .login-panel{min-height:100dvh;border-radius:0;padding:clamp(26px,5vh,44px) 20px 18px;background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}.auth-page .login-brand{margin-bottom:25px}.auth-page .login-brand img{width:132px}.auth-page .login-brand strong{font-size:23px;white-space:normal}.auth-page .login-form{gap:14px}.auth-page .login-form input{min-height:56px;font-size:16px}.auth-page .login-options{align-items:flex-start;gap:12px}.auth-page .login-submit{min-height:58px}}
@media (prefers-reduced-motion:reduce){.auth-page .login-visual img,.auth-page .login-submit{transform:none!important;transition:none!important}}
.startup-error{min-height:100dvh;display:grid;place-items:center;padding:24px;background:#f4f6f9}.startup-error-card{width:min(560px,100%);padding:24px;border-radius:18px;background:#fff;box-shadow:0 24px 70px rgba(19,31,48,.14)}

/* MyTMB 6.12.1 — degradê e transparência aprovados no acesso */
.auth-page .login-shell::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    radial-gradient(ellipse 24% 82% at 44% 50%,rgba(255,255,255,.52) 0%,rgba(255,255,255,.31) 48%,rgba(255,247,249,.15) 72%,rgba(255,255,255,0) 100%);
}
.auth-page .login-panel{
  background:
    linear-gradient(90deg,rgba(255,255,255,.995) 0%,rgba(255,255,255,.988) 68%,rgba(255,255,255,.955) 100%);
}
.auth-page .login-panel::before{
  top:-20%;
  right:-47%;
  width:83%;
  height:142%;
  border-radius:50%;
  background:
    linear-gradient(90deg,
      rgba(255,255,255,.985) 0%,
      rgba(255,255,255,.955) 47%,
      rgba(255,252,253,.84) 67%,
      rgba(255,244,247,.58) 81%,
      rgba(255,255,255,.24) 93%,
      rgba(255,255,255,0) 100%);
  border-right:1.5px solid rgba(222,19,39,.64);
  box-shadow:14px 0 38px rgba(185,15,33,.10),inset -1px 0 rgba(255,255,255,.66);
  -webkit-backdrop-filter:blur(1.4px) saturate(104%);
  backdrop-filter:blur(1.4px) saturate(104%);
}
.auth-page .login-panel::after{
  opacity:1;
  background:
    radial-gradient(circle at 5% 92%,rgba(198,213,230,.42) 0 1.45px,transparent 1.9px) 0 0/17px 17px,
    radial-gradient(ellipse at 84% 18%,rgba(223,20,39,.06),transparent 35%),
    linear-gradient(180deg,rgba(255,255,255,.97),rgba(248,250,253,.965));
  -webkit-mask-image:linear-gradient(90deg,#000 0%,#000 80%,rgba(0,0,0,.72) 91%,transparent 100%);
  mask-image:linear-gradient(90deg,#000 0%,#000 80%,rgba(0,0,0,.72) 91%,transparent 100%);
}
.auth-page .login-visual::before{
  background:
    linear-gradient(90deg,rgba(255,255,255,.17) 0%,rgba(255,255,255,.08) 11%,rgba(255,255,255,0) 28%),
    radial-gradient(ellipse at 48% 21%,rgba(237,22,46,.14),transparent 31%),
    linear-gradient(90deg,rgba(60,7,23,.16) 0%,transparent 27%),
    linear-gradient(180deg,rgba(5,13,27,.055),transparent 58%,rgba(5,10,20,.18));
}
.auth-page .login-visual::after{
  opacity:.19;
  background:
    radial-gradient(ellipse at 51% 96%,rgba(255,31,50,.25),transparent 35%),
    linear-gradient(115deg,transparent 56%,rgba(10,39,69,.10));
}
@media (max-width:1180px){
  .auth-page .login-panel::before{right:-43%;width:76%}
  .auth-page .login-shell::before{background:radial-gradient(ellipse 27% 82% at 47% 50%,rgba(255,255,255,.47) 0%,rgba(255,255,255,.25) 52%,rgba(255,255,255,0) 100%)}
}
@media (max-width:900px){
  .auth-page .login-shell::before{display:none}
  .auth-page .login-panel{background:rgba(255,255,255,.945);-webkit-backdrop-filter:blur(12px) saturate(108%);backdrop-filter:blur(12px) saturate(108%)}
  .auth-page .login-panel::after{display:none}
}
@media (max-width:520px){
  .auth-page .login-panel{background:#fff;-webkit-backdrop-filter:none;backdrop-filter:none}
}



/* MyTMB 6.14.0 — login funcional e responsivo sem duplicação visual */
.auth-page,.auth-page #app{margin:0;width:100%;min-height:100dvh;background:#fff;overflow:hidden}



























@media(max-width:1180px){}
@media(max-width:900px){.auth-page,.auth-page #app{overflow:auto}}
@media(max-width:520px){}

/* MyTMB 6.14.0 — seletores de idioma */


@media(max-width:520px){}

/* MyTMB v6.14.0 — painel de monitorização da integração */
.integration-monitor{margin-bottom:16px}
.integration-monitor-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-top:14px}
.integration-monitor-grid article{display:grid;gap:4px;min-height:82px;padding:14px;border:1px solid var(--line);border-radius:12px;background:linear-gradient(180deg,#fff 0%,#fffafb 100%)}
.integration-monitor-grid strong{font-size:24px;line-height:1;color:var(--red)}
.integration-monitor-grid span{font-size:11px;color:var(--muted);font-weight:650}
.integration-errors{display:grid;gap:7px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.integration-errors>div{display:flex;justify-content:space-between;gap:14px;padding:8px 10px;border-radius:8px;background:#fff5f5;color:var(--danger)}
.integration-errors small{color:var(--muted);text-align:right}
.integration-monitor-ok{margin:14px 0 0}
@media(max-width:1180px){.integration-monitor-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.integration-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.integration-errors>div{display:grid}.integration-errors small{text-align:left}}

/* MyTMB 6.14.1 — Visão Global integral, estável e sempre visível */
.global-advanced-filters{
  display:block!important;
  margin-top:14px!important;
  padding-top:14px!important;
  border-top:1px solid #e4e9ef;
}
.global-advanced-title{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:10px}
.global-advanced-title strong{color:#26384d;font-size:12px;font-weight:850}
.global-advanced-title span{color:var(--muted);font-size:10px;text-align:right}
.global-filter-grid.advanced{display:grid!important;margin-top:0!important}
.global-summary{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.global-summary>div{position:relative;overflow:hidden;min-height:52px}
.global-dashboard-state{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px;padding:11px 13px;border:1px solid #dce4ec;border-radius:8px;background:#fff;color:#33445a}
.global-dashboard-state>div,.global-dashboard-state.empty{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.global-dashboard-state strong{font-size:12px}.global-dashboard-state span{font-size:10px;color:var(--muted)}
.global-dashboard-state.error{border-color:#efc9cd;background:#fff7f8;color:#9e1d29}
.global-dashboard-state.empty{justify-content:flex-start;border-color:#dce4ec;background:#f9fbfd}
.global-kpi,.dashboard-fixed-panel,.global-summary>div{position:relative;overflow:hidden}
.dashboard-fixed-panel{min-height:252px}
.dashboard-panel-body{min-height:184px}
.component-loading{position:absolute;inset:0;z-index:3;pointer-events:none;background:linear-gradient(105deg,transparent 18%,rgba(255,255,255,.68) 38%,rgba(238,243,248,.54) 50%,rgba(255,255,255,.68) 62%,transparent 82%);background-size:230% 100%;animation:componentLoadingSweep 1.15s linear infinite}
@keyframes componentLoadingSweep{to{background-position:-230% 0}}
.global-kpi.is-loading,.dashboard-fixed-panel.is-loading,.global-summary.is-loading>div{cursor:wait}
.dashboard-empty-list{min-height:170px;display:grid;place-content:center;justify-items:center;gap:6px;padding:20px;text-align:center;color:var(--muted)}
.dashboard-empty-list strong{color:#536275;font-size:11px}.dashboard-empty-list span{font-size:9px}
.attention-empty strong{max-width:360px;line-height:1.45}
.panel-head-actions{display:flex;align-items:center;gap:8px}
.panel-count{display:grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#fff0f1;color:var(--red);font-size:10px;font-weight:850}
.global-empty-chart{position:relative;display:grid;gap:9px;min-height:184px;padding:6px 0 22px}
.global-empty-axis{position:absolute;inset:4px 62px 32px 94px;display:grid;grid-template-columns:repeat(4,1fr);pointer-events:none}
.global-empty-axis span{border-left:1px dashed #e4eaf0}.global-empty-axis span:last-child{border-right:1px dashed #e4eaf0}
.global-empty-row{position:relative;z-index:1;display:grid;grid-template-columns:minmax(82px,1fr) minmax(85px,1.6fr) auto;align-items:center;gap:8px;min-height:25px}
.global-empty-label{color:#a2adba;font-size:10px}.global-empty-row strong{min-width:58px;color:#8a96a5;text-align:right;font-size:10px}
.global-empty-chart p{position:absolute;left:0;right:0;bottom:0;margin:0;color:#7a8797;text-align:center;font-size:9px;font-weight:700}
.global-dashboard-grid>.panel{height:100%}
.content{max-width:100%;overflow-x:hidden}
@media(max-width:900px){
  .global-advanced-title{align-items:flex-start;flex-direction:column;gap:3px}
  .global-advanced-title span{text-align:left}
  .global-summary{grid-template-columns:1fr}
  .dashboard-fixed-panel{min-height:235px}
}
@media(max-width:560px){
  .global-filter-grid,.global-filter-grid.advanced{grid-template-columns:1fr!important}
  .global-dashboard-state{align-items:flex-start;flex-direction:column}
  .global-dashboard-state .secondary-button{width:100%}
  .global-metrics-grid{grid-template-columns:1fr!important}
  .global-summary{grid-template-columns:1fr!important}
  .global-empty-axis{left:86px;right:56px}
}
/* MyTMB v6.14.2 — sidebar neutra, login fiel e cotações inteligentes */
.sidebar{
  background:linear-gradient(180deg,#ffffff 0%,#f8fafc 52%,#f1f4f7 100%);
  border-right:1px solid #dde4eb;
  box-shadow:8px 0 28px rgba(15,28,43,.055);
}
.sidebar::before{background:linear-gradient(155deg,rgba(255,255,255,.72) 0%,rgba(255,255,255,0) 55%,rgba(215,25,32,.025) 100%)}
.sidebar::after{opacity:.032;filter:grayscale(1) contrast(.78) brightness(.82)}
.nav-title{color:#a82934}
.nav-item:hover,.nav-item:focus-visible{background:#f1f4f7;border-color:#e0e6ec;color:var(--navy)}
.nav-item.active{background:#fff5f6;border-color:rgba(215,25,32,.18);box-shadow:0 5px 16px rgba(15,28,43,.055);color:#b71922}
.nav-item.active::before{left:-8px;width:3px;background:#d71920}
.sidebar-collapse-action,.sidebar-help{background:rgba(255,255,255,.68);border-color:#e7ebef}


.quote-service-override{padding:12px;border:1px solid rgba(215,25,32,.24);border-radius:10px;background:#fff8f9}
.quote-margin-warning{padding:12px;border:1px solid #e7a53e;border-radius:10px;background:#fff8e9;color:#754b07;font-weight:700}
.quote-calculation-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin-top:12px}
.quote-calculation-details span{padding:10px;border:1px solid var(--line);border-radius:9px;background:#fff}
.import-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px}
.import-actions>span{flex:1 1 260px;color:var(--muted)}
@media(max-width:760px){.quote-calculation-details{grid-template-columns:1fr}}

/* MyTMB v6.14.2 — hotfix: login fiel à referência com MyTMB e idioma no topo */
@media (min-width:901px){
  .auth-page,.auth-page #app{
    width:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:#fff;
  }




















}

@media (min-width:901px) and (max-aspect-ratio:16/10){


}

@media (min-width:901px) and (max-width:1180px){




}

@media (max-width:900px){


}

/* Ajuste métrico final da referência 1672×941 para ecrãs 16:9 */
@media (min-width:1181px){







}

@media (min-width:901px){



}

@media (min-width:901px){

}


/* MyTMB v6.14.4 — login alinhado com a referência final e sidebar vermelha suave */
.sidebar{
  background:
    radial-gradient(circle at 18% -8%,rgba(255,255,255,.98) 0%,rgba(255,255,255,.72) 28%,rgba(255,255,255,0) 53%),
    linear-gradient(180deg,#fffefe 0%,#fff8f9 30%,#fcecee 67%,#f6dce0 100%)!important;
  border-right:1px solid rgba(177,34,48,.14)!important;
  box-shadow:8px 0 30px rgba(94,23,33,.075)!important;
}
.sidebar::before{
  background:linear-gradient(155deg,rgba(255,255,255,.66) 0%,rgba(255,255,255,0) 48%,rgba(190,29,43,.07) 100%)!important;
}
.sidebar::after{opacity:.044!important;filter:grayscale(1) sepia(.12) saturate(.72) contrast(.82) brightness(.9)!important}
.nav-title{color:#a62632!important}
.nav-item{color:#293547!important}
.nav-item .nav-icon{color:#687487!important}
.nav-item:hover,.nav-item:focus-visible{
  background:rgba(255,255,255,.62)!important;
  border-color:rgba(183,34,48,.13)!important;
  color:#172235!important;
}
.nav-item.active{
  background:rgba(255,255,255,.88)!important;
  border-color:rgba(190,31,45,.18)!important;
  box-shadow:0 7px 20px rgba(119,24,36,.085)!important;
  color:#b71922!important;
}
.nav-item.active::before{background:linear-gradient(180deg,#ef3340 0%,#c9101c 100%)!important}
.nav-item.active .nav-icon{color:#bd1823!important}
.sidebar-collapse-action,.sidebar-help{
  background:rgba(255,255,255,.56)!important;
  border-color:rgba(177,34,48,.10)!important;
  color:#536174!important;
}
.sidebar-collapse-action:hover,.sidebar-help:hover{
  background:rgba(255,255,255,.82)!important;
  border-color:rgba(177,34,48,.16)!important;
  color:#172235!important;
}

@media (min-width:901px){
  .auth-page,.auth-page #app{width:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:#fff}







































}

@media (max-width:900px){



}

/* Ajustes finais de sobreposição dos controlos da referência */
@media (min-width:901px){



}

@media (min-width:901px){



}

@media (min-width:901px){



}
@media (min-width:901px){

}
@media (min-width:901px){}
@media (min-width:901px){}
@media (min-width:901px){



}


/* Hotfix v6.14.4 — login sem seletor de idioma e sem sobreposição/autofill */





@media (min-width:901px){











}

/* MyTMB v6.14.6 — normalização visual entre Chromium, Firefox e WebKit */
:root{color-scheme:light;scrollbar-gutter:stable}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;font-synthesis:none}
body{margin:0;min-width:320px}
button,input,select,textarea{
  font:inherit;
  line-height:1.25;
  letter-spacing:inherit;
  color:inherit;
  border-style:solid;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
button,input,textarea{-webkit-appearance:none;appearance:none}
select:not([multiple]){
  -webkit-appearance:none;
  appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 20 20'%3E%3Cpath fill='%23374657' d='M5.4 7.3 10 11.9l4.6-4.6 1.4 1.4-6 6-6-6z'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 10px center;
  background-size:14px 14px;
  padding-right:34px!important;
}
select::-ms-expand{display:none}
input[type="checkbox"],input[type="radio"]{-webkit-appearance:auto;appearance:auto}
input[type="date"],input[type="time"],input[type="datetime-local"]{min-height:38px}
input::-webkit-date-and-time-value{text-align:left}
textarea{resize:vertical}
img,svg,canvas,video{max-width:100%}
.data-table,.table-wrap,.report-table-wrap{max-width:100%}
.table-wrap,.report-table-wrap{overflow:auto;overscroll-behavior-inline:contain}
.modal,.modal-card,.dialog-card{max-width:min(96vw,1100px);max-height:calc(100dvh - 32px)}
.modal-body,.dialog-body{overflow:auto;overscroll-behavior:contain}
.popover,.dropdown-menu,.select-menu{max-width:min(94vw,420px)}
.field,.global-filter,.report-catalog-toolbar>*{min-width:0}
.field input,.field select,.field textarea,.global-filter input,.global-filter select{width:100%;min-width:0}
@supports (-moz-appearance:none){
  select:not([multiple]){padding-top:0;padding-bottom:0}
  input[type="number"]{-moz-appearance:textfield}
}
@supports (-webkit-touch-callout:none){
  input,select,textarea{font-size:max(16px,1em)}

}
@media(max-width:900px){
  .modal,.modal-card,.dialog-card{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}
  .table-wrap,.report-table-wrap{-webkit-overflow-scrolling:touch}
}

/* MyTMB v6.14.6 — login estrutural definitivo, identidade oficial e controlos reais */
.auth-page,.auth-page #app{width:100%;height:100dvh;min-height:100dvh;overflow:hidden;background:#fff}












































@media(max-width:900px){















}
@media(max-width:520px){








}

/* v6.14.6 — neutralização explícita das coordenadas antigas do login */




@media(min-width:901px){}

/* MyTMB v6.15.2 — página de login oficial, sem seletor de idioma */
.auth-page,.auth-page #app{width:100%;height:100dvh;min-height:100dvh;margin:0;overflow:hidden;background:#fff}
.login-production-page{position:relative;width:100%;height:100dvh;min-height:560px;margin:0;overflow:hidden;background:#fff}
.login-production-shell{position:absolute;left:50%;top:50%;width:max(100vw,177.6833156vh);height:max(100vh,56.2799043vw);transform:translate(-50%,-50%);overflow:hidden;background:#fff;container-type:size}
.login-production-visual{position:absolute;inset:0;z-index:1;width:100%;height:100%;overflow:hidden;background:#fff}
.login-production-visual img{display:block;width:100%;height:100%;max-width:none;object-fit:cover;object-position:center;filter:none;transform:none;opacity:1}
.login-production-panel{position:absolute;inset:0;z-index:3;width:100%;height:100%;padding:0;background:transparent;pointer-events:none}
.login-production-content{position:absolute;inset:0;z-index:5;width:100%;height:100%;margin:0;pointer-events:none}
.login-production-brand{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;pointer-events:none}
.login-production-brand .login-tmb-logo{position:absolute;left:12.5%;top:13.5%;width:12.3%;height:auto;display:block;object-fit:contain;object-position:center;filter:none;transform:none;opacity:1;border:0;box-shadow:none;background:transparent}
.login-production-brand h1{position:absolute;left:8.95%;top:33.65%;margin:0;color:#142136;font-size:3.58cqh;line-height:1.08;font-weight:850;letter-spacing:-.034em;white-space:nowrap}
.login-production-form{position:absolute;inset:0;display:block;pointer-events:none}
.login-production-field{position:absolute;display:block;left:6.88%;width:29.20%;height:10.5%;margin:0;padding:0;color:#142136;font-size:1.50cqh;font-weight:760;line-height:1.2;pointer-events:none}
.login-production-field:nth-of-type(1){top:41.85%}.login-production-field:nth-of-type(2){top:55.15%}
.login-production-field>span:first-child{display:block;margin:0 0 1.0cqh;padding:0}
.login-production-control{position:relative;display:flex;align-items:center;gap:1.0cqw;width:100%;height:6.45cqh;padding:0 1.1cqw;border:.10cqh solid #d4dce6;border-radius:1.0cqh;background:rgba(255,255,255,.98);box-shadow:0 .55cqh 1.6cqh rgba(17,29,44,.06);pointer-events:auto;overflow:hidden}
.login-production-control:focus-within{border-color:#c8d1dc;box-shadow:0 0 0 .22cqh rgba(215,25,32,.10),0 .7cqh 1.8cqh rgba(17,29,44,.06)}
.login-production-control>svg{width:2.0cqh;height:2.0cqh;min-width:2.0cqh;color:#617087}
.login-production-control input{width:100%;height:100%;min-width:0;margin:0;padding:0;border:0;outline:0;background:transparent;color:#142136;font:inherit;font-size:1.48cqh;font-weight:500;box-shadow:none;caret-color:#d71920;appearance:none;-webkit-appearance:none}
.login-production-control .icon-button{width:4.0cqh;height:4.0cqh;min-width:4.0cqh;margin:0;padding:0;border:0;background:transparent;color:#617087;opacity:1;pointer-events:auto;cursor:pointer}
.login-production-options{position:absolute;left:6.88%;top:67.50%;width:29.20%;height:3.3%;display:flex;align-items:center;justify-content:space-between;gap:1cqw;color:#2c394a;font-size:1.43cqh;line-height:1.2;pointer-events:auto}
.login-production-options .remember-session{display:inline-flex;align-items:center;gap:.65cqw;width:auto;height:auto;margin:0;padding:0;white-space:nowrap;cursor:pointer}
.login-production-options input[type="checkbox"]{width:1.78cqh;height:1.78cqh;min-width:1.78cqh;min-height:1.78cqh;flex:0 0 1.78cqh;margin:0;padding:0;border:.10cqh solid #d71920;border-radius:.28cqh;background:#fff;appearance:none;-webkit-appearance:none;box-shadow:none;cursor:pointer}
.login-production-options input[type="checkbox"]:checked{background:#e30613;border-color:#e30613}
.login-production-options input[type="checkbox"]:checked::after{content:'✓';display:grid;place-items:center;width:100%;height:100%;color:#fff;font-size:1.22cqh;font-weight:900;line-height:1}
.login-production-options input[type="checkbox"]:focus-visible{outline:.22cqh solid rgba(215,25,32,.32);outline-offset:.18cqh}
.login-production-options button{margin:0;padding:.3cqh 0;border:0;background:transparent;color:#1266d6;font:inherit;font-weight:600;pointer-events:auto;cursor:pointer;white-space:nowrap}
.login-production-error{display:none}.login-production-error:not(:empty){display:block;position:absolute;left:6.88%;top:71.05%;width:29.20%;min-height:2.3%;margin:0;padding:.22cqh .35cqw;border-radius:.42cqh;background:rgba(255,255,255,.96);color:#b4232f;font-size:1.16cqh;font-weight:700;line-height:1.3;pointer-events:none}
.login-production-submit{position:absolute;left:6.88%;top:75.10%;width:29.20%;height:7.15%;margin:0;padding:0 1.2cqw;border:0;border-radius:1.0cqh;background:linear-gradient(135deg,#f10b1f 0%,#e30618 62%,#d10718 100%);box-shadow:0 1.25cqh 2.6cqh rgba(211,8,28,.22),inset 0 .1cqh rgba(255,255,255,.25);color:#fff;font-size:1.92cqh;font-weight:820;pointer-events:auto;cursor:pointer}
.login-production-submit:hover:not(:disabled){transform:translateY(-.08cqh)}
.login-production-submit:focus-visible{outline:.20cqh solid rgba(255,255,255,.96);outline-offset:-.42cqh}
.login-production-legal{position:absolute;left:8.9%;top:88.8%;width:25.1%;margin:0;color:#8490a0;text-align:center;font-size:1.22cqh;line-height:1.2;pointer-events:none}
.login-production-locale{display:none!important}
.login-production-control input::-ms-reveal,.login-production-control input::-ms-clear{display:none}
.login-production-control input::-webkit-contacts-auto-fill-button,.login-production-control input::-webkit-credentials-auto-fill-button{visibility:hidden;display:none!important;pointer-events:none}
.login-production-control input:-webkit-autofill,.login-production-control input:-webkit-autofill:hover,.login-production-control input:-webkit-autofill:focus{-webkit-text-fill-color:#142136!important;-webkit-box-shadow:0 0 0 1000px #fff inset!important;box-shadow:0 0 0 1000px #fff inset!important;caret-color:#d71920!important}
.logo-tmb{display:block;width:auto;height:auto;max-width:100%;object-fit:contain;object-position:center;transform:none;filter:none;opacity:1;clip-path:none;mask:none;mix-blend-mode:normal;border:0;outline:0;box-shadow:none;background:transparent}
@media(max-width:900px){.login-production-shell{left:0;transform:translateY(-50%)}.login-production-brand .login-tmb-logo{left:8vw;top:14%;width:42vw}.login-production-brand h1{left:5.5vw;top:33%;font-size:clamp(22px,6.8vw,31px)}.login-production-field{left:5.5vw;width:86vw}.login-production-options,.login-production-error,.login-production-submit{left:5.5vw;width:86vw}.login-production-options{font-size:clamp(12px,3.4vw,15px)}.login-production-control{height:clamp(54px,6.45cqh,62px);padding:0 14px;gap:12px}.login-production-control input{font-size:16px}.login-production-options input[type="checkbox"]{width:18px;height:18px;min-width:18px;min-height:18px;flex-basis:18px;border-radius:3px}.login-production-legal{left:5.5vw;width:86vw;font-size:clamp(11px,3vw,13px)}}

/* MyTMB v6.16.0 — Centro de Configuração Operacional */
.setup-alert{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:18px 20px;margin-bottom:20px;border:1px solid #f0b4b4;border-radius:16px;background:#fff5f5;color:#7f1d1d}.setup-alert div{display:grid;gap:5px}.setup-alert span{font-size:13px;line-height:1.55;color:#9b2c2c}.setup-alert code{max-width:360px;padding:8px 10px;border-radius:8px;background:#7f1d1d;color:#fff;font-size:12px;white-space:normal}.setup-overview{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:28px;align-items:center;padding:28px;margin-bottom:22px;border-radius:20px;border:1px solid var(--border,#dfe5ec);background:linear-gradient(135deg,#fff 0%,#f7f9fc 100%);box-shadow:0 12px 30px rgba(20,34,52,.06)}.setup-overview.ready{border-color:#a7d7ba;background:linear-gradient(135deg,#f8fffb 0%,#eefaf3 100%)}.setup-overview.pending{border-color:#efc4c4;background:linear-gradient(135deg,#fff 0%,#fff7f7 100%)}.setup-overview h2{margin:5px 0 8px;font-size:26px;color:#172638}.setup-overview p{margin:0;max-width:780px;color:#5a6878;line-height:1.6}.setup-progress{display:grid;gap:8px;min-width:0}.setup-progress strong{font-size:38px;line-height:1;color:#172638}.setup-progress span{font-size:13px;color:#66758a}.setup-progress i{display:block;height:9px;border-radius:99px;background:#e4e8ee;overflow:hidden}.setup-progress b{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#d80712,#f02b36)}.setup-overview.ready .setup-progress b{background:linear-gradient(90deg,#16814b,#34a96b)}.setup-step-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;margin-bottom:22px}.setup-step{display:flex;flex-direction:column;min-height:238px;padding:18px;border-radius:16px;border:1px solid #e0e6ed;background:#fff;box-shadow:0 7px 20px rgba(20,34,52,.045)}.setup-step.ready{border-color:#b8dec7}.setup-step.pending{border-color:#efcece}.setup-step-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.setup-step-head>span:first-child{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:#eef2f6;color:#172638;font-size:12px;font-weight:800}.setup-step.ready .setup-step-head>span:first-child{background:#e9f8ef;color:#176a42}.setup-badge{padding:5px 8px;border-radius:99px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.setup-badge.ready{background:#e7f7ed;color:#176a42}.setup-badge.pending{background:#fff0f0;color:#b3262e}.setup-step h3{margin:18px 0 4px;color:#172638;font-size:15px;line-height:1.35}.setup-count{font-size:30px;color:#172638}.setup-step p{flex:1;margin:7px 0 15px;color:#68778a;font-size:12px;line-height:1.5}.setup-step .secondary-button{width:100%;justify-content:center}.setup-flow{padding:24px}.setup-flow ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:20px 0 0;padding:0;list-style:none;counter-reset:setup}.setup-flow li{position:relative;display:grid;gap:6px;padding:16px 16px 16px 52px;border:1px solid #e1e6ed;border-radius:14px;background:#fafbfd;counter-increment:setup}.setup-flow li:before{content:counter(setup);position:absolute;left:16px;top:15px;display:grid;place-items:center;width:25px;height:25px;border-radius:8px;background:#d80712;color:#fff;font-size:12px;font-weight:800}.setup-flow li strong{color:#172638;font-size:14px}.setup-flow li span{color:#6a7889;font-size:12px;line-height:1.45}
@media(max-width:1380px){.setup-step-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.setup-overview{grid-template-columns:1fr}.setup-step-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.setup-flow ol{grid-template-columns:1fr 1fr}.setup-alert{flex-direction:column}}
@media(max-width:620px){.setup-overview{padding:20px}.setup-step-grid{grid-template-columns:1fr}.setup-flow ol{grid-template-columns:1fr}}

/* UI_CRM_PHASE1_V6184 — navegação em acordeão, scroll persistente e carteira CRM */
.nav-section-toggle{
  width:100%;border:0;background:transparent;color:var(--text-muted,#697386);display:flex;align-items:center;justify-content:space-between;
  padding:10px 14px 7px;font:inherit;font-size:11px;font-weight:800;letter-spacing:.11em;text-transform:uppercase;cursor:pointer;text-align:left;
}
.nav-section-toggle:hover{color:var(--text,#172033)}
.nav-section-chevron{font-size:15px;line-height:1;transition:transform .18s ease}
.nav-section.open .nav-section-chevron{transform:rotate(180deg)}
.sidebar:not(.collapsed) .nav-section:not(.open) .nav-items{display:none}
.sidebar.collapsed .nav-section-toggle{display:none!important}
.sidebar.collapsed .nav-items{display:block!important}
.sidebar.collapsed .nav-section{margin:0}
.sidebar.collapsed .nav-item{position:relative}
.client-portfolio-action-bar{display:flex;justify-content:flex-end;align-items:center;margin:-2px 0 14px;gap:8px}
.client-total-kpis{margin-bottom:10px}
@media (max-width:900px){.client-portfolio-action-bar{justify-content:stretch}.client-portfolio-action-bar .secondary-button{width:100%;justify-content:center}}



/* MyTMB v6.18.4 — Fase 2 multi-equipa / multiárea */
.scope-multi-field{min-width:0}
.scope-multi-picker{position:relative;border:1px solid var(--border,#d7dee8);border-radius:10px;background:#fff;min-height:44px}
.scope-multi-picker>summary{list-style:none;cursor:pointer;padding:12px 42px 12px 14px;font-weight:650;color:var(--text,#182438);position:relative;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.scope-multi-picker>summary::-webkit-details-marker{display:none}
.scope-multi-picker>summary:after{content:'⌄';position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:18px;color:#65748a}
.scope-multi-picker[open]>summary:after{content:'⌃'}
.scope-multi-options{position:absolute;z-index:80;left:-1px;right:-1px;top:calc(100% + 6px);max-height:280px;overflow:auto;padding:8px;background:#fff;border:1px solid var(--border,#d7dee8);border-radius:10px;box-shadow:0 14px 34px rgba(17,31,54,.16)}
.scope-multi-option{display:flex;align-items:center;gap:10px;padding:9px 10px;border-radius:8px;cursor:pointer;font-weight:600;color:var(--text,#182438)}
.scope-multi-option:hover{background:#f6f8fb}
.scope-multi-option input{width:18px;height:18px;accent-color:#d71920;flex:0 0 auto}
.scope-multi-option span{min-width:0}
@media (max-width:700px){.scope-multi-options{position:static;box-shadow:none;border-left:0;border-right:0;border-bottom:0;border-radius:0 0 10px 10px;max-height:220px}}

/* TRANSVERSAL_MULTI_SCOPE_V6184 */
.filter-multi-picker{position:relative;min-width:190px;border:1px solid #cbd6e2;border-radius:9px;background:#fff}
.filter-multi-picker>summary{list-style:none;cursor:pointer;min-height:40px;padding:10px 34px 10px 12px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative}
.filter-multi-picker>summary::-webkit-details-marker{display:none}
.filter-multi-picker>summary:after{content:'⌄';position:absolute;right:11px;top:50%;transform:translateY(-50%);color:var(--muted)}
.filter-multi-picker[open]>summary:after{content:'⌃'}
.filter-multi-options{position:absolute;z-index:120;left:-1px;top:calc(100% + 6px);min-width:max(100%,240px);max-height:310px;overflow:auto;padding:8px;background:#fff;border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
.filter-multi-options>label{display:flex;align-items:center;gap:9px;padding:8px;border-radius:8px;font-weight:650;cursor:pointer}
.filter-multi-options>label:hover{background:#f4f7fa}
.filter-multi-options input[type=checkbox]{width:17px;height:17px;accent-color:var(--red)}
.filter-multi-actions{position:sticky;bottom:-8px;display:flex;justify-content:flex-end;gap:7px;margin:7px -8px -8px;padding:8px;border-top:1px solid var(--line);background:#fff}
.filter-multi-actions .primary-button,.filter-multi-actions .secondary-button{min-height:34px;padding:7px 11px}
.global-filter-multi .filter-multi-picker{width:100%;min-width:0}
.global-filter-multi .filter-multi-picker[data-disabled="true"]{background:#f3f6f9;opacity:.85;pointer-events:none}
@media(max-width:700px){.filter-multi-options{position:fixed;left:12px;right:12px;top:auto;bottom:12px;max-height:55vh;min-width:0}}

/* ============================================================
   TENDER_UI_V6190
   ============================================================ */

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

.tender-metric{
  min-height:112px;
}

.tender-metric span,
.tender-metric small{
  display:block;
}

.tender-metric strong{
  display:block;
  margin:8px 0 4px;
  font-size:1.45rem;
}

.tender-overview-grid{
  grid-template-columns:repeat(2,minmax(0,1fr));
  margin-bottom:18px;
}

.tender-deadline-list{
  display:grid;
  gap:8px;
}

.tender-deadline-item{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:12px 14px;
  text-align:left;
  background:var(--surface, #fff);
  border:1px solid var(--border, #e5e7eb);
  border-radius:12px;
  cursor:pointer;
}

.tender-deadline-item div{
  display:grid;
  gap:3px;
}

.tender-deadline-item div:last-child{
  text-align:right;
}

.tender-deadline-item span{
  font-size:.8rem;
  opacity:.72;
}

.tender-platform-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}

.tender-platform-card{
  display:grid;
  gap:5px;
  padding:14px;
  border:1px solid var(--border, #e5e7eb);
  border-radius:12px;
  background:var(--surface, #fff);
}

.tender-platform-card span,
.tender-platform-card small{
  font-size:.82rem;
  opacity:.74;
}

.tender-intelligence-summary{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:10px;
}

.tender-intelligence-summary div{
  padding:12px;
  border:1px solid var(--border, #e5e7eb);
  border-radius:12px;
}

.tender-intelligence-summary strong,
.tender-intelligence-summary span{
  display:block;
}

.tender-intelligence-summary strong{
  font-size:1.15rem;
  margin-bottom:4px;
}

.tender-intelligence-summary span{
  font-size:.8rem;
  opacity:.72;
}

.tender-radar-panel{
  margin-bottom:18px;
}

.cell-subtitle{
  display:block;
  margin-top:3px;
  opacity:.68;
}

.tender-simulator-inline{
  min-width:220px;
  display:grid;
  grid-template-columns:minmax(90px,1fr) auto;
  gap:6px;
  align-items:center;
}

.tender-simulator-inline input{
  width:100%;
}

.tender-simulator-inline small{
  grid-column:1/-1;
  min-height:16px;
  font-size:.74rem;
}

@media (max-width:1100px){
  .tender-kpi-grid,
  .tender-platform-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:760px){
  .tender-kpi-grid,
  .tender-platform-grid,
  .tender-overview-grid,
  .tender-intelligence-summary{
    grid-template-columns:1fr;
  }

  .tender-deadline-item{
    align-items:flex-start;
  }
}


/* P3-R8P PASSWORD SETUP EXACT */

body.auth-page{
  margin:0!important;
  width:100%!important;
  height:100dvh!important;
  min-height:100dvh!important;
  overflow:hidden!important;
}

.password-setup-page{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  min-height:100dvh!important;
  margin:0!important;
  padding:0!important;
  overflow:hidden!important;
  background:#fff;
}

.password-setup-page .login-production-shell{
  overflow:hidden!important;
}

.password-setup-page .login-production-visual{
  overflow:hidden!important;
  right:-2px!important;
  bottom:-2px!important;
}

.password-setup-page .login-production-visual img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  object-fit:cover!important;
  object-position:center!important;
}

.password-setup-page .password-setup-guidance{
  position:absolute;
  left:6.88%;
  top:64.4%;
  width:29.5%;
  margin:0;
  padding:0;
  color:#53627a;
  font-size:1.42cqh;
  line-height:1.45;
  pointer-events:none;
}

.password-setup-page .password-setup-guidance p{
  margin:0 0 .32em;
  padding:0;
}

.password-setup-page .password-setup-error{
  top:70.4%!important;
}

.password-setup-page .password-setup-submit{
  pointer-events:auto;
}

@media (max-width:900px){
  .password-setup-page .password-setup-guidance{
    left:8%;
    width:84%;
    font-size:13px;
  }
}

/* ==========================================================================
   P4-R2B — SUBCONTRATAÇÃO SAAS
   ========================================================================== */

.sc-kpi-grid{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:14px;
  margin-bottom:18px;
}

.sc-kpi-small{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

.sc-dashboard-grid{
  grid-template-columns:1.25fr 1fr 1fr;
}

.sc-two-columns{
  grid-template-columns:repeat(2,minmax(0,1fr));
}

.sc-top-gap{
  margin-top:16px;
}

.sc-quick-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin-top:16px;
}

.sc-quick{
  border:1px solid var(--line);
  text-align:left;
  cursor:pointer;
  display:grid;
  gap:7px;
  min-height:104px;
  color:inherit;
}

.sc-quick strong{
  font-size:15px;
}

.sc-quick span{
  color:var(--muted);
  line-height:1.45;
}

.sc-margin-stack{
  display:grid;
  gap:9px;
}

.sc-margin-stack > div{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
  padding:10px 12px;
  border-radius:10px;
  background:#f6f8fa;
}

.sc-margin-stack span{
  color:var(--muted);
  font-size:12px;
  font-weight:750;
}

.sc-email-state{
  display:grid;
  gap:5px;
  padding:14px;
  margin-bottom:12px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
}

.sc-email-state.ready{
  border-color:#bbddca;
  background:#f3faf6;
}

.sc-email-state.pending{
  border-color:#e7d4a5;
  background:#fffaf0;
}

.sc-email-state span{
  color:var(--muted);
  line-height:1.45;
}

.sc-warning{
  padding:13px 15px;
  border:1px solid #ead7a8;
  background:#fffaf0;
  border-radius:12px;
  margin-bottom:16px;
  line-height:1.5;
}

.sc-empty{
  padding:30px 18px;
  text-align:center;
  color:var(--muted);
  border:1px dashed var(--line);
  border-radius:12px;
}

.sc-status{
  display:inline-flex;
  min-height:25px;
  align-items:center;
  padding:4px 8px;
  border-radius:999px;
  background:#edf3f8;
  color:var(--navy);
  font-size:11px;
  font-weight:800;
  white-space:nowrap;
}

.sc-actions,
.sc-head-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

.sc-target-big{
  font-size:42px;
  font-weight:900;
  letter-spacing:-.05em;
  margin-top:12px;
}

.sc-compliance-counts{
  grid-template-columns:repeat(5,minmax(0,1fr));
}

.sc-compliance-counts .panel{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.sc-count{
  font-size:26px;
  font-weight:900;
}

.sc-checklist{
  display:grid;
  gap:10px;
}

.sc-check-item{
  display:grid;
  grid-template-columns:1fr 190px;
  gap:14px;
  align-items:center;
  border:1px solid var(--line);
  border-radius:10px;
  padding:12px;
}

.sc-check-item > div{
  display:grid;
  gap:4px;
}

.sc-check-item small{
  color:var(--muted);
}

.sc-check-item select{
  min-height:40px;
  border:1px solid var(--line);
  border-radius:9px;
  padding:7px 10px;
  background:#fff;
}

.sc-stage-transition{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:12px;
  align-items:center;
  padding:16px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#f8fafc;
  text-align:center;
}

.sc-template-preview{
  display:grid;
  gap:18px;
}

.sc-template-preview > div{
  display:grid;
  gap:7px;
}

.sc-template-preview p{
  margin:0;
}

.sc-template-preview pre{
  white-space:pre-wrap;
  word-break:break-word;
  margin:0;
  padding:14px;
  border:1px solid var(--line);
  background:#f8fafc;
  border-radius:10px;
  font:inherit;
  line-height:1.55;
}

.sc-match-results{
  margin-top:16px;
  margin-bottom:16px;
}

@media (max-width:1200px){

  .sc-kpi-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .sc-dashboard-grid{
    grid-template-columns:1fr;
  }

  .sc-quick-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }

  .sc-compliance-counts{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}

@media (max-width:760px){

  .sc-kpi-grid,
  .sc-kpi-small,
  .sc-two-columns,
  .sc-quick-grid,
  .sc-compliance-counts{
    grid-template-columns:1fr;
  }

  .sc-check-item{
    grid-template-columns:1fr;
  }

  .sc-stage-transition{
    grid-template-columns:1fr;
  }

  .sc-head-actions{
    width:100%;
  }

  .sc-head-actions .primary-button,
  .sc-head-actions .secondary-button{
    flex:1;
  }
}

/* ==========================================================================
   P4-R2C — BUSINESS IMPORT / DUPLICATES
   ========================================================================== */

.sc-import-result{
  display:grid;
  gap:18px;
}

.sc-import-summary{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:12px 0;
}

.sc-import-summary > div{
  display:grid;
  gap:3px;
  padding:12px;
  border:1px solid var(--line);
  border-radius:10px;
  background:#f8fafc;
}

.sc-import-summary strong{
  font-size:24px;
  line-height:1;
}

.sc-import-summary span{
  color:var(--muted);
  font-size:12px;
}

.sc-import-detail{
  display:grid;
  gap:8px;
}

.sc-import-detail h4{
  margin:0 0 4px;
}

.sc-import-row{
  display:grid;
  grid-template-columns:90px 1fr;
  gap:10px;
  padding:10px 12px;
  border:1px solid var(--line);
  border-radius:9px;
}

.sc-import-row span{
  color:var(--muted);
  word-break:break-word;
}

@media (max-width:760px){

  .sc-import-summary{
    grid-template-columns:1fr;
  }

  .sc-import-row{
    grid-template-columns:1fr;
  }
}


/* ==========================================================================
   P4_R2D_LOGIN_IMAGE_CONTINUITY
   Login sem gutter vertical à direita.
   Fora do login, a política global de scrollbar permanece inalterada.
   ========================================================================== */

/*
 * O MyTMB usa scrollbar-gutter:stable globalmente.
 * No ecrã de autenticação isso reservava uma faixa vertical no lado direito.
 *
 * :has(body.auth-page) limita esta exceção exclusivamente ao login.
 */
html:has(body.auth-page){
  scrollbar-gutter:auto!important;
  overflow:hidden!important;

  /*
   * Proteção visual:
   * se existir qualquer pixel exterior ao shell,
   * apresenta exatamente a continuação do asset oficial.
   *
   * 1672 / 941 = 177.6833156%
   * 941 / 1672 = 56.2799043%
   *
   * Estas dimensões são as mesmas usadas pelo login-production-shell.
   */
  background-color:#fff!important;
  background-image:url("assets/tmb-login-layout-oficial-clean-v6148.png")!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-size:
    max(100vw,177.6833156vh)
    max(100vh,56.2799043vw)!important;
}


/*
 * Nenhuma scrollbar pode ocupar espaço no login.
 */
html:has(body.auth-page)::-webkit-scrollbar,
body.auth-page::-webkit-scrollbar{
  display:none!important;
  width:0!important;
  height:0!important;
}


body.auth-page{
  overflow:hidden!important;
  scrollbar-gutter:auto!important;
  margin:0!important;
}


/*
 * O viewport de autenticação ocupa toda a largura disponível.
 */
.auth-page #app,
.auth-page .login-production-page{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  overflow:hidden!important;
}


/*
 * Continuidade exata da imagem oficial por baixo do shell.
 * Não altera a imagem visível nem as coordenadas do formulário.
 */
.auth-page .login-production-page{
  background-color:#fff!important;
  background-image:url("assets/tmb-login-layout-oficial-clean-v6148.png")!important;
  background-position:center center!important;
  background-repeat:no-repeat!important;
  background-size:
    max(100vw,177.6833156vh)
    max(100vh,56.2799043vw)!important;
}


/*
 * O shell continua com a geometria oficial.
 * Apenas garantimos que nenhuma margem/border acidental possa surgir.
 */
.auth-page .login-production-shell,
.auth-page .login-production-visual{
  margin:0!important;
  border:0!important;
  outline:0!important;
}




/* P4-R3B3 — CRM Subcontratados 360. Prefixo sc-b3 para isolamento visual. */
.sc-b3-shell{display:grid;gap:18px}.sc-b3-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding:20px 22px;border:1px solid var(--border,#e5e7eb);border-radius:18px;background:var(--surface,#fff)}.sc-b3-head span{font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted,#6b7280)}.sc-b3-head h2{margin:5px 0 6px;font-size:26px}.sc-b3-head p{margin:0;color:var(--muted,#6b7280);max-width:760px}.sc-b3-period{text-align:right;color:var(--muted,#6b7280);font-size:12px}.sc-b3-period strong{display:block;color:var(--text,#111827);font-size:14px;margin-top:3px}.sc-b3-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.sc-b3-kpis article{padding:16px 18px;border:1px solid var(--border,#e5e7eb);border-radius:16px;background:var(--surface,#fff)}.sc-b3-kpis span{display:block;color:var(--muted,#6b7280);font-size:12px;font-weight:700}.sc-b3-kpis strong{display:block;margin-top:7px;font-size:26px}.sc-b3-tabs{display:flex;gap:6px;padding:5px;border:1px solid var(--border,#e5e7eb);border-radius:14px;background:var(--surface,#fff);width:max-content;max-width:100%;overflow:auto}.sc-b3-tabs button{border:0;background:transparent;padding:9px 13px;border-radius:10px;font-weight:750;color:var(--muted,#6b7280);white-space:nowrap}.sc-b3-tabs button.active{background:var(--soft,#f3f4f6);color:var(--text,#111827)}.sc-b3-content{display:grid;gap:16px}.sc-b3-panel{border:1px solid var(--border,#e5e7eb);border-radius:18px;background:var(--surface,#fff);overflow:hidden}.sc-b3-panel>header,.sc-b3-template>header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:17px 18px;border-bottom:1px solid var(--border,#e5e7eb)}.sc-b3-panel h3,.sc-b3-template h4{margin:0 0 4px}.sc-b3-panel p,.sc-b3-template p{margin:0;color:var(--muted,#6b7280);font-size:13px}.sc-b3-table-wrap{overflow:auto}.sc-b3-table{width:100%;border-collapse:collapse;font-size:13px}.sc-b3-table th{padding:11px 12px;text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted,#6b7280);background:var(--soft,#f8fafc);white-space:nowrap}.sc-b3-table td{padding:12px;border-top:1px solid var(--border,#eef0f3);vertical-align:top}.sc-b3-table td small{display:block;margin-top:3px;color:var(--muted,#6b7280)}.sc-b3-score{font-size:17px}.sc-b3-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;background:#f3f4f6;font-size:11px;font-weight:800}.sc-b3-pill.elite{background:#ecfdf3;color:#067647}.sc-b3-pill.ouro{background:#fffaeb;color:#b54708}.sc-b3-pill.prata{background:#f8fafc;color:#475467}.sc-b3-pill.bronze{background:#fff1f0;color:#b42318}.sc-b3-components{display:flex;flex-wrap:wrap;gap:4px}.sc-b3-components span{padding:3px 5px;border-radius:6px;background:var(--soft,#f3f4f6);font-size:10px}.sc-b3-actions{display:flex;flex-wrap:wrap;gap:6px}.sc-b3-small{padding:6px 9px!important;font-size:11px!important}.sc-b3-small.danger{color:#b42318}.positive{color:#067647;font-weight:700}.negative{color:#b42318;font-weight:700}.sc-b3-empty,.sc-b3-loading,.sc-b3-error{padding:28px;color:var(--muted,#6b7280);text-align:center}.sc-b3-error{display:grid;gap:4px;color:#b42318}.sc-b3-matrix{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;padding:18px}.sc-b3-matrix article{padding:12px;border-radius:12px;background:var(--soft,#f8fafc)}.sc-b3-matrix span{display:block;color:var(--muted,#6b7280);font-size:11px}.sc-b3-matrix strong{display:block;margin-top:5px;font-size:20px}.sc-b3-note{margin:0 18px 18px;padding:12px 14px;border-radius:12px;background:var(--soft,#f8fafc);font-size:12px}.sc-b3-top{border-top:1px solid var(--border,#e5e7eb)}.sc-b3-template{margin:14px;border:1px solid var(--border,#e5e7eb);border-radius:14px;overflow:hidden}.sc-b3-template-actions{display:flex;gap:7px;flex-wrap:wrap;padding:10px 14px;background:var(--soft,#fafafa)}.sc-b3-dialog{border:0;padding:0;background:transparent;max-width:min(760px,calc(100vw - 30px));width:100%}.sc-b3-dialog::backdrop{background:rgba(0,0,0,.5)}.sc-b3-dialog-card{background:var(--surface,#fff);border-radius:18px;overflow:hidden;box-shadow:0 25px 70px rgba(0,0,0,.25)}.sc-b3-dialog-card>header,.sc-b3-dialog-card>footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 18px;border-bottom:1px solid var(--border,#e5e7eb)}.sc-b3-dialog-card>footer{border-bottom:0;border-top:1px solid var(--border,#e5e7eb);justify-content:flex-end}.sc-b3-dialog-card h3{margin:0}.sc-b3-icon{border:0;background:transparent;font-size:24px;line-height:1}.sc-b3-dialog-body{padding:18px;max-height:70vh;overflow:auto}.sc-b3-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.sc-b3-form label,.sc-b3-survey-form label{display:grid;gap:6px}.sc-b3-form label.wide{grid-column:1/-1}.sc-b3-form span,.sc-b3-survey-form span{font-size:12px;font-weight:750}.sc-b3-form input,.sc-b3-form select,.sc-b3-form textarea,.sc-b3-survey-form input,.sc-b3-survey-form select,.sc-b3-survey-form textarea{width:100%;box-sizing:border-box}.sc-b3-form textarea,.sc-b3-survey-form textarea{min-height:88px}.sc-b3-survey-form{display:grid;gap:14px}.sc-b3-survey-form label{padding-bottom:12px;border-bottom:1px solid var(--border,#eee)}.sc-b3-survey-form small{color:var(--muted,#6b7280)}
@media(max-width:900px){.sc-b3-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.sc-b3-matrix{grid-template-columns:repeat(3,minmax(0,1fr))}.sc-b3-head{flex-direction:column}.sc-b3-period{text-align:left}}
@media(max-width:560px){.sc-b3-kpis,.sc-b3-form,.sc-b3-matrix{grid-template-columns:1fr}.sc-b3-form label.wide{grid-column:auto}}
.sc-b3-form-error{margin-bottom:12px;padding:10px 12px;border-radius:10px;background:#fff1f0;color:#b42318;font-size:12px;font-weight:700}


/* P4-R3 consolidated — Tráfego transversal + Postal Hybrid Explorer */
.traffic-shell,.postal-shell{display:grid;gap:18px}.traffic-loading,.traffic-error{display:grid;gap:6px;padding:34px;border:1px solid var(--line);border-radius:16px;background:var(--surface);text-align:center;color:var(--muted)}.traffic-loading strong,.traffic-error strong{color:var(--ink);font-size:18px}.traffic-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.traffic-kpis article{min-width:0;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.traffic-kpis span{display:block;color:var(--muted);font-size:12px;font-weight:700}.traffic-kpis strong{display:block;margin-top:7px;font-size:24px;line-height:1.05}.traffic-kpis small{display:block;margin-top:5px;color:var(--muted)}.traffic-grid-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.traffic-panel{min-width:0}.traffic-table-wrap{width:100%;overflow:auto}.traffic-table{width:100%;border-collapse:collapse;font-size:12px}.traffic-table th{padding:10px 12px;text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.045em;background:#f8fafc;white-space:nowrap}.traffic-table td{padding:11px 12px;border-top:1px solid var(--line);vertical-align:middle;white-space:nowrap}.traffic-table td:nth-child(3){white-space:normal}.traffic-cell-note{display:block;max-width:420px;margin-top:4px;color:var(--muted);white-space:normal}.traffic-empty{padding:26px;text-align:center;color:var(--muted)}.traffic-light{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:800;letter-spacing:.035em}.traffic-light i{width:10px;height:10px;border-radius:50%;box-shadow:0 0 0 3px rgba(104,118,138,.12)}.traffic-light.verde i{background:#178a53}.traffic-light.amarelo i{background:#d68a16}.traffic-light.vermelho i{background:#c92b38}.traffic-light.cinzento i{background:#8a96a7}.traffic-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2f6;font-size:10px;font-weight:800}.traffic-chip.success{background:#e9f7ef;color:#137247}.traffic-chip.warning{background:#fff5de;color:#925f08}.traffic-chip.danger{background:#fdebed;color:#a71d29}.traffic-map-panel{min-height:430px}.traffic-map{position:relative;min-height:360px;margin:0 16px 16px;border-radius:18px;overflow:hidden}.traffic-map svg{display:block;width:100%;height:100%;min-height:360px}.traffic-map-bg{fill:#f6f9fc;stroke:#dce4ec;stroke-width:1}.traffic-map-grid line{stroke:#dce4ec;stroke-width:1;stroke-dasharray:3 6}.traffic-map text{fill:#8a96a7;font-size:13px}.traffic-map-dot{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;padding:0;border:3px solid #fff;border-radius:50%;box-shadow:0 4px 14px rgba(17,29,44,.25);z-index:2}.traffic-map-dot span{display:block;width:100%;height:100%;border-radius:50%}.traffic-map-dot.verde span{background:#178a53}.traffic-map-dot.amarelo span{background:#d68a16}.traffic-map-dot.vermelho span{background:#c92b38}.traffic-map-dot.cinzento span{background:#8a96a7}.traffic-map-empty{display:grid;gap:12px;align-content:center;justify-items:center;min-height:360px;padding:32px;text-align:center;color:var(--muted)}.traffic-map-empty strong{color:var(--ink);font-size:18px}.traffic-map-empty p{max-width:560px;margin:0}.traffic-map-empty>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.traffic-load-list{display:grid;gap:14px}.traffic-load-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.traffic-load-card>header{display:flex;justify-content:space-between;gap:16px}.traffic-load-card>header span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase}.traffic-load-card h3{margin:3px 0 4px}.traffic-load-card p{margin:0;color:var(--muted)}.traffic-load-meta{display:flex;gap:16px;flex-wrap:wrap;margin:14px 0;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px}.traffic-load-meta span{color:var(--muted)}.traffic-load-meta strong{color:var(--ink)}.traffic-recommendations{display:grid;gap:10px}.traffic-recommendation{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px 16px;padding:13px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe}.traffic-recommendation.blocked{opacity:.75}.traffic-recommendation>div:first-child span{display:block;margin-top:3px;color:var(--muted);font-size:11px}.traffic-recommendation>p{grid-column:1/-1;margin:0;color:var(--muted);font-size:11px}.traffic-recommendation>footer{grid-column:1/-1;display:flex;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:10px}.traffic-recommendation>button{grid-column:1/-1;justify-self:start}.traffic-score{text-align:right}.traffic-score strong{font-size:22px}.traffic-score small{color:var(--muted)}.traffic-no-recommendation{padding:12px;border-radius:10px;background:#f8fafc;color:var(--muted);font-size:11px}.traffic-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}.traffic-detail-grid>div{min-width:0;padding:13px;background:var(--surface)}.traffic-detail-grid span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.traffic-detail-grid strong{display:block;margin-top:5px}.traffic-detail-grid small{display:block;margin-top:3px;color:var(--muted)}.sc-form-section-title{padding:12px 0 4px;border-top:1px solid var(--line);margin-top:4px}.sc-form-section-title strong,.sc-form-section-title small{display:block}.sc-form-section-title small{margin-top:4px;color:var(--muted);font-size:11px}.postal-search-form{display:grid;grid-template-columns:180px minmax(0,1fr) auto;gap:10px;align-items:end;padding:16px}.postal-search-form .field{margin:0}.postal-result-empty{padding:28px 16px;text-align:center;color:var(--muted);border-top:1px solid var(--line)}.postal-result{border-top:1px solid var(--line)}.postal-result>header{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:14px 16px;background:#f8fafc}.postal-result>header span{font-size:10px;font-weight:800;color:var(--muted)}.postal-result>article{display:grid;grid-template-columns:2fr 1fr 1fr;gap:14px;padding:13px 16px;border-top:1px solid var(--line)}.postal-result article span,.postal-result article small{display:block;color:var(--muted);font-size:10px}.postal-country-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:14px}.postal-country-grid article{position:relative;padding:12px;border:1px solid var(--line);border-radius:12px}.postal-country-grid header{display:flex;gap:7px;align-items:baseline}.postal-country-grid header strong{font-size:13px}.postal-country-grid header span{font-size:10px;color:var(--muted)}.postal-country-grid b{display:block;margin-top:8px;font-size:18px}.postal-country-grid small{display:block;margin-top:3px;color:var(--muted);font-size:9px}.postal-ready{position:absolute;right:9px;bottom:9px;font-size:8px;font-style:normal;font-weight:900;color:#137247}.postal-search-panel{align-self:start}
@media(max-width:1180px){.traffic-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}.traffic-grid-2{grid-template-columns:1fr}.postal-country-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.traffic-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-detail-grid{grid-template-columns:1fr}.postal-search-form{grid-template-columns:1fr}.postal-result>article{grid-template-columns:1fr}.traffic-recommendation{grid-template-columns:1fr}.traffic-score{text-align:left}.postal-country-grid{grid-template-columns:1fr}}

/* MyTMB V6310 — mapa postal e tarifário de grupagem para Madeira e Açores */
.island-tariff-panel{overflow:hidden}.island-tariff-layout{display:grid;grid-template-columns:minmax(360px,.9fr) minmax(0,1.4fr);gap:16px;padding:0 16px 16px}.island-tariff-map svg{display:block;width:100%;min-height:330px}.island-tariff-map rect{fill:#f7fafc;stroke:#dce4ec}.island-tariff-lines line{stroke:#a8b7c7;stroke-width:1.4;stroke-dasharray:5 6}.island-tariff-node circle{stroke:#fff;stroke-width:3}.island-tariff-node.acores circle{fill:#bd2130}.island-tariff-node.madeira circle{fill:#175cd3}.island-mainland circle{fill:#172033;stroke:#fff;stroke-width:4}.island-tariff-map text{font-size:13px;font-weight:800;fill:#43536a}.island-tariff-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-content:start}.island-tariff-grid article{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:#fff}.island-tariff-grid span,.island-tariff-grid small{color:var(--muted);font-size:10px}.island-tariff-grid strong{font-size:12px}.island-tariff-grid b{font-size:11px;color:#43536a}.island-schedule-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:0 16px 14px}.island-schedule-grid details{border:1px solid var(--line);border-radius:12px;background:#fff}.island-schedule-grid summary{padding:11px 13px;cursor:pointer;font-weight:800;font-size:12px}.island-schedule-grid details>div{display:grid;gap:0;padding:0 13px 10px}.island-schedule-grid details span{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--line);font-size:10px}.island-schedule-grid details b{font-weight:700}.island-tariff-note{margin:0;padding:12px 16px;background:#f8fafc;border-top:1px solid var(--line);color:var(--muted);font-size:11px}
.postal-pricing-context{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--line);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.postal-pricing-context>div{display:grid;gap:4px;padding:12px 14px;background:#f8fafc}.postal-pricing-context span,.postal-pricing-context small{color:var(--muted);font-size:10px}.postal-pricing-context strong{font-size:12px}
.postal-region-strip{padding:0 16px 16px}.postal-region-strip h4{margin:0 0 10px;font-size:12px}.postal-region-strip .island-tariff-grid{grid-template-columns:repeat(5,minmax(0,1fr))}
@media(max-width:1120px){.island-tariff-layout{grid-template-columns:1fr}.island-tariff-grid,.postal-region-strip .island-tariff-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:760px){.island-tariff-grid,.island-schedule-grid,.postal-pricing-context,.postal-region-strip .island-tariff-grid{grid-template-columns:1fr}.island-tariff-map svg{min-height:260px}.island-schedule-grid details span{display:grid}}

/* P4-R3 — o menu móvel deve permanecer acima dos painéis flutuantes. */
@media(max-width:900px){
  .sidebar.open{z-index:95}
  .sidebar-backdrop.show{z-index:90}
}

/* P4-R3H — Compliance 360 / CRM Subcontratados */
.sc-h-filters{display:grid;grid-template-columns:2fr repeat(3,minmax(150px,1fr));gap:12px;margin-bottom:16px}.sc-h-crm-grid{margin-top:0}.sc-h-company[hidden]{display:none!important}.sc-h-pill{display:inline-flex;align-items:center;padding:4px 8px;border-radius:999px;font-size:11px;font-weight:800}.sc-h-pill.red{background:#fee4e2;color:#b42318}.sc-h-pill.yellow{background:#fef0c7;color:#b54708}.sc-h-pill.green{background:#dcfae6;color:#067647}.sc-h-pill.gray{background:#f2f4f7;color:#667085}.sc-h-section-title{padding:12px 14px;border-radius:12px;background:#f8fafc;border:1px solid #e4e7ec}.sc-h-section-title strong{display:block;color:#172033}.sc-h-section-title small{display:block;margin-top:4px;color:#667085}.sc-h-360{display:grid;gap:16px}.sc-h-360 section{padding:15px;border:1px solid #e4e7ec;border-radius:14px}.sc-h-360 h3{margin:0 0 12px}.sc-h-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.sc-h-stat-grid>span{display:grid;gap:4px;padding:10px;border-radius:10px;background:#f8fafc}.sc-h-stat-grid b{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667085}.field select[multiple]{min-height:126px;padding:8px}.table-wrap table small{display:block;margin-top:4px;color:#667085}
@media(max-width:1000px){.sc-h-filters{grid-template-columns:1fr 1fr}.sc-h-stat-grid{grid-template-columns:1fr 1fr}}@media(max-width:620px){.sc-h-filters,.sc-h-stat-grid{grid-template-columns:1fr}}

/* MyTMB 6.32.1 — navegação contextual e relações operacionais */
.sc-h-related-link-v6321{display:grid;gap:4px;padding:10px;border:1px solid transparent;border-radius:10px;background:#f8fafc;color:inherit;text-decoration:none;min-width:0;transition:border-color .16s ease,background .16s ease,transform .16s ease}
.sc-h-related-link-v6321 b{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#667085}
.sc-h-related-link-v6321 span{font-weight:750;color:var(--ink,#172235)}
.sc-h-related-link-v6321:hover,.sc-h-related-link-v6321:focus-visible{border-color:var(--red,#d71920);background:#fff7f8;outline:none;transform:translateY(-1px)}
.sc-h-inline-link-v6321{color:var(--red-dark,#b70f16);font-weight:750;text-decoration:none;border-bottom:1px solid transparent}
.sc-h-inline-link-v6321:hover,.sc-h-inline-link-v6321:focus-visible{border-bottom-color:currentColor;outline:none}
.sc-h-expiry-link-v6321{color:inherit;text-decoration:none;border-radius:8px;padding-inline:7px}
.sc-h-expiry-link-v6321:hover,.sc-h-expiry-link-v6321:focus-visible{background:#fff7f8;outline:2px solid rgba(215,25,32,.16)}
.related-context-bar-v6321{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:13px 15px;border:1px solid #f1b5b8;border-left:4px solid var(--red,#d71920);border-radius:12px;background:#fff8f8}
.related-context-bar-v6321>div:first-child{display:grid;grid-template-columns:auto auto;align-items:baseline;gap:3px 10px;min-width:0}
.related-context-bar-v6321 small{grid-column:1/-1;color:#8a2630;font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.08em}
.related-context-bar-v6321 strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.related-context-bar-v6321 span{color:var(--muted,#667085);font-size:12px}
.semantic-link-v6321{position:relative;cursor:pointer;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.semantic-link-v6321::after{content:'↗';position:absolute;top:8px;right:10px;color:var(--red,#d71920);font-size:12px;font-weight:900;opacity:.72}
.semantic-link-v6321:hover,.semantic-link-v6321:focus-visible{border-color:#ef8b90!important;box-shadow:0 8px 22px rgba(17,29,44,.09);outline:none;transform:translateY(-1px)}
@media(max-width:720px){.related-context-bar-v6321{align-items:stretch;flex-direction:column}.related-context-bar-v6321 .page-actions{width:100%}.related-context-bar-v6321 .page-actions button{flex:1}}

/* P4-R3B5 — Interações + Apoio ao Subcontratado */
.sc-b5-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.22rem .55rem;font-size:.78rem;font-weight:700;background:#eef2f6;color:#334155;white-space:nowrap}.sc-b5-pill.red{background:#fee2e2;color:#991b1b}.sc-b5-pill.yellow{background:#fef3c7;color:#92400e}.sc-b5-pill.green{background:#dcfce7;color:#166534}.sc-b5-pill.blue{background:#dbeafe;color:#1e40af}.sc-b5-pill.gray{background:#eef2f6;color:#475569}
.sc-b5-relationship{border-top:1px solid #e5e7eb;padding-top:1rem}.sc-b5-section-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem}.sc-b5-section-head h3,.sc-b5-section-head p{margin:0}.sc-b5-section-head p{color:#64748b;margin-top:.25rem}.sc-b5-columns{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.sc-b5-columns>article{border:1px solid #e5e7eb;border-radius:14px;padding:1rem;background:#fff}.sc-b5-columns h4{margin:.1rem 0 .75rem}.sc-b5-timeline{display:grid;grid-template-columns:12px 1fr;gap:.65rem;padding:.6rem 0;border-bottom:1px solid #f1f5f9}.sc-b5-timeline>span{width:9px;height:9px;border-radius:50%;background:#d71920;margin-top:.35rem}.sc-b5-timeline strong,.sc-b5-timeline small,.sc-b5-timeline p{display:block;margin:0}.sc-b5-timeline small{color:#64748b;margin-top:.2rem}.sc-b5-timeline p{margin-top:.35rem}.sc-b5-ticket-link{width:100%;border:0;background:transparent;text-align:left;cursor:pointer}.sc-b5-support-filters{display:grid;grid-template-columns:2fr 1fr 1fr;gap:1rem}.sc-h-company footer{display:flex;flex-wrap:wrap;gap:.55rem}.sc-h-company .client-meta{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:900px){.sc-b5-columns{grid-template-columns:1fr}.sc-b5-support-filters{grid-template-columns:1fr}.sc-b5-section-head{flex-direction:column}.sc-h-company .client-meta{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.sc-h-company .client-meta{grid-template-columns:1fr}.sc-h-company footer .primary-button,.sc-h-company footer .secondary-button{width:100%}}

/* MyTMB V6273 — filtro territorial e atribuição múltipla no Funil de Subcontratados */
.sc-territory-filters-v6273{grid-template-columns:minmax(260px,1.4fr) minmax(220px,1fr) minmax(320px,1.5fr);align-items:end}.sc-territory-multi-v6273{position:relative;min-width:0}.sc-territory-multi-v6273>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:#fff;cursor:pointer;list-style:none}.sc-territory-multi-v6273>summary::-webkit-details-marker{display:none}.sc-territory-multi-v6273>summary span{font-size:12px;font-weight:700;color:var(--muted)}.sc-territory-multi-v6273>summary strong{font-size:12px;color:var(--ink)}.sc-territory-options-v6273{position:absolute;z-index:30;top:calc(100% + 6px);right:0;left:0;display:grid;gap:6px;min-width:360px;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff;box-shadow:0 16px 36px rgba(15,23,42,.16)}.sc-territory-options-v6273 label{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:9px;align-items:start;padding:9px;border-radius:9px;cursor:pointer}.sc-territory-options-v6273 label:hover{background:#f8fafc}.sc-territory-options-v6273 input{margin-top:3px}.sc-territory-options-v6273 span{display:grid;gap:3px}.sc-territory-options-v6273 span strong{font-size:12px}.sc-territory-options-v6273 span small{color:var(--muted);font-size:10px;line-height:1.35}.sc-territory-options-v6273 b{min-width:28px;padding:3px 6px;border-radius:999px;background:#eef2f6;text-align:center;font-size:10px}.sc-territory-actions-v6273{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.sc-territory-status-v6273{grid-column:1/-1;display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:12px}.sc-territory-status-v6273 strong{color:var(--ink)}.sc-pipeline-card-head-v6273{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.sc-pipeline-card-head-v6273>strong{display:block}.sc-pipeline-card-head-v6273 label{display:inline-flex;gap:5px;align-items:center;color:var(--muted);font-size:10px;font-weight:700;cursor:pointer}.sc-pipeline-card-head-v6273 input{margin:0}.sc-territory-badge-v6273{display:inline-flex;max-width:100%;padding:4px 7px;border-radius:999px;background:#edf3f8;color:#43536a;font-size:10px;font-weight:800}.sc-pipeline-card-v6273[hidden]{display:none!important}
@media(max-width:1050px){.sc-territory-filters-v6273{grid-template-columns:1fr 1fr}.sc-territory-multi-v6273{grid-column:1/-1}}
@media(max-width:680px){.sc-territory-filters-v6273{grid-template-columns:1fr}.sc-territory-multi-v6273{grid-column:1}.sc-territory-options-v6273{position:static;min-width:0;margin-top:6px;box-shadow:none}.sc-territory-actions-v6273>*{flex:1 1 100%}.sc-territory-status-v6273{flex-direction:column}}

/* MyTMB v6.27.6 — filtros territoriais e de contacto transversais */
.sc-transversal-filters-v6276{grid-template-columns:minmax(260px,1.35fr) minmax(210px,1fr) minmax(260px,1fr) minmax(240px,.9fr);align-items:end}
.sc-transversal-filter-grid-v6276{display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(210px,1fr) minmax(260px,1fr) minmax(240px,.9fr) auto;gap:12px;align-items:end}
.sc-contact-multi-v6276 .sc-territory-options-v6273{min-width:290px}
.sc-crm-multi-v6276{align-self:end;min-height:42px}
.sc-crm-multi-v6276>summary{min-height:42px;display:flex;align-items:center}
@media(max-width:1250px){.sc-transversal-filters-v6276,.sc-transversal-filter-grid-v6276{grid-template-columns:1fr 1fr}.sc-transversal-filter-grid-v6276>button{width:100%}}
@media(max-width:680px){.sc-transversal-filters-v6276,.sc-transversal-filter-grid-v6276{grid-template-columns:1fr}.sc-contact-multi-v6276 .sc-territory-options-v6273{min-width:0}}

/* MYTMB_V6276_TRANSVERSAL_TERRITORY_CONTACT_FILTERS:styles */

/* MyTMB V6.31.9 — Control Tower 360 / One System */
.traffic-one-system-v6319{overflow:hidden;border-left:4px solid #d71920}.traffic-one-system-head-v6319{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px}.traffic-one-system-head-v6319>div>span{color:#d71920;font-size:10px;font-weight:900;letter-spacing:.08em}.traffic-one-system-head-v6319 h3{margin:4px 0}.traffic-one-system-head-v6319 p{margin:0;color:var(--muted)}.traffic-one-system-flow-v6319{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:10px;padding:0 20px 18px}.traffic-one-system-flow-v6319 button{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 9px;align-items:center;min-height:70px;padding:12px;border:1px solid var(--line);border-radius:13px;background:#fff;text-align:left;cursor:pointer}.traffic-one-system-flow-v6319 button:hover{border-color:#d71920;box-shadow:0 8px 20px rgba(215,25,32,.08)}.traffic-one-system-flow-v6319 button>span{grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#fdebed;color:#a71d29;font-weight:900}.traffic-one-system-flow-v6319 button strong{font-size:12px}.traffic-one-system-flow-v6319 button small{color:var(--muted);font-size:10px}.traffic-one-system-flow-v6319>i{color:#98a2b3;font-style:normal;font-weight:900}.traffic-automation-state-v6319{display:flex;gap:18px;flex-wrap:wrap;padding:11px 20px;border-top:1px solid var(--line);background:#f8fafc;color:var(--muted);font-size:10px}.traffic-automation-state-v6319 b{color:var(--ink)}
.traffic-map-controls-v6319{display:flex;gap:7px;flex-wrap:wrap;padding:0 16px 10px}.traffic-map-controls-v6319 button{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:10px;font-weight:800;cursor:pointer}.traffic-map-controls-v6319 button.active{border-color:#b8c4d2;background:#edf3f8;color:var(--ink)}.traffic-map-route-v6319{fill:none;stroke-width:3;stroke-linecap:round;opacity:.6;stroke-dasharray:8 6}.traffic-map-route-v6319.load{stroke:#d68a16}.traffic-map-route-v6319.service{stroke:#175cd3}.traffic-map-load-v6319{position:absolute;z-index:3;display:grid;place-items:center;width:25px;height:25px;padding:0;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:7px;box-shadow:0 4px 14px rgba(17,29,44,.2);cursor:pointer}.traffic-map-load-v6319.load{background:#d68a16}.traffic-map-load-v6319.service{background:#175cd3}.traffic-map-load-v6319 span{color:#fff;font-size:9px;font-weight:900}.traffic-map [data-map-layer].is-hidden{display:none}.traffic-map-legend-v6319{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:0 16px 16px;color:var(--muted);font-size:10px}.traffic-map-legend-v6319 span{display:inline-flex;align-items:center;gap:5px}.traffic-map-legend-v6319 i{display:inline-block;width:9px;height:9px;border-radius:50%}.traffic-map-legend-v6319 i.vehicle{background:#178a53}.traffic-map-legend-v6319 i.load{background:#d68a16;border-radius:2px}.traffic-map-legend-v6319 i.service{background:#175cd3;border-radius:2px}.traffic-map-legend-v6319 small{margin-left:auto}
@media(max-width:900px){.traffic-one-system-flow-v6319{grid-template-columns:1fr 1fr}.traffic-one-system-flow-v6319>i{display:none}}@media(max-width:600px){.traffic-one-system-head-v6319{display:grid}.traffic-one-system-flow-v6319{grid-template-columns:1fr}.traffic-map-legend-v6319 small{margin-left:0;width:100%}}

/* MYTMB_V6319_ONE_SYSTEM_CONTROL_TOWER:styles */

/* MyTMB V6.33.0 — TMS decision engine */
.traffic-tms-intro-v6330{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px;border-left:4px solid #175cd3;background:linear-gradient(135deg,#fff 0%,#f5f9ff 100%)}.traffic-tms-intro-v6330>div>span{color:#175cd3;font-size:10px;font-weight:900;letter-spacing:.08em}.traffic-tms-intro-v6330 h3{margin:4px 0}.traffic-tms-intro-v6330 p{max-width:980px;margin:0;color:var(--muted)}.traffic-recommendation-actions-v6330{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}.traffic-tms-summary-v6330{display:grid;gap:14px}.traffic-tms-summary-v6330>header{display:flex;justify-content:space-between;gap:16px;padding-bottom:13px;border-bottom:1px solid var(--line)}.traffic-tms-summary-v6330>header span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase}.traffic-tms-summary-v6330>header h3{margin:3px 0}.traffic-tms-summary-v6330>header p{margin:0;color:var(--muted)}.traffic-tms-combination-v6330,.traffic-tms-metrics-v6330,.traffic-tms-reasons-v6330{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.traffic-tms-combination-v6330>div,.traffic-tms-metrics-v6330>article,.traffic-tms-reasons-v6330>article{min-width:0;padding:12px;border:1px solid var(--line);border-radius:11px;background:#f8fafc}.traffic-tms-combination-v6330 span,.traffic-tms-metrics-v6330 span,.traffic-tms-reasons-v6330 span{display:block;color:var(--muted);font-size:9px;font-weight:850;text-transform:uppercase}.traffic-tms-combination-v6330 strong,.traffic-tms-metrics-v6330 strong,.traffic-tms-reasons-v6330 strong{display:block;margin-top:5px}.traffic-tms-combination-v6330 small,.traffic-tms-metrics-v6330 small,.traffic-tms-reasons-v6330 small{display:block;margin-top:4px;color:var(--muted);font-size:10px;line-height:1.35}.traffic-tms-state-v6330{display:flex;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:10px;background:#edf3f8}.traffic-tms-state-v6330 span{color:var(--muted);font-size:11px}.traffic-tms-metrics-v6330{grid-template-columns:repeat(3,minmax(0,1fr))}.traffic-tms-reasons-v6330{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-tms-issues-v6330{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.traffic-tms-issues-v6330 section{padding:12px 14px;border-radius:11px;background:#fff6f6;color:#8f1f2a}.traffic-tms-issues-v6330 section+section{background:#fff8e8;color:#855509}.traffic-tms-issues-v6330 ul{margin:8px 0 0;padding-left:18px}.traffic-tms-issues-v6330 li{margin:4px 0;font-size:11px}.traffic-tms-ready-v6330{padding:12px;border-radius:10px;background:#e9f7ef;color:#137247;font-weight:800}
@media(max-width:800px){.traffic-tms-intro-v6330{display:grid}.traffic-tms-combination-v6330,.traffic-tms-metrics-v6330,.traffic-tms-reasons-v6330{grid-template-columns:repeat(2,minmax(0,1fr))}.traffic-tms-issues-v6330{grid-template-columns:1fr}.traffic-tms-state-v6330{display:grid}}@media(max-width:520px){.traffic-tms-combination-v6330,.traffic-tms-metrics-v6330,.traffic-tms-reasons-v6330{grid-template-columns:1fr}}

/* MYTMB_V6330_TMS_DECISION_ENGINE:styles */

/* MyTMB V6.33.1 — cargo classification and fair subcontractor rotation */
.traffic-cargo-description-v6331{margin-top:7px!important;padding:7px 9px;border-radius:8px;background:#f4f7fb;color:#475467!important;line-height:1.4}.traffic-cargo-description-v6331 strong{color:#182230}.traffic-allocation-weight-v6331{padding:10px 12px;border-left:3px solid #175cd3;background:#f5f9ff;border-radius:8px}.traffic-allocation-weight-v6331 span{display:block;color:var(--muted);font-size:10px;font-weight:800;text-transform:uppercase}.traffic-allocation-weight-v6331 strong{display:block;margin-top:4px}

/* MYTMB_V6331_CARGO_FAIR_ROTATION:styles */
.sc-h-agreements-v6332 .sc-h-agreement-row-v6332{align-items:flex-start;border:1px solid #dfe5ee;border-radius:12px;padding:12px;margin:8px 0;background:#fff}
.sc-h-agreement-row-v6332 small{display:block;color:#667085;margin-top:4px}
.sc-h-metrics-v6332 .sc-h-stat-grid span{min-height:68px}

/* MYTMB_V6332_SUBCONTRACTOR_AGREEMENTS_REPORTS:styles */
