* {
    margin: 0px;
    padding: 0px;
    box-sizing: border-box;
}

a {
    text-decoration: none;
}

body {
    overflow: hidden;
    font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
    font-size: 14px;
}

.hide {
	display: none;
}

@media (max-width: 900px) {
  .hide-on-small {
	display: none;
  }
}

.lds-ellipsis {
  display: inline-block;
  position: relative;
  width: 80px;
  height: 80px;
}
.lds-ellipsis div {
  position: absolute;
  top: 33px;
  width: 13px;
  height: 13px;
  border-radius: 50%;
  background: #656164cc;
  animation-timing-function: cubic-bezier(0, 1, 1, 0);
}
.lds-ellipsis div:nth-child(1) {
  left: 8px;
  animation: lds-ellipsis1 0.6s infinite;
}
.lds-ellipsis div:nth-child(2) {
  left: 8px;
  animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(3) {
  left: 32px;
  animation: lds-ellipsis2 0.6s infinite;
}
.lds-ellipsis div:nth-child(4) {
  left: 56px;
  animation: lds-ellipsis3 0.6s infinite;
}
@keyframes lds-ellipsis1 {
  0% {
    transform: scale(0);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes lds-ellipsis3 {
  0% {
    transform: scale(1);
  }
  100% {
    transform: scale(0);
  }
}
@keyframes lds-ellipsis2 {
  0% {
    transform: translate(0, 0);
  }
  100% {
    transform: translate(24px, 0);
  }
}

/* Qonda Navbar — rendered outside the w2ui layout so overflow is never clipped */
#user-nav {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 1000;
  background: #2196f3;
  box-shadow: 0 4px 8px #0000001a,0 2px 5px 2px #0000000f;
  font-family: 'Quicksand', sans-serif;
}

/* Push the w2ui layout below the fixed navbar — only on pages that have the fixed nav */
body:has(#user-nav) #layout {
  top: 56px !important;
  height: calc(100vh - 56px) !important;
  position: absolute !important;
}

.navbar {
  display: flex;
  align-items: center;
  height: 56px;
}

.navbar-left {
  display: flex;
  align-items: center;
  flex: 1;
}

.navbar-center {
  display: flex;
  justify-content: center;
  flex: 1;
}

.navbar-search {
  padding: 5px 14px;
  border-radius: 20px;
  border: 1px solid rgba(255,255,255,0.5);
  width: 190px;
  outline: none;
  font-family: inherit;
  font-size: 14px;
}

.logo {
  width: 53.333px;
  height: 53.333px;
  margin-left: 1rem;
  margin-right: 1rem;
}

.navbar-title {
  font-weight: bolder;
  font-size: 32px;
  color: white;
  line-height: 56px;
  text-wrap-mode: nowrap;
}

.navbar-breadcrumb {
  font-weight: normal;
  opacity: 0.6;
}

/* Prevent layout panel resizer hover rule bleeding into grid column resizers */
.w2ui-grid .w2ui-grid-body .w2ui-grid-columns .w2ui-resizer,
.w2ui-grid .w2ui-grid-body .w2ui-grid-fcolumns .w2ui-resizer {
  background-color: transparent !important;
}
.w2ui-grid .w2ui-grid-body .w2ui-grid-columns .w2ui-resizer:hover,
.w2ui-grid .w2ui-grid-body .w2ui-grid-fcolumns .w2ui-resizer:hover {
  background-color: #c8cad1 !important;
}

.navbar-right {
  display: flex;
  align-items: center;
  height: 100%;
  flex: 1;
  justify-content: flex-end;
}

.nav-item {
  position: relative;
  height: 56px;
  background-color: #2196f3;
  display: flex;
  align-items: center;
  font-size: 16px;
}

.nav-item.active {
  background-color: rgba(0, 0, 0, .07);
  font-weight: bolder;
}

.nav-item.navbar-dropdown.active {
  font-weight: normal;
}

.nav-link {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0 0.6rem;
  height: 100%;
  color: white;
  text-decoration: none;
  white-space: nowrap;
}

.nav-link:hover {
  background-color: rgba(0, 0, 0, .07);
}

.navbar-dropdown {
  position: relative;
}

.navbar-dropdown-content {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  background-color: white;
  min-width: 200px;
  z-index: 1001;
  border: 1px solid #ccc;
  flex-direction: column;
  box-shadow: 0 4px 8px #0000001a,0 2px 5px 2px #0000000f
}

.navbar-dropdown-content a {
  display: flex;
  align-items: center;
  height: 56px;
  padding: 0 16px;
  color: black;
  text-decoration: none;
  background-color: white;
  transition: background-color 0.2s;
}

.navbar-dropdown-content a:hover {
  background-color: rgba(0, 0, 0, .07);
  color: black;
}

.navbar-dropdown-content a.active {
  background-color: rgba(0, 0, 0, .07);
  color: black;
}

.navbar-dropdown:hover .navbar-dropdown-content {
  display: flex;
}

/* Diagram modal footer buttons */
.diag-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  margin: 0 2px;
  padding: 0;
  border: 1px solid #ccc;
  border-radius: 4px;
  background: #f5f5f5;
  color: #333;
  cursor: pointer;
  font-size: 1.8em;
  vertical-align: middle;
}

.diag-btn:hover {
  background: #e0e0e0;
  border-color: #999;
}

.diag-btn-sep {
  display: inline-block;
  width: 12px;
}

/* Phosphor icons inside grid cells */
.ph-grid {
  font-size: 1.8em;
  vertical-align: middle;
}

/* ================================================================
   Dashboard
   ================================================================ */

.dash-kpi {
  flex: 1;
  min-height: 70px;
  background: #f4f7fb;
  border: 1px solid #dde3ef;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.15s;
  padding: 10px 8px;
}

.dash-kpi:hover {
  background: #e8eef8;
}

.dash-chart-box {
  background: #f9fafb;
  border: 1px solid #e2e8f0;
  border-radius: 6px;
  overflow: hidden;
}

.text-primary  { color: #2196f3 !important; }
.text-success  { color: #12ad12 !important; }
.text-error    { color: #df2c29 !important; }
.text-blue     { color: #2196f3 !important; }
.text-green    { color: #27e927 !important; }
.text-red      { color: #e92626 !important; }
.text-yellow   { color: #f0de3b !important; }
.text-orange   { color: #ff9028 !important; }
.text-grey     { color: #a5a5a5 !important; }
.text-viride   { color: #61b399 !important; }
.text-amaranth { color: #e62454 !important; }

.qr-alert {
  padding: 5px 10px;
  margin: 3px 0;
  border-radius: 4px;
  border: 1px solid;
  font-size: larger;
}
.qr-alert-info    { background: #bcdffb; color: #085592; border-color: #48a8f5; }
.qr-alert-success { background: #bbf8bb; color: #0a630a; border-color: #15d215; }
.qr-alert-error   { background: #f8baba; color: #620a0a; border-color: #e92626; }
.qr-alert-warning { background: #fcf8d3; color: #7e730a; border-color: #edd815; }

.modal.fullscreen {
	top: 1rem;
	max-height: calc(100vh - 2rem);
	height: calc(100vh - 2rem);
	width: calc(100vw - 2rem);
}

dialog::backdrop {
	background: #0006;
}

.w2ui-panel-title {
	font-weight: bolder;
	color: black !important;
}