/* Plataforma Control Facility V11.40 · menú homologado */
:root {
  --menu-active: #3db4e5;
  --menu-active-dark: #25a4d7;
  --menu-idle: #edf3f7;
  --menu-idle-hover: #e2edf3;
  --menu-text: #273a50;
  --menu-muted: #718298;
  --menu-line: #d7e2e9;
}

.sidebar {
  border-right: 1px solid var(--menu-line) !important;
  background: #ffffff !important;
  box-shadow: 5px 0 20px rgba(39, 58, 80, 0.08) !important;
  color: var(--menu-text) !important;
}

.sidebar .brand {
  min-height: 78px !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 0 5px 20px !important;
  border-bottom: 1px solid var(--menu-line) !important;
}

.sidebar .cf-tresa-brandmark {
  flex: 0 0 58px !important;
  width: 58px !important;
  height: 58px !important;
  border: 1px solid #edf1f4 !important;
  border-radius: 14px !important;
  background: #ffffff !important;
  box-shadow: 0 7px 18px rgba(39, 58, 80, 0.08) !important;
}

.sidebar .cf-tresa-brandmark img {
  width: 56% !important;
  height: 56% !important;
}

.sidebar .brand strong {
  display: block !important;
  color: #1f2f43 !important;
  font-size: 0.95rem !important;
  font-weight: 780 !important;
  line-height: 1.15 !important;
}

.sidebar .brand span {
  display: block !important;
  margin-top: 5px !important;
  color: var(--menu-muted) !important;
  font-size: 0.61rem !important;
  font-weight: 760 !important;
  letter-spacing: 0.09em !important;
  line-height: 1.2 !important;
}

.sidebar .site-switch {
  margin: 12px 0 10px !important;
  padding: 12px !important;
  border: 1px solid var(--menu-line) !important;
  border-radius: 13px !important;
  background: #f7fafc !important;
}

.sidebar .site-switch small {
  color: var(--menu-muted) !important;
}

.sidebar .site-switch select,
.sidebar .site-switch button {
  border-color: #cbdbe4 !important;
  background: #ffffff !important;
  color: var(--menu-text) !important;
}

.sidebar .nav-label {
  display: none !important;
}

.sidebar nav {
  display: grid !important;
  align-content: start !important;
  gap: 7px !important;
  padding-top: 4px !important;
}

.sidebar nav > button,
.sidebar nav .cf-nav-group-title,
.sidebar nav .cf-nav-option {
  width: 100% !important;
  min-height: 49px !important;
  align-items: center !important;
  border: 1px solid transparent !important;
  border-radius: 13px !important;
  background: var(--menu-idle) !important;
  box-shadow: none !important;
  color: var(--menu-text) !important;
  font-size: 0.82rem !important;
  font-weight: 670 !important;
  line-height: 1.22 !important;
  text-align: left !important;
}

.sidebar nav > button,
.sidebar nav .cf-nav-group-title {
  padding: 11px 13px !important;
}

.sidebar nav > button i {
  min-width: 22px !important;
  color: currentColor !important;
  font-size: 1rem !important;
  text-align: center !important;
}

.sidebar nav > button:hover,
.sidebar nav .cf-nav-group-title:hover,
.sidebar nav .cf-nav-option:hover {
  border-color: #d5e3ea !important;
  background: var(--menu-idle-hover) !important;
  color: #162c43 !important;
  transform: none !important;
}

.sidebar nav > button.active,
.sidebar nav > button.cf-nav-direct.active,
.sidebar nav .cf-nav-group.open > .cf-nav-group-title,
.sidebar nav .cf-nav-option.active {
  border-color: var(--menu-active) !important;
  background: linear-gradient(
    135deg,
    var(--menu-active),
    var(--menu-active-dark)
  ) !important;
  box-shadow: 0 8px 18px rgba(61, 180, 229, 0.22) !important;
  color: #ffffff !important;
}

.sidebar nav .cf-nav-group {
  display: grid !important;
  gap: 6px !important;
}

.sidebar nav .cf-nav-group-title {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) auto !important;
  gap: 9px !important;
}

.sidebar nav .cf-nav-group-title::before,
.sidebar nav .cf-nav-option::before {
  display: grid;
  min-width: 22px;
  place-items: center;
  color: currentColor;
  font-size: 0.96rem;
  line-height: 1;
}

.sidebar nav [data-cf-nav-group="equipment"] > .cf-nav-group-title::before {
  content: "▦";
}

.sidebar nav [data-cf-nav-group="providers"] > .cf-nav-group-title::before {
  content: "◎";
}

.sidebar nav .cf-nav-group-options {
  display: grid;
  gap: 5px;
  padding: 0 0 2px 8px !important;
}

.sidebar nav .cf-nav-group-options[hidden] {
  display: none !important;
}

.sidebar nav .cf-nav-option {
  display: grid !important;
  grid-template-columns: 22px minmax(0, 1fr) !important;
  gap: 8px !important;
  min-height: 43px !important;
  padding: 9px 11px !important;
  border-left: 1px solid transparent !important;
  border-radius: 11px !important;
  background: #f4f7fa !important;
  font-size: 0.75rem !important;
}

.sidebar nav [data-cf-target-module="assets"]::before {
  content: "▤";
}

.sidebar nav [data-cf-target-module="planning"]::before {
  content: "□";
}

.sidebar nav [data-cf-target-module="execution"]::before {
  content: "☷";
}

.sidebar nav [data-cf-target-module="life"]::before {
  content: "↺";
}

.sidebar nav [data-cf-target-module="completed"]::before {
  content: "✓";
}

.sidebar nav [data-cf-target-module="providers"]::before {
  content: "◎";
}

.sidebar nav [data-cf-target-module="provider-report"]::before {
  content: "▥";
}

.cf-sidebar-status {
  display: grid;
  grid-template-columns: 10px minmax(0, 1fr);
  align-items: start;
  gap: 8px;
  margin-top: auto;
  padding: 16px 8px 8px;
  border-top: 1px solid var(--menu-line);
}

.cf-sidebar-status > i {
  width: 9px;
  height: 9px;
  margin-top: 3px;
  border-radius: 50%;
  background: #1fc56b;
  box-shadow: 0 0 0 4px #dff8e9;
}

.cf-sidebar-status[data-tone="pending"] > i {
  background: #dda321;
  box-shadow: 0 0 0 4px #fff3d6;
}

.cf-sidebar-status b,
.cf-sidebar-status span {
  display: block;
}

.cf-sidebar-status b {
  color: var(--menu-muted);
  font-size: 0.69rem;
  font-weight: 620;
}

.cf-sidebar-status span {
  margin-top: 5px;
  color: var(--menu-text);
  font-size: 0.68rem;
}

.sidebar .sidebar-foot {
  margin-top: 6px !important;
  padding-top: 0 !important;
  border-top: 0 !important;
}

.sidebar .sidebar-foot button,
.sidebar > #facilityLogout {
  min-height: 38px !important;
  border: 1px solid #d7e2e9 !important;
  border-radius: 10px !important;
  background: #ffffff !important;
  color: var(--menu-muted) !important;
  font-size: 0.71rem !important;
  box-shadow: none !important;
}

.sidebar .sidebar-foot button:hover,
.sidebar > #facilityLogout:hover {
  border-color: #a9dced !important;
  background: #eff8fb !important;
  color: #17607c !important;
}

.sidebar .user {
  display: none !important;
}

@media (min-width: 901px) {
  .sidebar {
    width: 270px !important;
    padding: 18px 12px !important;
  }

  .main {
    width: calc(100% - 270px) !important;
    margin-left: 270px !important;
  }
}

@media (max-width: 900px) {
  .sidebar {
    width: min(86vw, 340px) !important;
    padding: 18px 14px 22px !important;
    background: #ffffff !important;
  }

  .sidebar .brand {
    padding: 0 52px 18px 4px !important;
  }

  .sidebar nav > button,
  .sidebar nav .cf-nav-group-title {
    min-height: 50px !important;
    padding: 11px 13px !important;
    font-size: 0.84rem !important;
  }

  .sidebar nav .cf-nav-option {
    min-height: 45px !important;
    font-size: 0.78rem !important;
  }
}
