:root {
  --cg-green: #4f9f3d;
  --cg-green-dark: #3d7f30;
  --cg-blue: #315f7f;
  --cg-blue-dark: #254b67;
  --cg-blue-soft: #dcebf5;
  --cg-red: #a9443b;
  --cg-red-soft: #f5e2e0;
  --cg-border: #aab3b9;
  --cg-border-light: #d4dade;
  --cg-surface: #f5f6f6;
  --cg-surface-alt: #e9edef;
  --cg-text: #26343d;
  --cg-muted: #68757d;
}
.ap-live.error{color:#a33b32}.ap-live.error i{background:#c84b42!important;box-shadow:0 0 0 3px #f5deda!important}.ap-report-error{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:9px;padding:8px 10px;border:1px solid #dfaaa5;border-left:4px solid #c84b42;border-radius:3px;background:#fff1f0;color:#8d302a;font-size:11px}.ap-report-error button{min-height:26px;white-space:nowrap}

html, body,
button, input, select, textarea {
  font-family: "Segoe UI", Tahoma, Arial, sans-serif !important;
}

body {
  color: var(--cg-text);
}

button:not(:disabled),
[role="button"],
[role="option"],
[data-screen],
.data-table tbody tr,
.tree label,
.users label,
input[type="checkbox"],
input[type="radio"],
select {
  cursor: pointer;
}

button:disabled,
[aria-disabled="true"] {
  cursor: default;
}

/* Cabeçalho e navegação */
.titlebar {
  background: linear-gradient(#f4f7f8, #d8dee2) !important;
  border-bottom-color: #98a3aa !important;
}

.brand-copy b {
  color: #26343d !important;
}

.titlebar-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 30px;
  height: 25px;
  overflow: hidden;
}

.titlebar-symbol {
  position: relative;
  width: 24px;
  height: 24px;
  flex: 0 0 24px;
  overflow: hidden;
}

.titlebar-symbol img {
  position: absolute;
  inset: 0;
  width: 24px;
  height: 24px;
  object-fit: contain;
  max-width: none;
}

.titlebar-logo strong {
  color: #49a83a;
  font-size: 12px;
  font-weight: 900 !important;
  line-height: 1;
  letter-spacing: .1px;
}

.titlebar-logo i {
  width: 1px;
  height: 15px;
  margin: 0 1px;
  background: #8f999f;
}

.titlebar-logo b {
  color: #075991;
  font-size: 11px;
  font-weight: 900 !important;
  line-height: 1;
}

.menubar {
  background: #f1f3f4 !important;
  border-bottom: 1px solid #aeb6bb !important;
}

.menubar button {
  min-width: auto;
  color: #26343d !important;
  font-size: 11px;
}

.menubar button:hover {
  background: #dce1e4 !important;
}

.menubar button.active {
  color: #1e3e54 !important;
  background: linear-gradient(#cbd2d6, #e8ecee) !important;
  border-radius: 4px !important;
  box-shadow: inset 0 1px 3px #7f898f, inset 0 -1px 0 #fff !important;
}

.dropdown {
  font-size: 11px;
}

.dropdown kbd {
  margin-left: auto;
  padding-left: 18px;
  color: #6b747a;
  font: 10px "Segoe UI", sans-serif;
  background: transparent;
  border: 0;
}

.dropdown button.menu-separator {
  margin-top: 4px;
  border-top: 1px solid #c7cccf !important;
}

/* Títulos e barras de ação */
.screen-title {
  min-height: 31px;
  background: linear-gradient(#fbfcfc, #dde2e5) !important;
  border-bottom-color: #a8b0b5 !important;
}

.screen-title b {
  color: var(--cg-blue-dark) !important;
  font-size: 12px !important;
}

.screen-title span {
  color: var(--cg-muted) !important;
}

.screen-window-controls {
  display: flex;
  align-self: stretch;
  height: 30px;
  margin: 0 -9px 0 auto;
}

.screen-window-controls button {
  position: relative;
  width: 38px;
  height: 30px;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #34434d;
  background: transparent;
  box-shadow: none;
}

.screen-window-controls button:hover {
  background: rgba(104, 132, 151, .18);
}

.screen-window-controls .screen-close:hover {
  color: #fff;
  background: #c84d45;
}

.screen-window-controls i {
  position: absolute;
  display: block;
  width: 12px;
  height: 12px;
  top: 9px;
  left: 13px;
}

.screen-minimize-icon::after {
  content: "";
  position: absolute;
  left: 1px;
  right: 1px;
  bottom: 2px;
  height: 1px;
  background: currentColor;
}

.screen-maximize-icon::before {
  content: "";
  position: absolute;
  inset: 2px;
  border: 1px solid currentColor;
}

.screen-close-icon::before,
.screen-close-icon::after {
  content: "";
  position: absolute;
  top: 5px;
  left: 0;
  width: 12px;
  height: 1px;
  background: currentColor;
  transform: rotate(45deg);
}

.screen-close-icon::after {
  transform: rotate(-45deg);
}

.screen.screen-maximized {
  position: absolute;
  inset: 0;
  z-index: 12;
  height: 100%;
}

.screen.screen-minimized > :not(.screen-title) {
  display: none !important;
}

.screen.screen-minimized {
  height: 32px;
  flex: 0 0 32px;
  align-self: flex-start;
  box-shadow: 1px 2px 5px rgba(32, 47, 57, .22);
}

.toolbar {
  min-height: 37px;
  gap: 5px !important;
  background: #f5f6f7 !important;
  border-bottom-color: #b8c0c5 !important;
}

.toolbar button,
.modal-actions button,
.filter-panel button.full {
  height: 27px !important;
  padding: 0 10px !important;
  color: #34434c;
  border: 1px solid #9fa9af !important;
  border-radius: 3px !important;
  background: linear-gradient(#fff, #e4e8ea) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.85);
}

.toolbar button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.win-select {
  position: relative;
  width: 96px;
  height: 24px;
}

.permissions-head .permission-select {
  width: 250px;
  height: 23px;
}

.permissions-head .win-select-button {
  height: 23px !important;
  padding-left: 6px !important;
  font-size: 11px;
  border: 1px solid #7f9db9 !important;
  background: linear-gradient(#ffffff, #f6f6f6) !important;
  box-shadow: inset 1px 1px 0 #fff, inset -1px -1px 0 #e1e4e6 !important;
}

.permissions-head .win-select-button:hover,
.permissions-head .permission-select.open .win-select-button {
  border-color: #5e7f96 !important;
  box-shadow: inset 1px 1px 0 #fff, 0 0 0 1px rgba(88,125,150,.12) !important;
}

.permissions-head .win-select-button i {
  width: 19px;
  height: 21px;
  margin-right: -3px;
  border-left: 1px solid #aeb8be;
  background: linear-gradient(#fafbfc 0%, #e6eaed 52%, #d8dde0 100%);
  box-shadow: inset 1px 0 0 #fff;
}

.permissions-head .win-select-button i::after {
  margin-top: 8px;
  border-left-width: 3px;
  border-right-width: 3px;
  border-top-width: 4px;
}

.permissions-head .win-select-options {
  top: 22px;
  padding: 2px;
  border-color: #979797;
  border-radius: 0;
  background: linear-gradient(90deg, #ececec 0, #ececec 27px, #f7f7f7 27px, #f7f7f7 100%);
  box-shadow: 2px 3px 6px rgba(0,0,0,.26);
}

.permissions-head .win-select-options button {
  display: flex !important;
  align-items: center;
  height: 23px !important;
  min-height: 23px;
  padding: 0 7px 0 5px !important;
  border-radius: 1px !important;
  font-size: 11px;
  line-height: 23px;
  background: transparent !important;
}

.permissions-head .win-select-options .win-menu-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  margin-right: 10px;
}

.permissions-head .win-select-options button:hover,
.permissions-head .win-select-options button[aria-selected="true"]:hover {
  color: #1f2c34 !important;
  background: linear-gradient(#f1f8ff, #dcecff) !important;
  box-shadow: inset 0 0 0 1px #7da2ce !important;
}

.period-select {
  width: 86px;
}

.period-select .win-select-button {
  justify-content: flex-start !important;
  padding-right: 7px !important;
}

.period-select .win-select-button i {
  display: none;
}

.win-select-button {
  display: flex !important;
  align-items: center;
  justify-content: space-between !important;
  width: 100%;
  height: 24px !important;
  padding: 0 4px 0 7px !important;
  border: 1px solid #9da6ac !important;
  border-radius: 0 !important;
  color: #26343d !important;
  background: #fff !important;
  box-shadow: inset 1px 1px 0 #f7f7f7 !important;
}

.win-select-button:hover,
.win-select.open .win-select-button {
  border-color: #6f8797 !important;
  background: #fff !important;
  transform: none !important;
}

.win-select-button i {
  width: 17px;
  height: 20px;
  margin-right: -3px;
  border-left: 1px solid #c1c7cb;
  background: linear-gradient(#f9fafb, #dfe4e7);
}

.win-select-button i::after {
  content: "";
  display: block;
  width: 0;
  height: 0;
  margin: 8px auto 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #34434d;
}

.win-select-options {
  position: absolute;
  z-index: 90;
  top: 23px;
  left: 0;
  display: none;
  width: 100%;
  max-height: 220px;
  overflow-y: auto;
  padding: 1px;
  border: 1px solid #7f898f;
  background: #fff;
  box-shadow: 2px 3px 6px rgba(29,42,51,.22);
}

.win-select.open .win-select-options {
  display: block;
  animation: menu-enter .12s ease-out;
}

.win-select-options button {
  display: block !important;
  width: 100%;
  height: 22px !important;
  padding: 0 5px !important;
  border: 0 !important;
  border-radius: 0 !important;
  text-align: left;
  color: #26343d !important;
  background: #fff !important;
  box-shadow: none !important;
}

.win-select-options button:hover {
  color: #26343d !important;
  background: #e4eaed !important;
  box-shadow: inset 0 0 0 1px #a8b4bb !important;
  transform: none !important;
}

.win-select-options button[aria-selected="true"] {
  color: #26343d !important;
  font-weight: 400;
  background: #fff !important;
  box-shadow: none !important;
  transform: none !important;
}

.win-select-options button[aria-selected="true"]:hover {
  background: #e4eaed !important;
  box-shadow: inset 0 0 0 1px #a8b4bb !important;
}

.action-icon {
  width: 14px;
  height: 14px;
  flex: 0 0 14px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.35;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.follow-icon {
  display: grid !important;
  place-items: center;
  width: 26px !important;
  color: #496779 !important;
}

.follow-icon .action-icon {
  width: 16px;
  height: 16px;
}

.toolbar button:hover,
.modal-actions button:hover,
.filter-panel button.full:hover {
  border-color: #718c9e !important;
  background: linear-gradient(#fff, #e4f0f7) !important;
  box-shadow: 0 2px 4px rgba(37, 55, 67, .16);
}

.toolbar button:active,
.modal-actions button:active,
.filter-panel button.full:active {
  background: #d5dce0 !important;
  box-shadow: inset 0 2px 4px rgba(35, 48, 57, .25) !important;
  transform: translateY(1px);
}

.toolbar button.primary,
.modal-actions button.primary,
.filter-panel button.primary {
  color: #fff !important;
  border-color: var(--cg-green-dark) !important;
  background: linear-gradient(#61ae4e, #478f38) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}

.filter-panel button.primary:hover,
.toolbar button.primary:hover,
.modal-actions button.primary:hover {
  color: #fff !important;
  border-color: #356f2b !important;
  background: linear-gradient(#6ab858, #4b963c) !important;
  box-shadow: 0 2px 5px rgba(43,79,37,.22) !important;
}

.filter-panel button.primary:active,
.toolbar button.primary:active,
.modal-actions button.primary:active {
  color: #fff !important;
  background: #438536 !important;
}

.toolbar button.danger,
.modal-actions button.danger {
  color: #8f332c !important;
  border-color: #c59a96 !important;
  background: linear-gradient(#fff, var(--cg-red-soft)) !important;
}

/* Formulários */
input, select, textarea {
  color: #26343d;
  border: 1px solid #aab3b9 !important;
  border-radius: 2px;
  background: #fff;
  outline: none;
}

input:focus, select:focus, textarea:focus {
  border-color: #5f89a5 !important;
  box-shadow: 0 0 0 2px rgba(68, 125, 162, .14);
}

fieldset {
  border-color: #adb6bc !important;
  background: #f8f9f9 !important;
}

legend {
  color: var(--cg-blue-dark) !important;
}

.filter-panel {
  background: #e9edef !important;
}

.filter-panel h3 {
  color: #2c536d !important;
  background: #dce4e8 !important;
  border-color: #b5c0c6 !important;
}

/* Abas */
.tabs {
  background: #e5e9eb !important;
}

.tabs button {
  color: #43515a;
  border-color: #aab2b7 !important;
  background: #dce0e2 !important;
}

.tabs button:hover {
  background: #edf3f6 !important;
}

.tabs button.active {
  color: #264f6b;
  font-weight: 600;
  background: #fff !important;
  border-top: 2px solid var(--cg-blue) !important;
}

.contract-tab-panel {
  display: none;
}

.contract-tab-panel.active {
  display: grid;
  animation: screen-enter .16s ease-out;
}

.user-tabs {
  margin-bottom: 6px;
}

.user-tab-panel {
  display: none;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}

.user-tab-panel.active {
  display: flex;
  animation: screen-enter .16s ease-out;
}

.contract-grid.contract-tab-panel.active {
  display: grid;
}

.tab-content-panel {
  margin: 8px;
  border: 1px solid #adb6bc;
  background: #fff;
}

.tab-content-panel h3 {
  margin: 0;
  padding: 7px 9px;
  color: #315f7f;
  font-size: 11px;
  background: linear-gradient(#f7f9fa, #dce2e5);
  border-bottom: 1px solid #adb6bc;
}

.tab-summary {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 6px;
  padding: 8px;
}

.tab-summary div {
  padding: 10px;
  border: 1px solid #b6c0c6;
  background: #f1f4f2;
}

.tab-summary b,
.tab-summary span {
  display: block;
}

.tab-summary b {
  color: #315f7f;
  font-size: 15px;
}

.tab-summary span {
  margin-top: 3px;
  color: #68757d;
  font-size: 10px;
}

/* Tabelas */
.data-table,
.panel table {
  color: #2d3941;
  font-size: 11px;
}

.data-table th,
.panel th {
  height: 27px;
  padding: 5px 7px !important;
  color: #314550;
  font-weight: 600 !important;
  background: linear-gradient(#f8fafb, #dde3e6) !important;
  border-color: #b9c1c6 !important;
}

.data-table td,
.panel td {
  height: 25px;
  padding: 4px 7px !important;
  border-color: #d8dde0 !important;
}

.data-table tbody tr:nth-child(even),
.panel tbody tr:nth-child(even) {
  background: #f5f7f8 !important;
}

.data-table tbody tr:hover,
.panel tbody tr:hover {
  background: #e6f0f6 !important;
}

.data-table tbody tr.selected,
.data-table tbody tr.selected:nth-child(even) {
  background: #cfe3f1 !important;
  box-shadow: inset 3px 0 0 var(--cg-blue);
}

td.cell-money {
  text-align: right !important;
  font-variant-numeric: tabular-nums;
}

td.cell-date,
td.cell-status {
  text-align: center !important;
  font-variant-numeric: tabular-nums;
}

.grid-footer {
  color: #64727a;
  background: #e6eaec !important;
}

/* Estados */
.badge {
  border-radius: 9px;
  font-size: 10px;
  font-weight: 600;
}

.badge.green {
  color: #2e6b39;
  background: #e2f0e3;
}

.badge.blue {
  color: #315f7f;
  background: #e1edf5;
}

.badge.red {
  color: #92362f;
  background: #f5e3e1;
}

/* Painéis e status */
.panel {
  border-color: #abb5bb !important;
}

.panel-head {
  color: var(--cg-blue-dark) !important;
  background: linear-gradient(#f7f9fa, #dce2e5) !important;
}

.metric {
  border-color: #aeb9c0 !important;
  background: linear-gradient(135deg, #fff, #e9eef1) !important;
}

.metric {
  cursor: default;
}

.statusbar {
  color: #526069;
  background: #e6eaec !important;
}

.statusbar .status-online {
  color: var(--cg-green-dark) !important;
  font-weight: 600;
}

.online-dot {
  width: 6px;
  height: 6px;
  margin-right: 5px;
  padding: 0 !important;
  display: inline-block;
  border: 0 !important;
  border-radius: 50%;
  background: var(--cg-green);
  box-shadow: 0 0 0 1px rgba(45, 105, 43, .18);
}

.tree label {
  position: relative;
  display: flex !important;
  align-items: center;
}

/* Mantém os checkboxes abaixo do cabeçalho dos painéis de permissões. */
.permission-grid > div {
  display: flex;
  min-height: 0;
  flex-direction: column;
  overflow: hidden;
}

.permission-grid h3 {
  position: relative;
  z-index: 2;
  flex: 0 0 auto;
}

.permission-grid .tree,
.permission-grid .users {
  min-height: 0;
  flex: 1 1 auto;
  overflow: auto;
}

.tree label.tree-group {
  margin-top: 3px;
  color: #294d64;
  font-weight: 600;
  background: #e8edef;
  border-top: 1px solid #d1d8dc;
  border-bottom: 1px solid #dce1e4;
}

.tree-chevron {
  width: 0;
  height: 0;
  margin: 0 6px 0 3px;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid #5c6d77;
  cursor: pointer;
  transition: transform .15s ease;
}

.tree label.tree-group.collapsed .tree-chevron {
  transform: rotate(90deg);
}

.tree label[hidden] {
  display: none !important;
}

@keyframes tree-expand {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: none; }
}

@keyframes tree-collapse {
  from { opacity: 1; transform: none; }
  to   { opacity: 0; transform: translateY(-6px); }
}

.tree label.level2.expanding {
  animation: tree-expand .18s ease-out;
}

.tree label.level2.collapsing {
  animation: tree-collapse .15s ease-in forwards;
}


.tree .level2 .tree-chevron {
  visibility: hidden;
}

.tree .level2[data-group] .tree-chevron { visibility: visible; }
.tree .level3 { padding-left: 49px; }
.tree .level3 .tree-chevron { visibility: hidden; }
.permission-disabled { opacity: .48 !important; pointer-events: none !important; }
.panel-permission-actions{display:grid;grid-template-columns:140px repeat(4,1fr);align-items:center;margin-top:8px;border:1px solid #b8c2c8;background:#f5f7f8}.panel-permission-actions>b{padding:7px 9px;color:#294d64}.panel-permission-actions label{display:flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:5px;border-left:1px solid #ccd3d7;font-size:11px;white-space:nowrap}.panel-permission-actions input{margin:0}
.specific-permission-actions{margin-top:8px;border:1px solid #b8c2c8;background:#f5f7f8}.specific-permission-actions>strong{display:block;padding:7px 9px;border-bottom:1px solid #ccd3d7;color:#294d64}.specific-permission-row{display:flex;align-items:center;gap:14px;min-height:34px;padding:5px 9px;border-bottom:1px solid #d9dfe2}.specific-permission-row:last-child{border-bottom:0}.specific-permission-row>b{width:180px;flex:0 0 180px}.specific-permission-row label{display:flex;align-items:center;gap:5px;white-space:nowrap}.specific-permission-row input{margin:0}

.permissions-head .permission-user-field{min-width:300px}.permissions-head .permission-user-field select{width:220px;height:25px;border:1px solid #8ea1ae;background:#fff;padding:2px 24px 2px 6px;color:#1f3442;font:inherit}
.permission-grid .users{display:block;grid-template-columns:none}.permission-grid .users label{width:100%}
.permission-grid #user-list input[type="checkbox"]{display:none}

.users label.new-user-permission {
  color: #315f7f;
  font-weight: 600;
  background: #e5f0e3;
  box-shadow: inset 3px 0 0 #4f9f3d;
  animation: screen-enter .22s ease-out;
}

.users label small {
  margin-left: 5px;
  color: #6a777e;
  font-size: 9px;
  font-weight: 400;
}

/* Modais */
.modal {
  border-color: #68757d !important;
}

.modal:has(.fleet-form) {
  width: 720px;
  max-width: calc(100vw - 40px);
}

.modal-body {
  max-height: min(70vh, 600px);
  overflow: auto;
}

.modal-body:has(.fleet-form) {
  max-height: none;
  overflow: visible;
}

.file-picker {
  display: flex;
  align-items: center;
  min-height: 31px;
  margin-top: 3px;
  overflow: hidden;
  border: 1px solid #9ba9b4;
  background: #fff;
  box-shadow: inset 1px 1px 2px rgba(0, 0, 0, .06);
}

.file-picker input[type="file"] {
  display: none;
}

.file-picker button {
  flex: 0 0 auto;
  height: 29px;
  margin: 0;
  padding: 0 12px;
  border: 0;
  border-right: 1px solid #aab5bd;
  background: linear-gradient(#fff, #e1e6e9);
  color: #263b49;
  cursor: pointer;
}

.file-picker button:hover {
  background: linear-gradient(#f5fbff, #d7e8f3);
}

.file-picker span {
  flex: 1;
  min-width: 0;
  padding: 0 10px;
  overflow: hidden;
  color: #78858e;
  line-height: 29px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.file-picker span.has-file {
  color: #255d36;
}

.file-picker .file-remove {
  border-right: 0;
  border-left: 1px solid #c2c9ce;
  color: #8a302a;
}

.crlv-analysis {
  display: block;
  margin-top: 4px;
  color: #667680;
  font-size: 10px;
  font-weight: 400;
}

/* Windows desktop motion and interaction polish */
@keyframes win-window-open {
  from { opacity: 0; transform: translateY(7px) scale(.992); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes win-screen-enter {
  from { opacity: 0; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes win-working {
  0%, 100% { opacity: .58; }
  50% { opacity: 1; }
}

.screen.active:not(.home-screen) {
  animation: win-screen-enter .18s ease-out;
}

.modal-backdrop.open .modal {
  animation: win-window-open .2s cubic-bezier(.2,.75,.25,1);
}

.modal-title,
.screen-title,
.panel-head {
  background: linear-gradient(#fbfcfd 0%, #e8edf0 47%, #d8e0e5 100%) !important;
  box-shadow: inset 0 1px 0 #fff;
}

.toolbar button,
.modal-actions button,
.filter-panel button,
.coupling-actions button,
.file-picker button {
  border-color: #9caab4 !important;
  border-radius: 2px !important;
  background: linear-gradient(#fff 0%, #f4f6f7 48%, #dfe5e8 100%) !important;
  box-shadow: inset 0 1px 0 #fff, 0 1px 1px rgba(33,48,58,.08) !important;
  transition: background .14s ease, border-color .14s ease, box-shadow .14s ease, transform .08s ease !important;
}

.toolbar button:hover,
.modal-actions button:hover,
.filter-panel button:hover,
.coupling-actions button:hover:not(:disabled),
.file-picker button:hover {
  border-color: #6e96b1 !important;
  background: linear-gradient(#fff 0%, #eaf5fb 48%, #d6e9f4 100%) !important;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.8), 0 2px 4px rgba(44,82,106,.18) !important;
}

.toolbar button:active,
.modal-actions button:active,
.filter-panel button:active,
.coupling-actions button:active:not(:disabled),
.file-picker button:active {
  transform: translateY(1px);
  background: linear-gradient(#d4e4ee, #edf5fa) !important;
  box-shadow: inset 0 2px 3px rgba(29,60,78,.22) !important;
}

.toolbar button.danger,
.coupling-actions button.danger {
  color: #8f302b !important;
}

input,
select,
textarea,
.win-select-button {
  border-radius: 1px !important;
  transition: border-color .14s ease, box-shadow .14s ease, background-color .14s ease;
}

input:hover,
select:hover,
textarea:hover,
.win-select-button:hover {
  border-color: #8299a8 !important;
}

input:focus,
select:focus,
textarea:focus,
.win-select.open .win-select-button {
  outline: 0 !important;
  border-color: #3f7fa9 !important;
  box-shadow: 0 0 0 1px rgba(91,154,196,.22), inset 0 1px 2px rgba(36,67,86,.08) !important;
  background-color: #fff !important;
}

.data-table tbody tr {
  transition: background-color .12s ease, box-shadow .12s ease;
}

.data-table tbody tr:hover {
  box-shadow: inset 3px 0 0 #72a85e;
}

.data-table tbody tr.selected {
  box-shadow: inset 3px 0 0 #3979a4, inset 0 1px 0 rgba(255,255,255,.65);
}

.coupling-panel,
.crlv-panel {
  animation: win-screen-enter .16s ease-out;
  box-shadow: inset 0 1px 0 #fff;
}

.crlv-analysis:not(:empty) {
  transition: color .15s ease;
}

.crlv-analysis.analyzing {
  color: #315f7f;
  animation: win-working .8s ease-in-out infinite;
}

.native-select-source {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0 0 0 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.modal-win-select {
  position: relative;
  width: 100%;
  margin-top: 2px;
}

.modal-win-select .win-select-options {
  display: block;
  max-height: 220px;
  overflow-y: auto;
  visibility: hidden;
  opacity: 0;
  transform: translateY(-5px) scaleY(.92);
  transform-origin: top;
  pointer-events: none;
  transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}

.modal-win-select.open .win-select-options {
  visibility: visible;
  opacity: 1;
  transform: translateY(0) scaleY(1);
  pointer-events: auto;
  transition-delay: 0s;
  animation: none;
}

.modal-win-select .win-select-button i {
  transition: background .14s ease;
}

.modal-win-select.open .win-select-button i {
  background: linear-gradient(#d8e8f2, #f3f8fb);
  box-shadow: inset 0 1px 2px rgba(38,75,98,.2);
}

.vehicle-search-field {
  position: relative;
}

.vehicle-suggestions {
  position: absolute;
  z-index: 120;
  top: 45px;
  left: 0;
  display: block;
  visibility: hidden;
  width: 100%;
  max-height: 190px;
  overflow-y: auto;
  border: 1px solid #7f898f;
  background: #fff;
  box-shadow: 2px 4px 8px rgba(29,42,51,.28);
  opacity: 0;
  transform: translateY(-5px);
  pointer-events: none;
  transition: opacity .15s ease, transform .15s ease, visibility 0s linear .15s;
}

.vehicle-suggestions.open {
  visibility: visible;
  opacity: 1;
  transform: translateY(0);
  pointer-events: auto;
  transition-delay: 0s;
}

.vehicle-suggestions button {
  display: grid;
  grid-template-columns: 90px 1fr;
  width: 100%;
  min-height: 27px;
  padding: 4px 7px;
  border: 0;
  border-bottom: 1px solid #edf0f2;
  background: #fff;
  text-align: left;
  cursor: pointer;
}

.vehicle-suggestions button:hover {
  background: #dcecff;
  box-shadow: inset 0 0 0 1px #7da2ce;
}

.vehicle-suggestions button b {
  color: #285674;
}

.vehicle-suggestions button span {
  overflow: hidden;
  color: #596a74;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.vehicle-empty {
  padding: 8px;
  color: #77838b;
}

.file-picker:focus-within {
  border-color: #3f7fa9;
  box-shadow: 0 0 0 1px rgba(91,154,196,.2), inset 0 1px 2px rgba(36,67,86,.08);
}

.badge {
  transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}

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

.asset-details {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1px;
  overflow: hidden;
  border: 1px solid #aeb8bf;
  background: #c7d0d6;
}

.asset-details > div {
  min-height: 49px;
  padding: 7px 9px;
  background: #f7f9fa;
}

.asset-details span,
.asset-details b {
  display: block;
}

.asset-details span {
  margin-bottom: 4px;
  color: #667680;
  font-size: 11px;
}

.asset-details b {
  color: #223b4b;
  font-weight: 600;
}

.document-open {
  display: inline-block;
  padding: 4px 8px;
  border: 1px solid #86a6bb;
  background: linear-gradient(#fff, #e2edf4);
  color: #245a7b;
  text-decoration: none;
  cursor: pointer;
}

.document-open:hover {
  border-color: #4f819f;
  background: #d8eaf5;
  text-decoration: underline;
}

.coupling-panel {
  margin-top: 10px;
  border: 1px solid #aab5bd;
  background: #f7f9fa;
}

.crlv-source-links {
  display: none;
}

.crlv-panel {
  margin-top: 10px;
  border: 1px solid #aab5bd;
  background: #f7f9fa;
}

.crlv-panel h3 {
  margin: 0;
  padding: 6px 9px;
  border-bottom: 1px solid #b7c0c6;
  background: linear-gradient(#f8fafb, #dce3e7);
  color: #294f69;
  font-size: 12px;
}

.crlv-panel > div {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 8px;
}

.crlv-panel .document-open small {
  display: block;
  max-width: 180px;
  margin-top: 2px;
  overflow: hidden;
  color: #687984;
  font-size: 10px;
  font-weight: normal;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.coupling-panel h3 {
  margin: 0;
  padding: 6px 9px;
  border-bottom: 1px solid #b7c0c6;
  background: linear-gradient(#f8fafb, #dce3e7);
  color: #294f69;
  font-size: 12px;
}

.coupling-current {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 8px 9px 5px;
}

.coupling-current span {
  color: #687883;
}

.coupling-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 5px;
  padding: 5px 9px 9px;
}

.coupling-actions select {
  width: 100%;
  min-width: 0;
  height: 27px;
  border: 1px solid #9daab3;
  background: #fff;
}

.coupling-plate-field {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.coupling-plate-field span {
  display: none;
}

.coupling-plate-field input,
.coupling-plate-field select {
  width: 100%;
  height: 27px;
  margin: 0;
  border: 1px solid #9daab3;
  background: #fff;
}

.coupling-actions button {
  width: 100%;
  height: 27px;
  padding: 0 10px;
  border: 1px solid #9daab3;
  background: linear-gradient(#fff, #dfe5e9);
  cursor: pointer;
  white-space: nowrap;
}

.coupling-actions button:disabled {
  color: #999;
  cursor: default;
  opacity: .65;
}

.modal-title {
  color: #263f51;
  background: linear-gradient(#f6f8f9, #d4dade) !important;
}

.credential-rules {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-top: 3px;
  padding: 8px 10px;
  color: #5d6b73;
  font-size: 10px;
  border: 1px solid #bdc6cb;
  background: #f1f4f2;
}

.credential-rules b {
  color: #315f7f;
  font-size: 11px;
}

.user-form input[readonly] {
  color: #56636b;
  background: #e7eaec !important;
}

.generated-login {
  display: flex;
  gap: 6px;
  margin-top: 4px;
  align-items: stretch;
}

.generated-login input {
  flex: 1 1 auto;
  min-width: 0;
  width: auto !important;
  margin-top: 0 !important;
  color: #315f7f !important;
  font-weight: 600;
  letter-spacing: .8px;
  text-transform: uppercase;
}

.generated-login input::placeholder {
  text-transform: none;
  letter-spacing: normal;
  font-weight: 400;
  color: #8a9aa5;
}

.user-permissions {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px 10px;
  margin-top: 3px;
  padding: 9px 10px;
  border: 1px solid #bdc6cb;
  background: #f4f6f7;
}

.user-permissions > b {
  grid-column: 1 / -1;
  color: #315f7f;
  font-size: 11px;
}

.permission-select-all label {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 10px;
  color: #5d6b73;
}

.permission-checks {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 5px 10px;
}

.permission-checks label {
  display: flex;
  align-items: center;
  gap: 5px;
  padding: 3px 6px;
  font-size: 11px;
  border: 1px solid #d4dade;
  background: #fff;
}

.permission-checks label:hover {
  background: #eaf1f7;
  border-color: #9fb6ca;
}

.permission-matrix {
  grid-column: 1 / -1;
  display: grid;
  gap: 3px 8px;
}

.user-permissions input[type="checkbox"] {
  width: 13px;
  height: 13px;
  margin: 0;
  padding: 0;
  border: 0;
  background: none;
  flex: 0 0 13px;
  accent-color: #315f7f;
}

.perm-row {
  display: grid;
  grid-template-columns: minmax(105px, 1.6fr) repeat(8, 42px);
  gap: 3px 8px;
  align-items: center;
  color: #3c4a54;
}

.perm-head {
  font-weight: 700;
  font-size: 10px;
  color: #315f7f;
  border-bottom: 1px solid #bdc6cb;
  padding-bottom: 2px;
}

.perm-head span,
.perm-row label {
  text-align: center;
}

.perm-module {
  font-weight: 600;
  font-size: 10px;
}

.perm-row label {
  display: flex;
  justify-content: center;
  align-items: center;
}

.perm-global-row .perm-global {
  grid-column: span 2;
  justify-content: flex-start;
  gap: 4px;
  font-weight: 600;
  color: #315f7f;
  text-align: left;
}

button:disabled {
  opacity: .45;
  pointer-events: none;
}

.generated-login button {
  min-height: 34px;
  height: 34px;
  padding: 0 14px;
  border: 1px solid #9faeb7;
  border-radius: 3px;
  color: #294b60;
  background: linear-gradient(#fff, #e4eaed);
  box-shadow: inset 0 1px #fff, 0 1px 2px rgba(0,0,0,.07);
  transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .1s ease;
  flex-shrink: 0;
  cursor: pointer;
  font: 600 12px 'Segoe UI', sans-serif;
  white-space: nowrap;
}

.sif-hint {
  font-size: 11px;
  color: #6b7685;
  font-weight: 400;
  margin-top: 2px;
}

.generated-login button:hover {
  border-color: #718c9e;
  background: linear-gradient(#fff, #e4f0f7);
  box-shadow: 0 2px 4px rgba(37,55,67,.15);
}

.generated-login button:active {
  transform: translateY(1px);
  box-shadow: inset 0 2px 3px rgba(35,48,57,.2);
}

.generated-login input.generated {
  border-color: #4f9f3d !important;
  box-shadow: 0 0 0 2px rgba(79,159,61,.15);
}

.login-screen {
  position: fixed;
  inset: 0;
  z-index: 200;
  display: none;
  place-items: center;
  background: radial-gradient(circle at 50% 42%, #f3f6f1, #dce3dc);
}

.login-screen.open {
  display: grid;
}

.login-window {
  width: 390px;
  border: 1px solid #6f7980;
  background: #edf0f1;
  box-shadow: 7px 10px 24px rgba(26,39,47,.32);
  animation: modal-enter .2s ease-out;
}

.login-titlebar {
  display: flex;
  align-items: center;
  height: 28px;
  padding: 2px 7px;
  color: #26343d;
  font-size: 11px;
  background: linear-gradient(#f5f7f8, #d6dce0);
  border-bottom: 1px solid #929ca3;
}

.login-titlebar img {
  display: block;
  width: 23px;
  height: 23px;
  object-fit: contain;
}

.login-content {
  padding: 24px 28px 22px;
}

.login-brand {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
}

.login-brand > img {
  display: block;
  width: 100%;
  max-width: 320px;
  height: auto;
  object-fit: contain;
}

.login-symbol {
  width: 45px;
  height: 44px;
  overflow: hidden;
}

.login-symbol img {
  width: 230px;
  height: 44px;
  max-width: none;
}

.login-brand b,
.login-brand span {
  display: block;
}

.login-brand b {
  color: #4f9f3d;
  font-size: 20px;
  font-weight: 700;
  letter-spacing: .3px;
}

.login-brand span {
  color: #315f7f;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .8px;
}

.login-content h2 {
  margin: 0 0 15px;
  color: #315f7f;
  font-size: 13px;
  font-weight: 600;
}

.login-content label {
  display: block;
  margin-top: 9px;
  color: #46545d;
  font-size: 11px;
}

.login-content input {
  width: 100%;
  height: 27px;
  margin-top: 3px;
}

.login-content > button {
  width: 100%;
  height: 30px;
  margin-top: 8px;
  color: #fff;
  font-weight: 600;
  border: 1px solid #3d7f30;
  border-radius: 3px;
  background: linear-gradient(#61ae4e, #478f38);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.25);
}

.login-content > button:hover {
  background: linear-gradient(#6ab858, #4b963c);
  box-shadow: 0 2px 5px rgba(43,79,37,.22);
}

.login-content small {
  display: block;
  margin-top: 13px;
  color: #758087;
  text-align: center;
  font-size: 9px;
}

.login-error {
  min-height: 17px;
  padding-top: 5px;
  color: #a23d35;
  font-size: 10px;
}

.delete-confirm {
  display: flex;
  flex-direction: column;
  gap: 7px;
  padding: 4px;
}

.delete-confirm b {
  color: #8f332c;
  font-size: 12px;
}

.delete-confirm span {
  color: #5f6d75;
  line-height: 1.45;
}

/* Movimento sutil e consistente */
@keyframes screen-enter {
  from { opacity: 0; transform: translateY(3px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes menu-enter {
  from { opacity: 0; transform: translateY(-3px); }
  to { opacity: 1; transform: translateY(0); }
}

@keyframes modal-enter {
  from { opacity: 0; transform: translateY(-8px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.screen.active {
  animation: screen-enter .18s ease-out;
}

.dropdown.open {
  transform-origin: top left;
  animation: menu-enter .14s ease-out;
}

.toolbar button,
.modal-actions button,
.filter-panel button,
.menubar button,
.screen-window-controls button,
.tabs button,
.metric,
.lead-card,
.follow-item,
.tree label,
.users label,
input,
select,
textarea {
  transition: background-color .16s ease, border-color .16s ease, color .16s ease,
              box-shadow .16s ease, transform .12s ease, opacity .16s ease;
}

.toolbar button:hover,
.modal-actions button:hover,
.filter-panel button:hover,
.lead-card:hover {
  transform: translateY(-1px);
}

.toolbar button:active,
.modal-actions button:active,
.filter-panel button:active {
  transform: translateY(1px);
}

.data-table tbody tr,
.panel tbody tr {
  transition: background-color .14s ease, box-shadow .14s ease;
}

.lead-card:hover {
  border-color: #7894a6;
  box-shadow: 0 3px 7px rgba(38, 54, 65, .16);
}

.modal-backdrop.open .modal {
  animation: modal-enter .18s ease-out;
}

.bars i {
  transform-origin: left center;
  background: linear-gradient(90deg, #3f8733 0%, #62ad4f 48%, #91ca7f 100%) !important;
  border-color: #39782f !important;
  animation: bar-grow .42s ease-out;
}

@keyframes bar-grow {
  from { transform: scaleX(0); opacity: .45; }
  to { transform: scaleX(1); opacity: 1; }
}

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

.print-document-header {
  display: none;
}

.export-menu {
  position: fixed;
  z-index: 80;
  display: none;
  width: 258px;
  padding: 3px;
  border: 1px solid #8f989e;
  background: #f7f8f8;
  box-shadow: 2px 4px 9px rgba(26, 39, 48, .28);
}

.export-menu.open {
  display: block;
  transform-origin: top left;
  animation: menu-enter .14s ease-out;
}

.export-menu button {
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 45px;
  padding: 5px 8px;
  border: 0;
  border-radius: 2px;
  color: #26343d;
  text-align: left;
  background: transparent;
}

.export-menu button:hover {
  background: linear-gradient(#f1f8ff, #dcecff);
  box-shadow: inset 0 0 0 1px #7da2ce;
}

.export-menu button > span:last-child {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.export-menu b {
  font-size: 11px;
  font-weight: 600;
}

.export-menu small {
  color: #6b757c;
  font-size: 10px;
}

.format-icon {
  display: grid;
  place-items: center;
  width: 27px;
  height: 30px;
  flex: 0 0 27px;
  margin-right: 9px;
  color: #fff;
  font: 700 11px "Segoe UI", sans-serif;
  border-radius: 2px;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.16);
}

.format-icon.excel { background: #287a4b; }
.format-icon.word { background: #356da6; }
.format-icon.pdf { background: #b5473e; font-size: 8px; }

@media print {
  @page {
    size: A4 landscape;
    margin: 12mm;
  }

  html, body {
    height: auto !important;
    overflow: visible !important;
    color: #1f2930 !important;
    background: #fff !important;
  }

  .desktop-shell {
    display: block !important;
    min-width: 0 !important;
    height: auto !important;
    overflow: visible !important;
    border: 0 !important;
    background: #fff !important;
  }

  .titlebar,
  .menubar,
  .dropdown,
  .quickbar,
  .statusbar,
  .toast,
  .modal-backdrop,
  .export-menu,
  .toolbar,
  .screen-window-controls {
    display: none !important;
  }

  .workspace {
    display: block !important;
    height: auto !important;
    padding: 0 !important;
    overflow: visible !important;
    background: #fff !important;
  }

  .print-document-header {
    display: flex !important;
    align-items: flex-end;
    justify-content: space-between;
    margin-bottom: 8mm;
    padding-bottom: 3mm;
    color: #315f7f;
    border-bottom: 2px solid #4f9f3d;
  }

  .print-document-header strong {
    font-size: 15pt;
    letter-spacing: .3px;
  }

  .print-document-header span {
    color: #68757d;
    font-size: 9pt;
  }

  .screen,
  .home-screen {
    display: none !important;
  }

  .screen.active:not(.home-screen) {
    display: block !important;
    height: auto !important;
    overflow: visible !important;
    border: 0 !important;
    box-shadow: none !important;
    background: #fff !important;
    animation: none !important;
  }

  .screen-title {
    display: flex !important;
    min-height: 0 !important;
    height: auto !important;
    margin-bottom: 5mm;
    padding: 0 0 2.5mm !important;
    border: 0 !important;
    border-bottom: 1px solid #aeb8be !important;
    background: #fff !important;
  }

  .screen-title b {
    font-size: 13pt !important;
  }

  .dashboard-grid {
    display: grid !important;
    grid-template-columns: 34% 1fr 1fr !important;
    grid-template-rows: auto auto !important;
    gap: 4mm !important;
    min-height: 0 !important;
    padding: 0 !important;
  }

  .panel,
  fieldset,
  .permission-grid > div,
  .kanban-col,
  .lead-card,
  .table-wrap {
    overflow: visible !important;
    break-inside: avoid;
    box-shadow: none !important;
  }

  .metric-grid {
    gap: 2mm !important;
    padding: 2mm !important;
  }

  .metric {
    height: 18mm !important;
  }

  .list-layout {
    display: block !important;
  }

  .filter-panel,
  .grid-footer {
    display: none !important;
  }

  .data-table,
  .panel table {
    font-size: 8pt !important;
  }

  .data-table th,
  .data-table td,
  .panel th,
  .panel td {
    padding: 1.5mm 2mm !important;
  }

  .tabs {
    display: none !important;
  }

  .contract-grid,
  .permission-grid,
  .kanban {
    overflow: visible !important;
  }

  button,
  input,
  select,
  textarea {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }
}
.data-table .select-column{width:34px;min-width:34px;max-width:34px;padding:0;text-align:center}.data-table .select-column input{width:14px;height:14px;margin:0;vertical-align:middle;cursor:pointer}
.modal input.locked-field:disabled{color:#44515c;background:#e3e7ea;border-color:#aeb8c1;opacity:1;cursor:not-allowed;box-shadow:inset 1px 1px 2px rgba(0,0,0,.08)}
.fuel-workflow-note{display:flex;flex-direction:column;gap:3px;padding:9px 11px;margin-bottom:10px;border:1px solid #aebbc4;background:linear-gradient(#f5f8f9,#e3e9ec);color:#264b63}.fuel-workflow-note span{font-size:12px;color:#5b6871}.fuel-form textarea{width:100%;resize:vertical;border:1px solid #aab5be;background:#fff;font:12px Segoe UI,Arial;padding:6px;box-sizing:border-box}.fuel-flow{display:grid;gap:9px}.fuel-step{padding:10px;border:1px solid #aeb8c1;background:#f3f5f6;display:grid;gap:7px}.fuel-step.complete{border-left:4px solid #43a536;background:#f5faf4}.fuel-step>b{color:#174f72}.fuel-step>span{font-size:12px;color:#65717a}.fuel-step>button{width:max-content}.fuel-invoice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.print-authorization-button{min-height:27px;padding:4px 12px!important;border:1px solid #8f9ba4!important;border-radius:3px!important;background:linear-gradient(#fff,#e4e9ec)!important;color:#17384f!important;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:.16s ease}.print-authorization-button:hover{background:linear-gradient(#fff,#dce9ef)!important;border-color:#6f899b!important;box-shadow:0 2px 5px rgba(35,68,88,.2)}.coupon-detected-date{display:flex;justify-content:space-between;align-items:center;padding:7px 9px;border:1px solid #bdc7ce;background:#e8edef;color:#59656d}.coupon-detected-date strong{color:#224d68;font-weight:600}.fuel-additional-note{display:grid;gap:4px;color:#314b5d}.fuel-additional-note textarea{width:100%;min-height:52px;padding:7px 8px;resize:vertical;border:1px solid #9eacb6;border-radius:2px;background:#fff;font:12px Segoe UI,Arial;box-shadow:inset 0 1px 2px rgba(0,0,0,.06);transition:.16s ease}.fuel-additional-note textarea:focus{outline:0;border-color:#4f86ad;box-shadow:0 0 0 2px rgba(79,134,173,.13),inset 0 1px 2px rgba(0,0,0,.05)}
.cost-invoice-area{margin-top:18px;border:1px solid #aeb9c1;background:#f5f6f7}.cost-invoice-header{display:flex;align-items:center;justify-content:space-between;padding:7px 9px;background:linear-gradient(#eef2f4,#dce3e7);border-bottom:1px solid #aeb9c1;color:#174b6a}.cost-invoice-list{min-height:42px}.cost-invoice-empty{display:block;padding:12px;color:#6b747a}.cost-invoice-row{display:grid;grid-template-columns:100px 170px 1fr 190px 110px 1fr;gap:8px;padding:7px 9px;border-bottom:1px solid #cbd2d7;align-items:center}.cost-invoice-row:last-child{border-bottom:0}
.cost-invoice-list:has(.cost-invoice-row) .cost-invoice-empty{display:none}
.record-details{display:grid;grid-template-columns:1fr 1fr;border:1px solid #aeb9c1;background:#f6f8f9}.record-details>div{display:grid;gap:4px;min-height:48px;padding:8px 10px;border-right:1px solid #c5cdd2;border-bottom:1px solid #c5cdd2}.record-details>div:nth-child(even){border-right:0}.record-details>div.wide{grid-column:1/-1;border-right:0}.record-details span{font-size:11px;color:#6a7780}.record-details b{color:#29465a;font-weight:600}
.cost-invoice-header button{position:relative;min-height:27px;padding:4px 12px 4px 29px;border:1px solid #7f969f;border-radius:3px;background:linear-gradient(#fff,#dfe7ea);color:#173f56;font:12px Segoe UI,Arial;box-shadow:0 1px 2px rgba(0,0,0,.12);cursor:pointer;transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .1s ease}.cost-invoice-header button:before{content:'+';position:absolute;left:10px;top:3px;font-size:17px;line-height:18px;color:#3e8f35;font-weight:600}.cost-invoice-header button:hover{background:linear-gradient(#fff,#d7e5eb);border-color:#587d91;box-shadow:0 2px 5px rgba(31,68,89,.2)}.cost-invoice-header button:active{transform:translateY(1px);background:linear-gradient(#d5dee2,#eef2f4);box-shadow:inset 0 1px 3px rgba(0,0,0,.16)}
.modal-title>button{display:flex!important;align-items:center!important;justify-content:center!important;width:31px!important;height:30px!important;margin:0 0 0 auto!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;color:#1d2d38!important;font:20px/1 "Segoe UI Symbol","Segoe UI",Arial!important;cursor:pointer!important;box-shadow:none!important;transition:background-color .15s ease,color .15s ease!important}.modal-title>button:hover{background:#d85b56!important;color:#fff!important}.modal-title>button:active{background:#bd403b!important;color:#fff!important}.modal-title>button:focus-visible{outline:1px dotted #173f56!important;outline-offset:-3px!important}
.general-report{flex:1;overflow:auto;padding:14px;background:#eef1ef}.general-report>header{display:grid;grid-template-columns:1fr auto;align-items:end;padding:14px 16px;border-bottom:3px solid #45a536;background:#fff}.general-report>header h1{margin:0;color:#43a536;font-size:23px}.general-report>header b{grid-column:1;font-size:15px;color:#174b6a}.general-report>header span{grid-column:2;grid-row:1/3;color:#66727a}.general-report-summary{display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:12px 0}.general-report-summary div{padding:10px 12px;border:1px solid #b3bec5;background:linear-gradient(#fff,#e5eaed)}.general-report-summary b{display:block;color:#277b29;font-size:20px}.general-report-summary span{color:#53636e}.general-report-section{margin:10px 0;border:1px solid #aeb9c1;background:#fff}.general-report-section h3{display:flex;justify-content:space-between;margin:0;padding:7px 9px;background:linear-gradient(#f4f7f8,#dce3e7);border-bottom:1px solid #aeb9c1;color:#174b6a;font-size:12px}.general-report-section h3 span{font-weight:400;color:#65727a}.general-report-section p{margin:0;padding:12px;color:#6b757c}.general-report-table-wrap{overflow:auto}.general-report .data-table{font-size:11px}@media print{#screen-general-report{border:0!important}.general-report-toolbar,#screen-general-report>.screen-title,.statusbar,.menubar,.titlebar{display:none!important}.general-report{overflow:visible;padding:0;background:#fff}.general-report-section{break-inside:avoid}.general-report-table-wrap{overflow:visible}.general-report-summary{grid-template-columns:repeat(3,1fr)}}
.ap-report{padding:10px 14px 24px;overflow:auto;background:#eef1ef}.ap-filter-card,.ap-section{margin-bottom:10px;border:1px solid #b8c5cc;border-radius:5px;background:#fff;box-shadow:0 2px 7px rgba(31,58,77,.08)}.ap-filter-card{padding:10px}.ap-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:9px}.ap-modes button{height:29px;border:0;border-radius:5px;background:#edf0f2;color:#566873;font-weight:700}.ap-modes button.active{background:#2f8736;color:#fff}.ap-fields{display:grid;grid-template-columns:180px 180px minmax(220px,1fr) auto;gap:9px;align-items:end}.ap-fields label{display:grid;gap:3px;color:#657782;font-size:9px;font-weight:700;text-transform:uppercase}.ap-fields input,.ap-fields select{height:31px;border:1px solid #b8c5cc;border-radius:4px;background:#fff;padding:4px 8px;color:#294556}.ap-live{display:flex;align-items:center;gap:6px;height:31px;color:#387744;font-size:11px;font-weight:700}.ap-live i{width:8px;height:8px;border-radius:50%;background:#42a84a;box-shadow:0 0 0 3px #dcefdc}.ap-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:10px}.ap-kpis div{padding:8px;text-align:center;border-radius:5px;background:#edf8ef}.ap-kpis div:nth-child(2){background:#fff5e8}.ap-kpis div:nth-child(3){background:#fdecec}.ap-kpis div:nth-child(4){background:#eaf2fb}.ap-kpis div:nth-child(5){background:#e9fafa}.ap-kpis div:nth-child(6){background:#f2eaff}.ap-kpis b{display:block;color:#268033;font-size:17px}.ap-kpis small{color:#667782}.ap-actions{display:flex;align-items:center;justify-content:flex-end;gap:7px;margin:0 0 10px}.ap-actions>span{margin-right:auto;color:#70808a;font-size:11px}.ap-actions button{min-height:29px}.ap-section>header{display:flex;justify-content:space-between;align-items:center;padding:8px 11px;border-bottom:1px solid #c5d0d6;background:linear-gradient(#f5f8f9,#e2e9ed);color:#174f70}.ap-section>header span{color:#6c7d87;font-size:10px}.ap-rdo-list{display:grid;gap:6px;padding:8px}.ap-rdo{display:grid;grid-template-columns:28px 1fr;gap:8px;padding:7px;border:1px solid #d5dee3;border-radius:4px;background:#fff}.ap-rdo-icon{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:#e8f0ff;color:#2871d8}.ap-rdo b{color:#4d6b7c;font-size:10px}.ap-rdo small,.ap-rdo em{display:block;color:#84919a;font-size:9px;font-style:normal}.ap-rdo p{margin:3px 0;color:#2f4655;font-size:11px}.ap-chart{display:flex;align-items:flex-end;gap:7px;min-height:180px;padding:14px 18px 8px;overflow-x:auto}.ap-chart-col{display:grid;grid-template-rows:140px 18px;min-width:32px;flex:1;text-align:center}.ap-chart-bars{display:flex;align-items:flex-end;justify-content:center;gap:3px;border-bottom:1px solid #c7d1d7}.ap-chart-bars i{width:10px;background:#80b487;border-radius:3px 3px 0 0}.ap-chart-bars i+ i{background:#277d31}.ap-chart-col small{padding-top:3px;color:#71818a}.ap-legend{text-align:center;padding:0 0 10px;color:#71818a;font-size:10px}.ap-legend i{display:inline-block;width:8px;height:8px;margin:0 3px 0 10px;background:#80b487}.ap-legend i+ i{background:#277d31}.ap-empty{margin:auto;padding:24px;color:#7b8991;text-align:center}@media(max-width:900px){.ap-fields{grid-template-columns:1fr 1fr}.ap-kpis{grid-template-columns:repeat(3,1fr)}}
.confirm-dialog{display:flex;align-items:center;gap:12px;padding:8px 4px}.confirm-dialog-icon{display:grid;place-items:center;width:36px;height:36px;flex:0 0 36px;color:#496779;background:linear-gradient(#f6f9fa,#e3eaee);border:1px solid #b3c0c9;border-radius:3px}.confirm-dialog-icon .win-menu-icon{margin:0;width:17px;height:17px}.confirm-dialog b{display:block;font-size:12px;color:#24333e;margin-bottom:3px}.confirm-dialog span{color:#687078}
#welcome-splash{position:fixed;inset:0;z-index:300;display:none;place-items:center;background:radial-gradient(circle at 50% 42%,#f3f6f1,#dce3dc);opacity:0}#welcome-splash.show{display:grid;opacity:1}#welcome-splash.fade{opacity:0;transition:opacity .4s ease}
.screen.active:not(.home-screen),.screen.active.home-screen{animation:screen-enter-strong .3s cubic-bezier(.2,.75,.25,1)}@keyframes screen-enter-strong{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#module-table tbody tr{animation:row-enter .3s ease-out backwards}@keyframes row-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.screen.active.screen-leaving,.screen.active.home-screen.screen-leaving{animation:screen-leave .12s ease-in forwards}@keyframes screen-leave{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-6px)}}
.welcome-card{width:360px;padding:30px 34px 26px;text-align:center;background:#edf0f1;border:1px solid #6f7980;box-shadow:7px 10px 24px rgba(26,39,47,.32);animation:modal-enter .25s ease-out}.welcome-brand{display:flex;flex-direction:column;align-items:center;margin-bottom:16px}.welcome-brand b{color:#4f9f3d;font-size:20px;font-weight:700;letter-spacing:.3px}.welcome-brand span{color:#315f7f;font-size:10px;font-weight:700;letter-spacing:.8px}.welcome-user{display:block;color:#26343d;font-size:14px;margin-bottom:4px}.welcome-note{color:#5f6d76;font-size:11px}.welcome-bar{display:block;height:7px;margin-top:18px;overflow:hidden;border:1px solid #8b979f;background:#dde2e4}.welcome-bar em{display:block;height:100%;width:0;background:linear-gradient(90deg,#4f9f3d,#79c46a);animation:welcome-fill 1.25s ease-out forwards}@keyframes welcome-fill{from{width:0}to{width:100%}}
.welcome-brand img{display:block;width:100%;max-width:290px;height:auto;object-fit:contain}

/* === Responsivo: janelas estreitas (ex.: preview/aba pequena) === */
@media (max-width: 1050px) {
  .desktop-shell {
    min-width: 0 !important;
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
  }
  .workspace {
    min-width: 0 !important;
    width: 100% !important;
  }
  .screen {
    min-width: 0 !important;
    max-width: 100%;
  }
  .permission-grid {
    grid-template-columns: 1fr 1fr;
    max-width: 620px;
  }
  .permission-grid > div {
    min-width: 0;
  }
  .tree label,
  .users label {
    white-space: normal;
    overflow-wrap: anywhere;
  }
  .permission-grid h3 {
    z-index: 5 !important;
    position: relative !important;
    top: auto !important;
    background: #e1e6ea !important;
  }
  .permission-grid > div > .tree label,
  .permission-grid > div > .users label {
    z-index: 0;
  }
  .menubar {
    overflow-x: auto;
  }
  .menubar button {
    flex: 0 0 auto;
    white-space: nowrap;
  }
  .quickbar {
    overflow-x: auto;
  }
  .quickbar button {
    flex: 0 0 auto;
  }
}
@media (max-width: 700px) {
  .permission-grid {
    grid-template-columns: 1fr;
    max-width: none;
  }
  .modal {
    max-width: calc(100vw - 24px);
  }
  .modal-body .form-grid {
    grid-template-columns: 1fr !important;
  }
  .permissions-head {
    flex-wrap: wrap;
    gap: 8px;
  }
  .permissions-head label {
    min-width: 0;
    flex: 1 1 100%;
  }
  .permissions-head .win-select {
    width: 100% !important;
    min-width: 0;
  }
  .permissions-head select {
    width: 100% !important;
    min-width: 0;
  }
  .dashboard-grid {
    grid-template-columns: 1fr !important;
  }
  .metrics,
  .funnel {
    grid-column: auto !important;
  }
  .list-layout {
    grid-template-columns: 1fr;
  }
  .filter-panel {
    border-right: 0;
    border-bottom: 1px solid #adb4bb;
    max-height: 40vh;
  }
}

.fleet-category-row {
  pointer-events: none;
}

.fleet-category-cell {
  padding: 6px 10px !important;
  font-weight: 700;
  font-size: 11px;
  letter-spacing: 0.5px;
  color: #1e3f5a;
  background: linear-gradient(#dce6ef, #c8d6e3) !important;
  border-bottom: 2px solid #8ea8be !important;
  text-transform: uppercase;
  text-align: center !important;
}

/* Relatórios do Apontador — mesmo padrão visual clássico do SIF */
#screen-relatorios .ap-report{padding:10px 14px 18px;background:#f1f3f4}
#screen-relatorios .ap-filter-card,#screen-relatorios .ap-section{border:1px solid #aeb9c1;border-radius:0;background:#fff;box-shadow:none}
#screen-relatorios .ap-filter-card{padding:9px}
#screen-relatorios .ap-modes{gap:0;margin-bottom:8px;border:1px solid #9eabb4;background:#e3e8eb}
#screen-relatorios .ap-modes button{height:27px;border:0;border-right:1px solid #aeb9c1;border-radius:0;background:linear-gradient(#f7f9fa,#dce3e7);color:#395467;font:600 11px 'Segoe UI',Arial}
#screen-relatorios .ap-modes button:last-child{border-right:0}
#screen-relatorios .ap-modes button.active{background:linear-gradient(#4ea844,#368b35);color:#fff;box-shadow:inset 0 -2px #287029}
#screen-relatorios .ap-fields{grid-template-columns:180px 180px minmax(220px,1fr) auto;gap:8px}
#screen-relatorios .ap-fields input,#screen-relatorios .ap-fields select{height:29px;border-radius:0;border-color:#9eabb4;font-size:11px}
#screen-relatorios .ap-kpis{gap:0;margin-top:9px;border:1px solid #aeb9c1}
#screen-relatorios .ap-kpis div,#screen-relatorios .ap-kpis div:nth-child(n){padding:7px 8px;border-right:1px solid #c5cdd2;border-radius:0;background:linear-gradient(#fff,#e8edef)}
#screen-relatorios .ap-kpis div:last-child{border-right:0}
#screen-relatorios .ap-kpis b{color:#246d2b;font-size:15px}
#screen-relatorios .ap-kpis small{font-size:10px;color:#586b77}
#screen-relatorios .ap-actions{min-height:34px;margin:0 0 8px;padding:4px 7px;border:1px solid #aeb9c1;background:linear-gradient(#f5f7f8,#e1e6e9)}
#screen-relatorios .ap-actions button{display:inline-flex;align-items:center;gap:5px;width:auto;height:27px;min-height:27px;padding:3px 9px;border:1px solid #8999a4;border-radius:2px;background:linear-gradient(#fff,#dfe5e8);color:#294b60;font:11px 'Segoe UI',Arial;box-shadow:0 1px 1px rgba(0,0,0,.08)}
#screen-relatorios .ap-actions button:hover{border-color:#567c92;background:linear-gradient(#fff,#d6e4ea)}
#screen-relatorios .ap-actions button .btn-ico{display:block;width:13px!important;height:13px!important;flex:0 0 13px}
#screen-relatorios .ap-section>header{border-radius:0;background:linear-gradient(#eef2f4,#dce3e7);font-size:11px}
#screen-relatorios .ap-rdo{border-radius:0}
.report-source-bar{display:flex;align-items:stretch;gap:7px;padding:8px 14px;border-bottom:1px solid #aeb9c1;background:#e5eaed}.report-source-bar>span{display:flex;align-items:center;padding-right:8px;color:#5c6d78;font-size:10px;font-weight:700;text-transform:uppercase}.report-source-bar button{display:grid;gap:1px;min-width:210px;padding:5px 10px;text-align:left;border:1px solid #7f919d;border-left:3px solid #3c9b3b;border-radius:0;background:linear-gradient(#fff,#e5eaed);color:#214d68}.report-source-bar button b{font-size:11px}.report-source-bar button small{color:#667984;font-size:9px}.report-source-bar button.active{background:#fff;box-shadow:inset 0 -2px #459f3f}.report-source-bar em{display:flex;align-items:center;margin-left:auto;color:#829099;font-size:10px;font-style:normal}.report-module-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;padding:7px 9px;border:1px solid #9fadb6;border-left:3px solid #3c9b3b;background:linear-gradient(#f7f9fa,#e2e8eb);color:#174f70}.report-module-title div{display:grid;gap:1px}.report-module-title b{font-size:12px}.report-module-title span,.report-module-title small{color:#687b87;font-size:9.5px}.report-module-title>small{padding:2px 7px;border:1px solid #b5c1c8;background:#fff;text-transform:uppercase}
