:root{--sidebar:260px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#f8fafc,#e9eef5)}.login-card{width:min(420px,92vw);background:var(--bs-body-bg);padding:2rem;border-radius:1rem;box-shadow:0 1rem 3rem rgba(0,0,0,.12)}.app-shell{display:flex;min-height:100vh}.sidebar{width:var(--sidebar);background:#101827;color:#fff;position:fixed;inset:0 auto 0 0;padding:1rem}.brand{font-weight:700;font-size:1.25rem;margin-bottom:1rem}.sidebar a{display:block;color:#dbe4ff;text-decoration:none;padding:.7rem .8rem;border-radius:.6rem}.sidebar a:hover{background:rgba(255,255,255,.1)}.main{margin-left:var(--sidebar);width:calc(100% - var(--sidebar));}.topbar{height:60px;display:flex;align-items:center;padding:0 1rem;border-bottom:1px solid var(--bs-border-color);position:sticky;top:0;background:var(--bs-body-bg);z-index:5}.content-wrap{padding:1.25rem}.metric{border:0;box-shadow:0 .5rem 1.5rem rgba(0,0,0,.08)}.toast-area{position:fixed;top:1rem;right:1rem;z-index:2000}.log-box{background:#0b1020;color:#d7e3ff;padding:1rem;border-radius:.75rem;max-height:70vh;overflow:auto}.responsive-card-table{overflow-x:auto}@media(max-width:767px){.sidebar{transform:translateX(-100%);transition:.2s;z-index:20}.sidebar.open{transform:none}.main{margin-left:0;width:100%}table thead{display:none}.responsive-card-table table,.responsive-card-table tbody,.responsive-card-table tr,.responsive-card-table td{display:block;width:100%}.responsive-card-table tr{border:1px solid var(--bs-border-color);border-radius:.75rem;margin-bottom:1rem;padding:.75rem}.responsive-card-table td{border:0}.responsive-card-table td:before{content:attr(data-label);font-weight:700;display:block;color:var(--bs-secondary-color)}}

[data-bs-theme="dark"] .login-page{background:linear-gradient(135deg,#050816,#111827)}
[data-bs-theme="dark"] .login-card{box-shadow:0 1rem 3rem rgba(0,0,0,.55);border:1px solid var(--bs-border-color)}
.login-theme-toggle{position:fixed;top:1rem;right:1rem;z-index:10}

.sortable-table-header .sort-indicator { font-size: .78rem; opacity: .85; }
.sortable-table-header:hover { text-decoration: underline; text-underline-offset: 3px; }

.sidebar-nav{padding-bottom:1rem;max-height:calc(100vh - 4rem);overflow-y:auto}
.sidebar-group-label{margin:.95rem .8rem .35rem;color:#8ea4c8;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.sidebar-group-label:first-child{margin-top:.2rem}

/* Sidebar Bootstrap dropdown groups */
.sidebar-nav .sidebar-dropdown { margin-top: .25rem; }
.sidebar-nav .sidebar-dropdown > .nav-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  color: #dbe4ff;
  text-decoration: none;
  padding: .7rem .8rem;
  border-radius: .6rem;
}
.sidebar-nav .sidebar-dropdown > .nav-link:hover,
.sidebar-nav .sidebar-dropdown > .nav-link:focus {
  background: rgba(255,255,255,.1);
  color: #fff;
}
.sidebar-nav .dropdown-menu {
  width: 100%;
  margin-top: .25rem;
  border-radius: .6rem;
  border: 1px solid rgba(255,255,255,.15);
  background: #0b1220;
}
.sidebar-nav .dropdown-item {
  color: #dbe4ff;
  padding: .55rem .9rem;
  border-radius: .4rem;
}
.sidebar-nav .dropdown-item:hover,
.sidebar-nav .dropdown-item:focus {
  background: rgba(255,255,255,.12);
  color: #fff;
}

/* Bootstrap 5 accordion sidebar navigation groups */
.sidebar-accordion{margin-top:.35rem;--bs-accordion-border-width:0;--bs-accordion-border-radius:.6rem;--bs-accordion-inner-border-radius:.6rem;--bs-accordion-btn-focus-box-shadow:none;--bs-accordion-btn-padding-x:.8rem;--bs-accordion-btn-padding-y:.7rem}
.sidebar-accordion-item{background:transparent;border:0;color:inherit;margin:.25rem 0}
.sidebar-accordion-button{background:transparent!important;color:#dbe4ff!important;border-radius:.6rem!important;box-shadow:none!important;font-weight:600}
.sidebar-accordion-button:hover,.sidebar-accordion-button:not(.collapsed){background:rgba(255,255,255,.1)!important;color:#fff!important}
.sidebar-accordion-button::after{filter:invert(1) grayscale(1) brightness(2);width:.9rem;height:.9rem;background-size:.9rem}
.sidebar-submenu{padding:.25rem 0 .35rem .65rem;background:rgba(0,0,0,.10);border-radius:.6rem;margin:.2rem 0 .45rem}
.sidebar-submenu a{font-size:.94rem;padding:.55rem .8rem .55rem 1rem;color:#dbe4ff}
.sidebar-submenu a:hover{background:rgba(255,255,255,.12);color:#fff}
[data-bs-theme="light"] .sidebar-accordion-button::after{filter:none}
