﻿/* CSS Reset */
*,
*::before,
*::after {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

html {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  scroll-behavior: smooth; }

body {
  margin: 0;
  padding: 0;
  min-height: 100vh;
  line-height: 1.5;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  color: #111827;
  background-color: #ffffff; }

img,
picture,
video,
canvas,
svg {
  display: block;
  max-width: 100%;
  height: auto; }

input,
button,
textarea,
select {
  font: inherit; }

p,
h1,
h2,
h3,
h4,
h5,
h6 {
  overflow-wrap: break-word; }

ul,
ol {
  list-style: none; }

a {
  color: inherit;
  text-decoration: none; }

button {
  background: none;
  border: none;
  cursor: pointer;
  font-family: inherit; }

#root,
#__next {
  isolation: isolate; }

body {
  font-family: 'Inter', sans-serif;
  font-size: 16px; }

h1, h2, h3, h4, h5, h6 {
  font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  font-weight: 700;
  line-height: 1.2;
  margin-bottom: 1rem;
  color: #111827; }

h1 {
  font-size: 1.875rem; }
  @media (min-width: 768px) {
    h1 {
      font-size: 3rem; } }

h2 {
  font-size: 1.5rem; }
  @media (min-width: 768px) {
    h2 {
      font-size: 2.25rem; } }

h3 {
  font-size: 1.25rem; }
  @media (min-width: 768px) {
    h3 {
      font-size: 1.875rem; } }

h4 {
  font-size: 1.125rem; }
  @media (min-width: 768px) {
    h4 {
      font-size: 1.5rem; } }

h5 {
  font-size: 1rem; }
  @media (min-width: 768px) {
    h5 {
      font-size: 1.25rem; } }

h6 {
  font-size: 0.875rem; }
  @media (min-width: 768px) {
    h6 {
      font-size: 1.125rem; } }

p {
  margin-bottom: 1rem;
  line-height: 1.6;
  color: #374151; }

a {
  color: #2f80ed;
  transition: color 250ms ease-in-out; }
  a:hover {
    color: #1a5fc4; }

ul, ol {
  margin-bottom: 1rem;
  padding-left: 2rem; }

li {
  margin-bottom: 0.5rem; }

strong, b {
  font-weight: 700; }

em, i {
  font-style: italic; }

small {
  font-size: 0.875rem; }

code {
  font-family: 'Monaco', 'Courier New', monospace;
  font-size: 0.875rem;
  background: #f3f4f6;
  padding: 2px 6px;
  border-radius: 0.25rem;
  color: #1f2937; }

pre {
  background: #f3f4f6;
  padding: 1rem;
  border-radius: 0.5rem;
  overflow-x: auto;
  margin-bottom: 1rem; }
  pre code {
    background: none;
    padding: 0; }

blockquote {
  border-left: 4px solid #2f80ed;
  padding-left: 1.5rem;
  margin: 1.5rem 0;
  font-style: italic;
  color: #4b5563; }

hr {
  border: none;
  border-top: 1px solid #d1d5db;
  margin: 2rem 0; }

html, body {
  height: 100%;
  overflow-x: hidden; }

#app, #root {
  min-height: 100vh;
  display: flex;
  flex-direction: column; }

.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem; }
  @media (min-width: 768px) {
    .container {
      padding: 0 2rem; } }
  @media (min-width: 1024px) {
    .container {
      padding: 0 3rem; } }

.container-fluid {
  width: 100%;
  padding: 0 1rem; }
  @media (min-width: 768px) {
    .container-fluid {
      padding: 0 2rem; } }

.row {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -1rem; }

.col {
  flex: 1;
  padding: 0 1rem; }

.col-1 {
  flex: 0 0 8.3333333333%;
  max-width: 8.3333333333%;
  padding: 0 1rem; }

.col-2 {
  flex: 0 0 16.6666666667%;
  max-width: 16.6666666667%;
  padding: 0 1rem; }

.col-3 {
  flex: 0 0 25%;
  max-width: 25%;
  padding: 0 1rem; }

.col-4 {
  flex: 0 0 33.3333333333%;
  max-width: 33.3333333333%;
  padding: 0 1rem; }

.col-5 {
  flex: 0 0 41.6666666667%;
  max-width: 41.6666666667%;
  padding: 0 1rem; }

.col-6 {
  flex: 0 0 50%;
  max-width: 50%;
  padding: 0 1rem; }

.col-7 {
  flex: 0 0 58.3333333333%;
  max-width: 58.3333333333%;
  padding: 0 1rem; }

.col-8 {
  flex: 0 0 66.6666666667%;
  max-width: 66.6666666667%;
  padding: 0 1rem; }

.col-9 {
  flex: 0 0 75%;
  max-width: 75%;
  padding: 0 1rem; }

.col-10 {
  flex: 0 0 83.3333333333%;
  max-width: 83.3333333333%;
  padding: 0 1rem; }

.col-11 {
  flex: 0 0 91.6666666667%;
  max-width: 91.6666666667%;
  padding: 0 1rem; }

.col-12 {
  flex: 0 0 100%;
  max-width: 100%;
  padding: 0 1rem; }

@media (min-width: 768px) {
  .col-md-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%; }
  .col-md-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%; }
  .col-md-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .col-md-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%; }
  .col-md-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%; }
  .col-md-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .col-md-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%; }
  .col-md-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%; }
  .col-md-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .col-md-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%; }
  .col-md-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%; }
  .col-md-12 {
    flex: 0 0 100%;
    max-width: 100%; } }

@media (min-width: 1024px) {
  .col-lg-1 {
    flex: 0 0 8.3333333333%;
    max-width: 8.3333333333%; }
  .col-lg-2 {
    flex: 0 0 16.6666666667%;
    max-width: 16.6666666667%; }
  .col-lg-3 {
    flex: 0 0 25%;
    max-width: 25%; }
  .col-lg-4 {
    flex: 0 0 33.3333333333%;
    max-width: 33.3333333333%; }
  .col-lg-5 {
    flex: 0 0 41.6666666667%;
    max-width: 41.6666666667%; }
  .col-lg-6 {
    flex: 0 0 50%;
    max-width: 50%; }
  .col-lg-7 {
    flex: 0 0 58.3333333333%;
    max-width: 58.3333333333%; }
  .col-lg-8 {
    flex: 0 0 66.6666666667%;
    max-width: 66.6666666667%; }
  .col-lg-9 {
    flex: 0 0 75%;
    max-width: 75%; }
  .col-lg-10 {
    flex: 0 0 83.3333333333%;
    max-width: 83.3333333333%; }
  .col-lg-11 {
    flex: 0 0 91.6666666667%;
    max-width: 91.6666666667%; }
  .col-lg-12 {
    flex: 0 0 100%;
    max-width: 100%; } }

.section {
  padding: 4rem 0; }
  @media (min-width: 768px) {
    .section {
      padding: 6rem 0; } }

.section-sm {
  padding: 2rem 0; }
  @media (min-width: 768px) {
    .section-sm {
      padding: 3rem 0; } }

.section-lg {
  padding: 6rem 0; }
  @media (min-width: 768px) {
    .section-lg {
      padding: 6rem 0; } }

.wrapper {
  max-width: 100%;
  overflow-x: hidden; }

.main-content {
  flex: 1;
  display: flex;
  flex-direction: column; }

.mt-0 {
  margin-top: 0; }

.mt-1 {
  margin-top: 0.25rem; }

.mt-2 {
  margin-top: 0.5rem; }

.mt-3 {
  margin-top: 1rem; }

.mt-4 {
  margin-top: 1.5rem; }

.mt-5 {
  margin-top: 2rem; }

.mt-6 {
  margin-top: 3rem; }

.mb-0 {
  margin-bottom: 0; }

.mb-1 {
  margin-bottom: 0.25rem; }

.mb-2 {
  margin-bottom: 0.5rem; }

.mb-3 {
  margin-bottom: 1rem; }

.mb-4 {
  margin-bottom: 1.5rem; }

.mb-5 {
  margin-bottom: 2rem; }

.mb-6 {
  margin-bottom: 3rem; }

.ml-0 {
  margin-left: 0; }

.ml-1 {
  margin-left: 0.25rem; }

.ml-2 {
  margin-left: 0.5rem; }

.ml-3 {
  margin-left: 1rem; }

.ml-4 {
  margin-left: 1.5rem; }

.mr-0 {
  margin-right: 0; }

.mr-1 {
  margin-right: 0.25rem; }

.mr-2 {
  margin-right: 0.5rem; }

.mr-3 {
  margin-right: 1rem; }

.mr-4 {
  margin-right: 1.5rem; }

.mx-auto {
  margin-left: auto;
  margin-right: auto; }

.p-0 {
  padding: 0; }

.p-1 {
  padding: 0.25rem; }

.p-2 {
  padding: 0.5rem; }

.p-3 {
  padding: 1rem; }

.p-4 {
  padding: 1.5rem; }

.p-5 {
  padding: 2rem; }

.pt-0 {
  padding-top: 0; }

.pt-1 {
  padding-top: 0.25rem; }

.pt-2 {
  padding-top: 0.5rem; }

.pt-3 {
  padding-top: 1rem; }

.pt-4 {
  padding-top: 1.5rem; }

.pt-5 {
  padding-top: 2rem; }

.pb-0 {
  padding-bottom: 0; }

.pb-1 {
  padding-bottom: 0.25rem; }

.pb-2 {
  padding-bottom: 0.5rem; }

.pb-3 {
  padding-bottom: 1rem; }

.pb-4 {
  padding-bottom: 1.5rem; }

.pb-5 {
  padding-bottom: 2rem; }

.pl-0 {
  padding-left: 0; }

.pl-1 {
  padding-left: 0.25rem; }

.pl-2 {
  padding-left: 0.5rem; }

.pl-3 {
  padding-left: 1rem; }

.pl-4 {
  padding-left: 1.5rem; }

.pr-0 {
  padding-right: 0; }

.pr-1 {
  padding-right: 0.25rem; }

.pr-2 {
  padding-right: 0.5rem; }

.pr-3 {
  padding-right: 1rem; }

.pr-4 {
  padding-right: 1.5rem; }

.d-none {
  display: none; }

.d-block {
  display: block; }

.d-inline {
  display: inline; }

.d-inline-block {
  display: inline-block; }

.d-flex {
  display: flex; }

.d-grid {
  display: grid; }

.flex-row {
  flex-direction: row; }

.flex-column {
  flex-direction: column; }

.flex-wrap {
  flex-wrap: wrap; }

.flex-nowrap {
  flex-wrap: nowrap; }

.justify-start {
  justify-content: flex-start; }

.justify-end {
  justify-content: flex-end; }

.justify-center {
  justify-content: center; }

.justify-between {
  justify-content: space-between; }

.justify-around {
  justify-content: space-around; }

.items-start {
  align-items: flex-start; }

.items-end {
  align-items: flex-end; }

.items-center {
  align-items: center; }

.items-stretch {
  align-items: stretch; }

.gap-1 {
  gap: 0.25rem; }

.gap-2 {
  gap: 0.5rem; }

.gap-3 {
  gap: 1rem; }

.gap-4 {
  gap: 1.5rem; }

.gap-5 {
  gap: 2rem; }

.text-left {
  text-align: left; }

.text-center {
  text-align: center; }

.text-right {
  text-align: right; }

.text-xs {
  font-size: 0.75rem; }

.text-sm {
  font-size: 0.875rem; }

.text-base {
  font-size: 1rem; }

.text-lg {
  font-size: 1.125rem; }

.text-xl {
  font-size: 1.25rem; }

.text-2xl {
  font-size: 1.5rem; }

.text-3xl {
  font-size: 1.875rem; }

.font-light {
  font-weight: 300; }

.font-normal {
  font-weight: 400; }

.font-medium {
  font-weight: 500; }

.font-semibold {
  font-weight: 600; }

.font-bold {
  font-weight: 700; }

.text-primary {
  color: #2f80ed; }

.text-secondary {
  color: #6c757d; }

.text-white {
  color: #ffffff; }

.text-gray-600 {
  color: #4b5563; }

.text-gray-700 {
  color: #374151; }

.text-gray-900 {
  color: #111827; }

.bg-primary {
  background-color: #2f80ed; }

.bg-white {
  background-color: #ffffff; }

.bg-gray-50 {
  background-color: #f9fafb; }

.bg-gray-100 {
  background-color: #f3f4f6; }

.w-full {
  width: 100%; }

.h-full {
  height: 100%; }

.w-auto {
  width: auto; }

.h-auto {
  height: auto; }

.relative {
  position: relative; }

.absolute {
  position: absolute; }

.fixed {
  position: fixed; }

.sticky {
  position: sticky; }

.overflow-hidden {
  overflow: hidden; }

.overflow-auto {
  overflow: auto; }

.overflow-scroll {
  overflow: scroll; }

.rounded-sm {
  border-radius: 0.25rem; }

.rounded-md {
  border-radius: 0.5rem; }

.rounded-lg {
  border-radius: 0.75rem; }

.rounded-xl {
  border-radius: 1rem; }

.rounded-full {
  border-radius: 9999px; }

.shadow-sm {
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); }

.shadow-md {
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }

.shadow-lg {
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }

.shadow-xl {
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }

.shadow-none {
  box-shadow: none; }

@media (min-width: 768px) {
  .d-md-none {
    display: none; }
  .d-md-block {
    display: block; }
  .d-md-flex {
    display: flex; }
  .d-md-grid {
    display: grid; } }

@media (min-width: 1024px) {
  .d-lg-none {
    display: none; }
  .d-lg-block {
    display: block; }
  .d-lg-flex {
    display: flex; }
  .d-lg-grid {
    display: grid; } }

.container {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 1rem; }
  @media (min-width: 768px) {
    .container {
      padding: 0 2rem; } }
  @media (min-width: 1024px) {
    .container {
      padding: 0 3rem; } }

.max-w-sm {
  max-width: 640px; }

.max-w-md {
  max-width: 768px; }

.max-w-lg {
  max-width: 1024px; }

.max-w-xl {
  max-width: 1280px; }

.cursor-pointer {
  cursor: pointer; }

.cursor-default {
  cursor: default; }

.transition {
  transition: all 250ms ease-in-out; }

.transition-fast {
  transition: all 150ms ease-in-out; }

.transition-slow {
  transition: all 350ms ease-in-out; }

/* Logo Size Fix - Force proper sizing */
.home__logo {
  height: 40px !important;
  max-height: 40px !important;
  width: auto !important;
  max-width: 200px !important;
  display: block !important; }
  .home__logo img {
    height: 100% !important;
    width: auto !important;
    max-height: 40px !important;
    max-width: 200px !important;
    object-fit: contain !important;
    display: block !important; }
  @media (min-width: 768px) {
    .home__logo {
      height: 50px !important;
      max-height: 50px !important;
      max-width: 250px !important; }
      .home__logo img {
        max-height: 50px !important;
        max-width: 250px !important; } }

/* Hamburger Menu - Only visible on mobile */
.home__menu-toggle {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 0.5rem !important; }
  @media (min-width: 1024px) {
    .home__menu-toggle {
      display: none !important; } }

.home__menu-toggle-icon {
  width: 28px !important;
  height: 28px !important;
  max-width: 28px !important;
  max-height: 28px !important; }

/* Mobile Menu Positioning */
.home__mobile-menu {
  position: fixed !important;
  top: 70px !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 1000 !important;
  max-height: calc(100vh - 70px) !important;
  overflow-y: auto !important; }
  @media (min-width: 1024px) {
    .home__mobile-menu {
      display: none !important; } }

/* Hero Tag Icons - Inline with text on left side */
.home__tag {
  display: inline-flex !important;
  align-items: center !important;
  gap: 0.375rem !important; }

.home__tag-icon {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  min-width: 16px !important;
  min-height: 16px !important;
  display: inline-block !important;
  flex-shrink: 0 !important; }

/* Feature Icons - Ensure proper sizing */
.home__feature-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important; }
  .home__feature-icon img {
    width: 64px !important;
    height: 64px !important;
    max-width: 64px !important;
    max-height: 64px !important; }

/* Solution Icons - Ensure proper sizing */
.home__solution-icon {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important; }
  .home__solution-icon img {
    width: 48px !important;
    height: 48px !important;
    max-width: 48px !important;
    max-height: 48px !important; }

/* CTA Button - Ensure proper alignment */
.home__btn-cta {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 0.75rem !important; }

.home__btn-icon {
  width: 24px !important;
  height: 24px !important;
  max-width: 24px !important;
  max-height: 24px !important;
  flex-shrink: 0 !important; }

/* Footer Contact Icons - Ensure proper sizing and alignment */
.home__footer-contact {
  display: flex !important;
  align-items: center !important;
  gap: 0.5rem !important; }

.home__footer-icon {
  width: 16px !important;
  height: 16px !important;
  max-width: 16px !important;
  max-height: 16px !important;
  flex-shrink: 0 !important; }

/* Force all content to start at top on navigation */
html {
  scroll-behavior: auto !important; }

/* Disable scroll anchoring that might interfere */
body,
html {
  overflow-anchor: none !important; }

/* Ensure Blazor app starts at top */
#app {
  /* Force focus to top of page */ }
  #app::before {
    content: '';
    display: block;
    height: 0;
    width: 0;
    position: absolute;
    top: 0;
    left: 0; }
  #app:focus {
    scroll-margin-top: 0 !important; }

/* Disable any smooth scrolling that might interfere */
* {
  scroll-behavior: auto !important; }

.btn {
  padding: .5rem; }

.card {
  padding: 1rem; }

.input {
  padding: .5rem; }

.home {
  min-height: 100vh;
  display: flex;
  flex-direction: column; }
  .home__container {
    width: 100%;
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 1rem; }
    @media (min-width: 768px) {
      .home__container {
        padding: 0 2rem; } }
    @media (min-width: 1024px) {
      .home__container {
        padding: 0 3rem; } }
  .home__header {
    position: sticky;
    top: 0;
    background: #ffffff;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    z-index: 1020;
    padding: 1rem 0; }
  .home__nav {
    display: flex;
    justify-content: space-between;
    align-items: center; }
  .home__logo {
    height: 40px;
    max-height: 40px;
    width: auto;
    max-width: 200px; }
    .home__logo img {
      height: 100%;
      width: auto;
      max-height: 40px;
      object-fit: contain; }
    @media (min-width: 768px) {
      .home__logo {
        height: 50px;
        max-height: 50px;
        max-width: 250px; }
        .home__logo img {
          max-height: 50px; } }
  .home__menu {
    display: flex;
    align-items: center;
    gap: 2rem; }
    @media (max-width: 768px) {
      .home__menu {
        display: none; } }
  .home__menu-item {
    color: #222222;
    text-decoration: none;
    font-weight: 500;
    transition: color 0.2s;
    cursor: pointer; }
    .home__menu-item:hover {
      color: #2f80ed; }
  .home__menu-dropdown {
    position: relative;
    display: inline-block;
    cursor: pointer; }
    .home__menu-dropdown:hover .home__dropdown-content {
      display: block !important;
      opacity: 1 !important;
      visibility: visible !important; }
  .home__dropdown-content {
    display: none !important;
    opacity: 0;
    visibility: hidden;
    position: absolute;
    background-color: white;
    min-width: 280px;
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);
    border-radius: 0.5rem;
    z-index: 1000;
    top: calc(100% + 0.5rem);
    left: 0;
    padding: 0.5rem 0;
    transition: opacity 0.2s ease, visibility 0.2s ease; }
    .home__dropdown-content a {
      color: #222222;
      padding: 0.75rem 1.5rem;
      text-decoration: none;
      display: block;
      transition: background-color 0.2s, color 0.2s;
      font-size: 0.95rem;
      white-space: nowrap; }
      .home__dropdown-content a:hover {
        background-color: #f3f4f6;
        color: #2f80ed; }
  .home__menu-toggle {
    display: flex;
    align-items: center;
    justify-content: center;
    background: none;
    border: none;
    cursor: pointer;
    padding: 0.5rem; }
    @media (min-width: 1024px) {
      .home__menu-toggle {
        display: none; } }
  .home__mobile-menu {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 70px;
    left: 0;
    right: 0;
    background: #ffffff;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    gap: 1rem;
    transform: translateY(-100%);
    opacity: 0;
    visibility: hidden;
    transition: all 250ms ease-in-out;
    z-index: 1000;
    max-height: calc(100vh - 70px);
    overflow-y: auto; }
    @media (min-width: 1024px) {
      .home__mobile-menu {
        display: none; } }
    .home__mobile-menu--open {
      transform: translateY(0);
      opacity: 1;
      visibility: visible; }
  .home__mobile-menu-item {
    color: #374151;
    text-decoration: none;
    font-weight: 500;
    padding: 1rem 0;
    transition: color 250ms ease-in-out;
    border-bottom: 1px solid #e5e7eb; }
    .home__mobile-menu-item:hover {
      color: #2f80ed; }
    .home__mobile-menu-item:last-child {
      border-bottom: none; }
  .home__btn-primary {
    display: inline-block;
    padding: 0.5rem 1.5rem;
    border: none;
    border-radius: 0.5rem;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: all 250ms ease-in-out;
    background: #2f80ed;
    color: #ffffff;
    padding: 0.5rem 1.5rem;
    text-decoration: none; }
    .home__btn-primary:hover {
      transform: translateY(-2px); }
    .home__btn-primary:active {
      transform: translateY(0); }
    .home__btn-primary:hover {
      background: #1a5fc4; }
  .home__btn-cta {
    display: inline-block;
    padding: 0.5rem 1.5rem;
    border: none;
    border-radius: 0.5rem;
    font-weight: 500;
    text-align: center;
    text-decoration: none;
    cursor: pointer;
    transition: all 250ms ease-in-out;
    background: #ffffff;
    color: #2f80ed;
    font-size: 1.125rem;
    padding: 1rem 3rem;
    font-weight: 600; }
    .home__btn-cta:hover {
      transform: translateY(-2px); }
    .home__btn-cta:active {
      transform: translateY(0); }
    .home__btn-cta:hover {
      background: #f9fafb; }
  .home__hero {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 4rem 0 6rem;
    position: relative;
    overflow: hidden; }
    .home__hero::before {
      content: '';
      position: absolute;
      top: 0;
      left: 0;
      right: 0;
      bottom: 0;
      background: url('data:image/svg+xml,<svg width="100" height="100" xmlns="http://www.w3.org/2000/svg"><rect width="100" height="100" fill="none"/><circle cx="50" cy="50" r="40" fill="white" opacity="0.05"/></svg>');
      animation: float 20s infinite linear; }
    @media (min-width: 768px) {
      .home__hero {
        padding: 6rem 0 6rem; } }
  .home__hero-content {
    position: relative;
    z-index: 1; }
  .home__hero-title {
    color: #ffffff;
    font-size: 1.875rem;
    font-weight: 700;
    margin-bottom: 2rem;
    line-height: 1.2;
    text-align: center; }
    @media (min-width: 768px) {
      .home__hero-title {
        font-size: 3rem; } }
  .home__hero-tags {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.5rem;
    margin-bottom: 2rem; }
  .home__tag {
    background: rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    border: 1px solid rgba(255, 255, 255, 0.3);
    color: #ffffff;
    padding: 0.5rem 1.5rem;
    border-radius: 9999px;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: all 250ms ease-in-out;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 0.375rem; }
    .home__tag:hover {
      background: rgba(255, 255, 255, 0.3);
      transform: translateY(-2px);
      color: #ffffff; }
    .home__tag--active {
      background: #ffffff;
      color: #2f80ed; }
      .home__tag--active:hover {
        color: #2f80ed; }
  .home__tag-icon {
    width: 16px;
    height: 16px;
    display: inline-block;
    flex-shrink: 0;
    filter: brightness(0) invert(1); }
    .home__tag--active .home__tag-icon {
      filter: brightness(0) saturate(100%) invert(46%) sepia(93%) saturate(1735%) hue-rotate(199deg) brightness(95%) contrast(89%); }
  .home__hero-subtitle {
    color: rgba(255, 255, 255, 0.95);
    font-size: 1.125rem;
    text-align: center;
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6; }
  .home__features, .home__solutions {
    padding: 4rem 0; }
    @media (min-width: 768px) {
      .home__features, .home__solutions {
        padding: 6rem 0; } }
  .home__section-title {
    font-size: 1.875rem;
    font-weight: 700;
    text-align: center;
    margin-bottom: 4rem;
    color: #111827; }
    @media (min-width: 768px) {
      .home__section-title {
        font-size: 2.25rem; } }
  .home__features-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem; }
    @media (min-width: 640px) {
      .home__features-grid {
        grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 1024px) {
      .home__features-grid {
        grid-template-columns: repeat(4, 1fr); } }
  .home__feature-card {
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 2rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    transition: all 250ms ease-in-out;
    text-align: center; }
    .home__feature-card:hover {
      box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
  .home__feature-icon {
    font-size: 3rem;
    margin-bottom: 1.5rem; }
    .home__feature-icon img {
      width: 64px;
      height: 64px;
      margin: 0 auto;
      display: block; }
  .home__solution-icon {
    margin-bottom: 1.5rem;
    text-align: center; }
    .home__solution-icon img {
      width: 48px;
      height: 48px;
      margin: 0 auto;
      display: inline-block; }
  .home__feature-title {
    font-size: 1.25rem;
    font-weight: 600;
    color: #111827;
    margin-bottom: 1rem; }
  .home__feature-description {
    color: #4b5563;
    line-height: 1.6;
    font-size: 0.875rem; }
  .home__solutions {
    background: #f9fafb; }
  .home__solutions-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 2rem; }
    @media (min-width: 768px) {
      .home__solutions-grid {
        grid-template-columns: repeat(2, 1fr); } }
    @media (min-width: 1024px) {
      .home__solutions-grid {
        grid-template-columns: repeat(3, 1fr); } }
  .home__solution-card {
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 2rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    transition: all 250ms ease-in-out; }
    .home__solution-card:hover {
      box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }
    .home__solution-card h3 {
      font-size: 1.25rem;
      font-weight: 600;
      color: #111827;
      margin-bottom: 1rem; }
    .home__solution-card p {
      color: #4b5563;
      line-height: 1.6;
      margin-bottom: 1.5rem; }
  .home__solution-link {
    color: #2f80ed;
    text-decoration: none;
    font-weight: 500;
    transition: all 250ms ease-in-out; }
    .home__solution-link:hover {
      color: #1a5fc4;
      text-decoration: underline; }
  .home__cta {
    background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
    padding: 6rem 0;
    text-align: center; }
  .home__cta-content {
    max-width: 800px;
    margin: 0 auto; }
  .home__cta-title {
    color: #ffffff;
    font-size: 1.875rem;
    font-weight: 700;
    margin-bottom: 1.5rem; }
    @media (min-width: 768px) {
      .home__cta-title {
        font-size: 2.25rem; } }
  .home__cta-description {
    color: rgba(255, 255, 255, 0.95);
    font-size: 1.125rem;
    margin-bottom: 3rem;
    line-height: 1.6; }
  .home__footer {
    background: #111827;
    color: #ffffff;
    padding: 4rem 0 2rem; }
  .home__footer-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    margin-bottom: 3rem; }
    @media (min-width: 768px) {
      .home__footer-grid {
        grid-template-columns: repeat(3, 1fr); } }
  .home__footer-section h4 {
    font-size: 1.125rem;
    font-weight: 600;
    margin-bottom: 1rem; }
  .home__footer-section p {
    color: #9ca3af;
    line-height: 1.6;
    margin-bottom: 0.5rem; }
    .home__footer-section p a {
      color: #9ca3af;
      text-decoration: none;
      transition: color 250ms ease-in-out; }
      .home__footer-section p a:hover {
        color: #ffffff;
        text-decoration: underline; }
  .home__footer-section ul {
    list-style: none;
    padding: 0;
    margin: 0; }
    .home__footer-section ul li {
      margin-bottom: 0.5rem; }
      .home__footer-section ul li a {
        color: #9ca3af;
        text-decoration: none;
        transition: color 250ms ease-in-out; }
        .home__footer-section ul li a:hover {
          color: #ffffff; }
  .home__footer-bottom {
    border-top: 1px solid #1f2937;
    padding-top: 1.5rem;
    text-align: center; }
    .home__footer-bottom p {
      color: #6b7280;
      font-size: 0.875rem;
      margin: 0; }
  .home__btn-icon {
    width: 20px;
    height: 20px;
    margin-right: 0.5rem;
    filter: brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(1352%) hue-rotate(197deg) brightness(97%) contrast(97%); }

.solution-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column; }
  .solution-page__header {
    background: #ffffff;
    box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
    padding: 1rem 0;
    margin-bottom: 0; }
  .solution-page__hero {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    padding: 4rem 0;
    color: #ffffff;
    text-align: center; }
  .solution-page__title {
    font-size: 1.875rem;
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: #ffffff; }
    @media (min-width: 768px) {
      .solution-page__title {
        font-size: 2.25rem; } }
  .solution-page__subtitle {
    font-size: 1.125rem;
    max-width: 800px;
    margin: 0 auto;
    opacity: 0.95; }
  .solution-page__content {
    padding: 4rem 0; }
  .solution-page__section {
    margin-bottom: 4rem; }
    .solution-page__section h2 {
      font-size: 1.875rem;
      margin-bottom: 1.5rem;
      color: #111827;
      font-weight: 700; }
    .solution-page__section p {
      font-size: 1.125rem;
      line-height: 1.8;
      color: #374151;
      margin-bottom: 1rem; }
    .solution-page__section ul {
      list-style: none;
      padding-left: 0; }
    .solution-page__section li {
      padding: 0.75rem 0;
      padding-left: 2rem;
      position: relative;
      font-size: 1.125rem;
      line-height: 1.6; }
      .solution-page__section li:before {
        content: "";
        position: absolute;
        left: 0.5rem;
        top: 0.75rem;
        width: 20px;
        height: 20px;
        background-image: url("/img/noun-check-8054063.svg");
        background-size: contain;
        background-repeat: no-repeat; }
  .solution-page__card {
    background: #ffffff;
    border-radius: 0.75rem;
    padding: 2rem;
    margin-bottom: 2rem;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); }
    .solution-page__card h3 {
      font-size: 1.25rem;
      margin-bottom: 1rem;
      color: #111827;
      font-weight: 600; }
  .solution-page__comparison {
    width: 100%;
    border-collapse: collapse;
    margin: 2rem 0;
    background: #ffffff;
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
    border-radius: 0.75rem;
    overflow: hidden; }
    .solution-page__comparison th {
      background: #2f80ed;
      color: #ffffff;
      padding: 1rem;
      text-align: left;
      font-weight: 600; }
    .solution-page__comparison td {
      padding: 1rem;
      border-bottom: 1px solid #e5e7eb; }
    .solution-page__comparison tbody tr:hover {
      background: #f9fafb; }
  .solution-page__cta {
    background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
    padding: 4rem;
    border-radius: 1rem;
    text-align: center;
    color: #ffffff;
    margin-top: 4rem; }
    .solution-page__cta h2 {
      color: #ffffff;
      margin-bottom: 1rem; }
    .solution-page__cta p {
      color: rgba(255, 255, 255, 0.95);
      margin-bottom: 2rem; }

.pricing-page__deployment-section {
  margin: 4rem 0; }

.pricing-page__deployment-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem; }
  @media (min-width: 768px) {
    .pricing-page__deployment-grid {
      grid-template-columns: repeat(3, 1fr); } }

.pricing-page__deployment-card {
  background: #ffffff;
  border-radius: 0.75rem;
  padding: 2rem;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  transition: all 250ms ease-in-out;
  text-align: center; }
  .pricing-page__deployment-card:hover {
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); }

.pricing-page__deployment-icon {
  margin-bottom: 1.5rem; }
  .pricing-page__deployment-icon img {
    width: 64px;
    height: 64px;
    margin: 0 auto; }

.pricing-page__roi-section {
  background: #f9fafb;
  padding: 4rem 2rem;
  border-radius: 1rem;
  margin: 4rem 0; }

.pricing-page__roi-content {
  max-width: 800px;
  margin: 0 auto; }

.pricing-page__roi-factors {
  margin-top: 2rem; }
  .pricing-page__roi-factors h3 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: #111827; }

.pricing-page__included-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem; }
  @media (min-width: 768px) {
    .pricing-page__included-grid {
      grid-template-columns: repeat(2, 1fr); } }

.pricing-page__included-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem; }

.pricing-page__check-icon {
  width: 24px;
  height: 24px;
  flex-shrink: 0; }

.contact-page__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 3rem;
  margin: 3rem 0; }
  @media (min-width: 768px) {
    .contact-page__grid {
      grid-template-columns: 1fr 1fr; } }

.contact-page__info h2,
.contact-page__scheduler h2 {
  font-size: 1.875rem;
  margin-bottom: 2rem;
  color: #111827; }

.contact-page__card {
  background: #ffffff;
  padding: 2rem;
  border-radius: 0.75rem;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
  margin-bottom: 2rem; }
  .contact-page__card h3 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: #111827;
    display: flex;
    align-items: center;
    gap: 0.75rem; }

.contact-page__icon {
  width: 1.75rem;
  height: 1.75rem;
  filter: brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(1352%) hue-rotate(197deg) brightness(97%) contrast(97%); }

.contact-page__note {
  font-size: 0.875rem;
  color: #6b7280;
  margin-top: 0.5rem; }

.contact-page__cta-box {
  background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
  padding: 3rem;
  border-radius: 1rem;
  text-align: center;
  color: #ffffff;
  margin-bottom: 2rem; }

.contact-page__btn-large {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  background: #ffffff;
  color: #2f80ed;
  padding: 1rem 2rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  font-size: 1.25rem;
  transition: all 250ms ease-in-out; }
  .contact-page__btn-large:hover {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); }

.contact-page__btn-icon {
  width: 1.5rem;
  height: 1.5rem;
  filter: brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(1352%) hue-rotate(197deg) brightness(97%) contrast(97%); }

.contact-page__btn-icon-small {
  width: 1.25rem;
  height: 1.25rem;
  filter: brightness(0) saturate(100%) invert(100%); }

.contact-page__btn-secondary {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: #2f80ed;
  color: #ffffff;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  margin-top: 1rem;
  transition: background 250ms ease-in-out;
  width: fit-content; }
  .contact-page__btn-secondary:hover {
    background: #1a5fc4; }

.contact-page__cta-note {
  margin-top: 1rem;
  font-size: 0.875rem;
  opacity: 0.9; }

.contact-page__info-box {
  background: #f9fafb;
  padding: 2rem;
  border-radius: 0.75rem;
  border: 2px solid #e5e7eb; }
  .contact-page__info-box h3 {
    font-size: 1.25rem;
    margin-bottom: 1rem;
    color: #111827; }
  .contact-page__info-box ul {
    list-style: disc;
    padding-left: 1.5rem;
    margin: 1rem 0; }
  .contact-page__info-box li {
    margin: 0.5rem 0;
    color: #374151; }

.login-page {
  min-height: 100vh;
  display: flex;
  flex-direction: column;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
  .login-page__header {
    padding: 1rem;
    background: #ffffff; }
  .login-page__container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 1rem; }
  .login-page__logo img {
    height: 40px;
    width: auto; }
  .login-page__main {
    flex: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 2rem; }
  .login-page__card {
    background: #ffffff;
    border-radius: 1rem;
    padding: 3rem;
    max-width: 450px;
    width: 100%;
    box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1);
    text-align: center; }
  .login-page__form h1,
  .login-page__success h1 {
    font-size: 1.875rem;
    font-weight: 700;
    color: #111827;
    margin: 1rem 0 0.5rem; }
  .login-page__form p,
  .login-page__success p {
    color: #4b5563;
    margin-bottom: 2rem; }
  .login-page__icon {
    margin: 0 auto; }
  .login-page__actions {
    display: flex;
    flex-direction: column;
    gap: 1rem; }
  .login-page__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.5rem;
    padding: 0.875rem 1.5rem;
    border-radius: 0.5rem;
    font-weight: 600;
    text-decoration: none;
    transition: all 250ms ease-in-out;
    cursor: pointer;
    border: none; }
    .login-page__btn--primary {
      background: #2f80ed;
      color: #ffffff; }
      .login-page__btn--primary:hover {
        background: #1a5fc4;
        transform: translateY(-2px); }
    .login-page__btn--secondary {
      background: #4b5563;
      color: #ffffff; }
      .login-page__btn--secondary:hover {
        background: #374151; }
    .login-page__btn--large {
      font-size: 1.125rem;
      padding: 1rem 2rem;
      width: 100%; }
  .login-page__note {
    font-size: 0.875rem;
    color: #9ca3af;
    margin-top: 1.5rem; }
  .login-page__footer {
    padding: 1.5rem;
    text-align: center;
    color: rgba(255, 255, 255, 0.8);
    font-size: 0.875rem; }
    .login-page__footer p {
      margin: 0; }
  .login-page__success svg {
    margin: 0 auto 1rem; }

@keyframes float {
  from {
    transform: translateY(0) rotate(0deg); }
  to {
    transform: translateY(-20px) rotate(360deg); } }

.sql-balancer-dashboard {
  padding: 20px;
  background: #f8f9fa;
  border-radius: 8px; }

.global-stats {
  margin-bottom: 30px; }

.stats-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 15px;
  margin-top: 15px; }

.stat-card {
  background: #ffffff;
  padding: 15px;
  border-radius: 6px;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }

.stat-label {
  display: block;
  font-size: 0.875rem;
  color: #6c757d;
  margin-bottom: 5px; }

.stat-value {
  display: block;
  font-size: 1.5rem;
  font-weight: bold;
  color: #212529; }

.stat-bar {
  margin-top: 10px; }

.stat-fill {
  width: 100%;
  height: 6px;
  appearance: none;
  border: none;
  background: #e9ecef;
  border-radius: 3px;
  overflow: hidden; }

.stat-fill::-webkit-progress-bar {
  background: #e9ecef;
  border-radius: 3px; }

.stat-fill::-webkit-progress-value {
  background: linear-gradient(90deg, #28a745, #20c997);
  transition: width 0.3s ease; }

.stat-fill::-moz-progress-bar {
  background: linear-gradient(90deg, #28a745, #20c997);
  transition: width 0.3s ease; }

.queue-table {
  width: 100%;
  background: #ffffff;
  border-radius: 6px;
  overflow: hidden;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); }

.queue-table thead {
  background: #343a40;
  color: #ffffff; }

.queue-table th {
  padding: 12px;
  text-align: left;
  font-weight: 600; }

.queue-table td {
  padding: 12px;
  border-top: 1px solid #dee2e6; }

.queue-table tbody tr {
  transition: background-color 0.2s; }

.queue-table tbody tr:hover {
  background-color: #f8f9fa; }

.queue-blocked {
  opacity: 0.6; }

.queue-critical {
  background-color: #fff5f5; }

.queue-warning {
  background-color: #fffbf0; }

.priority-badge {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase; }

.priority-critical {
  background: #dc3545;
  color: #ffffff; }

.priority-high {
  background: #fd7e14;
  color: #ffffff; }

.priority-normal {
  background: #17a2b8;
  color: #ffffff; }

.priority-background {
  background: #6c757d;
  color: #ffffff; }

.priority-cold {
  background: #6610f2;
  color: #ffffff; }

.has-queued {
  color: #fd7e14;
  font-weight: bold; }

.burst-active {
  color: #dc3545;
  font-weight: bold; }

.utilization-bar {
  position: relative;
  height: 24px;
  border-radius: 4px;
  overflow: hidden;
  background: #e9ecef; }

.utilization-fill {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  appearance: none;
  border: none;
  background: #e9ecef; }

.utilization-fill::-webkit-progress-bar {
  background: #e9ecef; }

.utilization-fill.util-normal::-webkit-progress-value {
  background: #28a745; }

.utilization-fill.util-moderate::-webkit-progress-value {
  background: #17a2b8; }

.utilization-fill.util-warning::-webkit-progress-value {
  background: #ffc107; }

.utilization-fill.util-critical::-webkit-progress-value {
  background: #dc3545; }

.utilization-fill.util-normal::-moz-progress-bar {
  background: #28a745; }

.utilization-fill.util-moderate::-moz-progress-bar {
  background: #17a2b8; }

.utilization-fill.util-warning::-moz-progress-bar {
  background: #ffc107; }

.utilization-fill.util-critical::-moz-progress-bar {
  background: #dc3545; }

.utilization-text {
  position: relative;
  line-height: 24px;
  padding: 0 8px;
  font-size: 0.875rem;
  font-weight: 600;
  color: #212529;
  z-index: 1; }

.status-badge {
  display: inline-block;
  padding: 4px 10px;
  border-radius: 4px;
  font-size: 0.8rem;
  font-weight: 600; }

.status-active {
  background: #d4edda;
  color: #155724; }

.status-burst {
  background: #fff3cd;
  color: #856404; }

.status-blocked {
  background: #f8d7da;
  color: #721c24; }

.status-idle {
  background: #e2e3e5;
  color: #383d41; }

.text-muted {
  color: #6c757d; }

/* =========================================
   Admin Layout - Core Styles
   ========================================= */
:root {
  --sidebar-width: 80px;
  --header-bg: #007ACC;
  --sidebar-bg: #2b3e50;
  --sidebar-hover: #3d5568;
  --card-bg: #ffffff;
  --card-header-bg: #f7f9fb;
  --btn-primary-bg: #007ACC;
  --text-primary: #222;
  --text-secondary: #666; }

/* Page Container with Sidebar */
.page-container.admin-page.with-left-sidebar {
  display: flex;
  min-height: 100vh;
  background: #f5f7fa; }

/* Left Icon Sidebar */
.sidebar {
  position: fixed;
  left: 0;
  top: 0;
  width: var(--sidebar-width);
  height: 100vh;
  background: var(--sidebar-bg);
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1rem 0;
  box-shadow: 2px 0 8px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  overflow-y: auto;
  overflow-x: hidden; }

.sidebar-button {
  width: 52px;
  height: 52px;
  background: transparent;
  border: none;
  border-radius: 8px;
  margin: 8px 0;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.2s ease;
  position: relative;
  color: rgba(255, 255, 255, 0.7); }

.sidebar-button:hover {
  background: var(--sidebar-hover);
  color: white; }

.sidebar-button.active {
  background: rgba(0, 122, 204, 0.2);
  color: white;
  outline: 2px solid rgba(0, 122, 204, 0.4); }

/* Tooltip on hover */
.sidebar-button::after {
  content: attr(data-tooltip);
  position: absolute;
  left: calc(100% + 12px);
  background: #333;
  color: white;
  padding: 6px 12px;
  border-radius: 4px;
  white-space: nowrap;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  font-size: 0.875rem;
  z-index: 1001; }

.sidebar-button:hover::after {
  opacity: 1; }

.sidebar-spacer {
  flex: 1; }

/* Main Content Area */
.main-shell {
  margin-left: var(--sidebar-width);
  flex: 1;
  width: calc(100% - var(--sidebar-width));
  height: 100vh;
  display: flex;
  flex-direction: column;
  overflow: hidden; }

/* Fixed Top Bar */
.admin-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem;
  background: white;
  border-bottom: 1px solid #e5e7eb;
  position: sticky;
  top: 0;
  z-index: 1000;
  gap: 2rem;
  flex-shrink: 0;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); }

/* Scrollable Content Wrapper */
.admin-content-wrapper {
  flex: 1;
  overflow-y: auto;
  overflow-x: hidden;
  padding: 1.5rem 2rem;
  background: #f5f7fa; }

/* Header */
.header {
  background: var(--header-bg);
  color: white;
  padding: 16px 20px;
  border-radius: 8px;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px; }

.header-title {
  font-size: 1.5rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  gap: 12px; }

.lead {
  color: var(--text-secondary);
  margin-bottom: 24px;
  font-size: 1.125rem; }

/* Admin Content */
.admin-content {
  max-width: 1400px; }

/* Section Title */
.section-title {
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--text-primary);
  margin-bottom: 16px; }

.section-desc {
  color: var(--text-secondary);
  margin-bottom: 24px; }

/* Data Grid - Card Container */
.datagrid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 20px;
  padding: 0;
  background: transparent; }

/* Cards */
.card,
.admin-card {
  background: var(--card-bg);
  border-radius: 10px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column; }

.card:hover,
.admin-card:hover {
  box-shadow: 0 8px 16px rgba(0, 0, 0, 0.12);
  transform: translateY(-2px); }

.card-header {
  background: var(--card-header-bg);
  color: var(--text-primary);
  padding: 16px 20px;
  font-weight: 700;
  font-size: 1.125rem;
  border-bottom: 1px solid #e5e7eb; }

.card-body {
  padding: 20px;
  flex: 1;
  color: #333;
  display: flex;
  flex-direction: column; }

.card-body p {
  margin: 0 0 16px 0;
  color: var(--text-secondary);
  line-height: 1.6; }

.card-actions {
  margin-top: auto;
  display: flex;
  gap: 10px;
  flex-wrap: wrap; }

/* Buttons */
.btn-primary {
  background: var(--btn-primary-bg);
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  font-size: 0.95rem; }

.btn-primary:hover {
  background: #005a9e;
  transform: scale(1.02); }

.btn-primary:active {
  transform: scale(0.98); }

.btn-secondary {
  background: #6c757d;
  color: white;
  border: none;
  padding: 10px 20px;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease; }

.btn-secondary:hover {
  background: #5a6268; }

/* Server Management Specific */
.server-card {
  background: #fff;
  border: 2px solid #e5e7eb;
  border-radius: 10px;
  padding: 20px;
  transition: all 0.3s ease; }

.server-card:hover {
  border-color: var(--btn-primary-bg);
  box-shadow: 0 4px 12px rgba(0, 122, 204, 0.15); }

.server-card-header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px; }

.server-icon {
  width: 40px;
  height: 40px;
  filter: invert(27%) sepia(84%) saturate(1456%) hue-rotate(188deg) brightness(95%) contrast(101%); }

.server-name {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary); }

.server-status {
  display: inline-block;
  padding: 4px 12px;
  border-radius: 12px;
  font-size: 0.85rem;
  font-weight: 600;
  margin-left: auto; }

.server-status.online {
  background: #d1fae5;
  color: #065f46; }

.server-status.offline {
  background: #fee2e2;
  color: #991b1b; }

.server-info {
  margin-bottom: 16px;
  color: var(--text-secondary);
  font-size: 0.95rem; }

.server-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap; }

/* Quick Links Enhancement */
.quick-links {
  margin-top: 20px; }

/* =========================================
   Health Monitor Styles
   ========================================= */
.health-monitor {
  margin-bottom: 2rem; }

/* Loading State */
.loading-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); }

.loading-spinner {
  width: 40px;
  height: 40px;
  border: 4px solid #e5e7eb;
  border-top-color: #007ACC;
  border-radius: 50%;
  animation: spin 1s linear infinite; }

@keyframes spin {
  to {
    transform: rotate(360deg); } }

.loading-container p {
  margin-top: 1rem;
  color: #666;
  font-size: 0.95rem; }

/* Health Summary Bar */
.health-summary-bar {
  background: white;
  border-radius: 12px;
  padding: 1.25rem 1.5rem;
  margin-bottom: 1.5rem;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-left: 4px solid;
  transition: all 0.3s ease; }

.health-summary-bar.health-summary-healthy {
  border-left-color: #10b981;
  background: linear-gradient(to right, rgba(16, 185, 129, 0.05), white); }

.health-summary-bar.health-summary-degraded {
  border-left-color: #f59e0b;
  background: linear-gradient(to right, rgba(245, 158, 11, 0.05), white); }

.health-summary-bar.health-summary-critical {
  border-left-color: #ef4444;
  background: linear-gradient(to right, rgba(239, 68, 68, 0.05), white); }

.health-summary-bar.health-summary-unknown {
  border-left-color: #6b7280;
  background: linear-gradient(to right, rgba(107, 114, 128, 0.05), white); }

.health-summary-content {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1; }

.health-summary-icon {
  font-size: 2rem;
  font-weight: bold; }

.health-summary-healthy .health-summary-icon {
  color: #10b981; }

.health-summary-degraded .health-summary-icon {
  color: #f59e0b; }

.health-summary-critical .health-summary-icon {
  color: #ef4444; }

.health-summary-unknown .health-summary-icon {
  color: #6b7280; }

.status-text {
  font-weight: 700;
  font-size: 1.1rem; }

.status-time {
  color: #666;
  font-size: 0.9rem;
  margin-left: 0.5rem; }

.btn-refresh {
  background: #007ACC;
  color: white;
  border: none;
  padding: 0.6rem 1.25rem;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  transition: all 0.2s ease;
  display: flex;
  align-items: center;
  gap: 0.5rem; }

.btn-refresh:hover:not(:disabled) {
  background: #005a9e;
  transform: scale(1.05); }

.btn-refresh:disabled {
  opacity: 0.6;
  cursor: not-allowed; }

.btn-refresh .spinning {
  display: inline-block;
  animation: spin 1s linear infinite; }

/* Health Cards Grid */
.health-cards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 1.25rem; }

/* Health Service Card */
.health-service-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  overflow: hidden;
  transition: all 0.3s ease;
  cursor: pointer;
  border: 2px solid transparent;
  display: flex;
  flex-direction: column; }

.health-service-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  transform: translateY(-4px); }

.health-card-healthy {
  border-top: 4px solid #10b981; }

.health-card-healthy:hover {
  border-color: #10b981; }

.health-card-degraded {
  border-top: 4px solid #f59e0b; }

.health-card-degraded:hover {
  border-color: #f59e0b; }

.health-card-critical,
.health-card-unhealthy {
  border-top: 4px solid #ef4444; }

.health-card-critical:hover,
.health-card-unhealthy:hover {
  border-color: #ef4444; }

.health-card-unknown {
  border-top: 4px solid #6b7280; }

.health-card-unknown:hover {
  border-color: #6b7280; }

/* Health Service Header */
.health-service-header {
  padding: 1rem 1.25rem 0.5rem;
  display: flex;
  justify-content: flex-end; }

.health-status-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  padding: 0.35rem 0.75rem;
  border-radius: 20px;
  font-size: 0.75rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px; }

.health-status-healthy {
  background: #d1fae5;
  color: #065f46; }

.health-status-degraded {
  background: #fef3c7;
  color: #92400e; }

.health-status-critical,
.health-status-unhealthy {
  background: #fee2e2;
  color: #991b1b; }

.health-status-unknown {
  background: #e5e7eb;
  color: #374151; }

.status-icon {
  font-size: 1rem; }

.status-label {
  font-size: 0.7rem; }

/* Health Service Name */
.health-service-name {
  font-size: 1.35rem;
  font-weight: 700;
  color: #111827;
  margin: 0 0 1rem 0;
  padding: 0 1.25rem; }

/* Health Service Body */
.health-service-body {
  padding: 0 1.25rem 1rem;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

/* Error and Warning Messages */
.health-error {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.75rem;
  background: #fee2e2;
  border-left: 3px solid #ef4444;
  border-radius: 6px; }

.error-icon {
  color: #ef4444;
  font-size: 1.1rem;
  flex-shrink: 0; }

.error-text {
  color: #991b1b;
  font-size: 0.85rem;
  line-height: 1.5; }

.health-warnings {
  display: flex;
  flex-direction: column;
  gap: 0.5rem; }

.health-warning {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  padding: 0.6rem;
  background: #fef3c7;
  border-left: 3px solid #f59e0b;
  border-radius: 6px; }

.warning-icon {
  color: #f59e0b;
  font-size: 1rem;
  flex-shrink: 0; }

.warning-text {
  color: #92400e;
  font-size: 0.85rem;
  line-height: 1.4; }

.warning-more {
  font-size: 0.8rem;
  color: #92400e;
  font-style: italic;
  margin: 0; }

.health-ok-message {
  color: #10b981;
  font-size: 0.9rem;
  margin: 0;
  font-weight: 500; }

/* Health Metrics */
.health-metrics {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.5rem; }

.health-metric {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.5rem 0.75rem;
  background: #f9fafb;
  border-radius: 6px; }

.metric-label {
  font-size: 0.85rem;
  color: #6b7280;
  font-weight: 500; }

.metric-value {
  font-size: 0.9rem;
  color: #111827;
  font-weight: 600; }

/* Health Service Footer */
.health-service-footer {
  padding: 0.75rem 1.25rem;
  border-top: 1px solid #e5e7eb;
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: #f9fafb; }

.health-timestamp {
  color: #9ca3af;
  font-size: 0.8rem; }

.click-hint {
  color: #007ACC;
  font-size: 0.8rem;
  font-weight: 600;
  opacity: 0;
  transition: opacity 0.2s ease; }

.health-service-card:hover .click-hint {
  opacity: 1; }

/* Mobile Menu Toggle Button */
.sidebar-toggle {
  display: none;
  position: fixed;
  top: 1rem;
  left: 1rem;
  width: 48px;
  height: 48px;
  background: white;
  border: 1px solid #d1d5db;
  border-radius: 8px;
  cursor: pointer;
  z-index: 1101;
  align-items: center;
  justify-content: center;
  color: #374151;
  transition: all 0.2s ease;
  pointer-events: auto; }

.sidebar-toggle:hover {
  background: #f3f4f6;
  border-color: #9ca3af; }

.sidebar-toggle svg {
  width: 24px;
  height: 24px; }

/* Sidebar Overlay for Mobile */
.sidebar-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba(0, 0, 0, 0.5);
  z-index: 998;
  pointer-events: auto; }

/* Responsive Design */
@media (max-width: 768px) {
  /* Show hamburger toggle on mobile */
  .sidebar-toggle {
    display: flex; }
  /* Hide sidebar by default on mobile */
  .sidebar {
    position: fixed;
    left: -100%;
    top: 0;
    width: 80px;
    height: 100vh;
    transition: left 0.3s ease;
    z-index: 1000; }
  /* Show sidebar when open */
  .sidebar--open {
    left: 0; }
  /* Show overlay when sidebar is open */
  .sidebar-overlay {
    display: block; }
  /* Full-width content on mobile */
  .main-shell {
    margin-left: 0;
    width: 100%;
    padding-top: 56px; }
  .admin-top-bar {
    padding: 0.75rem 1rem;
    padding-left: 60px;
    gap: 1rem; }
  .admin-header-subtitle {
    display: none; }
  .admin-header-text {
    gap: 0; }
  .admin-header-title {
    font-size: 1.1rem; }
  .admin-header-logo {
    width: 32px;
    height: 32px; }
  .datagrid {
    grid-template-columns: 1fr; }
  .health-cards-grid {
    grid-template-columns: 1fr; }
  .sidebar-button::after {
    display: none; }
  .health-summary-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 1rem; }
  .btn-refresh {
    width: 100%;
    justify-content: center; } }

@media (max-width: 480px) {
  .sidebar-toggle {
    top: 0.75rem;
    left: 0.75rem;
    width: 40px;
    height: 40px; }
  .sidebar-toggle svg {
    width: 20px;
    height: 20px; }
  .sidebar {
    width: 60px; }
  .admin-top-bar {
    padding: 0.5rem 0.75rem;
    padding-left: 50px;
    gap: 0.5rem; }
  .admin-header-title {
    font-size: 1rem; }
  .admin-header-logo {
    width: 28px;
    height: 28px; }
  .user-profile-info {
    display: none; }
  .profile-chevron {
    display: none; } }

/* Ensure sidebar doesn't push content on large screens */
@media (min-width: 769px) {
  .sidebar-toggle {
    display: none !important; }
  .sidebar-overlay {
    display: none !important; }
  .sidebar {
    position: fixed !important;
    left: 0 !important;
    width: var(--sidebar-width) !important; }
  .sidebar--open {
    left: 0 !important; }
  .main-shell {
    margin-left: var(--sidebar-width) !important;
    width: calc(100% - var(--sidebar-width)) !important;
    padding-top: 0 !important; }
  .admin-top-bar {
    padding-left: 2rem !important; } }

.sidebar-icon {
  width: 24px;
  height: 24px;
  filter: invert(1); }

.admin-top-bar {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1rem 2rem;
  background: white;
  border-bottom: 1px solid #e5e7eb;
  position: sticky;
  top: 0;
  z-index: 100;
  gap: 2rem; }

.admin-header-section {
  display: flex;
  align-items: center;
  gap: 1rem;
  flex: 1;
  min-width: 0; }

.admin-header-logo {
  width: 40px;
  height: 40px;
  flex-shrink: 0; }

.admin-header-text {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  min-width: 0; }

.admin-header-title {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--text-primary, #111827);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.admin-header-subtitle {
  font-size: 0.8125rem;
  color: var(--text-secondary, #6b7280);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.main-shell {
  overflow-y: auto;
  height: 100vh; }

.admin-logo {
  width: 40px;
  height: 40px; }

.section-title--spaced {
  margin-top: 3rem; }

.card-actions--tight {
  gap: 0.5rem; }

.card-highlight {
  border: 1px solid rgba(0, 122, 204, 0.3); }

.btn-primary {
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  justify-content: center; }

.server-monitor {
  padding: 0; }

.server-monitor-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 1.5rem;
  padding-bottom: 1.25rem;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
  gap: 1.5rem; }

.server-monitor-title-section {
  flex: 1; }

.server-monitor-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary, #111827);
  margin: 0 0 0.5rem 0; }

.server-icon {
  width: 24px;
  height: 24px; }

.telemetry-status {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  padding: 0.375rem 0.75rem;
  border-radius: 6px;
  margin-left: auto; }

.status-active {
  background-color: #d1fae5;
  color: #065f46; }

.status-loading {
  background-color: #dbeafe;
  color: #0369a1;
  animation: pulse-status 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

.status-error {
  background-color: #fee2e2;
  color: #991b1b; }

.status-empty {
  background-color: #f3f4f6;
  color: #6b7280; }

@keyframes pulse-status {
  0%, 100% {
    opacity: 1; }
  50% {
    opacity: 0.7; } }

.server-monitor-subtitle {
  font-size: 0.875rem;
  color: var(--text-secondary, #6b7280);
  margin: 0; }

.btn-refresh {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1rem;
  background: var(--btn-primary-bg, #007ACC);
  color: white;
  border: 1px solid var(--btn-primary-bg, #007ACC);
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.2s ease;
  white-space: nowrap;
  flex-shrink: 0; }

.btn-refresh:hover:not(:disabled) {
  background: #005a9e;
  border-color: #005a9e;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 90, 158, 0.2); }

.btn-refresh:active:not(:disabled) {
  transform: translateY(0); }

.btn-refresh:disabled {
  opacity: 0.6;
  cursor: not-allowed; }

.refresh-icon {
  font-size: 0.875rem; }

.spinner {
  display: inline-block;
  width: 14px;
  height: 14px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: spin 1s linear infinite; }

/* State Containers */
.server-monitor__loading,
.server-monitor__error,
.server-monitor__empty {
  margin: 2rem 0; }

.loading-state,
.error-state,
.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 3rem 2rem;
  text-align: center;
  background: white;
  border-radius: 12px;
  border: 1px solid var(--border-color, #e5e7eb);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); }

.loading-spinner {
  width: 48px;
  height: 48px;
  border: 4px solid #e5e7eb;
  border-top-color: var(--btn-primary-bg, #007ACC);
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin-bottom: 1rem; }

.error-icon,
.empty-icon {
  font-size: 3rem;
  margin-bottom: 1rem; }

.loading-state h3,
.error-state h3,
.empty-state h3 {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--text-primary, #111827);
  margin: 0 0 0.5rem 0; }

.loading-state p,
.error-state p,
.empty-state p {
  font-size: 0.9375rem;
  color: var(--text-secondary, #6b7280);
  margin: 0 0 1.5rem 0;
  max-width: 400px; }

.btn-retry,
.btn-refresh-empty {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.625rem 1.5rem;
  background: var(--btn-primary-bg, #007ACC);
  color: white;
  border: none;
  border-radius: 6px;
  cursor: pointer;
  font-weight: 600;
  font-size: 0.875rem;
  transition: all 0.2s ease; }

.btn-retry:hover:not(:disabled),
.btn-refresh-empty:hover {
  background: #005a9e;
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(0, 90, 158, 0.2); }

.btn-retry:disabled {
  opacity: 0.6;
  cursor: not-allowed; }

.server-monitor__content {
  margin: 1.5rem 0; }

.server-cards-container {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  gap: 1.5rem;
  align-items: start;
  padding: 0; }

.server-card-wrapper {
  height: 100%; }

.server-monitor__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem 1rem;
  background: linear-gradient(to right, rgba(34, 197, 94, 0.05), transparent);
  border-top: 1px solid var(--border-color, #e5e7eb);
  border-radius: 0 0 8px 8px;
  margin-top: 1.5rem;
  gap: 1rem; }

.last-updated {
  font-size: 0.8125rem;
  color: var(--text-secondary, #6b7280); }

.server-count {
  display: flex;
  gap: 0.75rem; }

.count-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0.5rem 1rem;
  background: var(--text-primary, #111827);
  color: white;
  border-radius: 6px;
  font-size: 0.8125rem;
  font-weight: 600; }

/* Responsive Design */
@media (max-width: 1200px) {
  .server-cards-container {
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
    gap: 1.25rem; } }

@media (max-width: 768px) {
  .server-monitor-header {
    flex-direction: column;
    align-items: stretch;
    margin-bottom: 1.25rem;
    padding-bottom: 1rem; }
  .server-monitor-title {
    font-size: 1.125rem;
    margin-bottom: 0.5rem; }
  .telemetry-status {
    margin-left: 0;
    margin-top: 0.5rem; }
  .server-monitor-subtitle {
    margin-bottom: 1rem; }
  .btn-refresh {
    width: 100%;
    justify-content: center; }
  .server-cards-container {
    grid-template-columns: 1fr;
    gap: 1rem; }
  .server-monitor__footer {
    flex-direction: column;
    align-items: stretch;
    text-align: center;
    padding: 1rem; }
  .last-updated {
    order: 2;
    margin-top: 0.5rem; }
  .server-count {
    justify-content: center; }
  .loading-state,
  .error-state,
  .empty-state {
    padding: 2rem 1rem; } }

@media (max-width: 480px) {
  .server-monitor-title {
    font-size: 1rem; }
  .server-monitor-subtitle {
    font-size: 0.8125rem; }
  .btn-refresh {
    font-size: 0.75rem;
    padding: 0.5rem 0.75rem; }
  .loading-state,
  .error-state,
  .empty-state {
    padding: 1.5rem 1rem; }
  .loading-state h3,
  .error-state h3,
  .empty-state h3 {
    font-size: 1.125rem; } }

.spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: white;
  border-radius: 50%;
  animation: spin 1s linear infinite; }

.empty-state {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4rem 2rem;
  text-align: center;
  background: var(--bg-secondary, #f9fafb);
  border-radius: 0.75rem; }

.empty-icon {
  width: 64px;
  height: 64px;
  opacity: 0.5;
  margin-bottom: 1rem; }

.empty-state h3 {
  color: var(--text-primary, #111827);
  margin-bottom: 0.5rem; }

.empty-state p {
  color: var(--text-secondary, #6b7280); }

.last-updated {
  text-align: center;
  padding: 1rem;
  color: var(--text-secondary, #6b7280);
  font-size: 0.875rem; }

.telemetry-card {
  width: 100%;
  max-width: 400px;
  max-height: 400px;
  border-radius: 16px;
  border: 1px solid var(--mud-palette-lines-default);
  overflow: hidden;
  cursor: pointer;
  display: flex;
  flex-direction: column; }

.telemetry-card--collapsed {
  height: 360px; }

.telemetry-card--expanded {
  height: 400px; }

.telemetry-card__content {
  display: flex;
  flex-direction: column;
  height: 100%;
  gap: 12px;
  padding: 16px; }

.telemetry-card__header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px; }

.telemetry-card__identity {
  display: flex;
  flex-direction: column;
  gap: 8px; }

.telemetry-card__health {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 6px; }

.telemetry-card__health-indicator {
  width: 12px;
  height: 12px;
  border-radius: 999px; }

.telemetry-health--healthy {
  background: #22c55e;
  box-shadow: 0 0 8px rgba(34, 197, 94, 0.6); }

.telemetry-health--degraded {
  background: #f59e0b;
  box-shadow: 0 0 8px rgba(245, 158, 11, 0.6); }

.telemetry-health--unhealthy {
  background: #ef4444;
  box-shadow: 0 0 8px rgba(239, 68, 68, 0.6); }

.telemetry-health--offline {
  background: #6b7280; }

.telemetry-health--unknown {
  background: #9ca3af; }

.telemetry-env--dev {
  background: #e0f2fe;
  color: #0369a1; }

.telemetry-env--prod {
  background: #dcfce7;
  color: #166534; }

.telemetry-env--shared {
  background: #fef9c3;
  color: #854d0e; }

.telemetry-card__body {
  display: flex;
  flex-direction: column;
  gap: 12px;
  flex: 1; }

.telemetry-card__body--collapsed {
  overflow: hidden; }

.telemetry-card__body--expanded {
  overflow-y: auto;
  padding-right: 4px; }

.telemetry-card__widgets {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 12px; }

.telemetry-card__widgets--expanded {
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); }

.telemetry-widget {
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 90px; }

.telemetry-widget--chart {
  min-height: 120px; }

.telemetry-panel {
  padding: 12px;
  border-radius: 12px;
  background: var(--mud-palette-background-grey);
  display: flex;
  flex-direction: column;
  gap: 8px; }

.sparkline-chart {
  width: 100%;
  height: 60px;
  margin: 8px 0;
  position: relative;
  overflow: visible; }

.sparkline-svg {
  width: 100%;
  height: 100%; }

.telemetry-card circle {
  transition: r 0.3s ease; }

.telemetry-card circle:hover {
  r: 2;
  opacity: 1; }

.telemetry-card__extension {
  margin-top: 8px; }

.telemetry-card__metrics {
  display: flex;
  flex-direction: column;
  gap: 0.75rem; }

.telemetry-card__metric {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 0.75rem;
  background: var(--mud-palette-background-grey, #f9fafb);
  border-radius: 8px; }

.telemetry-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 1rem;
  margin-top: 1rem;
  border-top: 1px solid var(--mud-palette-lines-default, #e5e7eb);
  gap: 1rem; }

.telemetry-card__footer-item {
  display: flex;
  flex-direction: column;
  gap: 0.25rem; }

/* Unified User Profile Control */
.user-profile-control {
  position: relative;
  display: inline-block;
  margin-left: auto;
  flex-shrink: 0; }

.user-profile-button {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  padding: 0.5rem 0.875rem;
  background: white;
  border: 1px solid #d1d5db;
  border-radius: 0.625rem;
  cursor: pointer;
  transition: all 0.2s ease;
  font-family: inherit;
  font-size: 0.875rem; }

.user-profile-button:hover {
  background: #f9fafb;
  border-color: #9ca3af;
  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05); }

.user-profile-button:focus-visible {
  outline: 2px solid #007ACC;
  outline-offset: 2px; }

.user-profile-avatar {
  width: 32px;
  height: 32px;
  min-width: 32px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.8125rem;
  flex-shrink: 0; }

.user-profile-info {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.125rem;
  min-width: 100px; }

.user-profile-name {
  font-weight: 600;
  color: #111827;
  font-size: 0.8125rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.user-profile-role {
  font-size: 0.75rem;
  color: #6b7280;
  font-weight: 500; }

.profile-chevron {
  color: #6b7280;
  transition: transform 0.2s ease;
  flex-shrink: 0; }

.user-profile-button:hover .profile-chevron {
  color: #374151; }

/* Profile Dropdown */
.user-profile-dropdown {
  position: absolute;
  top: calc(100% + 0.5rem);
  right: 0;
  background: white;
  border: 1px solid #d1d5db;
  border-radius: 0.75rem;
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.12);
  min-width: 300px;
  z-index: 1000;
  animation: slideDown 0.2s ease;
  overflow: hidden; }

/* Profile Card Header */
.profile-card {
  background: linear-gradient(135deg, #f5f7fa 0%, #f9fafb 100%); }

.profile-header {
  display: flex;
  align-items: center;
  gap: 1rem;
  padding: 1.25rem; }

.profile-avatar-large {
  width: 48px;
  height: 48px;
  min-width: 48px;
  border-radius: 50%;
  background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1rem;
  box-shadow: 0 2px 8px rgba(47, 128, 237, 0.25);
  flex-shrink: 0; }

.profile-identity {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  min-width: 0; }

.profile-display-name {
  font-weight: 700;
  color: #111827;
  font-size: 0.9375rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.profile-email {
  font-size: 0.8125rem;
  color: #6b7280;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

.profile-access-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.375rem 0.625rem;
  background: #dbeafe;
  color: #0369a1;
  border-radius: 0.375rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.3px;
  width: fit-content; }

.badge-dot {
  width: 6px;
  height: 6px;
  background: #0369a1;
  border-radius: 50%;
  display: inline-block; }

/* Dividers */
.profile-divider {
  height: 1px;
  background: #e5e7eb; }

/* Menu Sections */
.profile-menu-section {
  display: flex;
  flex-direction: column;
  padding: 0.5rem; }

.profile-menu-section + .profile-divider + .profile-menu-section {
  padding-top: 0.5rem; }

.profile-menu-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding: 0.75rem 0.875rem;
  color: #374151;
  text-decoration: none;
  border-radius: 0.5rem;
  transition: all 0.2s ease;
  font-size: 0.8125rem;
  font-weight: 500; }

.profile-menu-item:hover {
  background: #f3f4f6;
  color: #111827; }

.profile-menu-item svg {
  width: 16px;
  height: 16px;
  color: #6b7280;
  flex-shrink: 0;
  transition: color 0.2s ease; }

.profile-menu-item:hover svg {
  color: #2f80ed; }

.profile-menu-item span {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis; }

/* Logout Item */
.profile-menu-logout {
  color: #dc2626; }

.profile-menu-logout:hover {
  background: #fee2e2;
  color: #b91c1c; }

.profile-menu-logout svg {
  color: #dc2626; }

.profile-menu-logout:hover svg {
  color: #b91c1c; }

/* Responsive Design for Top Bar */
@media (max-width: 1024px) {
  .admin-header-subtitle {
    display: none; }
  .admin-header-text {
    gap: 0; } }

@media (max-width: 768px) {
  .admin-top-bar {
    padding: 0.75rem 1rem;
    gap: 1rem; }
  .admin-header-section {
    gap: 0.75rem;
    flex: 0 1 auto; }
  .admin-header-logo {
    width: 32px;
    height: 32px; }
  .admin-header-title {
    font-size: 1.1rem; }
  .admin-header-subtitle {
    display: none; }
  .user-profile-button {
    padding: 0.5rem 0.75rem;
    gap: 0.5rem; }
  .user-profile-avatar {
    width: 28px;
    height: 28px;
    font-size: 0.75rem; }
  .user-profile-info {
    display: none; }
  .profile-chevron {
    display: none; }
  .user-profile-dropdown {
    min-width: 280px; } }

@media (max-width: 480px) {
  .admin-top-bar {
    padding: 0.5rem 0.75rem;
    gap: 0.5rem; }
  .admin-header-logo {
    width: 28px;
    height: 28px; }
  .admin-header-title {
    font-size: 1rem; }
  .user-profile-button {
    padding: 0.5rem; }
  .user-profile-avatar {
    width: 24px;
    height: 24px;
    font-size: 0.65rem; }
  .user-profile-dropdown {
    min-width: 260px;
    right: -0.5rem; } }

.login-button {
  display: inline-block;
  padding: 0.5rem 1.5rem;
  background: #2f80ed;
  color: white;
  text-decoration: none;
  border-radius: 0.5rem;
  font-weight: 600;
  transition: all 0.2s; }

.login-button:hover {
  background: #1a5fc4;
  transform: translateY(-1px); }

.monitoring-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 1.5rem 0;
  border-bottom: 1px solid var(--border-color, #e5e7eb);
  margin-bottom: 2rem; }

.header-left {
  display: flex;
  align-items: center;
  gap: 1rem; }

.header-logo {
  width: 48px;
  height: 48px; }

.header-text h1 {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--text-primary, #111827);
  margin: 0 0 0.25rem; }

.header-text p {
  font-size: 0.875rem;
  color: var(--text-secondary, #6b7280);
  margin: 0; }

.btn-back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: var(--bg-secondary, #f3f4f6);
  color: var(--text-primary, #374151);
  border: 1px solid var(--border-color, #d1d5db);
  border-radius: 0.5rem;
  text-decoration: none;
  font-weight: 500;
  transition: all 0.2s ease; }

.btn-back:hover {
  background: var(--bg-tertiary, #e5e7eb); }

.monitoring-content {
  padding: 0 0 2rem; }

.access-denied-container {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 60vh;
  padding: 2rem; }

.access-denied-card {
  background: white;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  padding: 3rem;
  text-align: center;
  max-width: 500px; }

.access-denied-icon {
  margin-bottom: 1.5rem; }

.access-denied-icon img {
  width: 80px;
  height: 80px;
  filter: invert(36%) sepia(98%) saturate(2357%) hue-rotate(343deg) brightness(95%) contrast(94%); }

.access-denied-card h2 {
  font-size: 2rem;
  color: #dc2626;
  margin-bottom: 1rem; }

.access-denied-card p {
  font-size: 1.125rem;
  color: #6b7280;
  margin-bottom: 1rem; }

.access-denied-details {
  font-size: 0.875rem;
  color: #9ca3af;
  font-style: italic; }

.admin-access-denied {
  padding: 2rem;
  text-align: center; }

.admin-access-denied__button {
  margin-top: 1rem;
  padding: 0.75rem 1.5rem; }

.admin-access-card {
  margin-top: 2rem;
  padding: 1rem;
  background: #f5f5f5;
  border-radius: 8px;
  text-align: left; }

.admin-access-card--warning {
  background: #fff3cd;
  border: 1px solid #ffc107; }

@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-10px); }
  to {
    opacity: 1;
    transform: translateY(0); } }

@media (max-width: 640px) {
  .user-info {
    display: none; }
  .user-menu-dropdown {
    right: -1rem;
    min-width: 260px; } }

@media (max-width: 480px) {
  .telemetry-card--collapsed {
    height: 340px; }
  .telemetry-card__widgets {
    grid-template-columns: 1fr; } }

.auth-callback {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 100vh;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }

.auth-callback__content {
  text-align: center;
  color: #ffffff; }

.auth-callback__spinner {
  width: 64px;
  height: 64px;
  border: 4px solid rgba(255, 255, 255, 0.3);
  border-top-color: #ffffff;
  border-radius: 50%;
  animation: spin 1s linear infinite;
  margin: 0 auto 1.5rem; }

.auth-callback__title {
  margin: 0 0 0.5rem;
  font-size: 1.5rem; }

.auth-callback__subtitle {
  margin: 0;
  opacity: 0.9; }

.auth-status {
  padding: 2rem;
  font-family: monospace;
  background: #1e1e1e;
  color: #d4d4d4;
  min-height: 100vh; }

.auth-status__title {
  color: #4ec9b0; }

.auth-status__card {
  background: #252526;
  padding: 1rem;
  border-radius: 8px;
  margin: 1rem 0; }

.auth-status__heading {
  color: #569cd6; }

.auth-status__status {
  font-size: 1.5rem; }

.auth-status__status--ok {
  color: #4ec9b0; }

.auth-status__status--bad {
  color: #f48771; }

.auth-status__table,
.auth-status__claims-table {
  width: 100%;
  border-collapse: collapse; }

.auth-status__claims-table {
  font-size: 0.9rem; }

.auth-status__row {
  border-bottom: 1px solid #3e3e42; }

.auth-status__cell {
  padding: 0.5rem; }

.auth-status__cell--key {
  color: #ce9178;
  font-weight: bold;
  width: 300px; }

.auth-status__cell--value {
  color: #d4d4d4; }

.auth-status__thead-row {
  background: #1e1e1e;
  border-bottom: 2px solid #569cd6; }

.auth-status__th {
  padding: 0.5rem;
  text-align: left;
  color: #569cd6; }

.auth-status__claim-type {
  color: #4ec9b0;
  max-width: 400px;
  word-break: break-all; }

.auth-status__claim-value {
  color: #d4d4d4;
  max-width: 600px;
  word-break: break-all; }

.auth-status__loading {
  color: #d4d4d4; }

.auth-status__actions {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem; }

.auth-status__link {
  text-decoration: none;
  padding: 0.5rem 1rem;
  background: #252526;
  border-radius: 4px;
  display: inline-block; }

.auth-status__link--home {
  color: #4ec9b0; }

.auth-status__link--login {
  color: #569cd6; }

.auth-status__link--test {
  color: #ce9178; }

.test-auth {
  padding: 2rem;
  max-width: 1200px;
  margin: 0 auto; }

.test-auth__card {
  padding: 1rem;
  border-radius: 0.5rem;
  margin-bottom: 2rem; }

.test-auth__card--ok {
  background: #d1fae5; }

.test-auth__card--error {
  background: #fee2e2; }

.test-auth__title--ok {
  color: #065f46; }

.test-auth__title--error {
  color: #991b1b; }

.test-auth__user {
  color: #047857; }

.test-auth__table {
  width: 100%;
  border-collapse: collapse;
  margin-bottom: 2rem; }

.test-auth__thead {
  background: #f3f4f6; }

.test-auth__th {
  padding: 0.75rem;
  text-align: left;
  border: 1px solid #e5e7eb; }

.test-auth__row {
  border: 1px solid #e5e7eb; }

.test-auth__cell {
  padding: 0.75rem;
  font-family: monospace;
  font-size: 0.875rem; }

.test-auth__cell--type {
  max-width: 300px;
  overflow: hidden;
  text-overflow: ellipsis; }

.test-auth__cell--value {
  max-width: 600px;
  overflow-wrap: break-word; }

.test-auth__roles {
  list-style: none;
  padding: 0; }

.test-auth__role {
  background: #dbeafe;
  color: #1e40af;
  padding: 0.5rem 1rem;
  margin: 0.5rem 0;
  border-radius: 0.25rem;
  display: inline-block; }

.test-auth__muted {
  color: #9ca3af; }

.test-auth__special {
  line-height: 2; }

.test-auth__actions {
  margin-top: 2rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem; }

.test-auth__action {
  color: #ffffff;
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  text-decoration: none;
  display: inline-block; }

.test-auth__action--primary {
  background: #667eea; }

.test-auth__action--secondary {
  background: #10b981; }

.test-auth__error-text {
  color: #b91c1c; }

.test-auth__login-link {
  color: #dc2626;
  text-decoration: underline; }

.server-error-container {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 2rem; }

.server-error-card {
  background: #ffffff;
  border-radius: 1rem;
  padding: 3rem;
  max-width: 600px;
  width: 100%;
  box-shadow: 0 10px 40px rgba(0, 0, 0, 0.2);
  text-align: center; }

.error-icon {
  margin-bottom: 2rem; }

.server-error__image {
  display: block;
  margin: 0 auto; }

.server-error-card h1 {
  font-size: 2rem;
  color: #111827;
  margin-bottom: 1rem; }

.lead-text {
  font-size: 1.125rem;
  color: #6b7280;
  margin-bottom: 2rem; }

.info-box {
  background: #fef2f2;
  border: 2px solid #fecaca;
  border-radius: 0.5rem;
  padding: 1.5rem;
  margin-bottom: 2rem;
  text-align: left; }

.info-box h3 {
  color: #991b1b;
  margin-bottom: 1rem;
  font-size: 1.25rem; }

.info-box p {
  color: #374151;
  margin-bottom: 0.75rem;
  line-height: 1.6; }

.info-box ul {
  list-style: disc;
  padding-left: 1.5rem;
  margin-top: 0.5rem; }

.info-box li {
  color: #374151;
  margin-bottom: 0.5rem; }

.action-buttons {
  display: flex;
  gap: 1rem;
  margin-bottom: 1rem;
  flex-wrap: wrap;
  justify-content: center; }

.server-error-container .btn {
  padding: 0.75rem 1.5rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  transition: all 0.2s;
  display: inline-flex;
  align-items: center;
  border: none;
  cursor: pointer;
  font-size: 1rem; }

.btn-icon {
  width: 20px;
  height: 20px;
  margin-right: 0.75rem;
  display: inline-block; }

.server-error-container .spinner {
  width: 16px;
  height: 16px;
  border: 2px solid rgba(255, 255, 255, 0.3);
  border-top-color: #ffffff;
  border-radius: 50%;
  display: inline-block;
  margin-right: 0.5rem;
  animation: spin 1s linear infinite; }

.server-error-container .btn-primary {
  background: #2f80ed;
  color: #ffffff; }

.server-error-container .btn-primary:hover:not(:disabled) {
  background: #1a5fc4;
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(47, 128, 237, 0.3); }

.server-error-container .btn-secondary {
  background: #f3f4f6;
  color: #374151; }

.server-error-container .btn-secondary:hover {
  background: #e5e7eb; }

.retry-info {
  font-size: 0.875rem;
  color: #6b7280;
  margin-bottom: 1rem; }

.retry-status {
  color: #6b7280;
  margin-bottom: 0.75rem;
  text-align: center; }

.help-text {
  border-top: 1px solid #e5e7eb;
  padding-top: 1.5rem;
  text-align: left; }

.help-text p {
  color: #6b7280;
  font-size: 0.875rem;
  margin-bottom: 1rem;
  line-height: 1.6; }

.help-text p:last-child {
  margin-bottom: 0; }

.help-text strong {
  color: #111827; }

.help-text a {
  color: #2f80ed;
  text-decoration: none; }

.help-text a:hover {
  text-decoration: underline; }

.timestamp {
  font-size: 0.75rem;
  color: #9ca3af;
  font-style: italic; }

.login-static {
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, sans-serif;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  min-height: 100vh;
  display: flex;
  flex-direction: column; }

.login-static,
.login-static * {
  margin: 0;
  padding: 0;
  box-sizing: border-box; }

.login-static .header {
  background: #ffffff;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
  padding: 1rem 0; }

.login-static .container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 2rem; }

.login-static .nav {
  display: flex;
  justify-content: space-between;
  align-items: center; }

.login-static .logo img {
  height: 40px; }

.login-static .content {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 1rem; }

.login-static .card {
  background: #ffffff;
  border-radius: 1rem;
  padding: 3rem;
  max-width: 500px;
  width: 100%;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); }

.login-static .title {
  font-size: 2rem;
  font-weight: 700;
  color: #111827;
  margin-bottom: 0.5rem;
  text-align: center; }

.login-static .subtitle {
  color: #6b7280;
  text-align: center;
  margin-bottom: 2rem; }

.login-static .icon {
  width: 64px;
  height: 64px;
  margin: 0 auto 1.5rem;
  color: #667eea;
  display: block; }

.login-static .button {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.875rem 1.5rem;
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 1rem;
  text-decoration: none;
  cursor: pointer;
  background: #2f80ed;
  color: #ffffff;
  border: none;
  border-radius: 0.5rem;
  transition: all 250ms ease-in-out; }

.login-static .button:hover {
  background: #1a5fc4;
  transform: translateY(-2px); }

.login-static .button-icon {
  width: 20px;
  height: 20px; }

.login-static .info {
  color: #6b7280;
  font-size: 0.875rem;
  margin-top: 1rem;
  text-align: center; }

.login-static .footer {
  background: rgba(255, 255, 255, 0.1);
  color: #ffffff;
  padding: 2rem 0;
  margin-top: auto; }

.login-static .footer-content {
  text-align: center; }

.login-static__back-link {
  text-decoration: none;
  color: #6b7280; }

@media (max-width: 640px) {
  .server-error-card {
    padding: 2rem; }
  .server-error-card h1 {
    font-size: 1.5rem; }
  .action-buttons {
    flex-direction: column; }
  .server-error-container .btn {
    width: 100%;
    justify-content: center; } }

/* Shared Landing Page Styles - Ensures Consistency Across All Pages */
/* Purple Hero Section - MUST be present on ALL landing pages */
.solution-page__hero {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 4rem 0;
  color: white;
  text-align: center; }
  @media (max-width: 768px) {
    .solution-page__hero {
      padding: 3rem 0; } }

.solution-page__title {
  font-size: 2.5rem;
  font-weight: 700;
  margin-bottom: 1.5rem;
  color: white; }
  @media (max-width: 768px) {
    .solution-page__title {
      font-size: 2rem; } }

.solution-page__subtitle {
  font-size: 1.25rem;
  max-width: 800px;
  margin: 0 auto;
  opacity: 0.95; }
  @media (max-width: 768px) {
    .solution-page__subtitle {
      font-size: 1.125rem; } }

/* Content Section */
.solution-page__content {
  padding: 4rem 0; }

.solution-page__section {
  margin-bottom: 4rem;
  /* List Items with Checkmarks */ }
  .solution-page__section h2 {
    font-size: 2rem;
    margin-bottom: 1.5rem;
    color: #111827; }
  .solution-page__section p {
    font-size: 1.125rem;
    line-height: 1.8;
    color: #374151;
    margin-bottom: 1rem; }
  .solution-page__section ul {
    list-style: none;
    padding-left: 0; }
  .solution-page__section li {
    padding: 0.75rem 0;
    padding-left: 2rem;
    position: relative;
    font-size: 1.125rem;
    line-height: 1.6; }

/* Card Styles */
.solution-page__card {
  background: white;
  border-radius: 0.75rem;
  padding: 2rem;
  margin-bottom: 2rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); }
  .solution-page__card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #111827; }
  .solution-page__card p {
    margin-bottom: 0.75rem;
    font-size: 1rem;
    line-height: 1.6; }

/* CTA Section */
.solution-page__cta {
  background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
  padding: 4rem;
  border-radius: 1rem;
  text-align: center;
  color: white;
  margin-top: 4rem; }
  .solution-page__cta h2 {
    color: white;
    margin-bottom: 1rem; }
  .solution-page__cta p {
    color: rgba(255, 255, 255, 0.95);
    margin-bottom: 2rem; }

/* Consistent CTA Button Styling - matches Home page */
.home__btn-cta {
  display: inline-flex;
  align-items: center;
  gap: 0.75rem;
  background: white;
  color: #2f80ed;
  padding: 1rem 3rem;
  border-radius: 0.5rem;
  text-decoration: none;
  font-weight: 600;
  font-size: 1.125rem;
  transition: all 250ms ease-in-out;
  cursor: pointer;
  border: none; }
  .home__btn-cta:hover {
    background: #f9fafb;
    transform: translateY(-2px);
    color: #2f80ed; }
  .home__btn-cta:active {
    transform: translateY(0); }

/* Icon inside CTA button */
.home__btn-icon {
  width: 24px;
  height: 24px;
  /* Blue color filter for #2f80ed */
  filter: brightness(0) saturate(100%) invert(46%) sepia(93%) saturate(1735%) hue-rotate(199deg) brightness(95%) contrast(89%); }

/* Comparison Table */
.solution-page__comparison {
  width: 100%;
  border-collapse: collapse;
  margin: 2rem 0;
  background: white;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  border-radius: 0.75rem;
  overflow: hidden; }
  .solution-page__comparison th {
    background: #2f80ed;
    color: white;
    padding: 1rem;
    text-align: left;
    font-weight: 600; }
  .solution-page__comparison td {
    padding: 1rem;
    border-bottom: 1px solid #e5e7eb; }
  .solution-page__comparison tbody tr:hover {
    background: #f9fafb; }

/* Steps/Numbered List */
.solution-page__steps {
  counter-reset: step-counter;
  list-style: none;
  padding: 0; }
  .solution-page__steps li {
    counter-increment: step-counter;
    padding: 2rem;
    padding-left: 4rem;
    margin-bottom: 1.5rem;
    background: #f9fafb;
    border-radius: 0.75rem;
    border-left: 4px solid #2f80ed;
    position: relative; }
    .solution-page__steps li:before {
      content: counter(step-counter);
      position: absolute;
      left: -1.5rem;
      top: 2rem;
      background: #2f80ed;
      color: white;
      width: 3rem;
      height: 3rem;
      border-radius: 50%;
      display: flex;
      align-items: center;
      justify-content: center;
      font-weight: bold;
      font-size: 1.25rem; }
    .solution-page__steps li h3 {
      font-size: 1.5rem;
      margin-bottom: 0.75rem;
      color: #111827; }

/* Footer Styles */
.home__footer {
  background: #111827;
  color: white;
  padding: 2rem 0; }

.home__footer-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem; }
  @media (max-width: 768px) {
    .home__footer-grid {
      grid-template-columns: 1fr; } }

.home__footer-section h4 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
  color: #ccd6f6; }

.home__footer-section p {
  font-size: 1rem;
  line-height: 1.5;
  margin-bottom: 1rem;
  color: #e2e8f0; }

.home__footer-section a {
  color: #2f80ed;
  text-decoration: underline; }

.home__footer-bottom {
  text-align: center;
  padding: 1rem;
  border-top: 1px solid #334155;
  margin-top: 2rem; }
  .home__footer-bottom p {
    margin: 0;
    font-size: 0.875rem;
    color: #94a3b8; }

.home__footer-division {
  margin-top: 0.5rem !important;
  font-size: 0.875rem; }
  .home__footer-division a {
    color: #2f80ed;
    text-decoration: none; }
    .home__footer-division a:hover {
      text-decoration: underline; }

/* Inline arrow icon for "becomes" transitions */
.inline-arrow-icon {
  width: 20px !important;
  height: 20px !important;
  display: inline-block;
  vertical-align: middle;
  margin: 0 0.4rem;
  /* Blue color filter for #2f80ed */
  filter: brightness(0) saturate(100%) invert(46%) sepia(93%) saturate(1735%) hue-rotate(199deg) brightness(95%) contrast(89%); }

/* Pricing Page Styles */
/* Deployment Grid Styles */
.pricing-page__deployment-section {
  margin: 4rem 0; }
  .pricing-page__deployment-section h2 {
    font-size: 2rem;
    margin-bottom: 2rem;
    color: #111827;
    text-align: center; }

.pricing-page__deployment-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  margin-top: 2rem; }
  @media (min-width: 768px) {
    .pricing-page__deployment-grid {
      grid-template-columns: repeat(3, 1fr); } }

.pricing-page__deployment-card {
  background: white;
  border-radius: 1rem;
  padding: 2rem;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  transition: transform 0.2s, box-shadow 0.2s; }
  .pricing-page__deployment-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 8px 12px rgba(0, 0, 0, 0.15); }
  .pricing-page__deployment-card h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: #111827;
    text-align: center; }
  .pricing-page__deployment-card p {
    color: #6b7280;
    margin-bottom: 1.5rem;
    text-align: center; }
  .pricing-page__deployment-card ul {
    list-style: none;
    padding-left: 0; }
  .pricing-page__deployment-card li {
    padding: 0.5rem 0;
    padding-left: 2rem;
    position: relative;
    color: #374151; }
    .pricing-page__deployment-card li:before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.6rem;
      width: 20px;
      height: 20px;
      background-image: url("/_content/rclGlobal/img/noun-check-8054063.svg");
      background-size: contain;
      background-repeat: no-repeat;
      filter: brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(1352%) hue-rotate(197deg) brightness(97%) contrast(97%); }

.pricing-page__deployment-icon {
  width: 4rem;
  height: 4rem;
  margin: 0 auto 1.5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #2f80ed 0%, #1a5fc4 100%);
  border-radius: 1rem; }
  .pricing-page__deployment-icon img {
    width: 2.5rem;
    height: 2.5rem;
    filter: brightness(0) saturate(100%) invert(100%); }

/* ROI Section Styles */
.pricing-page__roi-section {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 4rem 2rem;
  border-radius: 1rem;
  color: white;
  margin: 4rem 0; }

.pricing-page__roi-content h2 {
  font-size: 2rem;
  margin-bottom: 1.5rem;
  color: white;
  text-align: center; }

.pricing-page__roi-content p {
  font-size: 1.25rem;
  text-align: center;
  margin-bottom: 2rem;
  opacity: 0.95; }

.pricing-page__roi-factors {
  background: rgba(255, 255, 255, 0.1);
  padding: 2rem;
  border-radius: 0.75rem;
  backdrop-filter: blur(10px);
  max-width: 600px;
  margin: 0 auto; }
  .pricing-page__roi-factors h3 {
    font-size: 1.5rem;
    margin-bottom: 1rem;
    color: white; }
  .pricing-page__roi-factors ul {
    list-style: none;
    padding-left: 0; }
  .pricing-page__roi-factors li {
    padding: 0.75rem 0;
    padding-left: 2rem;
    position: relative;
    color: rgba(255, 255, 255, 0.95); }
    .pricing-page__roi-factors li:before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.75rem;
      width: 20px;
      height: 20px;
      background-image: url("/_content/rclGlobal/img/noun-check-8054063.svg");
      background-size: contain;
      background-repeat: no-repeat;
      /* Green checkmark filter */
      filter: brightness(0) saturate(100%) invert(69%) sepia(58%) saturate(425%) hue-rotate(92deg) brightness(95%) contrast(88%); }

/* Included Items Grid */
.pricing-page__included-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-top: 2rem; }
  @media (min-width: 768px) {
    .pricing-page__included-grid {
      grid-template-columns: repeat(2, 1fr); } }

.pricing-page__included-item {
  display: flex;
  gap: 1rem;
  padding: 1.5rem;
  background: #f9fafb;
  border-radius: 0.75rem;
  border-left: 4px solid #2f80ed; }
  .pricing-page__included-item h4 {
    font-size: 1.125rem;
    margin-bottom: 0.5rem;
    color: #111827;
    font-weight: 600; }
  .pricing-page__included-item p {
    color: #6b7280;
    margin: 0;
    font-size: 0.9375rem; }

.pricing-page__check-icon {
  width: 1.5rem;
  height: 1.5rem;
  max-width: 1.5rem;
  max-height: 1.5rem;
  flex-shrink: 0;
  margin-top: 0.25rem;
  object-fit: contain;
  display: block;
  filter: brightness(0) saturate(100%) invert(42%) sepia(93%) saturate(1352%) hue-rotate(197deg) brightness(97%) contrast(97%); }

/*# sourceMappingURL=data:application/json;base64,ewoJInZlcnNpb24iOiAzLAoJImZpbGUiOiAiU3R5bGVzL2FwcC5jc3MiLAoJInNvdXJjZXMiOiBbCgkJIlN0eWxlcy9hcHAuc2NzcyIsCgkJIlN0eWxlcy9fdmFyaWFibGVzLnNjc3MiLAoJCSJTdHlsZXMvX21peGlucy5zY3NzIiwKCQkiU3R5bGVzL19mdW5jdGlvbnMuc2NzcyIsCgkJIlN0eWxlcy9iYXNlL19yZXNldC5zY3NzIiwKCQkiU3R5bGVzL2Jhc2UvX3R5cG9ncmFwaHkuc2NzcyIsCgkJIlN0eWxlcy9iYXNlL19sYXlvdXQuc2NzcyIsCgkJIlN0eWxlcy9iYXNlL191dGlsaXRpZXMuc2NzcyIsCgkJIlN0eWxlcy9iYXNlL19pY29uLWZpeGVzLnNjc3MiLAoJCSJTdHlsZXMvYmFzZS9fc2Nyb2xsLWZpeGVzLnNjc3MiLAoJCSJTdHlsZXMvY29tcG9uZW50cy9fYnV0dG9ucy5zY3NzIiwKCQkiU3R5bGVzL2NvbXBvbmVudHMvX2NhcmRzLnNjc3MiLAoJCSJTdHlsZXMvY29tcG9uZW50cy9fZGlhbG9ncy5zY3NzIiwKCQkiU3R5bGVzL2NvbXBvbmVudHMvX2Zvcm1zLnNjc3MiLAoJCSJTdHlsZXMvY29tcG9uZW50cy9faW5wdXRzLnNjc3MiLAoJCSJTdHlsZXMvY29tcG9uZW50cy9fbGlzdHMuc2NzcyIsCgkJIlN0eWxlcy9jb21wb25lbnRzL190YWJsZXMuc2NzcyIsCgkJIlN0eWxlcy9wYWdlcy9faG9tZS5zY3NzIiwKCQkiU3R5bGVzL3BhZ2VzL19kYXNoYm9hcmQuc2NzcyIsCgkJIlN0eWxlcy9wYWdlcy9fYWRtaW4uc2NzcyIsCgkJIlN0eWxlcy9wYWdlcy9fc2V0dGluZ3Muc2NzcyIsCgkJIlN0eWxlcy9wYWdlcy9fYXV0aC5zY3NzIiwKCQkiU3R5bGVzL3BhZ2VzL19sYW5kaW5nLXBhZ2VzLnNjc3MiLAoJCSJTdHlsZXMvcGFnZXMvX3ByaWNpbmcuc2NzcyIsCgkJIlN0eWxlcy90aGVtZXMvX2xpZ2h0LnNjc3MiLAoJCSJTdHlsZXMvdGhlbWVzL19kYXJrLnNjc3MiCgldLAoJIm5h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 */