:root {
  --zoravo-ink: #07130f;
  --zoravo-panel: #0d211a;
  --zoravo-emerald: #0aa36d;
  --zoravo-mint: #72edbc;
  --zoravo-soft: #edf8f3;
}

body {
  --tblr-primary: var(--zoravo-emerald);
  --tblr-primary-rgb: 10, 163, 109;
}

.page-wrapper {
  background:
    radial-gradient(circle at 90% 0, rgb(10 163 109 / 9%), transparent 30rem),
    var(--tblr-body-bg);
}

.navbar-vertical {
  background: linear-gradient(180deg, var(--zoravo-ink), var(--zoravo-panel)) !important;
  border: 0 !important;
  box-shadow: 12px 0 40px rgb(4 18 13 / 10%);
}

.vertical-layout .sidebar .nav-item { padding-inline: .6rem; }
.vertical-layout .sidebar .nav-link { margin-block: .12rem; border-radius: .75rem; }
header[data-testid="main-header"] { border-bottom: 1px solid rgb(10 163 109 / 12%); background: rgb(255 255 255 / 92%) !important; backdrop-filter: blur(18px); }
.page-body { padding-top: 1.25rem; }
.nav-tabs .nav-link.active { color: #087a50; border-bottom-color: var(--zoravo-emerald); }

.navbar-vertical .nav-link,
.navbar-vertical .nav-link-title,
.navbar-vertical .nav-link-icon {
  color: rgb(237 255 247 / 72%) !important;
}

.navbar-vertical .nav-link:hover,
.navbar-vertical .nav-link.active {
  color: #fff !important;
  background: rgb(114 237 188 / 12%) !important;
}

.navbar-vertical .nav-link.active {
  box-shadow: inset 3px 0 var(--zoravo-mint);
}

.card {
  border-color: rgb(10 70 48 / 10%);
  border-radius: 1rem;
  box-shadow: 0 12px 35px rgb(8 35 25 / 5%);
}

.btn-primary {
  border-color: var(--zoravo-emerald);
  background: linear-gradient(135deg, var(--zoravo-emerald), #087a50);
  box-shadow: 0 8px 20px rgb(10 163 109 / 20%);
}

.btn-primary:hover {
  border-color: #087a50;
  background: #087a50;
  transform: translateY(-1px);
}

.form-control:focus,
.form-select:focus {
  border-color: var(--zoravo-emerald);
  box-shadow: 0 0 0 .2rem rgb(10 163 109 / 14%);
}

body.page-anonymous {
  background:
    radial-gradient(circle at 15% 15%, rgb(114 237 188 / 16%), transparent 28rem),
    radial-gradient(circle at 85% 90%, rgb(10 163 109 / 18%), transparent 30rem),
    linear-gradient(145deg, #06110d, #0b2119 55%, #103328) !important;
}

body.page-anonymous .card {
  border: 1px solid rgb(114 237 188 / 15%);
  border-radius: 1.4rem;
  box-shadow: 0 30px 80px rgb(0 0 0 / 32%);
  backdrop-filter: blur(16px);
}

body.page-anonymous .page-anonymous-img {
  filter: drop-shadow(0 16px 34px rgb(0 0 0 / 25%));
}

@media (max-width: 767px) {
  .card { border-radius: .85rem; }
  body.page-anonymous .card { border-radius: 1rem; }
}


.helpdesk .helpdesk-home-container .search-banner { min-height: 20rem; align-items: center; background: radial-gradient(circle at 18% 15%, rgb(114 237 188 / 18%), transparent 24rem), linear-gradient(135deg, #06110d, #0b2d21 58%, #0f5138); color: #fff; }
.helpdesk .search-banner-content h1 { max-width: 720px; margin-inline: auto; font-size: clamp(2rem, 5vw, 3.6rem); font-weight: 800; letter-spacing: -.045em; text-shadow: 0 8px 30px rgb(0 0 0 / 24%); }
.helpdesk .home-search { min-height: 3.5rem; border: 1px solid rgb(255 255 255 / 24%); border-radius: 1rem; background: rgb(255 255 255 / 94%); box-shadow: 0 18px 45px rgb(0 0 0 / 20%); font-size: 1rem; }
.helpdesk .tiles-banner { padding-block: 2rem; background: #f3f8f5; }
.helpdesk .tiles-banner .card { border: 1px solid rgb(10 163 109 / 10%); background: #fff; transition: transform 180ms ease, border-color 180ms ease, box-shadow 180ms ease; }
.helpdesk .tiles-banner .card:hover { border-color: rgb(10 163 109 / 38%); box-shadow: 0 20px 45px rgb(8 45 30 / 12%); transform: translateY(-4px); }
.helpdesk .tiles-banner .card-title { color: #082c20; font-size: 1.1rem; }
.helpdesk .tickets-banner { padding-block: 2rem; background: #fff; }
@media (max-width: 767px) { .helpdesk .helpdesk-home-container .search-banner { min-height: 15rem; } .helpdesk .scene { display: none; } .helpdesk .tiles-banner { padding-block: 1rem; } }

.zoravo-setup { max-width: 1180px; }
.zoravo-setup-hero { background: radial-gradient(circle at 88% 20%, rgb(114 237 188 / 20%), transparent 18rem), linear-gradient(135deg, #f5fffa, #fff); }
.zoravo-preset-status { display: flex; flex-direction: column; gap: .25rem; padding: 1rem 1.2rem; border: 1px solid rgb(10 163 109 / 18%); border-radius: 1rem; background: rgb(255 255 255 / 75%); }
.zoravo-preset-status strong { color: #087a50; font-size: 1.15rem; }
.zoravo-preset-status span { color: var(--tblr-secondary); font-size: .85rem; }
.zoravo-option { display: flex; height: 100%; gap: .85rem; padding: 1rem; cursor: pointer; border: 1px solid rgb(10 70 48 / 12%); border-radius: .9rem; transition: 160ms ease; }
.zoravo-option:hover { border-color: rgb(10 163 109 / 45%); background: var(--zoravo-soft); transform: translateY(-2px); }
.zoravo-option input { flex: 0 0 auto; margin-top: .2rem; }
.zoravo-option span { display: flex; flex-direction: column; gap: .3rem; }
.zoravo-option small { color: var(--tblr-secondary); line-height: 1.4; }

/* Dashboard: acabamento visual sem substituir o editor nativo do GLPI. */
.dashboard { --zoravo-dash-gap: .85rem; }
.dashboard .toolbar { padding: .65rem .8rem; margin-bottom: 1rem; border: 1px solid rgb(10 70 48 / 9%); border-radius: 1rem; background: rgb(255 255 255 / 82%); box-shadow: 0 10px 28px rgb(7 35 25 / 5%); backdrop-filter: blur(14px); }
.dashboard .toolbar .btn { border-radius: .7rem; }
.dashboard .grid-stack-item-content { overflow: hidden; border: 1px solid rgb(10 70 48 / 9%); border-radius: 1rem; background: var(--tblr-card-bg, #fff); box-shadow: 0 10px 30px rgb(7 35 25 / 6%); transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease; }
.dashboard:not(.edit-mode) .grid-stack-item-content:hover { border-color: rgb(10 163 109 / 25%); box-shadow: 0 16px 38px rgb(7 35 25 / 10%); transform: translateY(-2px); }
.dashboard .grid-stack-item-content > .card { height: 100%; border: 0; border-radius: inherit; box-shadow: none; }
.dashboard .card-header { min-height: 3.1rem; padding: .8rem 1rem; border-bottom-color: rgb(10 70 48 / 8%); background: linear-gradient(180deg, rgb(248 253 250 / 94%), rgb(255 255 255 / 80%)); }
.dashboard .card-header .card-title { color: #123a2d; font-size: .9rem; font-weight: 700; letter-spacing: -.01em; }
.dashboard .big-number .formatted-number { color: #087a50; font-weight: 800; letter-spacing: -.045em; }
.dashboard .big-number .label { color: var(--tblr-secondary); font-weight: 600; }
.dashboard .empty-card, .dashboard .no-data { color: #719085; background: linear-gradient(135deg, #f8fcfa, #eef8f3); }
.dashboard .empty-card i, .dashboard .no-data i { color: var(--zoravo-emerald); opacity: .7; }
.dashboard .g-chart svg { overflow: visible; }
.dashboard .grid-stack-item > .controls { border-radius: .65rem; background: #09251c; box-shadow: 0 8px 24px rgb(0 0 0 / 18%); }
.dashboard.theme-dark .grid-stack-item-content { border-color: rgb(114 237 188 / 14%); box-shadow: 0 12px 32px rgb(0 0 0 / 18%); }
.zoravo-dashboard-refresh { position: fixed; z-index: 1030; right: 1rem; bottom: 1rem; display: flex; align-items: center; gap: .45rem; padding: .52rem .72rem; color: #eafff6; border: 1px solid rgb(114 237 188 / 20%); border-radius: 999px; background: rgb(7 30 22 / 88%); box-shadow: 0 10px 30px rgb(0 0 0 / 18%); backdrop-filter: blur(12px); font-size: .75rem; font-weight: 600; pointer-events: none; }
.zoravo-dashboard-refresh i { color: var(--zoravo-mint); animation: zoravo-spin 3s linear infinite; }
.zoravo-dashboard-refresh.is-paused { opacity: .7; }
.zoravo-dashboard-refresh.is-paused i { animation-play-state: paused; }
@keyframes zoravo-spin { to { transform: rotate(360deg); } }
@media (max-width: 767px) { .dashboard .toolbar { border-radius: .8rem; } .dashboard .grid-stack-item-content { border-radius: .85rem; } .zoravo-dashboard-refresh { right: .65rem; bottom: .65rem; } }

.zoravo-alert-control { position: fixed; z-index: 1031; right: 1rem; bottom: 3.9rem; display: none; align-items: center; gap: .45rem; padding: .55rem .8rem; color: #d9eee6; border: 1px solid rgb(114 237 188 / 18%); border-radius: 999px; background: rgb(7 30 22 / 88%); box-shadow: 0 10px 30px rgb(0 0 0 / 16%); backdrop-filter: blur(12px); font-size: .75rem; font-weight: 600; }
body:has(.dashboard) .zoravo-alert-control { display: flex; }
.zoravo-alert-control:hover, .zoravo-alert-control.is-active { color: #fff; border-color: rgb(114 237 188 / 45%); background: #0a5138; }
.zoravo-ticket-alert { position: fixed; z-index: 1090; top: 1.25rem; left: 50%; display: grid; width: min(680px, calc(100vw - 2rem)); grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; padding: 1rem 1.1rem; color: #f0fff8; text-decoration: none; border: 1px solid rgb(114 237 188 / 36%); border-radius: 1.15rem; background: linear-gradient(135deg, rgb(5 55 38 / 97%), rgb(10 113 75 / 97%)); box-shadow: 0 24px 70px rgb(0 0 0 / 32%); transform: translate(-50%, -140%); opacity: 0; transition: 250ms ease; }
.zoravo-ticket-alert.is-visible { transform: translate(-50%, 0); opacity: 1; }
.zoravo-ticket-alert:hover { color: #fff; box-shadow: 0 28px 80px rgb(0 0 0 / 38%); }
.zoravo-ticket-alert-icon { display: grid; width: 3rem; height: 3rem; place-items: center; border-radius: .9rem; background: rgb(114 237 188 / 18%); font-size: 1.5rem; }
.zoravo-ticket-alert-copy { display: flex; min-width: 0; flex-direction: column; }
.zoravo-ticket-alert-copy small { color: var(--zoravo-mint); font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.zoravo-ticket-alert-copy strong { overflow: hidden; font-size: 1.05rem; text-overflow: ellipsis; white-space: nowrap; }
.zoravo-ticket-alert-copy em { color: rgb(240 255 248 / 65%); font-size: .75rem; font-style: normal; }
.zoravo-ticket-alert button { color: inherit; border: 0; background: transparent; font-size: 1.1rem; }
@media (max-width: 767px) { .zoravo-alert-control { right: .65rem; bottom: 3.7rem; } .zoravo-alert-control span { display: none; } .zoravo-ticket-alert { top: .65rem; gap: .7rem; padding: .8rem; } }
