/* ─────────────────────────────────────────────
   FONTS & TEXT ANIMATIONS
────────────────────────────────────────────── */
@import url("https://fonts.googleapis.com/css2?family=Orbitron&display=swap");
@property --num { syntax: "<integer>"; initial-value: 0; inherits: false; }
@keyframes initText {
  0% { content: "Αρχικοποίηση IoT συστήματος . . ."; }
  17% { content: "Αρχικοποίηση IoT συστήματος . . .\A Φόρτωση βασικών μονάδων . . ."; }
  27% { content: "Αρχικοποίηση IoT συστήματος . . .\A Φόρτωση βασικών μονάδων . . .\A Έλεγχος αισθητήρων . . ."; }
  36% { content: "Αρχικοποίηση IoT συστήματος . . .\A Φόρτωση βασικών μονάδων . . .\A Έλεγχος αισθητήρων . . .\A Σύνδεση με δίκτυο . . ."; }
  42% { content: "Αρχικοποίηση IoT συστήματος . . .\A Φόρτωση βασικών μονάδων . . .\A Έλεγχος αισθητήρων . . .\A Σύνδεση με δίκτυο . . .\A Συλλογή δεδομένων . . ."; }
  49% { content: "Φόρτωση βασικών μονάδων . . .\A Έλεγχος αισθητήρων . . .\A Σύνδεση με δίκτυο . . .\A Συλλογή δεδομένων . . .\A Ανάλυση πραγματικού χρόνου . . ."; }
  60% { content: "Έλεγχος αισθητήρων . . .\A Σύνδεση με δίκτυο . . .\A Συλλογή δεδομένων . . .\A Ανάλυση πραγματικού χρόνου . . .\A Αποστολή σε cloud . . ."; }
  66% { content: "Σύνδεση με δίκτυο . . .\A Συλλογή δεδομένων . . .\A Ανάλυση πραγματικού χρόνου . . .\A Αποστολή σε cloud . . .\A Φόρτωση διεπαφής χρήστη . . .\A "; }
  78% { content: "Συλλογή δεδομένων . . .\A Ανάλυση πραγματικού χρόνου . . .\A Αποστολή σε cloud . . .\A Φόρτωση διεπαφής χρήστη . . .\A Ενεργοποίηση αυτοματισμών . . .\A "; }
  100% { content: "Ανάλυση πραγματικού χρόνου . . .\A Αποστολή σε cloud . . .\A Φόρτωση διεπαφής χρήστη . . .\A Ενεργοποίηση αυτοματισμών . . .\A Σύνδεση με IoT οικοσύστημα . . .\A "; }
}
@keyframes opcty {
  0% { opacity: 0; }
  100% { opacity: 1; }
}
@keyframes counting {
  0% { --num: 0; }
  60% { --num: 66; }
  100% { --num: 100; }
}
@keyframes charging {
  0% { width: 0%; }
  60% { width: 66%; }
  100% { width: 100%; }
}
@keyframes rotate {
  0% { transform: rotate(0); }
  100% { transform: rotate(360deg); }
}
.side-bar-dark{
    background:#a9b6b5 !important;
}

.app-header {
    background-color:#505e65 !important;
}

/* Sidebar gray override */
.app-sidebar.side-bar-dark{
    background:#a9b6b5 !important;
    border-right:1px solid rgba(41,48,52,.10) !important;
}

.app-sidebar.side-bar-dark .sidebar-wrapper{
    background:transparent !important;
}

.app-sidebar.side-bar-dark .nav.sidebar-menu{
    gap:8px !important;
    padding:0 10px 14px !important;
}

.app-sidebar.side-bar-dark .nav.sidebar-menu > .nav-item{
    margin:0 !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-link{
    min-height:50px !important;
    border-radius:11px !important;
    padding:11px 14px !important;
    color:#f5f7f8 !important;
    background:#66757c !important;
    border:1px solid rgba(255,255,255,.14) !important;
    box-shadow:none !important;
    opacity:1 !important;
    transition:background .18s ease, border-color .18s ease, color .18s ease, transform .18s ease !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-link i,
.app-sidebar.side-bar-dark .sidebar-menu .nav-link p,
.app-sidebar.side-bar-dark .sidebar-menu .nav-link .nav-arrow,
.app-sidebar.side-bar-dark .sidebar-menu .nav-link span{
    color:inherit !important;
    opacity:1 !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-link:hover{
    background:#0a6e5c !important;
    color:#ffffff !important;
    transform:translateY(-1px);
}

.app-sidebar.side-bar-dark .sidebar-menu > .nav-item.active > .nav-link,
.app-sidebar.side-bar-dark .sidebar-menu > .nav-item > .nav-link.active,
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview .nav-item.active > .nav-link,
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview .nav-link.active{
    background:#14b8a6 !important;
    border-left:4px solid #14b8a6 !important;
    color:#ffffff !important;
    font-weight:700 !important;
    padding-left:calc(14px - 4px) !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-item.menu-open > .nav-link{
    background:#0a6e5c !important;
    color:#ffffff !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview{
    padding-top:6px !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview .nav-link{
    background:#7a888d !important;
    color:#ffffff !important;
    border-color:rgba(255,255,255,.12) !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview .nav-link:hover{
    background:#505e65 !important;
    color:#ffffff !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-item.disabled > .nav-link,
.app-sidebar.side-bar-dark .sidebar-menu .nav-link.disabled,
.app-sidebar.side-bar-dark .sidebar-menu .nav-link[disabled]{
    background:#8c989d !important;
    color:#edf1f2 !important;
    opacity:.92 !important;
}

.app-sidebar.side-bar-dark .sidebar_seperator{
    border:0 !important;
    border-top:1px solid rgba(255,255,255,.18) !important;
    margin:12px 10px 8px !important;
    width:auto !important;
}

.app-sidebar.side-bar-dark .session-timeout-wrapper{
    background:#435057 !important;
    border:1px solid rgba(255,255,255,.15) !important;
    box-shadow:none !important;
}

.app-sidebar.side-bar-dark .session-timeout-message,
.app-sidebar.side-bar-dark .countdown-icon{
    color:#f5f7f8 !important;
}

.app-sidebar.side-bar-dark .countdown{
    color:#ff5c8d !important;
}
.app-sidebar.side-bar-dark .session-timeout-wrapper{
    width:100% !important;
    max-width:none !important;
    min-height:50px !important;
    margin:0 0 8px 0 !important;
    padding:11px 14px !important;
    box-sizing:border-box !important;
    border-radius:11px !important;
}

.app-sidebar.side-bar-dark .sidebar-menu .nav-link{
    width:100% !important;
    box-sizing:border-box !important;
}
.app-sidebar.side-bar-dark .nav.sidebar-menu {
  padding:0!important;
}
/* ─────────────────────────────────────────────────────────────
   PROJECT-ONLY STYLES
────────────────────────────────────────────────────────────── */
/* MAPS */
#thessaloniki-app, #insertdevice-map, #editdevice-map { width: 100%; display: flex; align-items: center; justify-content: center; background-color: var(--background-color); border: 1px solid var(--secondary-color); border-radius: 0.75rem; padding: 1rem; }
#thessaloniki-app { min-height: 70vh; height: 100%; }
#insertdevice-map, #editdevice-map { min-height: 15vh; height: 30vh; margin-top: 1rem; }
/* Settings Form */
.settings-form label { display: block; margin: 10px 0 5px; font-weight: bold; color: var(--text-color); }
.settings-form input { width: 100%; padding: 10px; border: 1px solid var(--breadcrumb-bg); border-radius: var(--tz-border-radius); font-size: 14px; margin-bottom: 20px; box-sizing: border-box; }
.settings-form input:focus { border-color: var(--primary-color); outline: none; }
/* Logs */
.log-type-info { color: var(--log-info-color); font-weight: bold; }
.log-type-warning { color: var(--log-warning-color); font-weight: bold; }
.log-type-error { color: var(--log-error-color); font-weight: bold; }
.log-type-critical { color: var(--log-critical-color); font-weight: bold; }
/* Copy Buttons */
.copy-btn { background: var(--primary-color); color: var(--text-color-light); border: none; border-radius: 5px; padding: 5px 10px; font-size: 1rem; cursor: pointer; transition: all .3s ease-in-out; }
.copy-btn:hover { background: var(--secondary-color); color: var(--text-color-light); transform: scale(1.1); }
.copy-btn:active { transform: scale(0.95); }
.copied { background: var(--third-color) !important; color: var(--text-color); }
.copied i { animation: popEffect .3s ease-in-out; }
@keyframes popEffect {
  0% { transform: scale(1); opacity: .5; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1); opacity: 1; }
}
/* Utilities */
.custom-border { border: 4px solid var(--secondary-color) !important; }
.custom-disabled { background: var(--disabled-bg-color-dark) !important; color: var(--disabled-color) !important; border-color: #ddd !important; cursor: not-allowed !important; opacity: 1 !important; }
#profitsChart { width: 100% !important; height: 100% !important; }
/* ─────────────────────────────────────────────────────────────
   INPUT CONTAINERS
────────────────────────────────────────────────────────────── */
.input-container { display: flex; justify-content: space-between; }
.input-min, .input-max { margin-top: auto; width: 15%; border: 1px solid var(--input-border-color); background: var(--input-bg-color); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); border-radius: 15px; text-align: center; font-size: 14px; color: var(--background-color); box-shadow: 0 4px 10px var(--box-shadow-color); padding: 5px 10px; z-index: 2; transition: all 0.3s ease-in-out; }
.input-min:hover, .input-max:hover { transform: scale(1.05); box-shadow: 0 6px 15px var(--box-shadow-hover-color); border: 1px solid var(--input-hover-border-color); background: var(--input-hover-bg-color); }
/* ─────────────────────────────────────────────────────────────
   NOUi SLIDER
────────────────────────────────────────────────────────────── */
.noUi-active .noUi-tooltip { display: block !important; }
.noUi-connect { background: var(--slider-connect-color); }
.noUi-background { background: var(--slider-bg-color); }
.noUi-handle { background: var(--slider-connect-color); border: 2px solid var(--slider-handle-border); box-shadow: 0 2px 5px var(--box-shadow-color); }
.noUi-pips { color: var(--pip-text-color); }
.noUi-value { color: var(--slider-connect-color); }
.noUi-marker { background: var(--slider-handle-border); }
.noUi-tooltip { display: none !important; background: var(--slider-tooltip-bg); color: var(--slider-tooltip-text); border: 1px solid var(--slider-tooltip-border); border-radius: 4px; }
.noUi-horizontal { background: var(--slider-bg-color); }
.noUi-vertical { background: var(--slider-connect-color); }
/* ─────────────────────────────────────────────────────────────
   ROW HELPERS
────────────────────────────────────────────────────────────── */
.row-centered { display: flex; justify-content: center; align-items: center; }
.text-center-device-user-table { width: 100px !important; white-space: nowrap !important; }
/* ─────────────────────────────────────────────────────────────
   SWITCH BUTTON
────────────────────────────────────────────────────────────── */
.switch-input { -webkit-appearance: none !important; appearance: none !important; position: absolute !important; z-index: 1 !important; width: 100% !important; height: 100% !important; opacity: 0 !important; cursor: pointer !important; }
.switch-button { display: inline-flex !important; padding: 0 .375em !important; border-radius: 3.125em !important; border: .0625em solid #6b717b !important; background-color: #aaafbb !important; box-shadow: inset 0 0 .5em rgba(0,0,0,0.4) !important; transition-property: border-color, background-color !important; transition-duration: .2s !important; }
.switch-input:checked + .switch-button { border-color: var(--background-dark4) !important; background-color: var(--background-dark4) !important; }
.switch-button-inside { display: inline-flex !important; column-gap: 1em !important; position: relative !important; border-radius: 3.125em !important; padding: .75em !important; transform: translateX(-.375em) !important; background-image: linear-gradient(90deg, #c5c9d3 48%, #d5d7dd 52%) !important; box-shadow: inset .0625em 0 .0625em rgba(255,255,255,0.4) !important inset -.0625em 0 .0625em rgba(255,255,255,0.4) !important; transition-property: transform !important; transition-duration: .2s !important; }
.switch-button-inside::after { content: "" !important; position: absolute !important; z-index: -1 !important; inset: 0 !important; border-radius: 3.125em !important; background-image: linear-gradient(90deg, var(--background-dark3) 48%, var(--background-dark4) 52%) !important; box-shadow: inset .0625em 0 .0625em rgba(255,255,255,0.2) !important, inset -.0625em 0 .0625em rgba(255,255,255,0.2) !important; opacity: 0 !important; transition-property: opacity !important; transition-duration: .2s !important; }
.switch-input:checked + .switch-button > .switch-button-inside { transform: translateX(.375em) !important; }
.switch-input:checked + .switch-button > .switch-button-inside::after { opacity: 1 !important; }
.switch-icon { width: 1em !important; height: 1em !important; fill: #fff !important; filter: drop-shadow(0 .0625em .0625em rgba(0,0,0,0.4)) drop-shadow(0 0 .25em rgba(255,255,255,0.4)) drop-shadow(0 0 .25em rgba(255,255,255,0.4)); transition-property: fill !important; transition-duration: .2s !important; }
.switch-icon.off { fill: #767c86 !important; }
.switch-input:checked + .switch-button .switch-icon.off { fill: var(--text-color-light) !important; filter: none !important; }
.switch-icon.on { fill: var(--text-color-light) !important; }
.switch-input:not(:checked) + .switch-button .switch-icon.on { fill: var(--background-dark) !important; filter: none !important; }
@media screen and (max-width:768px) {
  #thessaloniki-app { min-height: 100vh; }
}
/* ─────────────────────────────────────────────────────────────
   PROFESSIONAL QUICK VIEW CARDS v2
────────────────────────────────────────────────────────────── */
.qv-dashboard { text-align: left; padding: 15px; border-radius: 8px; margin-top: 20px !important; }
.qv-card { background: #fff; border-radius: 8px; box-shadow: 0 2px 10px rgba(0,0,0,0.03); padding: 12px 15px; height: 100%; border: 1px solid #e9ecef; display: flex; flex-direction: column; }
.qv-card-primary { border-top: 3px solid var(--primary-color); }
.qv-card-secondary { border-top: 3px solid var(--secondary-color); }
.qv-card-third { border-top: 3px solid var(--third-color); }
.qv-card-dark { border-top: 3px solid var(--header-bg-color); }
.qv-card-title { font-size: 0.8rem; font-weight: 700; letter-spacing: 0.03em; color: var(--primary-color); margin-bottom: 10px; padding-bottom: 6px; border-bottom: 1px solid #eee; display: flex; align-items: center; gap: 6px; }
.qv-card-title i { opacity: 0.6; }
.qv-card-body { flex-grow: 1; font-size: 0.9rem; }
.qv-info-row { display: flex; justify-content: space-between; align-items: center; margin-bottom: 6px; padding-bottom: 6px; border-bottom: 1px dashed #eee; font-size: 0.9rem; }
.qv-info-row:last-child { border-bottom: none; margin-bottom: 0; }
.qv-info-label { font-weight: 600; color: #6c757d; font-size: 0.85rem; }
.qv-info-value { font-weight: 500; color: var(--text-color); text-align: right; word-break: break-all; }
.qv-timeline-container { max-height: 500px; overflow-y: auto; padding-right: 5px; }
.qv-timeline-container::-webkit-scrollbar { width: 4px; }
.qv-timeline-container::-webkit-scrollbar-thumb { background-color: #ccc; border-radius: 4px; }
.qv-event-item { display: flex; align-items: flex-start; gap: 8px; padding: 8px 0; border-left: 2px solid #eee; padding-left: 12px; margin-left: 4px; position: relative; }
.qv-event-details { flex-grow: 1; }
.qv-event-type { font-weight: 600; font-size: 0.85rem; line-height: 1.2; }
.qv-event-time { font-size: 0.75rem; color: #999; margin-top: 2px; }
.qv-badge { display: inline-block; padding: 3px 8px; border-radius: 12px; font-size: 0.75rem; font-weight: 600; margin: 0 4px 4px 0; }
.swal2-popup.qv-popup-override { padding: 0 !important; border-radius: 12px !important; overflow: hidden; }
.qv-tooltip { position: relative; cursor: help; }
.qv-tooltip::after { content: attr(data-tooltip); position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%) translateY(10px); background: var(--primary-color); color: #fff; padding: 6px 12px; border-radius: 6px; font-size: 0.8rem; font-weight: 500; white-space: nowrap; box-shadow: 0 4px 15px rgba(0,0,0,0.15); opacity: 0; visibility: hidden; transition: all 0.2s ease; pointer-events: none; z-index: 1060; }
.qv-tooltip::before { content: ""; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%) translateY(10px); border: 6px solid transparent; border-top-color: var(--primary-color); margin-bottom: -12px; opacity: 0; visibility: hidden; transition: all 0.2s ease; pointer-events: none; z-index: 1060; }
.qv-tooltip:hover::after,.qv-tooltip:hover::before { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(-8px); }
.qv-event-meta { margin-top: 4px; font-size: 0.8rem; }
.qv-field-change { background: #f8f9fa; border-left: 3px solid var(--secondary-color); padding: 4px 8px; margin-bottom: 4px; border-radius: 0 4px 4px 0; }
.qv-field-label { font-weight: 600; color: var(--primary-color); font-size: 0.75rem; margin-bottom: 2px; }
.qv-val-old { color: #dc3545; text-decoration: line-through; opacity: 0.7; font-size: 0.85em; }
.qv-val-new { color: #198754; font-weight: 600; }
.qv-arrow { color: #adb5bd; margin: 0 5px; font-size: 0.8em; }
.qv-filters-header { display: flex; gap: 10px; margin-bottom: 15px; background: #fff; padding: 10px; border-radius: 8px; border: 1px solid #e9ecef; align-items: center; }
.qv-filter-input { flex: 1; border: 1px solid #dee2e6; border-radius: 6px; padding: 8px 12px; font-size: 0.9rem; background: #f8f9fa; transition: all 0.2s ease; }
.qv-filter-input:focus { background: #fff; border-color: var(--primary-color); outline: none; box-shadow: 0 0 0 3px rgba(var(--primary-rgb),0.1); }
.qv-filter-input::placeholder { color: #adb5bd; }
.upload-dropzone { border: 2px dashed #dee2e6; border-radius: 15px; background-color: #f8f9fa; transition: all 0.3s ease; min-height: 280px; display: flex; flex-direction: column; justify-content: center; align-items: center; cursor: pointer; height: 97%; }
.upload-dropzone:hover,.upload-dropzone.dragover { background-color: #eef2ff; border-color: var(--primary-color); }
.excel-preview-table { font-size: 0.8rem; border-collapse: collapse; width: 100%; color: #495057; box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
.excel-preview-table th { background-color: #f1f3f5; border: 1px solid #dee2e6; text-align: center; font-weight: 600; padding: 6px; color: #868e96; }
.excel-preview-table td { border: 1px solid #dee2e6; padding: 6px 10px; background-color: #fff; }
.excel-row-num { background-color: #f1f3f5; border: 1px solid #dee2e6; text-align: center; color: #868e96; width: 35px; }
.stat-card-minimal { border: 1px solid #eff2f5; border-radius: 15px; background: #fff; padding: 20px; height: 100%; box-shadow: 0 2px 6px rgba(0,0,0,0.02); display: flex; align-items: center; justify-content: space-between; border-top: 3px solid var(--primary-color); }
.stat-icon-wrapper { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 24px; }
.swal2-popup.swal-import-wide { width: 80vw !important; max-width: 1100px; }
@media (max-width:576px) {
  .swal2-popup.swal-import-wide { width: 100vw !important; max-width: 100vw; margin: 0; border-radius: 0; }
}
.excel-filename { max-width: 260px; display: inline-block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.swal-import-left .swal2-html-container { text-align: left !important; }
@keyframes pulse-blue {
  0% { box-shadow: 0 0 0 0 rgba(13,110,253,0.4); }
  70% { box-shadow: 0 0 0 6px rgba(13,110,253,0); }
  100% { box-shadow: 0 0 0 0 rgba(13,110,253,0); }
}
.pulse-animation { animation: pulse-blue 2s infinite; }
.settings-grid-container { display: grid; grid-template-columns: repeat(3,1fr); gap: 15px; padding: 10px; }
.badge-power-grid { background-color: #e3f2fd; color: #0d47a1; border: 1px solid #90caf9; }
.badge-power-batt { background-color: #fbe9e7; color: #d84315; border: 1px solid #ffab91; }
.badge-power-unknown { background-color: #f5f5f5; color: #616161; border: 1px solid #e0e0e0; }
.settings-collapse-panel { background: var(--background-overlay); border-radius: 8px; font-size: .85rem; color: var(--text-color); }
.qv-actions-swal { width: 60vw !important; max-width: 60vw !important; }
@media (max-width:1800px) {
  .qv-actions-swal { width: 95vw !important; max-width: 95vw !important; }
}
#walletCarouselHost { width: 100%; position: relative; overflow: hidden; padding: 10px 0; }
.wallet-portfolio-wrapper { position: relative; width: 100%; }
.wallet-scroll-track { display: flex; gap: 0; overflow-x: hidden; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-bottom: 20px; width: 100%; }
.wallet-slide { min-width: 100%; flex: 0 0 100%; scroll-snap-align: center; display: flex; flex-direction: column; align-items: center; padding: 0 10px; box-sizing: border-box; }
.wallet-nav-btn { position: absolute; top: 95px; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; background: rgba(255,255,255,0.9); border: 1px solid #e0e0e0; color: var(--primary-color); box-shadow: 0 4px 10px rgba(0,0,0,0.15); display: flex; align-items: center; justify-content: center; cursor: pointer; z-index: 10; transition: all 0.2s ease; opacity: 0; }
#walletCarouselHost:hover .wallet-nav-btn { opacity: 1; }
.wallet-nav-btn:hover { background: var(--primary-color); color: white; transform: translateY(-50%) scale(1.1); }
.wallet-nav-btn.prev { left: 5px; }
.wallet-nav-btn.next { right: 5px; }
.wallet-stepper { display: flex; justify-content: center; gap: 8px; margin-top: 5px; margin-bottom: 5px; }
.wallet-dot { width: 8px; height: 8px; background-color: #dee2e6; border-radius: 50%; transition: all 0.3s ease; cursor: pointer; }
.wallet-dot.active { width: 24px; background-color: var(--primary-color); border-radius: 10px; }
.wallet-theme-me { background: linear-gradient(135deg,var(--primary-color) 0%,var(--secondary-color) 100%); }
.wallet-theme-other { background: linear-gradient(135deg,#34495e 0%,#2c3e50 100%); }
.wallet-theme-empty { background: linear-gradient(135deg,#636e72 0%,#2d3436 100%); }
.wallet-label { font-size: .75rem; letter-spacing: 1.2px; opacity: .7; margin-bottom: 4px; }
.wallet-balance { font-size: 2.6rem; font-weight: 700; letter-spacing: -.5px; line-height: 1.1; }
.wallet-user-name { font-size: 1rem; font-weight: 600; letter-spacing: .5px; }
.wallet-id-badge { background: rgba(255,255,255,0.15); backdrop-filter: blur(4px); padding: 4px 10px; border-radius: 8px; font-family: monospace; font-size: .9rem; border: 1px solid rgba(255,255,255,0.1); }
.wallet-action-btn:active { transform: scale(0.96); }
.tx-mini-row { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px dashed #dee2e6; }
.tx-mini-row:last-child { border-bottom: none; }
.digital-wallet-card { width: 100%; max-width: 500px; height: 220px; border-radius: 24px; position: relative; z-index: 2; box-shadow: 0 15px 35px rgba(0,0,0,0.2),0 5px 15px rgba(0,0,0,0.1); transition: transform 0.3s ease; border: 1px solid rgba(255,255,255,0.1); }
.wallet-details-container { width: 95%; max-width: 480px; background: rgba(255,255,255,0.65); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid rgba(255,255,255,0.8); border-radius: 20px; margin: 15px auto 0 auto; padding: 20px; position: relative; z-index: 1; box-shadow: 0 8px 32px 0 rgba(31,38,135,0.1); }
.wallet-action-btn { border: none; border-radius: 12px; padding: 10px 0; font-size: .95rem; font-weight: 600; transition: transform 0.2s; border: none; border-radius: 15px; padding: 12px 0; font-size: .95rem; font-weight: 600; transition: all 0.2s; }
.btn-topup { background: var(--primary-color); color: white; box-shadow: 0 4px 10px rgba(var(--primary-color-rgb),0.3); background: var(--primary-color); color: white; box-shadow: 0 4px 12px rgba(var(--primary-color-rgb),0.4); }
.btn-history { background: #e9ecef; color: var(--text-color); border: 1px solid #dee2e6; background: rgba(255,255,255,0.8); color: var(--text-color); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
.btn-history:hover { background: #fff; transform: translateY(-2px); }
.json-renderer { background-color: #ffffff; border: 1px solid #e2e2e2; border-radius: 6px; padding: 10px; font-family: "IBM Plex Mono",monospace; font-size: .85rem; text-align: left !important; width: 100% !important; box-sizing: border-box; margin: 0 !important; max-height: 300px; overflow-y: auto; overflow-x: auto; }
ul.json-dict,ol.json-array { padding-left: 10px !important; margin: 0 !important; border-left: 1px dotted #ccc; }
.json-key { color: #1a1a1b; font-weight: 600; }
.json-string { color: var(--primary-color); }
.json-literal { color: #0d6efd; font-weight: bold; }
a.json-toggle { color: #6d6e71 !important; text-decoration: none; margin-right: 5px; }
a.json-toggle:hover { color: var(--primary-color) !important; }
table.dataTable tbody td { vertical-align: top; }
/* ─────────────────────────────────────────────────────────────
   LOGIC BUILDER STYLES (OR/AND UI)
────────────────────────────────────────────────────────────── */
/* Containers */
.qv-logic-container-ia { background-color: var(--success-light-color-fade); border: 1px solid var(--success-color); border-radius: 8px; padding: 15px; margin-bottom: 15px; }
.qv-logic-container-id { background-color: var(--error-light-color-fade); border: 1px solid var(--error-color); border-radius: 8px; padding: 15px; }
.qv-logic-label { font-weight: 700; font-size: 0.9rem; margin-bottom: 10px; display: block; color: var(--text-color); }
.qv-logic-container-ia .qv-logic-label { color: var(--success-color); }
.qv-logic-container-id .qv-logic-label { color: var(--error-color); }
/* Grid Layout - Αυτό φτιάχνει το σπάσιμο */
/* Individual Item Card */
.qv-logic-item { display: flex; align-items: center; background: #ffffff; border: 1px solid #e0e0e0; border-radius: 6px; padding: 10px 12px; cursor: pointer; transition: all 0.2s ease; user-select: none; }
.qv-logic-item:hover { transform: translateY(-1px); box-shadow: 0 2px 5px rgba(0,0,0,0.05); }
.qv-logic-item .form-check-input { margin: 0 10px 0 0 !important; cursor: pointer; transform: scale(1.1); }
.qv-logic-item .qv-item-text { font-size: 0.9rem; color: var(--text-color); line-height: 1.2; }
/* Selected States */
/* Green Area Selected */
.qv-logic-container-ia .qv-logic-item.selected { border-color: var(--success-color); background-color: #f0fdf4; box-shadow: 0 0 0 1px var(--success-color); }
/* Red Area Selected */
.qv-logic-container-id .qv-logic-item.selected { border-color: var(--error-color); background-color: #fef2f2; box-shadow: 0 0 0 1px var(--error-color); }
/* Disabled State */
.qv-logic-item.disabled { opacity: 0.6; background-color: #f8f9fa; cursor: not-allowed; border-style: dashed; }
.qv-logic-footer { margin-top: 10px; font-size: 0.75rem; color: var(--error-color); text-align: right; font-style: italic; opacity: 0.8; }
.analog-card .analog-section-title { font-weight: 600; }
.analog-card .chip-metric { border-radius: 999px; border: 1px solid rgba(0, 0, 0, 0.08); padding: 0.25rem 0.75rem; background-color: #ffffff; }
.analog-card .chip-label { font-size: 0.7rem; color: #6c757d; margin-bottom: 0.1rem; }
.analog-card .chip-value { font-size: 0.8rem; font-weight: 600; }
.qv-logic-card.is-disabled { opacity: .58; cursor: not-allowed; filter: saturate(.72); }
.qv-logic-card.is-disabled .qv-logic-check { pointer-events: none; }
.qv-logic-card.is-disabled-by-stop { border-style: dashed; background: #f8fafc; }
.qv-mode-group--danger .qv-logic-card.is-selected { box-shadow: 0 0 0 1px rgba(239,77,122,.28); }
/* === SweetAlert2 – επαγγελματικό UI για φόρμες εντολών ================== */
/* Ολόκληρο popup της φόρμας */
.qv-swal-form-popup { border-radius: 16px; padding: 0; background-color: #ffffff; box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18); overflow: hidden; }
/* Ζώνη τίτλου */
.qv-swal-form-title { margin: 0; padding: 1rem 1.5rem 0.85rem 1.5rem; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
/* Στοίχιση icon + text – ΟΛΟ μαζί στο κέντρο, icon αριστερά από τον τίτλο */
.qv-swal-title-row { display: flex; align-items: center; justify-content: center; gap: 0.8rem; }
/* Κύκλος με το εικονίδιο */
.qv-swal-title-icon { width: 40px; height: 40px; border-radius: 999px; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 150, 136, 0.08); color: var(--primary-color, #00796b); font-size: 1.4rem; }
/* Κείμενο τίτλου */
.qv-swal-title-text { flex: 0 1 auto; text-align: left; }
.qv-swal-title-main { font-size: 1.1rem; font-weight: 700; color: var(--primary-color, #00796b); }
.qv-swal-title-sub { margin-top: 0.15rem; font-size: 0.8rem; color: #6c757d; }
/* HTML container (body) που βάζει η SweetAlert */
.qv-swal-form-html { max-height: 60vh; overflow-y: auto; }
/* Εσωτερικό layout του σώματος */
.qv-swal-layout { padding: 0.9rem 1.5rem 1.1rem 1.5rem; }
/* Wrapper γύρω από το formHtml που φτιάχνεις δυναμικά */
.qv-swal-form-body { display: block; }
/* Καλύτερο spacing στο bootstrap grid */
.qv-swal-form-body .row { row-gap: 0.9rem; }
/* Labels πάνω από τα inputs */
.qv-swal-form-body .form-label { font-size: 0.83rem; font-weight: 600; color: #37474f; margin-bottom: 0.25rem; }
/* Inputs & selects */
.qv-swal-form-body .form-control, .qv-swal-form-body .form-select { border-radius: 10px; font-size: 0.9rem; }
/* Στείλε checkbox – μικρό, διακριτικό */
.qv-swal-form-body .form-check { display: inline-flex; align-items: center; gap: 0.25rem; font-size: 0.78rem; color: #78909c; margin-left: 0.5rem; }
.qv-swal-form-body .form-check-input { width: 1.05rem; height: 1.05rem; margin-top: 0; }
/* Footer με κουμπιά (Πίσω / Αποστολή) */
.qv-swal-form-actions { margin-top: 0 !important; padding: 0.75rem 1.5rem 1rem 1.5rem; border-top: 1px solid rgba(0, 0, 0, 0.06); justify-content: flex-end; gap: 0.5rem; }
/* Κοινό στυλ κουμπιών στο footer (κρατάει τα theme classes σου) */
.qv-swal-btn { border-radius: 999px; font-weight: 600; font-size: 0.9rem; min-width: 110px; }
/* Λιγότερο aggressive hover – πιο "app" αίσθηση */
.qv-swal-btn-confirm:hover, .qv-swal-btn-cancel:hover { filter: brightness(0.97); }
/* Το input μέσα στο popup σου (από πάνω το κάνει flatpickr-input) */
.qv-popup-override .flatpickr-input.qv-timepicker { cursor: pointer; background-color: var(--secondary-color); border-radius: 999px; border: 1px solid var(--primary-color); color: var(--primary-color); font-size: 0.9rem; font-weight: 500; padding: 0.45rem 0.9rem; line-height: 1.2; }
.qv-popup-override .flatpickr-input.qv-timepicker:focus { outline: none; box-shadow: 0 0 0 0.15rem rgba(0, 121, 107, 0.18); }
.qv-popup-override .flatpickr-input.qv-timepicker::placeholder { color: rgba(0, 0, 0, 0.35); }
/* Η καρτέλα του flatpickr */
.flatpickr-calendar { border-radius: 12px; box-shadow: 0 10px 30px rgba(0, 0, 0, 0.18); font-family: inherit; }
.flatpickr-calendar.open { z-index: 2147483647 !important; }
/* Κουμπιά / active στοιχεία στην παλέτα σου */
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange, .flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover { background-color: var(--primary-color); border-color: var(--primary-color); }
/* Χρόνος (κάτω μέρος του picker όταν υπάρχει) */
.flatpickr-time { border-top: 1px solid rgba(0, 0, 0, 0.06); }
.flatpickr-time input { font-size: 0.9rem; font-weight: 500; color: var(--primary-color); }
/* ------------ Remote Links Manager (SweetAlert) ------------- */
/* Ολόκληρο popup */
.qv-rn-popup { border-radius: 16px; padding: 0; background-color: #ffffff; box-shadow: 0 14px 40px rgba(0, 0, 0, 0.18); overflow: hidden; }
/* Ζώνη τίτλου */
.qv-rn-title { margin: 0; padding: 1rem 1.5rem 0.75rem 1.5rem; border-bottom: 1px solid rgba(0, 0, 0, 0.06); }
/* Διάταξη icon + κείμενο τίτλου */
.qv-rn-title-row { display: flex; align-items: center; gap: 0.75rem; }
.qv-rn-title-icon { width: 40px; height: 40px; border-radius: 999px; display: flex; align-items: center; justify-content: center; background-color: rgba(0, 150, 136, 0.10); color: var(--primary-color, #00796b); font-size: 1.5rem; }
.qv-rn-title-text { flex: 1; }
.qv-rn-title-main { font-size: 1.1rem; font-weight: 700; color: var(--primary-color, #00796b); }
.qv-rn-title-sub { margin-top: 0.15rem; font-size: 0.8rem; color: #6c757d; }
/* container γύρω από το html του Swal */
.qv-rn-html { padding: 0; }
/* σώμα popup */
.qv-rn-body-wrapper { padding: 1rem 1.5rem 1.25rem 1.5rem; background-color: #f5faf9; }
/* footer / actions */
.qv-rn-actions { margin-top: 0 !important; padding: 0.75rem 1.5rem 1.25rem 1.5rem; border-top: 1px solid rgba(0, 0, 0, 0.06); justify-content: flex-end; gap: 0.5rem; }
/* κουμπιά */
.qv-rn-btn { border-radius: 999px; font-weight: 600; font-size: 0.9rem; min-width: 120px; }
.qv-rn-btn-confirm:hover, .qv-rn-btn-cancel:hover { filter: brightness(0.97); }
/* Κάρτα πάνω-πάνω με Έξοδο / Λογική / Ενεργό */
.qv-rn-settings-card { border-radius: 12px; padding: 0.9rem 1rem 0.95rem; background: rgba(0, 150, 136, 0.06); border: 1px solid rgba(0, 0, 0, 0.04); margin-bottom: 1rem; }
.qv-rn-settings-card label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.04em; color: #6c757d; margin-bottom: 0.25rem; }
.qv-rn-settings-card .form-select { border-radius: 999px; border-color: var(--primary-color, #00796b); }
/* Panel με τις πηγές */
.qv-rn-sources-panel { border-radius: 12px; border: 1px solid rgba(0, 0, 0, 0.06); background-color: #ffffff; padding: 1rem 1rem 0.75rem; }
.qv-rn-sources-title { font-size: 0.85rem; font-weight: 600; color: var(--primary-color, #00796b); margin-bottom: 0.5rem; display: flex; align-items: center; gap: 0.35rem; }
.qv-rn-sources-title i { font-size: 1rem; }
/* Μία γραμμή πηγής */
.qv-rn-source-row { border-radius: 10px; background-color: #f3f7f6; padding: 0.6rem 0.75rem; margin-bottom: 0.5rem; }
.qv-rn-source-row .form-select { border-radius: 999px; border-color: rgba(0, 0, 0, 0.08); }
.qv-rn-source-row .form-switch .form-check-input { cursor: pointer; }
.qv-rn-source-row .qv-src-del { border-radius: 999px; padding-inline: 0.6rem; }
/* κουμπί "Προσθήκη Πηγής" */
.qv-rn-btn-add { border-radius: 999px; }
/* Select2 μέσα στο συγκεκριμένο popup */
.qv-rn-popup .select2-container--default .select2-selection--single { border-radius: 999px; border-color: var(--primary-color, #00796b); height: 38px; }
.qv-rn-popup .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 36px; }
.qv-rn-popup .select2-container--default .select2-selection--single .select2-selection__arrow { height: 36px; }
.log-desc { line-height: 1.2; opacity: .85; }
.log-desc-divider { height: 1px; width: 100%; background: rgba(0,0,0,.10); margin: .35rem 0 .5rem; }
/* Καλύτερο UI για DataTables Responsive child rows (raw/json μεγάλα) */
#devices-raw-catalog-logs-table tr.child td { padding: 10px 12px !important; }
#devices-raw-catalog-logs-table tr.child ul.dtr-details { width: 100%; margin: 0; }
#devices-raw-catalog-logs-table tr.child ul.dtr-details > li { padding: 6px 0; border: 0; }
#devices-raw-catalog-logs-table tr.child .dtr-title { display: block; font-weight: 700; margin-bottom: 6px; }
#devices-raw-catalog-logs-table tr.child .dtr-data { display: block; max-height: 260px; overflow: auto; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size: 12px; line-height: 1.35; white-space: pre-wrap; word-break: break-all; padding: 10px; border-radius: 12px; border: 1px solid rgba(0,0,0,.12); background: rgba(255,255,255,.55); }
.log-payload { white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; }
.btn-primary-theme-table.is-active { background: var(--secondary-color) !important; border-color: var(--secondary-color) !important; color: #fff !important; }
.btn-primary-theme-table.is-off { opacity: .45; }
#logsDateRange, .flatpickr-input[readonly] { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
#device-catalog-logs-table_wrapper .dt-buttons { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; width: 100%; }
#device-catalog-logs-table_wrapper .dt-buttons .logs-right { margin-left: auto; display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
#device-catalog-logs-table_wrapper .dt-buttons input#logsDateRange { white-space: nowrap; }
#device_catalog_logs_table_wrapper { min-height: 500px; }
.dt-container.dt-hidden-force { display: none !important; }
.datatable-empty-global { display: none; width: 100%; min-height: 520px; padding: 32px 32px 40px 32px; align-items: center; justify-content: center; }
.datatable-empty-global.is-visible { display: flex !important; }
.datatable-empty-shell { width: min(760px, 100%); margin: 0 auto; text-align: center; position: relative; }
.datatable-empty-shell::before { content: ""; position: absolute; top: 40px; right: 90px; width: 140px; height: 140px; background: radial-gradient(circle, rgba(255, 184, 0, .10), transparent 70%); pointer-events: none; filter: blur(2px); }
.datatable-empty-shell::after { content: ""; position: absolute; bottom: 20px; left: 80px; width: 180px; height: 180px; background: radial-gradient(circle, rgba(120, 90, 255, .08), transparent 70%); pointer-events: none; }
.datatable-empty-badge { display: inline-flex; align-items: center; justify-content: center; padding: 10px 16px; margin-bottom: 22px; border-radius: 999px; background: rgba(9, 122, 107, .08); color: var(--primary-color); font-size: .95rem; font-weight: 700; border: 1px solid rgba(9, 122, 107, .12); }
.datatable-empty-media { display: flex; justify-content: center; align-items: center; margin-bottom: 22px; }
.datatable-empty-media img { width: 220px; max-width: 82%; filter: drop-shadow(0 18px 28px rgba(31,41,55,.12)); transition: transform .25s ease; }
.datatable-empty-media img:hover { transform: translateY(-3px) scale(1.02); }
.datatable-empty-content { max-width: 700px; margin: 0 auto; }
.empty-title { margin: 0 0 14px 0; font-size: 2.1rem; line-height: 1.2; font-weight: 800; color: #566b7f; }
.empty-text { margin: 0 auto 22px auto; font-size: 1.08rem; line-height: 1.8; color: #8798a7; max-width: 640px; }
.empty-note { display: inline-flex; align-items: flex-start; gap: 10px; text-align: left; margin-top: 4px; padding: 14px 18px; border-radius: 18px; background: rgba(255,255,255,.45); border: 1px solid rgba(0,0,0,.05); color: #6f8391; font-size: .98rem; line-height: 1.6; max-width: 620px; }
.empty-note i { font-size: 1.1rem; color: var(--secondary-color); margin-top: 3px; flex: 0 0 auto; }
@media (max-width:768px) {
  .settings-grid-container { grid-template-columns: 1fr; }
  .datatable-empty-global { min-height: 420px; padding: 22px 18px 28px 18px; }
  .datatable-empty-media img { width: 170px; }
  .empty-title { font-size: 1.6rem; }
  .empty-text { font-size: .97rem; line-height: 1.7; }
  .empty-note { font-size: .92rem; padding: 12px 14px; }
}
.dash-help-swal-popup { width: min(980px, 95vw) !important; max-width: 980px !important; padding: 0 !important; border-radius: 26px !important; overflow: hidden !important;  border: 1px solid rgba(0,0,0,0.06) !important; box-shadow: 0 26px 80px rgba(0,0,0,0.24) !important; }
.dash-help-swal { display: flex; flex-direction: column; min-height: 700px; text-align: left; }
.dash-help-swal-header { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.35rem 1.1rem 1.35rem; border-bottom: 1px solid rgba(0,0,0,0.06); background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(245,250,250,0.92)); overflow: hidden; }
.dash-help-swal-header::after { content: ""; position: absolute; top: -90px; right: -70px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(234,191,63,0.16), rgba(234,191,63,0.07) 35%, transparent 72%); pointer-events: none; filter: blur(5px); }
.dash-help-swal-title-wrap { position: relative; z-index: 1; display: flex; align-items: center; gap: 1rem; min-width: 0; flex: 1 1 auto; }
.dash-help-swal-icon { width: 56px; height: 56px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: var(--third-light-color-fade); border: 1px solid var(--third-color); color: var(--third-color); font-size: 1.5rem; flex: 0 0 auto; box-shadow: 0 10px 24px rgba(0,0,0,0.06); }
.dash-help-swal-title-block { min-width: 0; }
.dash-help-swal-title { font-size: 1.8rem; font-weight: 800; line-height: 1.08; color: var(--primary-color); margin-bottom: 0.2rem; }
.dash-help-swal-subtitle { font-size: 1rem; line-height: 1.4; color: var(--text-color); opacity: .76; }
.dash-help-swal-popup .swal2-close { position: absolute !important; top: 18px !important; right: 18px !important; z-index: 20 !important; margin: 0 !important; width: 46px !important; height: 46px !important; border-radius: 14px !important; color: #6b7280 !important; background: rgba(255,255,255,0.82) !important; border: 1px solid rgba(0,0,0,0.08) !important; box-shadow: 0 8px 20px rgba(0,0,0,0.08) !important; transition: all .18s ease; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
.dash-help-swal-popup .swal2-close:hover { color: var(--error-color) !important; background: var(--error-light-color-fade) !important; border-color: var(--error-color) !important; }
.dash-help-swal-popup .swal2-html-container { margin: 0 !important; padding: 0 !important; color: inherit !important; text-align: left !important; flex: 1 1 auto; display: flex; }
.dash-help-swal-body { display: grid; grid-template-columns: 1.5fr 1fr; gap: 1.15rem; padding: 1.2rem 1.35rem 1.25rem 1.35rem; width: 100%; min-height: 0; flex: 1 1 auto; align-items: stretch; }
.dash-help-swal-hero { min-height: 100%; border-radius: 24px; border: 1px solid rgba(0,0,0,0.05); background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(243,248,249,0.94)); overflow: hidden; position: relative; display: flex; align-items: flex-start; justify-content: center; }
.dash-help-swal-hero img { width: 100%; height: 100%; min-height: 100%; object-fit: cover; object-position: center top; display: block; transform: scale(1.08); }
.dash-help-swal-side { display: flex; flex-direction: column; min-height: 100%; gap: .9rem; }
.dash-help-swal-list { display: flex; flex-direction: column; gap: .8rem; flex: 1 1 auto; }
.dash-help-item { display: flex; align-items: flex-start; gap: .8rem; padding: .95rem 1rem; border-radius: 18px; background: rgba(255,255,255,0.76); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 6px 18px rgba(0,0,0,0.04); }
.dash-help-item-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: var(--primary-light-color-fade); border: 1px solid var(--primary-color); color: var(--primary-color); font-size: 1.1rem; flex: 0 0 auto; }
.dash-help-item-content { min-width: 0; }
.dash-help-item-title { font-size: 1rem; font-weight: 700; line-height: 1.24; color: var(--primary-color); margin-bottom: .22rem; }
.dash-help-item-text { font-size: .96rem; line-height: 1.48; color: var(--text-color); opacity: .88; }
.dash-help-swal-popup .swal2-actions { margin: 0 !important; padding: 0 !important; justify-content: stretch !important; width: 100%; }
.dash-help-swal-confirm { display: flex !important; align-items: center; justify-content: center; width: 100%; min-height: 58px; padding: 1rem 1.25rem !important; border-radius: 18px !important; border: none !important; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)) !important; color: var(--text-color-light) !important; font-size: 1.08rem !important; font-weight: 800 !important; box-shadow: 0 12px 24px rgba(0,0,0,0.12) !important; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.dash-help-swal-confirm:hover { transform: translateY(-2px); filter: brightness(1.02); box-shadow: 0 16px 28px rgba(0,0,0,0.16) !important; }
.dash-help-swal-action-row { margin-top: auto; padding-top: .1rem; }
.swal2-content { padding: 0px !important; }
.swal2-popup { padding: 0px !important; }
.dash-action-swal-popup { width: min(980px, 95vw) !important; max-width: 980px !important; padding: 0 !important; border-radius: 26px !important; overflow: hidden !important;  border: 1px solid rgba(0,0,0,0.06) !important; box-shadow: 0 26px 80px rgba(0,0,0,0.24) !important; }
.dash-action-swal { display: flex; flex-direction: column; min-height: 680px; text-align: left; }
.dash-action-swal-icon { width: 56px; height: 56px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: var(--third-light-color-fade); border: 1px solid var(--third-color); color: var(--third-color); font-size: 1.5rem; flex: 0 0 auto; box-shadow: 0 10px 24px rgba(0,0,0,0.06); }
.dash-action-swal-title { font-size: 1.8rem; font-weight: 800; line-height: 1.08; color: var(--primary-color); margin-bottom: 0.2rem; }
.dash-action-swal-subtitle { font-size: 1rem; line-height: 1.4; color: var(--text-color); opacity: .76; }
.dash-action-swal-popup .swal2-html-container { margin: 0 !important; padding: 0 !important; color: inherit !important; text-align: left !important; flex: 1 1 auto; display: flex; }
.dash-action-swal-body { display: grid; grid-template-columns: 360px 1fr; gap: 1.15rem; padding: 1.2rem 1.35rem 1.25rem 1.35rem; width: 100%; flex: 1 1 auto; align-items: stretch; }
.dash-action-swal-hero { min-height: 100%; border-radius: 24px; border: 1px solid rgba(0,0,0,0.05); background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(243,248,249,0.94)); overflow: hidden; display: flex; align-items: flex-start; justify-content: center; }
.dash-action-swal-hero img { width: 100%; height: 100%; object-fit: cover; object-position: center center; display: block; transform: scale(1.02); }
.dash-action-swal-side { display: flex; flex-direction: column; min-height: 100%; gap: 1rem; }
.dash-action-swal-content { flex: 1 1 auto; display: flex; flex-direction: column; gap: 1rem; }
.dash-action-input-card { border-radius: 18px; background: rgba(255,255,255,0.76); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 6px 18px rgba(0,0,0,0.04); padding: 1rem; }
.dash-action-input-label { font-size: .95rem; font-weight: 700; color: var(--primary-color); margin-bottom: .5rem; display: flex; align-items: center; gap: .45rem; }
.dash-action-input { width: 100%; min-height: 58px; border: 1px solid var(--secondary-color) !important; border-radius: 16px !important; background: rgba(255,255,255,0.94) !important; color: var(--text-color) !important; padding: 0 1rem !important; font-size: 1rem !important; box-shadow: none !important; }
.dash-action-input:focus { border-color: var(--primary-color) !important; box-shadow: 0 0 0 0.18rem var(--primary-light-color-fade) !important; outline: none !important; }
.dash-action-info-icon { width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: var(--primary-light-color-fade); border: 1px solid var(--primary-color); color: var(--primary-color); font-size: 1.1rem; flex: 0 0 auto; }
.dash-action-swal-action-row { display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; margin-top: auto; }
.dash-action-swal-confirm, .dash-action-swal-cancel { min-height: 58px; border: none; border-radius: 18px; display: flex; align-items: center; justify-content: center; gap: .5rem; font-size: 1.02rem; font-weight: 800; transition: all .18s ease; cursor: pointer; }
.dash-action-swal-confirm { background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color: var(--text-color-light); box-shadow: 0 12px 24px rgba(0,0,0,0.12); }
.dash-action-swal-confirm:hover { transform: translateY(-2px); filter: brightness(1.02); }
.dash-action-swal-cancel { background: var(--error-light-color-fade); color: var(--error-color); border: 1px solid var(--error-color); }
.dash-action-swal-cancel:hover { transform: translateY(-2px); }
.dash-action-swal-warning { margin-top: .45rem; display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .75rem; border-radius: 999px; background: var(--third-light-color-fade); border: 1px solid var(--third-color); color: var(--primary-color); font-size: .85rem; font-weight: 700; line-height: 1.25; }
.dash-action-mini-card { display: flex; align-items: flex-start; gap: .7rem; padding: .85rem .95rem; border-radius: 16px; background: rgba(255,255,255,0.72); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 6px 18px rgba(0,0,0,0.04); }
.dash-action-mini-icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--secondary-light-color-fade); border: 1px solid var(--secondary-color); color: var(--primary-color); font-size: 1rem; flex: 0 0 auto; }
.dash-action-mini-title { font-size: .95rem; font-weight: 700; color: var(--primary-color); margin-bottom: .15rem; }
.dash-action-mini-text { font-size: .92rem; line-height: 1.45; color: var(--text-color); opacity: .86; }
.dash-action-info-card-warning { background: var(--third-light-color-fade); border: 1px solid var(--third-color); }
.dash-action-info-icon-warning { background: rgba(255,255,255,0.55); border: 1px solid var(--third-color); color: var(--third-color); }
.dash-action-swal-header { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 1.35rem 1.1rem 1.35rem; border-bottom: 1px solid rgba(0,0,0,0.06); background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(245,250,250,0.92)); overflow: hidden; position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem 7.4rem 1.1rem 1.35rem; border-bottom: 1px solid rgba(0,0,0,0.06); background: linear-gradient(135deg, rgba(255,255,255,0.96), rgba(245,250,250,0.92)); overflow: hidden; }
.dash-action-swal-header::after { content: ""; position: absolute; top: -90px; right: -70px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(234,191,63,0.16), rgba(234,191,63,0.07) 35%, transparent 72%); pointer-events: none; filter: blur(5px); content: ""; position: absolute; top: -90px; right: -70px; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(234,191,63,0.16), rgba(234,191,63,0.07) 35%, transparent 72%); pointer-events: none; filter: blur(5px); }
.dash-action-swal-title-wrap { position: relative; z-index: 1; display: flex; align-items: center; gap: 1rem; min-width: 0; flex: 1 1 auto; position: relative; z-index: 1; display: flex; align-items: center; gap: 1rem; min-width: 0; flex: 1 1 auto; padding-right: .5rem; }
.dash-action-swal-top-actions { position: absolute; top: 18px; right: 74px; z-index: 30; display: flex; align-items: center; justify-content: center; position: absolute; top: 18px; right: 76px; z-index: 31; display: flex; align-items: center; justify-content: center; }
.dash-action-swal-help { width: 46px; height: 46px; border: none; border-radius: 14px; display: flex; align-items: center; justify-content: center; cursor: pointer; background: var(--third-light-color-fade); border: 1px solid var(--third-color); color: var(--third-color); box-shadow: 0 8px 20px rgba(0,0,0,0.08); transition: all .18s ease; width: 46px; height: 46px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; border: 1px solid var(--third-color); background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(255,248,230,0.96)); color: var(--third-color); box-shadow: 0 8px 20px rgba(0,0,0,0.08); transition: transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease; }
.dash-action-swal-help i { font-size: 1.15rem; line-height: 1; }
.dash-action-swal-help:hover { transform: translateY(-2px); background: var(--third-color); color: var(--text-color); transform: translateY(-2px); background: var(--third-color); color: var(--text-color); box-shadow: 0 14px 26px rgba(0,0,0,0.14); }
.dash-action-swal-popup .swal2-close { position: absolute !important; top: 18px !important; right: 18px !important; z-index: 20 !important; margin: 0 !important; width: 46px !important; height: 46px !important; border-radius: 14px !important; color: #6b7280 !important; background: rgba(255,255,255,0.82) !important; border: 1px solid rgba(0,0,0,0.08) !important; box-shadow: 0 8px 20px rgba(0,0,0,0.08) !important; transition: all .18s ease; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; position: absolute !important; top: 18px !important; right: 18px !important; z-index: 32 !important; margin: 0 !important; width: 46px !important; height: 46px !important; border-radius: 14px !important; color: #6b7280 !important; background: rgba(255,255,255,0.82) !important; border: 1px solid rgba(0,0,0,0.08) !important; box-shadow: 0 8px 20px rgba(0,0,0,0.08) !important; transition: all .18s ease; display: flex !important; align-items: center !important; justify-content: center !important; line-height: 1 !important; }
.dash-action-swal-popup .swal2-close:hover { color: var(--error-color) !important; background: var(--error-light-color-fade) !important; border-color: var(--error-color) !important; color: var(--error-color) !important; background: var(--error-light-color-fade) !important; border-color: var(--error-color) !important; }
.dash-icon-picker-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(58px, 1fr)); gap: .65rem; margin-top: .25rem; }
.dash-icon-option { width: 100%; min-height: 58px; border-radius: 14px; border: 1px solid var(--secondary-color); background: rgba(255,255,255,0.78); color: var(--secondary-color); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .16s ease; box-shadow: 0 4px 12px rgba(0,0,0,0.04); }
.dash-icon-option i { font-size: 1.5rem; line-height: 1; }
.dash-icon-option:hover { transform: translateY(-2px); border-color: var(--primary-color); color: var(--primary-color); background: var(--primary-light-color-fade); }
.dash-icon-option.is-selected { border: 2px solid var(--third-color); color: var(--third-color); background: var(--third-light-color-fade); box-shadow: 0 10px 20px rgba(0,0,0,0.08); }
.dash-status-swal-popup { width: min(560px, 92vw) !important; max-width: 560px !important; padding: 0 !important; border-radius: 28px !important; overflow: hidden !important;  border: 1px solid rgba(0,0,0,0.06) !important; box-shadow: 0 28px 80px rgba(0,0,0,0.24) !important; }
.dash-status-swal { position: relative; padding: 2rem 1.5rem 1.6rem 1.5rem; text-align: center; overflow: hidden; }
.dash-status-swal-orb { position: absolute; top: -90px; right: -70px; width: 220px; height: 220px; border-radius: 50%; pointer-events: none; filter: blur(8px); opacity: .9; }
.dash-status-swal-icon { width: 110px; height: 110px; border-radius: 50%; margin: 0 auto 1.35rem auto; display: flex; align-items: center; justify-content: center; border: 4px solid currentColor; background: rgba(255,255,255,0.55); font-size: 3.4rem; line-height: 1; }
.dash-status-swal-title { font-size: 2.05rem; font-weight: 800; line-height: 1.08; margin-bottom: .8rem; }
.dash-status-swal-text { font-size: 1.15rem; line-height: 1.55; max-width: 420px; margin: 0 auto 1.6rem auto; opacity: .92; }
.dash-status-swal-actions { display: flex; justify-content: center; }
.dash-status-swal-confirm { min-width: 120px; min-height: 52px; border: none; border-radius: 16px; padding: .85rem 1.35rem; font-size: 1.05rem; font-weight: 800; cursor: pointer; transition: all .18s ease; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color: var(--text-color-light); box-shadow: 0 12px 24px rgba(0,0,0,0.14); }
.dash-status-swal-confirm:hover { transform: translateY(-2px); filter: brightness(1.02); }
.dash-status-swal--success { color: #8fcf7c; }
.dash-status-swal--success .dash-status-swal-title { color: var(--primary-color); }
.dash-status-swal--success .dash-status-swal-text { color: var(--secondary-color); }
.dash-status-swal--success .dash-status-swal-orb { background: radial-gradient(circle, rgba(143,207,124,0.18), transparent 70%); }
.dash-status-swal--error { color: #ef6b73; }
.dash-status-swal--error .dash-status-swal-title { color: var(--primary-color); }
.dash-status-swal--error .dash-status-swal-text { color: var(--secondary-color); }
.dash-status-swal--error .dash-status-swal-orb { background: radial-gradient(circle, rgba(239,107,115,0.18), transparent 70%); }
.dash-status-swal--warning { color: #e8b14a; }
.dash-status-swal--warning .dash-status-swal-title { color: var(--primary-color); }
.dash-status-swal--warning .dash-status-swal-text { color: var(--secondary-color); }
.dash-status-swal--warning .dash-status-swal-orb { background: radial-gradient(circle, rgba(232,177,74,0.18), transparent 70%); }
.dash-status-swal--info { color: #5db7d8; }
.dash-status-swal--info .dash-status-swal-title { color: var(--primary-color); }
.dash-status-swal--info .dash-status-swal-text { color: var(--secondary-color); }
.dash-status-swal--info .dash-status-swal-orb { background: radial-gradient(circle, rgba(93,183,216,0.18), transparent 70%); }
.dash-users-hero { display: flex; align-items: center; gap: 1.25rem; padding: 1.15rem 1.2rem; border-bottom: 1px solid rgba(0,0,0,0.05); background: linear-gradient(180deg, rgba(192,234,238,0.42), rgba(192,234,238,0.28)); }
.dash-users-hero-figure { flex: 0 0 150px; display: flex; align-items: center; justify-content: center; }
.dash-users-hero-figure img { max-width: 120px; max-height: 100px; object-fit: contain; display: block; }
.dash-users-hero-text { min-width: 0; }
.dash-users-hero-title { font-size: 1.35rem; font-weight: 800; color: var(--primary-color); line-height: 1.2; margin-bottom: .35rem; }
.dash-users-hero-desc { font-size: 1rem; line-height: 1.6; color: var(--text-color); opacity: .88; max-width: 860px; }
/* =========================================================
   DASH MODAL SYSTEM - UNIFIED
========================================================= */
.dash-modal .modal-dialog.dash-modal-dialog { max-width: 1200px; }
.dash-modal .dash-modal-content { background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(248,251,252,0.98)); border: 1px solid rgba(0,0,0,0.06); border-radius: 22px; overflow: hidden; box-shadow: 0 20px 60px rgba(0,0,0,0.18); }
.dash-modal .dash-modal-header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem 1.4rem 1rem 1.4rem; border-bottom: 1px solid rgba(0,0,0,0.06); background: radial-gradient(circle at top right, var(--third-light-color-fade), transparent 30%), linear-gradient(180deg, rgba(255,255,255,0.98), rgba(245,249,250,0.95)); }
.dash-modal-title-wrap { display: flex; align-items: center; gap: 1rem; min-width: 0; }
.dash-modal-icon { width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: var(--primary-light-color-fade); border: 1px solid var(--primary-color); color: var(--primary-color); font-size: 1.45rem; flex: 0 0 auto; }
.dash-modal-title-block { min-width: 0; }
.dash-modal-title { margin: 0 !important; font-size: 1.55rem !important; font-weight: 700 !important; color: var(--primary-color) !important; line-height: 1.15; }
.dash-modal-subtitle { margin-top: .2rem; font-size: .95rem; color: var(--text-color); opacity: .85; }
.dash-modal-device-code { color: var(--secondary-color); font-weight: 700; word-break: break-all; }
.dash-modal-actions-top { display: flex; align-items: center; gap: .65rem; }
.dash-help-trigger, .dash-modal-close { width: 42px; height: 42px; border: none; border-radius: 12px; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: all .18s ease; }
.dash-help-trigger { background: var(--third-light-color-fade); color: var(--third-color); border: 1px solid var(--third-color); }
.dash-help-trigger:hover { transform: translateY(-2px); background: var(--third-color); color: var(--text-color); }
.dash-modal-close { background: rgba(0,0,0,0.04); color: #6b7280; border: 1px solid rgba(0,0,0,0.08); }
.dash-modal-close:hover { transform: translateY(-2px); background: var(--error-light-color-fade); color: var(--error-color); border-color: var(--error-color); }
.dash-modal-body { padding: 1.25rem 1.4rem 1.1rem 1.4rem !important; background: transparent; }
.dash-modal-section { display: flex; flex-direction: column; gap: 1rem; }
/* =========================================================
   HERO BLOCK - GENERIC FOR ALL MODALS
========================================================= */
.dash-modal-hero { display: grid; grid-template-columns: 180px 1fr; gap: 1rem; align-items: center; border: 1px solid var(--secondary-color); background: var(--secondary-light-color-fade); border-radius: 18px 18px 0px 0px; padding: 1rem 1.1rem; }
.dash-modal-hero-media { display: flex; align-items: center; justify-content: center; }
.dash-modal-hero-media img { width: 100%; max-width: 150px; height: auto; object-fit: contain; display: block; }
.dash-modal-hero-content { min-width: 0; }
.dash-modal-hero-title { font-size: 1.05rem; font-weight: 700; color: var(--primary-color); margin-bottom: .35rem; line-height: 1.35; }
.dash-modal-hero-desc { font-size: .95rem; color: var(--text-color); line-height: 1.6; opacity: .9; }
/* modifier όταν θες πιο compact */
.dash-modal-hero--compact { grid-template-columns: 140px 1fr; }
.dash-modal-hero--compact .dash-modal-hero-media img { max-width: 110px; }
/* =========================================================
   NOTES / EDITOR CARD
========================================================= */
.dash-editor-card { border: 1px solid rgba(0,0,0,0.08); border-radius: 18px; background: rgba(255,255,255,0.85); overflow: hidden; box-shadow: 0 8px 24px rgba(0,0,0,0.05); }
.dash-editor-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1rem; border-bottom: 1px solid rgba(0,0,0,0.06); background: linear-gradient(180deg, rgba(255,255,255,0.95), rgba(245,248,250,0.95)); }
.dash-editor-card-label { display: flex; align-items: center; gap: .5rem; font-weight: 700; color: var(--primary-color); }
.dash-editor-card-tip { font-size: .88rem; color: var(--text-color); opacity: .7; text-align: right; }
.dash-editor-card-wrap { padding: 1rem; }
/* =========================================================
   FOOTER
========================================================= */
.dash-modal-footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.4rem 1.2rem 1.4rem; border-top: 1px solid rgba(0,0,0,0.06); background: linear-gradient(180deg, rgba(250,252,253,0.95), rgba(245,248,250,0.98)); }
.dash-modal-footer-info { display: flex; align-items: center; gap: .55rem; font-size: .92rem; color: var(--text-color); opacity: .78; }
.dash-modal-footer-info i { color: var(--secondary-color); font-size: 1rem; }
.dash-modal-footer-actions { display: flex; align-items: center; gap: .7rem; }
.dash-modal-btn-secondary, .dash-modal-btn-primary { min-height: 44px; border-radius: 12px !important; padding: .75rem 1.15rem !important; display: inline-flex !important; align-items: center; gap: .45rem; }
/* =========================================================
   TABLE SHELL
========================================================= */
.dash-table-shell { border: 1px solid var(--secondary-color); border-radius: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(248,251,252,0.86)); box-shadow: 0 10px 28px rgba(0,0,0,0.05); overflow: hidden; border: 1px solid var(--secondary-color); border-radius: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.72), rgba(248,251,252,0.86)); box-shadow: 0 10px 28px rgba(0,0,0,0.05); overflow: hidden; }
.dash-table-shell-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid rgba(0,0,0,0.05); background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(243,248,249,0.90)); display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.1rem; border-bottom: 1px solid rgba(0,0,0,0.05); background: linear-gradient(180deg, rgba(255,255,255,0.82), rgba(243,248,249,0.90)); }
.dash-table-shell-title { display: flex; align-items: center; gap: .55rem; font-size: 1rem; font-weight: 700; color: var(--primary-color); display: flex; align-items: center; gap: .55rem; font-size: 1rem; font-weight: 700; color: var(--primary-color); }
.dash-table-shell-title i { font-size: 1.05rem; color: var(--secondary-color); font-size: 1.05rem; color: var(--secondary-color); }
.dash-table-shell-desc { font-size: .92rem; color: var(--text-color); opacity: .72; text-align: right; font-size: .92rem; color: var(--text-color); opacity: .72; text-align: right; }
.dash-table-shell-body { padding: 1rem; padding: 1rem; }
/* =========================================================
   PER MODAL SMALL FIXES
========================================================= */
#UsersByDeviceModal .modal-body { padding: 1.2rem 1.35rem 1.35rem 1.35rem !important; padding: 1.2rem 1.35rem 1.35rem 1.35rem !important; }
#UsersByDeviceModal .dt-container { margin: 0 !important; border-radius: 16px !important; margin: 0 !important; border-radius: 16px !important; }
#UsersByDeviceModal table.dataTable { margin-top: 0 !important; margin-top: 0 !important; }
/* =========================================================
   MOBILE
========================================================= */
.dash-serial-hint { display: grid; grid-template-columns: 180px 1fr; gap: 1rem; align-items: center; margin-bottom: 1rem; padding: 1rem; border-radius: 18px; background: rgba(255,255,255,0.72); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 6px 18px rgba(0,0,0,0.04); }
.dash-serial-hint-media { display: flex; align-items: center; justify-content: center; }
.dash-serial-hint-media img { width: 100%; max-width: 170px; border-radius: 12px; object-fit: contain; display: block; }
.dash-serial-hint-title { font-size: 1rem; font-weight: 700; color: var(--primary-color); margin-bottom: .3rem; }
.dash-serial-hint-text { font-size: .94rem; line-height: 1.5; color: var(--text-color); opacity: .85; }
.dash-modal-hero--with-serial { align-items: center; }
.dash-modal-hero-sn-inline { margin-top: 1rem; display: grid; grid-template-columns: minmax(0, 1fr) 220px; gap: 1rem; align-items: center; width: 100%; max-width: 760px; padding: .95rem 1rem; border-radius: 16px; background: rgba(255,255,255,.42); border: 1px solid rgba(0,0,0,.05); box-shadow: 0 8px 20px rgba(0,0,0,.04); }
.dash-modal-hero-sn-inline-badge, .dash-modal-hero-sn-inline-text { grid-column: 1; }
.dash-modal-hero-sn-inline-example { grid-column: 2; grid-row: 1 / span 2; display: flex; align-items: center; justify-content: center; min-width: 0; }
.dash-modal-hero-sn-inline-example img { width: 100%; max-width: 220px; height: auto; display: block; border-radius: 12px; background: rgba(18,22,28,.94); border: 1px solid rgba(255,255,255,.08); box-shadow: 0 10px 24px rgba(0,0,0,.12); object-fit: contain; }
.dash-modal-hero-sn-inline-text { font-size: .92rem; line-height: 1.45; color: var(--text-color); opacity: .86; max-width: 100%; }
.dash-serial-card { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 1.25rem; align-items: center; margin-top: 1rem; padding: 1.15rem 1.25rem; border: 1px solid rgba(0,0,0,.05); border-radius: 18px; background: rgba(255,255,255,.42); box-shadow: 0 8px 20px rgba(0,0,0,.04); }
.dash-serial-card-content { min-width: 0; }
.dash-serial-card-badge { display: inline-flex; align-items: center; gap: .45rem; padding: .45rem .8rem; border-radius: 999px; background: var(--third-light-color-fade); border: 1px solid var(--third-color); color: var(--primary-color); font-size: .84rem; font-weight: 700; margin-bottom: .8rem; }
.dash-serial-card-title { font-size: 1.08rem; font-weight: 700; color: var(--primary-color); margin-bottom: .35rem; }
.dash-serial-card-text { font-size: .95rem; line-height: 1.55; color: var(--text-color); opacity: .88; max-width: 560px; }
.dash-serial-card-media { display: flex; align-items: center; justify-content: center; }
.dash-serial-card-media img { width: 100%; max-width: 260px; height: auto; display: block; border-radius: 14px; background: #111827; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 10px 24px rgba(0,0,0,.14); object-fit: contain; }
.dash-inline-info { padding: .9rem 1rem; border-radius: 14px; background: var(--secondary-light-color-fade); border: 1px solid var(--secondary-color); color: var(--text-color); line-height: 1.55; }
.dash-inline-info strong { color: var(--primary-color); }
.dash-logs-shell .dash-table-shell-body { padding: 1rem; }
#CatalogDeviceLogsModal .modal-dialog { max-width: 1800px !important; }
#CatalogDeviceLogsModal .dash-modal-body { padding: 1rem 1.2rem 1.2rem 1.2rem !important; }
#device-catalog-logs-table_wrapper .dt-layout-row:first-child { margin-bottom: .85rem; }
#device-catalog-logs-table { width: 100% !important; }
#device-catalog-logs-table td, #device-catalog-logs-table th { vertical-align: top !important; }
.dash-log-row { border: 1px solid rgba(0,0,0,.06); border-left: 4px solid var(--secondary-color); border-radius: 18px; background: linear-gradient(180deg, rgba(255,255,255,.78), rgba(244,249,250,.88)); box-shadow: 0 8px 22px rgba(0,0,0,.04); overflow: hidden; }
.dash-log-row-head { display: grid; grid-template-columns: 110px 72px minmax(260px, 320px) 1fr auto; gap: .9rem; align-items: start; padding: .95rem 1rem; }
.dash-log-time { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92rem; font-weight: 700; color: var(--text-color); text-align: center; line-height: 1.45; }
.dash-log-direction { display: flex; flex-direction: column; align-items: center; gap: .35rem; }
.dash-log-origin-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 56px; padding: .28rem .5rem; border-radius: 999px; font-size: .68rem; font-weight: 800; border: 1px solid rgba(0,0,0,.08); }
.dash-log-origin-badge.is-rx { background: var(--third-light-color-fade); color: var(--third-color); border-color: var(--third-color); }
.dash-log-origin-badge.is-tx { background: var(--primary-light-color-fade); color: var(--primary-color); border-color: var(--primary-color); }
.dash-log-direction-icon { font-size: 1.2rem; }
.dash-log-main { min-width: 0; }
.dash-log-title { font-size: 1rem; font-weight: 800; color: var(--primary-color); margin-bottom: .15rem; line-height: 1.25; }
.dash-log-message { font-size: .92rem; line-height: 1.45; color: var(--text-color); opacity: .86; }
.dash-log-summary { display: flex; flex-wrap: wrap; gap: .45rem; align-content: flex-start; }
.dash-log-chip { display: inline-flex; align-items: center; gap: .35rem; padding: .42rem .72rem; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1.2; border: 1px solid rgba(0,0,0,.08); background: rgba(255,255,255,.74); color: var(--text-color); }
.dash-log-chip.is-info { background: var(--primary-light-color-fade); color: var(--primary-color); border-color: var(--primary-color); }
.dash-log-chip.is-success { background: var(--success-light-color-fade); color: var(--success-color); border-color: var(--success-color); }
.dash-log-chip.is-warning { background: var(--third-light-color-fade); color: var(--third-color); border-color: var(--third-color); }
.dash-log-chip.is-danger { background: var(--error-light-color-fade); color: var(--error-color); border-color: var(--error-color); }
.dash-log-expand { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid rgba(0,0,0,.08); border-radius: 12px; background: rgba(255,255,255,.9); color: var(--primary-color); cursor: pointer; transition: all .18s ease; }
.dash-log-expand:hover { transform: translateY(-2px); background: var(--primary-light-color-fade); border-color: var(--primary-color); }
.dash-log-row.is-open .dash-log-expand { background: var(--primary-color); color: var(--text-color-light); }
.dash-log-details { border-top: 1px solid rgba(0,0,0,.06); padding: 1rem; background: rgba(255,255,255,.55); }
.dash-log-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; }
.dash-log-group { border: 1px solid rgba(0,0,0,.06); border-radius: 16px; background: rgba(255,255,255,.8); overflow: hidden; }
.dash-log-group-head { display: flex; align-items: center; gap: .5rem; padding: .8rem .9rem; border-bottom: 1px solid rgba(0,0,0,.05); background: linear-gradient(180deg, rgba(255,255,255,.95), rgba(245,249,250,.92)); font-size: .92rem; font-weight: 800; color: var(--primary-color); }
.dash-log-group-body { padding: .85rem .9rem; }
.dash-log-kv { display: flex; flex-wrap: wrap; gap: .45rem; }
.dash-log-kv-item { display: inline-flex; align-items: center; gap: .35rem; padding: .4rem .65rem; border-radius: 999px; font-size: .76rem; font-weight: 700; border: 1px solid rgba(0,0,0,.08); background: rgba(240,247,248,.95); color: var(--text-color); }
.dash-log-output-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .75rem; }
.dash-log-output-card { border: 1px solid rgba(0,0,0,.06); border-radius: 14px; background: rgba(248,251,252,.95); padding: .8rem; }
.dash-log-output-title { font-size: .9rem; font-weight: 800; color: var(--primary-color); margin-bottom: .55rem; }
.dash-log-week-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .5rem; margin-top: .55rem; }
.dash-log-week-item { border-radius: 12px; padding: .55rem .65rem; background: rgba(255,255,255,.9); border: 1px solid rgba(0,0,0,.06); }
.dash-log-week-day { font-size: .75rem; font-weight: 800; color: var(--primary-color); margin-bottom: .2rem; }
.dash-log-week-slots { font-size: .74rem; line-height: 1.45; color: var(--text-color); opacity: .88; }
.dash-log-raw { margin-top: .2rem; padding: .8rem; border-radius: 14px; background: #f8fafb; border: 1px solid rgba(0,0,0,.08); font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .76rem; line-height: 1.45; white-space: pre-wrap; word-break: break-word; max-height: 260px; overflow: auto; }
#device-catalog-logs-table tr.shown td { background: transparent !important; }
#device-catalog-logs-table tr.child td { padding: 0 !important; border: 0 !important; background: transparent !important; }
.leaflet-popup-content-wrapper { border-radius: 24px; padding: 0px !important; overflow: hidden; background: rgba(255,255,255,.96); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 24px 70px rgba(15,23,42,.22); border: 1px solid rgba(15,23,42,.08); }
.leaflet-popup-content { margin: 0 !important; min-width: 320px; padding: 0px !important; }
.leaflet-popup-tip { background: rgba(255,255,255,.96); box-shadow: none; }
.iot-map-popup { color: #163a36; background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,250,249,.96) 100%); }
.iot-map-popup__card { background: rgba(255,255,255,.88); border: 1px solid rgba(15,23,42,.08); border-radius: 18px; padding: 14px 15px; box-shadow: 0 8px 24px rgba(15,23,42,.05); }
.iot-map-popup__card-label { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: 13px; font-weight: 700; color: #12786e; }
.iot-map-popup__card-label i { font-size: 16px; }
.iot-map-popup__card-value { font-size: 14px; line-height: 1.5; color: #445761; word-break: break-word; }
.iot-map-popup__actions { margin-top: 14px; }
.iot-map-popup__action-btn { width: 100%; display: flex; align-items: center; justify-content: center; gap: 8px; border-radius: 16px !important; min-height: 46px; }
.iot-map-popup__footer { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(15,23,42,.08); display: flex; align-items: center; gap: 8px; font-size: 12px; color: #70828c; }
.iot-map-popup__loading { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 14px 15px; border-radius: 16px; background: rgba(17,138,127,.06); border: 1px dashed rgba(17,138,127,.18); color: #12786e; font-size: 14px; font-weight: 600; }
.iot-map-popup__row { display: flex; flex-direction: column; gap: 6px; padding: 14px 15px; border-radius: 18px; background: rgba(255,255,255,.88); border: 1px solid rgba(15,23,42,.08); }
.iot-map-popup__label { display: flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; color: #12786e; }
.iot-map-popup__value { font-size: 14px; line-height: 1.5; color: #445761; word-break: break-word; }
.iot-map-popup__status { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 800; border: 1px solid transparent; }
.iot-inline-stack { display: flex; flex-direction: column; gap: 8px; }
.iot-inline-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.iot-inline-pill i { font-size: 14px; }
.iot-inline-pill--success { background: rgba(34,197,94,.10); color: #15803d; border-color: rgba(34,197,94,.24); }
.iot-inline-pill--danger { background: rgba(239,68,68,.10); color: #b91c1c; border-color: rgba(239,68,68,.24); }
.iot-inline-pill--warning { background: rgba(245,158,11,.12); color: #b45309; border-color: rgba(245,158,11,.26); }
.iot-inline-pill--primary { background: rgba(17,138,127,.10); color: #0f766e; border-color: rgba(17,138,127,.22); }
.iot-inline-pill--secondary { background: rgba(99,102,241,.10); color: #4f46e5; border-color: rgba(99,102,241,.22); }
.iot-inline-pill--neutral { background: rgba(148,163,184,.12); color: #475569; border-color: rgba(148,163,184,.24); }
.iot-inline-meta { display: flex; align-items: center; gap: 6px; font-size: 12px; color: #6b7280; line-height: 1.4; }
.iot-inline-meta i { font-size: 14px; }
.iot-inline-meta--danger { color: #b91c1c; font-weight: 600; }
.iot-inline-list { display: flex; flex-direction: column; gap: 8px; }
.iot-inline-list-item { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 14px; background: rgba(248,250,252,.92); border: 1px solid rgba(15,23,42,.06); }
.iot-inline-list-label { display: flex; align-items: flex-start; gap: 8px; min-width: 0; color: #334155; font-size: 13px; font-weight: 600; line-height: 1.4; }
.iot-inline-list-label i { font-size: 15px; color: #12786e; margin-top: 1px; }
.iot-inline-list-label span { word-break: break-word; }
.iot-map-popup__top-main { display: flex; align-items: flex-start; gap: 12px; }
.iot-map-popup__top-content { min-width: 0; flex: 1; display: flex; flex-direction: column; gap: 10px; }
.iot-map-popup__top-meta { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.leaflet-control-fullscreen a { width: 40px !important; height: 40px !important; line-height: 40px !important; border-radius: 14px !important; background: #ffffff !important; border: 1px solid rgba(15,23,42,.08) !important; box-shadow: 0 10px 24px rgba(15,23,42,.12); color: #0f766e !important; }
.leaflet-control-fullscreen a:hover { background: #f8fafc !important; color: #0b5e56 !important; }
.iot-map-toolbar { display: flex; align-items: center; justify-content: flex-start; gap: 10px; flex-wrap: wrap; margin: 0; }
.iot-map-toolbar--header { margin-left: 0; }
.iot-map-toolbar__group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.iot-map-filter-btn { min-height: 38px; border-radius: 12px !important; display: inline-flex; align-items: center; gap: 8px; font-weight: 700; white-space: nowrap; }
.iot-map-filter-count { min-width: 24px; height: 24px; padding: 0 6px; border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; background: rgba(255,255,255,.18); color: #fff; border: 1px solid rgba(255,255,255,.18); margin-left: 2px; }
.iot-map-filter-btn.active { background: var(--primary-color) !important; border-color: var(--primary-color) !important; color: #fff !important; box-shadow: 0 8px 20px rgba(15,23,42,.14); transform: translateY(-1px); }
.iot-map-filter-btn.active i, .iot-map-filter-btn.active span { color: #fff !important; }
.iot-map-filter-btn.active .iot-map-filter-count { background: rgba(255,255,255,.16); border-color: rgba(255,255,255,.24); color: #fff; }
/* === IOT MAP TOOL

/* === LEAFLET THEME CONTROLS START === */
#thessaloniki-app.map-theme-dark .leaflet-control-layers, #thessaloniki-app.map-theme-dark .leaflet-control-zoom a, #thessaloniki-app.map-theme-dark .leaflet-control-zoom-fullscreen { background: rgba(15,23,42,.92) !important; color: #ffffff !important; border: none !important; }
#thessaloniki-app.map-theme-dark .leaflet-control-layers-expanded { background: rgba(15,23,42,.92) !important; color: #e5eef5 !important; }
#thessaloniki-app.map-theme-dark .leaflet-control-layers-expanded label { color: #e5eef5 !important; font-weight: 600; }
#thessaloniki-app.map-theme-light .leaflet-control-layers, #thessaloniki-app.map-theme-light .leaflet-control-zoom a, #thessaloniki-app.map-theme-light .leaflet-control-zoom-fullscreen { background: rgba(255,255,255,.96) !important; color: #0f172a !important; border: 1px solid rgba(15,23,42,.08) !important; }
#thessaloniki-app.map-theme-light .leaflet-control-layers-expanded { background: rgba(255,255,255,.96) !important; color: #1e293b !important; }
#thessaloniki-app.map-theme-light .leaflet-control-layers-expanded label { color: #1e293b !important; font-weight: 600; }
.leaflet-control-layers { border: none !important; border-radius: 18px !important; overflow: hidden; box-shadow: 0 18px 45px rgba(15,23,42,.20) !important; }
.leaflet-control-layers-expanded { padding: 12px 14px !important; min-width: 170px; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.leaflet-control-layers-toggle, .leaflet-control-zoom-fullscreen { position: relative; box-shadow: 0 10px 24px rgba(15,23,42,.20); background-image: none !important; }
.leaflet-control-layers-toggle::before { content: "☾"; font-size: 18px; font-weight: 700; line-height: 1; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; }
.leaflet-control-zoom-fullscreen { font-size: 0 !important; text-indent: -9999px !important; overflow: hidden !important; }
.leaflet-control-zoom-fullscreen::before { content: "⛶"; font-size: 18px; font-weight: 700; line-height: 1; position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; text-indent: 0 !important; }
#thessaloniki-app.map-theme-dark .leaflet-control-layers-toggle::before, #thessaloniki-app.map-theme-dark .leaflet-control-zoom-fullscreen::before { color: #ffffff; }
#thessaloniki-app.map-theme-light .leaflet-control-layers-toggle::before, #thessaloniki-app.map-theme-light .leaflet-control-zoom-fullscreen::before { color: #0f172a; }
/* === LEAFLET THEME CONTROLS END === */
/* === QV DEVICE ACTIONS CARD LAYOUT START === */
.qv-dashboard--cards { padding: 20px; background: #f7fbfa; }
.qv-dashboard-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding-bottom: 14px; margin-bottom: 14px; border-bottom: 1px solid rgba(15,23,42,.08); }
.qv-dashboard-header-kicker { font-size: .9rem; font-weight: 700; color: #6b7280; }
.qv-dashboard-header-id { font-size: 2rem; line-height: 1.1; font-weight: 800; color: var(--primary-color); word-break: break-word; }
.qv-dashboard-header-badges { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.qv-panel-card { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 18px; padding: 16px; margin-bottom: 16px; box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.qv-panel-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(15,23,42,.08); }
.qv-panel-card-title { display: flex; align-items: center; gap: 8px; font-size: 1.15rem; font-weight: 800; color: var(--primary-color); }
.qv-panel-card-subtitle { margin-top: 4px; font-size: .9rem; color: #6b7280; }
.qv-inline-count { display: inline-flex; align-items: center; justify-content: center; min-width: 28px; height: 28px; padding: 0 8px; border-radius: 999px; background: rgba(0,150,136,.12); color: var(--primary-color); font-size: .85rem; font-weight: 800; }
.qv-state-grid-3 { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.qv-state-group { background: #eef8f7; border: 1px solid rgba(0,150,136,.10); border-radius: 14px; padding: 14px; }
.qv-state-group-title { font-size: 1rem; font-weight: 800; color: #4b5563; margin-bottom: 12px; }
.qv-state-group-body { display: flex; flex-direction: column; gap: 12px; }
.qv-state-item-card { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 14px; padding: 12px; }
.qv-state-item-card--click { cursor: pointer; }
.qv-state-item-card--click:hover { border-color: rgba(0,150,136,.28); box-shadow: 0 8px 18px rgba(0,150,136,.08); }
.qv-state-item-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; }
.qv-state-item-title { font-size: 1rem; font-weight: 800; color: #374151; }
.qv-state-item-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; }
.qv-state-badge--on { background: rgba(16,185,129,.12); color: #047857; border: 1px solid rgba(16,185,129,.22); }
.qv-state-badge--off { background: rgba(148,163,184,.12); color: #475569; border: 1px solid rgba(148,163,184,.22); }
.qv-state-item-meta { display: flex; gap: 6px; flex-wrap: wrap; font-size: .92rem; }
.qv-state-meta-label { color: #6b7280; font-weight: 600; }
.qv-state-meta-value { color: #1f2937; font-weight: 700; }
.qv-state-row-sub { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.qv-state-mini-chip { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; }
.qv-state-mini-chip--counter, .qv-state-mini-chip--value { background: var(--primary-color); color: #fff; }
.qv-state-mini-chip--muted { background: #eef2f7; color: #64748b; border: 1px solid rgba(100,116,139,.18); }
.qv-inline-action-btn { border: none; border-radius: 12px; background: var(--primary-color); color: #fff; font-weight: 700; padding: 8px 12px; display: inline-flex; align-items: center; gap: 8px; }
.qv-settings-cards { display: flex; flex-direction: column; gap: 16px; }
.qv-setting-card-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 14px; }
.qv-setting-card-item { background: #f9fbfb; border: 1px solid rgba(15,23,42,.08); border-radius: 14px; padding: 14px; }
.qv-setting-card-item-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.qv-setting-card-item-title { font-size: 1.05rem; font-weight: 800; color: #0f766e; }
.qv-setting-mode-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; background: rgba(15,118,110,.10); color: #0f766e; font-size: .82rem; font-weight: 800; border: 1px solid rgba(15,118,110,.16); }
.qv-setting-kv-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
.qv-setting-kv-grid--wide { grid-template-columns: repeat(3,minmax(0,1fr)); margin-bottom: 14px; }
.qv-setting-kv { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 12px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; }
.qv-setting-kv span { font-size: .82rem; color: #6b7280; font-weight: 600; }
.qv-setting-kv strong { font-size: .95rem; color: #1f2937; font-weight: 800; }
.qv-action-row { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.qv-action-tile { border: none; border-radius: 14px; padding: 12px 14px; display: flex; align-items: flex-start; gap: 10px; text-align: left; min-width: 260px; background: #14b8b8; color: #fff; box-shadow: 0 8px 18px rgba(20,184,184,.18); }
.qv-action-tile--small { min-width: 240px; }
.qv-action-tile--warning { background: #eabf59; color: #2b2b2b; box-shadow: 0 8px 18px rgba(234,191,89,.18); }
.qv-action-tile--danger { background: #127c69; color: #fff; }
.qv-action-tile--success { background: #0f7b67; color: #fff; }
.qv-action-tile-icon { font-size: 1.25rem; line-height: 1; margin-top: 2px; }
.qv-action-tile-title { font-size: 1rem; font-weight: 800; line-height: 1.2; }
.qv-action-tile-subtitle { margin-top: 3px; font-size: .82rem; line-height: 1.3; opacity: .92; }
.qv-state-row-actions { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 8px; }
.qv-card-mini-btn { border: none; border-radius: 10px; background: rgba(15,118,110,.10); color: #0f766e; font-weight: 800; font-size: .85rem; padding: 8px 12px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(15,118,110,.14); }
.qv-card-mini-btn:hover { background: rgba(15,118,110,.16); }
.qv-inline-toggle-wrap { position: relative; display: inline-flex; align-items: center; gap: 10px; cursor: pointer; user-select: none; transition: opacity .2s ease; }
.qv-inline-toggle-input { display: none; }
.qv-inline-toggle-slider { position: relative; width: 52px; height: 30px; border-radius: 999px; background: #cbd5e1; transition: background .2s ease, box-shadow .2s ease, transform .2s ease; box-shadow: inset 0 0 0 1px rgba(15,23,42,.08); }
.qv-inline-toggle-slider::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(15,23,42,.16); transition: all .2s ease; }
.qv-inline-toggle-input:checked + .qv-inline-toggle-slider { background: var(--primary-color); }
.qv-inline-toggle-input:checked + .qv-inline-toggle-slider::after { left: 25px; }
.qv-inline-toggle-input:disabled + .qv-inline-toggle-slider { opacity: .72; cursor: not-allowed; }
.qv-inline-toggle-label { font-size: .9rem; font-weight: 800; color: #334155; }
.qv-inline-toggle-note {
  margin-top: 6px;
  font-size: .78rem;
  color: #6b7280;
  display: flex;
  align-items: center;
  gap: 8px;
  min-height: 18px;
}

.qv-inline-toggle-note.is-busy {
  color: #0f766e;
  font-weight: 700;
}

.qv-inline-toggle-note.is-busy::before {
  content: "";
  width: 12px;
  height: 12px;
  flex: 0 0 12px;
  border-radius: 50%;
  border: 2px solid rgba(15,118,110,.18);
  border-top-color: #0f766e;
  animation: qvSpin .8s linear infinite;
}
.qv-inline-toggle-note.is-busy {
  color: #0f766e;
  font-weight: 700;
}

.qv-inline-toggle-note.is-busy::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid rgba(15,118,110,.18);
  border-top-color: #0f766e;
  animation: qvSpin .8s linear infinite;
  flex: 0 0 12px;
}
.qv-output-state-badge.is-loading {
  position: relative;
  padding-left: 28px;
}

.qv-output-state-badge.is-loading::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 50%;
  width: 10px;
  height: 10px;
  margin-top: -5px;
  border-radius: 50%;
  border: 2px solid rgba(15,118,110,.18);
  border-top-color: currentColor;
  animation: qvSpin .8s linear infinite;
}
/* === QV DEVICE ACTIONS CARD LAYOUT END === */
/* === QV OUTPUT MODE WIZARD START === */
.qv-wizard-step-shell { display: flex; flex-direction: column; gap: 16px; }
.qv-wizard-step-indicator { display: flex; flex-wrap: wrap; gap: 8px; }
.qv-wizard-step-pill { min-height: 34px; padding: 8px 14px; border-radius: 999px; background: #eef2f7; color: #64748b; font-size: .85rem; font-weight: 800; border: 1px solid rgba(100,116,139,.14); }
.qv-wizard-step-pill.active { background: rgba(15,118,110,.10); color: #0f766e; border-color: rgba(15,118,110,.18); }
.qv-wizard-step-pill.done { background: rgba(16,185,129,.10); color: #047857; border-color: rgba(16,185,129,.18); }
.qv-choice-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 12px; }
.qv-choice-card { border: none; text-align: left; border-radius: 16px; padding: 16px; background: #ffffff; border: 1px solid rgba(15,23,42,.08); box-shadow: 0 8px 24px rgba(15,23,42,.06); }
.qv-choice-card:hover { border-color: rgba(15,118,110,.24); box-shadow: 0 12px 26px rgba(15,118,110,.10); transform: translateY(-1px); }
.qv-choice-card.is-current { border-color: rgba(15,118,110,.24); background: linear-gradient(180deg, rgba(15,118,110,.06) 0%, #ffffff 100%); }
.qv-choice-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.qv-choice-card-title { font-size: 1rem; font-weight: 800; color: #0f172a; }
.qv-choice-card-badge { min-height: 28px; padding: 5px 10px; border-radius: 999px; background: #eef2f7; color: #64748b; font-size: .78rem; font-weight: 800; }
.qv-choice-card-badge--current { background: rgba(15,118,110,.10); color: #0f766e; }
.qv-choice-card-text { font-size: .88rem; color: #64748b; line-height: 1.45; }
.qv-choice-selected-bar { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-radius: 12px; background: #f8fafc; border: 1px solid rgba(15,23,42,.06); font-size: .9rem; }
.qv-choice-helper { font-size: .86rem; color: #6b7280; }
.qv-choice-card-icon { width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.08); color: #0f766e; font-size: 1.35rem; margin-bottom: 10px; }
.qv-inline-help-topbar { display: flex; justify-content: flex-end; margin-bottom: 12px; }
.qv-inline-help-btn { border: none; border-radius: 12px; background: rgba(15,118,110,.10); color: #0f766e; font-weight: 800; padding: 9px 14px; display: inline-flex; align-items: center; gap: 8px; border: 1px solid rgba(15,118,110,.14); }
.qv-inline-help-panel { margin-bottom: 14px; border: 1px solid rgba(15,118,110,.14); background: #f8fffe; border-radius: 16px; padding: 14px; }
.qv-inline-help-panel-head { display: flex; align-items: center; gap: 10px; font-size: 1rem; font-weight: 800; color: #0f766e; margin-bottom: 12px; }
.qv-inline-help-panel-list { display: flex; flex-direction: column; gap: 10px; }
.qv-inline-help-item { display: flex; align-items: flex-start; gap: 10px; }
.qv-inline-help-item-icon { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.08); color: #0f766e; flex: 0 0 34px; }
.qv-inline-help-item-title { font-size: .92rem; font-weight: 800; color: #1f2937; }
.qv-inline-help-item-text { font-size: .84rem; color: #6b7280; line-height: 1.45; }
.qv-choice-card--output .qv-choice-card-head { margin-bottom: 10px; }
.qv-choice-card-mode-row { margin-bottom: 10px; }
.qv-choice-mode-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; border: 1px solid transparent; }
.qv-choice-card-badge--active { background: rgba(16,185,129,.12); color: #047857; border: 1px solid rgba(16,185,129,.18); }
.qv-choice-card-badge--inactive { background: #eef2f7; color: #64748b; border: 1px solid rgba(100,116,139,.14); }
.qv-choice-mode-badge--mode-0 { background: rgba(14,165,233,.10); color: #0369a1; border-color: rgba(14,165,233,.16); }
.qv-choice-mode-badge--mode-1 { background: rgba(249,115,22,.10); color: #c2410c; border-color: rgba(249,115,22,.16); }
.qv-choice-mode-badge--mode-2 { background: rgba(20,184,166,.10); color: #0f766e; border-color: rgba(20,184,166,.16); }
.qv-choice-mode-badge--mode-3 { background: rgba(99,102,241,.10); color: #4338ca; border-color: rgba(99,102,241,.16); }
.qv-choice-mode-badge--mode-4 { background: rgba(234,179,8,.10); color: #a16207; border-color: rgba(234,179,8,.16); }
.qv-choice-mode-badge--mode-5 { background: rgba(168,85,247,.10); color: #7e22ce; border-color: rgba(168,85,247,.16); }
.qv-choice-mode-badge--mode-6 { background: rgba(244,114,182,.10); color: #be185d; border-color: rgba(244,114,182,.16); }
.qv-step3-mode-nav { margin-bottom: 14px; }
.qv-wizard-step-indicator--inner { margin-bottom: 10px; }
.qv-wizard-step-pill--nav { border: none; cursor: pointer; }
.qv-wizard-step-pill--nav:hover { background: rgba(15,118,110,.08); color: #0f766e; }
.qv-choice-selected-bar--compact { margin-top: 4px; }
.qv-choice-selected-sep { color: #94a3b8; }
.qv-step3-summary-wrap { margin-bottom: 14px; }
.qv-step3-summary { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; padding: 12px 14px; border-radius: 14px; background: #f8fafc; border: 1px solid rgba(15,23,42,.08); font-size: .92rem; }
.qv-step3-custom-area { margin-bottom: 12px; }
.qv-mode-panel { border: 1px solid rgba(15,118,110,.18); border-radius: 16px; background: #fbfffe; padding: 16px; }
.qv-mode-panel-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; padding-bottom: 12px; border-bottom: 1px solid rgba(15,118,110,.12); }
.qv-mode-panel-title-wrap { display: flex; align-items: flex-start; gap: 12px; }
.qv-mode-panel-icon { width: 48px; height: 48px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.08); color: #0f766e; font-size: 1.3rem; }
.qv-mode-panel-title { font-size: 1.05rem; font-weight: 800; color: #0f766e; }
.qv-mode-panel-subtitle { margin-top: 4px; font-size: .88rem; color: #64748b; line-height: 1.45; }
.qv-manual-mode-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.qv-manual-mode-card { border: 1px solid rgba(15,23,42,.08); border-radius: 14px; background: #fff; padding: 14px; }
.qv-manual-mode-card-title { font-size: .98rem; font-weight: 800; color: #1f2937; margin-bottom: 8px; }
.qv-manual-mode-card-text { font-size: .86rem; color: #64748b; line-height: 1.45; margin-bottom: 12px; }
.qv-manual-toggle-wrap { display: flex; flex-direction: column; gap: 8px; }
.qv-card-mini-btn--primary { background: var(--primary-color); color: #fff; border-color: var(--primary-color); }
.qv-card-mini-btn--primary:hover { background: color-mix(in srgb, var(--primary-color) 88%, #000 12%); border-color: color-mix(in srgb, var(--primary-color) 88%, #000 12%); color: #fff; }
.qv-card-mini-btn--primary:disabled:hover { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.qv-step3-shell { display: flex; flex-direction: column; gap: 14px; }
.qv-mode-simple-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.qv-mode-simple-card { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 14px; padding: 14px; }
.qv-mode-simple-title { font-size: .96rem; font-weight: 800; color: #1f2937; margin-bottom: 8px; }
.qv-mode-simple-text { font-size: .86rem; color: #64748b; line-height: 1.45; }
.qv-mode-group { border: 1px solid rgba(15,118,110,.14); border-radius: 16px; background: #fff; padding: 14px; margin-top: 14px; }
.qv-mode-group--success { background: #f5fffb; border-color: rgba(16,185,129,.22); }
.qv-mode-group--danger { background: #fff8fa; border-color: rgba(244,63,94,.22); }
.qv-mode-group-title { font-size: 1rem; font-weight: 800; color: #0f766e; margin-bottom: 12px; }
.qv-logic-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 10px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.qv-logic-card { display: flex; align-items: center; gap: 12px; min-height: 84px; padding: 14px; border-radius: 14px; background: #fff; border: 1px solid rgba(15,23,42,.08); cursor: pointer; }
.qv-logic-card.is-selected { border-color: rgba(15,118,110,.24); box-shadow: 0 8px 18px rgba(15,118,110,.08); background: #f8fffe; }
.qv-logic-check { width: 20px; height: 20px; accent-color: var(--primary-color); flex: 0 0 20px; }
.qv-logic-card-icon { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.08); color: #0f766e; font-size: 1.15rem; flex: 0 0 42px; }
.qv-logic-card-title { font-size: .94rem; font-weight: 800; color: #1f2937; }
.qv-logic-card-subtitle { font-size: .82rem; color: #64748b; line-height: 1.4; margin-top: 3px; }
.qv-mode-note { margin-top: 12px; font-size: .84rem; color: #64748b; line-height: 1.45; }
.qv-step3-inline-error { margin-top: 12px; border-radius: 12px; padding: 10px 12px; background: #fff1f2; border: 1px solid rgba(244,63,94,.18); color: #be123c; font-size: .85rem; font-weight: 700; }
.qv-manual-mode-card--disabled { opacity: .62; filter: saturate(.75); }
.qv-manual-mode-card--disabled .qv-card-mini-btn { pointer-events: none; }
.qv-manual-mode-card--done { border-color: rgba(16,185,129,.22); background: #f8fffb; }
.qv-manual-step-head { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.qv-manual-step-badge { min-width: 82px; min-height: 30px; padding: 6px 10px; border-radius: 999px; background: #eef2f7; color: #64748b; font-size: .78rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.qv-manual-step-badge.is-done { background: rgba(16,185,129,.12); color: #047857; }
.qv-manual-step-badge.is-active { background: rgba(14,165,233,.12); color: #0369a1; }
.qv-manual-step-title { font-size: 0.8rem; font-weight: 800; color: #1f2937; }
.qv-manual-step-note { margin-top: 10px; font-size: .84rem; color: #64748b; line-height: 1.45; }
.qv-manual-toggle-wrap.is-loading,
.qv-state-row-sub.is-loading,
.qv-inline-toggle-wrap.is-loading {
  opacity: 1;
}
.qv-manual-toggle-wrap.is-loading .qv-inline-toggle-slider,
.qv-state-row-sub.is-loading .qv-inline-toggle-slider,
.qv-inline-toggle-wrap.is-loading .qv-inline-toggle-slider {
  box-shadow:
    0 0 0 3px rgba(15,118,110,.08),
    inset 0 0 0 1px rgba(15,118,110,.22);
}

.qv-manual-toggle-wrap.is-loading .qv-inline-toggle-note,
.qv-state-row-sub.is-loading .qv-inline-toggle-note,
.qv-inline-toggle-wrap.is-loading .qv-inline-toggle-note {
  color: #0f766e;
  font-weight: 700;
}

.qv-manual-toggle-wrap.is-loading .qv-inline-toggle-note::before,
.qv-state-row-sub.is-loading .qv-inline-toggle-note::before,
.qv-inline-toggle-wrap.is-loading .qv-inline-toggle-note::before {
  content: "";
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid rgba(15,118,110,.18);
  border-top-color: #0f766e;
  animation: qvSpin .8s linear infinite;
  flex: 0 0 12px;
}

.qv-manual-toggle-wrap.is-pending .qv-inline-toggle-note,
.qv-state-row-sub.is-pending .qv-inline-toggle-note,
.qv-inline-toggle-wrap.is-pending .qv-inline-toggle-note {
  color: #64748b;
  font-weight: 700;
}

.qv-spin { animation: qvSpin .9s linear infinite; }
@keyframes qvSpin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}
.qv-remote-mode-live { margin-top: 14px; }
.qv-remote-mode-loading { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 14px; background: #f8fafc; border: 1px solid rgba(15,23,42,.08); color: #64748b; font-weight: 700; }
.qv-remote-inline-error { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 14px; background: #fff1f2; border: 1px solid rgba(244,63,94,.18); color: #be123c; font-weight: 700; }
.qv-remote-mode-actions { margin-top: 14px; display: flex; flex-wrap: wrap; gap: 10px; }
.qv-remote-summary-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.qv-remote-summary-card--logic { grid-column: 1 / -1; }
.qv-remote-summary-card { background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 14px; padding: 14px; }
.qv-remote-summary-label { font-size: .82rem; color: #64748b; margin-bottom: 8px; font-weight: 700; }
.qv-remote-summary-value { display: flex; align-items: center; }
.qv-remote-summary-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 7px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; border: 1px solid transparent; }
.qv-remote-summary-badge.is-enabled { background: rgba(16,185,129,.12); color: #047857; border-color: rgba(16,185,129,.18); }
.qv-remote-summary-badge.is-disabled { background: #eef2f7; color: #64748b; border-color: rgba(100,116,139,.14); }
.qv-remote-summary-badge.is-logic { background: rgba(249,115,22,.10); color: #c2410c; border-color: rgba(249,115,22,.16); }
.qv-remote-summary-badge.is-count { background: rgba(59,130,246,.10); color: #1d4ed8; border-color: rgba(59,130,246,.16); }
.qv-remote-sources-wrap { margin-top: 14px; background: #fff; border: 1px solid rgba(15,23,42,.08); border-radius: 16px; padding: 14px; }
.qv-remote-sources-title { display: flex; align-items: center; gap: 8px; font-size: .96rem; font-weight: 800; color: #0f766e; margin-bottom: 12px; }
.qv-remote-sources-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.qv-remote-source-card { background: #f8fafc; border: 1px solid rgba(15,23,42,.06); border-radius: 14px; padding: 14px; }
.qv-remote-source-card-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 10px; }
.qv-remote-source-card-title { font-size: .92rem; font-weight: 800; color: #1f2937; }
.qv-remote-source-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 4px 10px; border-radius: 999px; font-size: .75rem; font-weight: 800; }
.qv-remote-source-badge--invert { background: rgba(244,63,94,.10); color: #be123c; }
.qv-remote-source-meta { display: flex; flex-direction: column; gap: 6px; font-size: .84rem; color: #64748b; }
.qv-remote-source-meta span { color: #94a3b8; margin-right: 6px; }
.qv-remote-empty-state { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 14px; background: #f8fafc; border: 1px dashed rgba(15,23,42,.12); color: #64748b; font-weight: 700; }
.qv-rlm-popup { width: min(1420px, calc(100vw - 28px)) !important; max-width: 1420px !important; padding: 0 !important; border-radius: 34px !important; overflow: hidden !important; background: #f8fbfb !important; }
.qv-rlm-swal { background: #f8fbfb; }
.qv-rlm-header { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 26px 30px 22px 30px; background: linear-gradient(135deg, rgba(255,255,255,.97) 0%, rgba(248,245,235,.95) 100%); border-bottom: 1px solid rgba(15,23,42,.08); }
.qv-rlm-title-wrap { display: flex; align-items: center; gap: 16px; flex: 1 1 auto; min-width: 0; }
.qv-rlm-title-block { display: flex; flex-direction: column; justify-content: center; flex: 1 1 auto; min-width: 0; }
.qv-rlm-title { font-size: 1.95rem; line-height: 1.08; font-weight: 900; color: var(--primary-color); margin: 0; text-align: left; }
.qv-rlm-subtitle { margin-top: 6px; font-size: 1rem; color: #6b7280; line-height: 1.42; text-align: left; }
.qv-rlm-header-actions { display: flex; align-items: center; gap: 12px; margin-left: auto; flex: 0 0 auto; }
.qv-rlm-header-btn { border: none; display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: #fff; color: #64748b; box-shadow: 0 10px 24px rgba(15,23,42,.08); }
.qv-rlm-header-btn--help { min-height: 52px; padding: 0 18px; border-radius: 18px; border: 1px solid rgba(15,118,110,.18); background: #eef9f8; color: #0f766e; font-weight: 800; }
.qv-rlm-header-btn--close { width: 52px; height: 52px; border-radius: 18px; font-size: 1.45rem; }
.qv-rlm-popup, .qv-rlm-side, .qv-rlm-step-card, .qv-rlm-source-card { overflow: visible; }
.qv-rlm-popup .select2-container { width: 100% !important; max-width: 100% !important; }
.qv-rlm-popup .select2-container--open { z-index: 999999 !important; }
.qv-rlm-popup .select2-container .select2-selection--single { min-height: 56px !important; height: 56px !important; border-radius: 16px !important; border: 1px solid rgba(15,118,110,.24) !important; display: flex !important; align-items: center !important; padding: 0 44px 0 10px !important; box-shadow: none !important; }
.qv-rlm-popup .select2-container .select2-selection__rendered { line-height: 54px !important; color: #1f2937 !important; font-size: .96rem !important; font-weight: 700 !important; padding-left: 8px !important; padding-right: 30px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.qv-rlm-popup .select2-container .select2-selection__arrow { height: 54px !important; right: 12px !important; }
.qv-rlm-popup .select2-dropdown { border-radius: 16px !important; border: 1px solid rgba(15,118,110,.22) !important; background: #ffffff !important; box-shadow: 0 18px 40px rgba(15,23,42,.18) !important; overflow: hidden !important; }
.qv-rlm-popup .select2-search { padding: 10px !important; background: #ffffff !important; }
.qv-rlm-popup .select2-search__field { min-height: 40px !important; border-radius: 12px !important; border: 1px solid rgba(15,118,110,.18) !important; background: #ffffff !important; color: #1f2937 !important; padding: 0 12px !important; }
.qv-rlm-popup .select2-results__options { max-height: 280px !important; background: #ffffff !important; }
.qv-rlm-popup .select2-results__option { padding: 10px 12px !important; font-size: .93rem !important; font-weight: 600 !important; color: #1f2937 !important; background: #ffffff !important; white-space: normal !important; word-break: break-word !important; }
.qv-rlm-popup .select2-results__option--highlighted.select2-results__option--selectable { background: var(--primary-color) !important; color: #ffffff !important; }
.qv-rlm-body { display: grid; grid-template-columns: 340px minmax(0, 1fr); gap: 20px; padding: 18px 20px 20px; }
.qv-rlm-hero { min-height: 660px; border: 1px solid rgba(15,23,42,.08); border-radius: 28px; overflow: hidden; background: #fff; }
.qv-rlm-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qv-rlm-side { display: flex; flex-direction: column; gap: 18px; }
.qv-rlm-step-indicator { display: none !important; }
.qv-rlm-summary-strip { display: flex; align-items: center; gap: 10px; min-height: 58px; padding: 0 16px; border-radius: 16px; background: #fff; border: 1px solid rgba(15,23,42,.08); margin-bottom: 14px; }
.qv-rlm-summary-strip-label { font-size: .9rem; color: #64748b; font-weight: 700; }
.qv-rlm-summary-strip-value { font-size: 1rem; color: #1f2937; font-weight: 900; }
.qv-rlm-step-card { background: #fff; border: 1px solid rgba(15,118,110,.14); border-radius: 22px; padding: 18px; margin-bottom: 16px; }
.qv-rlm-step-card-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; }
.qv-rlm-step-badge { display: inline-flex; align-items: center; justify-content: center; min-width: 78px; min-height: 32px; padding: 6px 12px; border-radius: 999px; background: rgba(15,118,110,.10); color: #0f766e; font-size: .8rem; font-weight: 900; }
.qv-rlm-step-title { font-size: 1rem; font-weight: 900; color: #0f766e; }
.qv-rlm-step-desc { margin-bottom: 14px; font-size: .9rem; color: #64748b; line-height: 1.45; }
.qv-rlm-step-row--top { display: grid; grid-template-columns: minmax(0,1fr) 320px; gap: 14px; align-items: stretch; }
.qv-rlm-logic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.qv-rlm-logic-card { width: 100%; text-align: left; border: 1px solid rgba(15,23,42,.08); border-radius: 18px; background: #f8fbfb; padding: 16px; display: flex; align-items: flex-start; gap: 12px; transition: .2s ease; }
.qv-rlm-logic-card:hover { transform: translateY(-1px); border-color: rgba(15,118,110,.24); }
.qv-rlm-logic-card.is-active { background: #eef9f8; border-color: rgba(15,118,110,.28); box-shadow: 0 10px 24px rgba(15,118,110,.08); }
.qv-rlm-logic-card-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.08); color: #0f766e; font-size: 1.15rem; flex: 0 0 44px; }
.qv-rlm-logic-card-title { font-size: .96rem; font-weight: 900; color: #1f2937; }
.qv-rlm-logic-card-text { margin-top: 5px; font-size: .85rem; color: #64748b; line-height: 1.45; }
.qv-rlm-status-card { min-height: 100%; border: 1px solid rgba(15,23,42,.08); border-radius: 18px; background: #f8fbfb; padding: 16px; }
.qv-rlm-status-card--toggle { display: flex; flex-direction: column; justify-content: center; }
.qv-rlm-status-desc { margin-top: 6px; margin-bottom: 14px; font-size: .88rem; color: #64748b; line-height: 1.45; }
.qv-rlm-main-switch { display: flex; align-items: center; gap: 12px; cursor: pointer; user-select: none; }
.qv-rlm-main-switch input { display: none; }
.qv-rlm-main-switch-ui { position: relative; width: 60px; height: 34px; border-radius: 999px; background: #d8e0ea; transition: .22s ease; flex: 0 0 60px; }
.qv-rlm-main-switch-ui::after { content: ""; position: absolute; top: 4px; left: 4px; width: 26px; height: 26px; border-radius: 50%; background: #fff; box-shadow: 0 4px 10px rgba(15,23,42,.16); transition: .22s ease; }
.qv-rlm-main-switch input:checked + .qv-rlm-main-switch-ui { background: linear-gradient(135deg, #118a82 0%, #169f98 100%); }
.qv-rlm-main-switch input:checked + .qv-rlm-main-switch-ui::after { left: 30px; }
.qv-rlm-main-switch-copy { display: flex; flex-direction: column; gap: 2px; }
.qv-rlm-main-switch-title { font-size: .98rem; font-weight: 900; color: #1f2937; }
.qv-rlm-status-title { font-size: .84rem; font-weight: 900; color: #64748b; margin-bottom: 10px; }
.qv-rlm-toggle-wrap { display: inline-flex; align-items: center; gap: 10px; font-size: 1rem; font-weight: 800; color: #1f2937; }
.qv-rlm-toggle-wrap input { accent-color: var(--primary-color); }
.qv-rlm-source-list { display: flex; flex-direction: column; gap: 14px; }
.qv-rlm-source-card { background: #f9fbfb; border: 1px solid rgba(15,23,42,.07); border-radius: 20px; padding: 14px; }
.qv-rlm-source-head { display: flex; justify-content: flex-start; margin-bottom: 12px; }
.qv-rlm-source-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; background: #eef2f7; color: #64748b; font-size: .8rem; font-weight: 900; }
.qv-rlm-source-grid { display: grid; grid-template-columns: minmax(0,2.9fr) minmax(190px,1fr) minmax(120px,.72fr) minmax(210px,.95fr) 56px; gap: 12px; align-items: end; }
.qv-rlm-field--actions { display: flex; align-items: end; justify-content: flex-end; }
.qv-rlm-label { display: block; font-size: .78rem; font-weight: 900; color: #64748b; margin-bottom: 8px; }
.qv-rlm-input { width: 100%; min-height: 50px; border-radius: 16px; border: 1px solid rgba(15,118,110,.24); background: #fdfefe; color: #1f2937; padding: 0 14px; font-size: .94rem; font-weight: 700; line-height: 1.2; }
.qv-rlm-input option { color: #1f2937; }
.qv-rlm-mini-switch { min-height: 50px; display: flex; align-items: center; gap: 10px; cursor: pointer; user-select: none; }
.qv-rlm-mini-switch input { display: none; }
.qv-rlm-mini-switch-ui { position: relative; width: 52px; height: 30px; border-radius: 999px; background: #d8e0ea; transition: .22s ease; flex: 0 0 52px; }
.qv-rlm-mini-switch-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 24px; height: 24px; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(15,23,42,.14); transition: .22s ease; }
.qv-rlm-mini-switch input:checked + .qv-rlm-mini-switch-ui { background: linear-gradient(135deg, #118a82 0%, #169f98 100%); }
.qv-rlm-mini-switch input:checked + .qv-rlm-mini-switch-ui::after { left: 25px; }
.qv-rlm-mini-switch-text { font-size: .92rem; font-weight: 800; color: #1f2937; }
.qv-rlm-check-wrap input { accent-color: var(--primary-color); }
.qv-rlm-src-del { width: 46px; height: 46px; border-radius: 16px; border: 1px solid rgba(244,63,94,.24); background: #fff5f7; color: #e11d48; display: flex; align-items: center; justify-content: center; font-size: 1.1rem; }
.qv-rlm-add-btn { width: 100%; min-height: 50px; margin-top: 14px; border-radius: 18px; border: 1px solid rgba(15,118,110,.22); background: rgba(15,118,110,.10); color: var(--primary-color); display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 900; font-size: .96rem; }
.qv-rlm-empty, .qv-rlm-loading, .qv-rlm-error { min-height: 120px; border-radius: 18px; display: flex; align-items: center; justify-content: center; gap: 10px; font-weight: 700; text-align: center; padding: 16px; }
.qv-rlm-empty { background: #f8fafc; border: 1px dashed rgba(15,23,42,.12); color: #64748b; }
.qv-rlm-loading { background: #f8fafc; border: 1px solid rgba(15,23,42,.08); color: #64748b; }
.qv-rlm-error { background: #fff1f2; border: 1px solid rgba(244,63,94,.18); color: #be123c; }
.qv-rlm-footer { display: flex; justify-content: flex-end; gap: 14px; padding-top: 4px; }
.qv-rlm-footer-btn { min-width: 180px; min-height: 56px; border-radius: 18px; border: none; display: inline-flex; align-items: center; justify-content: center; gap: 10px; font-size: 1rem; font-weight: 900; }
.qv-rlm-footer-btn--primary { background: linear-gradient(135deg, #118a82 0%, #169f98 100%); color: #fff; }
.qv-rlm-footer-btn--secondary { background: #fff2f5; color: #ef4d7a; border: 1px solid rgba(239,77,122,.28); }
.qv-rlm-device-select + .select2-container { width: 100% !important; }
.qv-rlm-device-select + .select2-container .select2-selection--single { min-height: 50px !important; border-radius: 16px !important; border: 1px solid rgba(15,118,110,.24) !important; background: #fdfefe !important; display: flex !important; align-items: center !important; padding: 0 42px 0 8px !important; }
.qv-rlm-src-kind, .qv-rlm-src-index { text-overflow: ellipsis; white-space: nowrap; overflow: hidden; }
.qv-rlm-src-kind option, .qv-rlm-src-index option { color: #1f2937; }
.qv-rlm-device-select + .select2-container .select2-selection__rendered { line-height: 48px !important; color: #1f2937 !important; font-size: .94rem !important; font-weight: 700 !important; padding-left: 8px !important; padding-right: 26px !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.qv-rlm-device-select + .select2-container .select2-selection__arrow { height: 48px !important; right: 10px !important; }
.select2-container--default .select2-dropdown { border-radius: 14px !important; border: 1px solid rgba(15,118,110,.22) !important; overflow: hidden; }
.select2-container--default .select2-results__option { font-size: .92rem; font-weight: 600; }
.select2-search--dropdown .select2-search__field { border-radius: 10px !important; border: 1px solid rgba(15,118,110,.18) !important; }
@media (max-width: 1280px) {
  .qv-rlm-body { grid-template-columns: 1fr; }
  .qv-rlm-hero { min-height: 260px; }
}
/* === QV OUTPUT MODE WIZARD END === */
.sidebar-brand { height: 72px !important; padding: 6px 10px !important; }
.sidebar-brand .brand-link { display: flex !important; align-items: center; justify-content: center; width: 100% !important; height: 100% !important; padding: 0 !important; background: transparent !important; }
.sidebar-brand .brand-link .brand-image { float: none !important; margin: 0 !important; max-height: none !important; height: 100% !important; max-width: 100% !important; width: auto !important; object-fit: contain !important; background: transparent !important; }
.iot-map-popup__manual-note { margin-top: 10px; font-size: .8rem; line-height: 1.45; color: #0f766e; }
#device-catalog-logs-table_wrapper .logs-export-toolbar { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; width: 100%; }
#device-catalog-logs-table_wrapper .logs-export-toolbar .dt-button { width: 100%; display: flex; align-items: center; justify-content: flex-start; gap: 10px; margin: 0 !important; }
#device-catalog-logs-table_wrapper .logs-category-toolbar { display: flex; flex-wrap: wrap; gap: 8px; width: 100%; }
#device-catalog-logs-table_wrapper .logs-category-toolbar .dt-button { margin: 0 !important; }
#device-catalog-logs-table_wrapper .logs-filters-row { align-items: center; justify-content: space-between; gap: 16px; }
#device-catalog-logs-table_wrapper .logs-date-toolbar { min-width: 320px; width: 320px; max-width: 100%; }
#device-catalog-logs-table_wrapper .logs-date-group { width: 100%; }
#device-catalog-logs-table_wrapper .logs-length-row { margin-top: 6px; }
#device-catalog-logs-table_wrapper .dt-button.is-active { background: var(--secondary-color) !important; color: #fff !important; border-color: var(--secondary-color) !important; }
.iot-map-popup--wide { width: min(400px, calc(100vw - 20px)); min-width: 0; max-width: min(400px, calc(100vw - 20px)); max-height: 50vh; display: flex; flex-direction: column; overflow: hidden; }
.iot-map-popup__top-main, .iot-map-popup__top-content, .iot-map-popup__device-id-row { min-width: 0; }
.iot-map-popup__device-id { font-size: 16px; font-weight: 800; line-height: 1.45; color: #174f49; word-break: break-word; letter-spacing: .01em; font-size: 1rem; line-height: 1.2; word-break: break-all; overflow-wrap: anywhere; }
.iot-map-popup__top-location span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iot-map-popup__body { padding: 14px 18px 18px; max-height: 30vh; overflow-y: auto; overflow-x: hidden; padding-right: 4px; scrollbar-gutter: stable; }
.iot-map-popup__grid > .iot-map-popup__card:first-child { grid-column: 1 / -1; }
.iot-map-popup__io-card { padding: 12px 14px; border-radius: 16px; border: 1px solid rgba(15,23,42,.08); background: rgba(255,255,255,.78); padding: 10px 12px; }
.iot-map-popup__mini-list { display: flex; flex-direction: column; gap: 10px; margin-top: 10px; gap: 6px; margin-top: 8px; }
.iot-map-popup__mini-badges { display: flex; flex-wrap: wrap; gap: 8px; gap: 5px; }
.device-mini-toggle--popup { background: #fff; width: 100%; justify-content: space-between; padding: .45rem .6rem; border-radius: 14px; }
.device-mini-toggle--popup .device-mini-toggle-tag { font-size: .74rem; font-weight: 800; white-space: nowrap; }
.device-mini-toggle--popup .device-mini-toggle-slider { width: 30px; height: 16px; }
.device-mini-toggle--popup .device-mini-toggle-slider::after { width: 12px; height: 12px; }
.device-mini-toggle--popup input:checked + .device-mini-toggle-slider::after { left: 16px; }
.iot-map-popup__top-location i { color: #0f766e; font-size: .95rem; flex: 0 0 auto; }
.iot-map-popup__manual-wrap { margin-top: 12px; padding: 12px 14px; border-radius: 16px; border: 1px solid rgba(15,118,110,.12); background: rgba(240,253,250,.78); padding: 10px 12px; margin-top: 0; margin-bottom: 10px; padding: 10px 12px; border-radius: 14px; }
.iot-map-popup__manual-wrap .iot-map-popup__card-label { margin-bottom: 8px; }
.iot-map-popup__manual-toggles { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; margin-top: 6px; }
.iot-map-popup__grid { display: grid; grid-template-columns: 1fr; gap: 12px; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.iot-map-popup__io-grid { display: grid; grid-template-columns: 1fr; gap: 12px; margin-top: 12px; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.iot-map-popup__io-card:last-child { grid-column: 1 / -1; grid-column: 1 / -1; }
.iot-map-popup__card, .iot-map-popup__io-card { padding: 9px 11px; }
.iot-map-popup__mini-item { padding: 10px 12px; border-radius: 12px; background: rgba(248,250,252,.92); border: 1px solid rgba(15,23,42,.06); padding: 8px 9px; border-radius: 10px; padding: 7px 8px; }
.iot-map-popup__mini-title { font-size: .88rem; font-weight: 800; color: #1f2937; margin-bottom: 4px; font-size: .78rem; margin-bottom: 2px; font-size: .76rem; }
.iot-map-popup__mini-meta { font-size: .78rem; color: #64748b; margin-bottom: 6px; font-size: .7rem; margin-bottom: 4px; line-height: 1.25; font-size: .68rem; }
.iot-inline-pill { display: inline-flex; align-items: center; gap: 6px; min-height: 30px; padding: 6px 10px; border-radius: 999px; font-size: 12px; font-weight: 700; line-height: 1; border: 1px solid transparent; white-space: normal; word-break: break-word; line-height: 1.2; min-height: 22px; padding: 3px 7px; font-size: .68rem; min-height: 21px; padding: 3px 7px; font-size: .66rem; }
.log-badge-groups { display: flex; flex-direction: column; gap: 10px; width: 100%; }
.log-badge-group { background: rgba(255,255,255,.16); border: 1px solid rgba(0, 133, 120, .18); border-radius: 14px; padding: 10px 12px; }
.log-badge-group-title { display: flex; align-items: center; gap: 8px; font-size: .82rem; font-weight: 700; color: var(--primary-color); margin-bottom: 8px; padding-bottom: 6px; border-bottom: 1px solid rgba(0, 133, 120, .12); }
.log-badge-group-items { gap: 6px; }
.iot-map-popup__top { padding: 18px 18px 14px; border-bottom: 1px solid rgba(15,23,42,.08); background: linear-gradient(180deg, rgba(17,138,127,.06) 0%, rgba(17,138,127,.015) 100%); flex: 0 0 auto; }
.iot-map-popup__sticky-footer { position: sticky; bottom: 0; z-index: 5; flex: 0 0 auto; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; background: rgba(255,255,255,.96); border-top: 1px solid rgba(15,23,42,.08); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }
.iot-map-popup__footer-meta { display: flex; align-items: center; gap: 7px; font-size: .76rem; color: #64748b; min-width: 0; }
.iot-map-popup__footer-meta span { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.iot-map-popup__device-id-row { display: flex; flex-direction: column; gap: 4px; }
.iot-map-popup__top-location { min-width: 0; overflow: hidden; margin-top: 6px; display: flex; align-items: center; gap: 7px; font-size: .8rem; color: #64748b; line-height: 1.25; display: flex; align-items: center; gap: 6px; font-size: .78rem; color: #64748b; line-height: 1.2; }
.iot-map-popup__header-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; margin-left: auto; padding-right: 18px; }
.iot-map-popup__nav-btn { min-height: 32px; border: 1px solid rgba(15,118,110,.16); border-radius: 999px; display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 6px 10px; background: linear-gradient(135deg, #0f766e 0%, #118a7f 100%); color: #fff; box-shadow: 0 10px 20px rgba(15,118,110,.18); transition: transform .18s ease, box-shadow .18s ease, background .18s ease; cursor: pointer; font-size: .74rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.iot-map-popup__nav-btn:hover { transform: translateY(-1px); background: linear-gradient(135deg, #0b5e56 0%, #0f766e 100%); color: #fff; box-shadow: 0 12px 24px rgba(15,118,110,.24); }
.iot-map-popup__nav-btn:focus-visible { outline: 2px solid rgba(17,138,127,.35); outline-offset: 2px; }
.iot-map-popup__nav-btn i { font-size: 15px; line-height: 1; }
.iot-map-popup__icon-btn { width: 32px; height: 32px; border: 1px solid rgba(15,118,110,.16); border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255,255,255,.92); color: #0f766e; box-shadow: 0 8px 18px rgba(15,23,42,.08); transition: transform .18s ease, background .18s ease, color .18s ease, border-color .18s ease; cursor: pointer; flex: 0 0 auto; }
.iot-map-popup__icon-btn:hover { transform: translateY(-1px); background: rgba(17,138,127,.1); border-color: rgba(15,118,110,.28); color: #0b5e56; }
.iot-map-popup__icon-btn:focus-visible { outline: 2px solid rgba(17,138,127,.35); outline-offset: 2px; }
.iot-map-popup__icon-btn:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.iot-map-popup__icon-btn i { font-size: 16px; line-height: 1; }
.iot-map-popup__icon-btn--inline { width: 26px; height: 26px; border-radius: 9px; box-shadow: none; background: rgba(255,255,255,.8); }
.iot-map-popup__icon-btn--inline i { font-size: 14px; }
.iot-map-popup__top-location { overflow: visible; }
.iot-map-popup__top-location span { min-width: 0; flex: 0 1 auto; max-width: min(220px, calc(100% - 36px)); }
.iot-map-popup__value--address { display: flex; align-items: center; justify-content: flex-start; gap: 8px; min-width: 0; }
.iot-map-popup__value--address span { min-width: 0; flex: 0 1 auto; overflow-wrap: anywhere; }
.iot-map-popup__top-inline { margin-top: 6px; display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.iot-map-popup__icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(17,138,127,.12); border: 1px solid rgba(17,138,127,.18); color: #118a7f; font-size: 20px; flex: 0 0 44px; position: relative; }
.iot-map-popup__icon-dot { position: absolute; left: 50%; bottom: -5px; transform: translateX(-50%); width: 10px; height: 10px; border-radius: 50%; background: #94a3b8; border: 2px solid #fff; box-shadow: 0 2px 8px rgba(15,23,42,.18); }
.iot-map-popup__icon-dot.is-active { background: #22c55e; }
.iot-map-popup__manual-inline { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.device-mini-toggle--popup-inline { padding: .32rem .5rem; border-radius: 999px; background: rgba(240,253,250,.95); border: 1px solid rgba(15,118,110,.14); box-shadow: none; }
.device-mini-toggle--popup-inline .device-mini-toggle-tag { font-size: .72rem; white-space: nowrap; }
.iot-map-popup__io-grid--ordered { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.iot-map-popup__io-card--full { grid-column: 1 / -1; }
.iot-map-popup__grid--after-io { margin-top: 8px; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; }
.iot-map-popup__io-card--full .iot-map-popup__mini-badges { display: flex; flex-wrap: wrap; gap: 6px; }
.iot-map-popup__io-card--full .iot-inline-pill { max-width: 100%; }
.iot-map-popup__grid--after-io > :last-child { grid-column: 1 / -1; }
.iot-map-popup__io-card--full .iot-map-popup__mini-list { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 8px; }
.iot-map-popup__io-card--full .iot-map-popup__mini-item { min-width: 0; }
.iot-pending-compact { display: flex; flex-wrap: wrap; gap: 6px; }
.log-badge-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; padding-bottom: 8px; border-bottom: 1px solid rgba(0,133,120,.14); }
.log-badge-card-title { font-size: .92rem; font-weight: 800; color: var(--primary-color); min-width: 0; }
.log-badge-card-actions { display: flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.log-badge-card-btn { border: 1px solid rgba(0,133,120,.22); background: rgba(255,255,255,.72); color: var(--primary-color); border-radius: 12px; padding: 6px 10px; font-size: .76rem; font-weight: 700; line-height: 1; cursor: pointer; transition: all .18s ease; }
.log-badge-card-btn:hover { background: var(--primary-color); color: #fff; border-color: var(--primary-color); }
.log-badge-card-summary, .log-badge-card-detail { gap: 6px; }
.log-badge-card-detail { margin-top: 10px; padding-top: 10px; border-top: 1px dashed rgba(0,133,120,.18); }
.log-badge-card.is-collapsed .log-badge-card-detail { display: none !important; }
.log-badge-swal-popup { max-width: 980px !important; }
.log-badge-swal-popup .swal2-html-container { margin: 0 !important; padding: 1rem 1.15rem 1.15rem !important; text-align: left !important; }
.log-badge-swal-body { gap: 8px; align-items: flex-start; justify-content: flex-start; }
.log-badge-card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 12px; width: 100%; align-items: start; }
.log-badge-card { background: rgba(255,255,255,.14); border: 1px solid rgba(0,133,120,.22); border-radius: 16px; padding: 12px 12px 10px; min-width: 0; background: rgba(255,255,255,.14); border: 1px solid rgba(0,133,120,.22); border-radius: 16px; padding: 12px 12px 10px; min-width: 0; overflow: hidden; }
.log-badge-card-summary, .dash-log-details-body { gap: 6px; }
.log-badge-card-summary > div, .dash-log-details-body > div { min-width: 0; max-width: 100%; }
.log-badge-card-summary .badge, .dash-log-details-body .badge { max-width: 100%; white-space: normal !important; word-break: break-word; overflow-wrap: anywhere; text-align: left; }
.dash-log-details-swal .dash-action-swal-body { grid-template-columns: 300px 1fr; }
.dash-log-details-body { display: flex; flex-wrap: wrap; align-items: flex-start; align-content: flex-start; padding: .2rem 0; max-height: 62vh; overflow: auto; }
.device-actions-stack { display: flex; flex-direction: column; align-items: center; gap: .55rem; display: flex; flex-direction: column; align-items: center; gap: .55rem; }
.device-actions-row { display: flex; align-items: center; gap: .55rem; display: flex; align-items: center; gap: .55rem; }
.device-manual-toggle-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; display: flex; flex-wrap: wrap; justify-content: center; gap: .45rem; }
.device-mini-toggle { position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .55rem; border-radius: 999px; background: rgba(255,255,255,.94); border: 1px solid rgba(15,23,42,.08); box-shadow: 0 6px 16px rgba(15,23,42,.08); position: relative; display: inline-flex; align-items: center; gap: .4rem; padding: .3rem .5rem; border-radius: 999px; background: rgba(255,255,255,.96); border: 1px solid rgba(15,23,42,.08); box-shadow: 0 4px 12px rgba(15,23,42,.08); }
.device-mini-toggle.is-loading {
  opacity: 1 !important;
  pointer-events: none;
  border-color: rgba(15,118,110,.24);
  background: rgba(15,118,110,.08);
  box-shadow: 0 0 0 3px rgba(15,118,110,.06), 0 6px 16px rgba(15,23,42,.08);
}

.device-mini-toggle.is-loading::before {
  content: "";
  width: 10px;
  height: 10px;
  border-radius: 50%;
  border: 2px solid rgba(15,118,110,.18);
  border-top-color: #0f766e;
  animation: qvSpin .8s linear infinite;
  flex: 0 0 10px;
}

.device-mini-toggle.is-loading .device-mini-toggle-slider {
  box-shadow: 0 0 0 2px rgba(15,118,110,.08);
}

.device-mini-toggle input { position: absolute; opacity: 0; pointer-events: none; }
.device-mini-toggle-tag { font-size: .72rem; font-weight: 800; color: var(--primary-color); font-size: .72rem; font-weight: 800; color: var(--primary-color); }
.device-mini-toggle-slider { width: 34px; height: 18px; border-radius: 999px; background: #cbd5e1; position: relative; transition: .2s ease; width: 32px; height: 17px; border-radius: 999px; background: #cbd5e1; position: relative; transition: .2s ease; }
.device-mini-toggle-slider::after { content: ""; position: absolute; top: 2px; left: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.18); transition: .2s ease; content: ""; position: absolute; top: 2px; left: 2px; width: 13px; height: 13px; border-radius: 50%; background: #fff; box-shadow: 0 2px 6px rgba(0,0,0,.16); transition: .2s ease; }
.device-mini-toggle input:checked + .device-mini-toggle-slider { background: var(--primary-color); background: var(--primary-color); }
.device-mini-toggle input:checked + .device-mini-toggle-slider::after { left: 18px; left: 17px; }
.device-mini-toggle input:disabled + .device-mini-toggle-slider { background: #d7dde5 !important; cursor: not-allowed; }
.device-mini-toggle input:disabled ~ .device-mini-toggle-tag, .device-mini-toggle input:disabled + .device-mini-toggle-slider { opacity: .72; }
.qv-rlm-shared-header { margin-bottom: 0; border-bottom: 1px solid rgba(15,23,42,.08); }
.qv-rlm-shared-close { width: 52px; height: 52px; min-width: 52px; min-height: 52px; border: none; box-shadow: 0 10px 24px rgba(15,23,42,.08); }
.qv-rlm-swal .dash-action-swal-title { color: var(--primary-color); }
.qv-rlm-swal .dash-action-swal-subtitle { color: #6b7280; }
.qv-rlm-swal .dash-action-swal-top-actions { display: flex; align-items: center; gap: 12px; }
.qv-mode-simple-grid--day { margin-bottom: 16px; }
.qv-day-grid { display: grid; grid-template-columns: 1fr; gap: 16px; margin-bottom: 14px; }
.qv-day-window-card { border: 1px solid rgba(15,118,110,.14); border-radius: 18px; background: #ffffff; padding: 16px; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.qv-day-window-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.qv-day-window-badge { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; background: rgba(234,179,8,.10); color: #a16207; border: 1px solid rgba(234,179,8,.16); font-size: .82rem; font-weight: 800; }
.qv-day-window-preview { display: inline-flex; align-items: center; gap: 8px; min-height: 30px; padding: 6px 12px; border-radius: 999px; background: #f8fafc; color: #64748b; border: 1px solid rgba(15,23,42,.08); font-size: .82rem; font-weight: 700; }
.qv-day-window-preview.is-filled { background: rgba(15,118,110,.08); color: #0f766e; border-color: rgba(15,118,110,.16); }
.qv-day-window-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.qv-day-field { display: flex; flex-direction: column; gap: 8px; }
.qv-day-label { font-size: .84rem; font-weight: 800; color: #475569; }
.qv-day-input { width: 100%; min-height: 52px; border-radius: 16px; border: 1px solid rgba(15,118,110,.22); background: #fdfefe; color: #1f2937; padding: 0 14px; font-size: .96rem; font-weight: 700; outline: none; transition: .18s ease; }
.qv-day-input:focus { border-color: rgba(15,118,110,.40); box-shadow: 0 0 0 4px rgba(15,118,110,.08); }
.qv-day-window-actions { display: grid; grid-template-columns: 1fr; gap: 12px; margin-bottom: 14px; }
.qv-day-pick-btn { min-height: 64px; border-radius: 16px; border: 1px solid rgba(15,118,110,.18); background: #ffffff; padding: 12px 14px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; text-align: left; transition: .18s ease; }
.qv-day-pick-btn:hover { border-color: rgba(15,118,110,.34); box-shadow: 0 8px 18px rgba(15,23,42,.06); }
.qv-day-pick-label { font-size: .82rem; font-weight: 800; color: #64748b; }
.qv-day-pick-value { font-size: 1rem; font-weight: 900; color: #1f2937; }
.qv-day-window-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.qv-day-clear-btn { min-height: 42px; border-radius: 14px; border: 1px solid rgba(15,118,110,.18); background: rgba(15,118,110,.08); color: var(--primary-color); padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; font-size: .9rem; font-weight: 800; }
.qv-day-inline-hint { font-size: .85rem; color: #64748b; font-weight: 700; text-align: right; }
.qv-day-inline-hint.is-error { color: #e11d48; }
.qv-mode-simple-grid--week { margin-bottom: 16px; }
.qv-week-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 14px; }
@media (max-width: 1480px) {
  .qv-configure-mode-popup--week .qv-week-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.qv-week-day-card {
  border: 1px solid rgba(15,118,110,.14);
  border-radius: 18px;
  background: #ffffff;
  padding: 14px;
  box-shadow: 0 8px 24px rgba(15,23,42,.04);
}

.qv-week-day-head {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  text-align: left;
}

.qv-week-day-head-main {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-width: 0;
  flex: 1 1 auto;
}

.qv-week-day-badge {
  display: inline-flex;
  align-items: center;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  background: rgba(15,118,110,.10);
  color: var(--primary-color);
  border: 1px solid rgba(15,118,110,.16);
  font-size: .84rem;
  font-weight: 900;
  flex: 0 0 auto;
}

.qv-week-day-preview {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f8fafc;
  color: #64748b;
  border: 1px solid rgba(15,23,42,.08);
  font-size: .82rem;
  font-weight: 700;
  min-width: 0;
  max-width: 100%;
}

.qv-week-day-preview.is-filled {
  background: rgba(15,118,110,.08);
  color: #0f766e;
  border-color: rgba(15,118,110,.16);
}

.qv-week-day-toggle {
  width: 34px;
  height: 34px;
  border-radius: 999px;
  border: 1px solid rgba(15,118,110,.14);
  background: #f8fafc;
  color: #64748b;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  transition: transform .18s ease, color .18s ease, border-color .18s ease, background .18s ease;
}

.qv-week-day-toggle i {
  font-size: 1.05rem;
  line-height: 1;
}

.qv-week-day-head:hover .qv-week-day-toggle {
  color: var(--primary-color);
  border-color: rgba(15,118,110,.24);
  background: rgba(15,118,110,.06);
}

.qv-week-day-body {
  overflow: hidden;
  max-height: 1200px;
  opacity: 1;
  margin-top: 14px;
  transition: max-height .24s ease, opacity .18s ease, margin-top .18s ease;
}

.qv-week-day-card.is-collapsed .qv-week-day-body {
  max-height: 0;
  opacity: 0;
  margin-top: 0;
  pointer-events: none;
}

.qv-week-day-card.is-collapsed .qv-week-day-toggle {
  transform: rotate(-90deg);
}

.qv-week-day-slots {
  display: grid;
  grid-template-columns: 1fr;
  gap: 12px;
}
.qv-week-slot-card { border: 1px solid rgba(15,118,110,.12); border-radius: 16px; background: #fcfefe; padding: 14px; }
.qv-week-slot-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.qv-week-slot-badge { display: inline-flex; align-items: center; min-height: 28px; padding: 5px 10px; border-radius: 999px; background: rgba(234,179,8,.10); color: #a16207; border: 1px solid rgba(234,179,8,.16); font-size: .78rem; font-weight: 800; }
.qv-week-slot-preview { display: inline-flex; align-items: center; gap: 8px; min-height: 28px; padding: 5px 10px; border-radius: 999px; background: #f8fafc; color: #64748b; border: 1px solid rgba(15,23,42,.08); font-size: .78rem; font-weight: 700; }
.qv-week-slot-preview.is-filled { background: rgba(15,118,110,.08); color: #0f766e; border-color: rgba(15,118,110,.16); }
.qv-week-slot-actions { display: grid; grid-template-columns: 1fr; gap: 10px; margin-bottom: 12px; }
.qv-week-time-field { display: flex; flex-direction: column; gap: 8px; }
.qv-week-time-input { min-height: 58px; font-size: .95rem; }
.qv-week-pick-btn { min-height: 62px; border-radius: 14px; border: 1px solid rgba(15,118,110,.18); background: #ffffff; padding: 12px 14px; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: 4px; text-align: left; transition: .18s ease; }
.qv-week-pick-btn:hover { border-color: rgba(15,118,110,.34); box-shadow: 0 8px 18px rgba(15,23,42,.06); }
.qv-week-pick-label { font-size: .8rem; font-weight: 800; color: #64748b; }
.qv-week-pick-value { font-size: .95rem; font-weight: 900; color: #1f2937; }
.qv-week-slot-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.qv-week-clear-btn { min-height: 40px; border-radius: 14px; border: 1px solid rgba(15,118,110,.18); background: rgba(15,118,110,.08); color: var(--primary-color); padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 800; }
.qv-week-inline-hint { font-size: .82rem; color: #64748b; font-weight: 700; text-align: right; }
.qv-week-inline-hint.is-error { color: #e11d48; }
.qv-week-hidden-input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; width: 0 !important; height: 0 !important; }
.qv-day-panel-actions { display: flex; justify-content: flex-start; margin: 14px 0 12px; }
.qv-day-panel-clear-btn { min-height: 44px; border-radius: 14px; border: 1px solid rgba(15,118,110,.18); background: rgba(15,118,110,.08); color: var(--primary-color); padding: 0 16px; display: inline-flex; align-items: center; gap: 8px; font-size: .92rem; font-weight: 800; }
.qv-day-panel-clear-btn:hover { border-color: rgba(15,118,110,.32); background: rgba(15,118,110,.12); }
.qv-configure-mode-popup--week { width: min(1560px, calc(100vw - 24px)) !important; max-width: 1560px !important; }
.qv-configure-mode-popup--week .qv-choice-body { grid-template-columns: 1fr !important; }
.qv-configure-mode-popup--week .qv-choice-hero { display: none !important; }
.dash-action-swal-body--single { display: block; }
.dash-action-swal-body--single .dash-action-swal-side { width: 100%; max-width: 100%; }
.qv-day-window-clear-btn { margin-top: 1em; min-height: 40px; border-radius: 14px; border: 1px solid rgba(15,118,110,.18); background: rgba(15,118,110,.08); color: var(--primary-color); padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; font-size: .88rem; font-weight: 800; }
.qv-day-window-clear-btn:hover { border-color: rgba(15,118,110,.32); background: rgba(15,118,110,.12); }
.qv-day-hidden-input { position: absolute !important; opacity: 0 !important; pointer-events: none !important; width: 0 !important; height: 0 !important; position: absolute !important; opacity: 0 !important; pointer-events: none !important; width: 0 !important; height: 0 !important; }
.qv-sun-coords-card, .qv-sun-offset-card { border: 1px solid rgba(15,118,110,.14); border-radius: 18px; background: #fff; padding: 16px; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.qv-sun-coords-card { margin-top: 16px; }
.qv-sun-coords-head, .qv-sun-offset-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.qv-sun-section-badge { display: inline-flex; align-items: center; min-height: 34px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(217,119,6,.24); background: rgba(245,158,11,.08); color: #b36b00; font-size: .88rem; font-weight: 800; }
.qv-sun-coords-status, .qv-sun-offset-preview { display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border-radius: 999px; border: 1px solid rgba(148,163,184,.22); background: #f8fafc; color: #64748b; font-size: .88rem; font-weight: 800; }
.qv-sun-coords-status.is-filled { border-color: rgba(15,118,110,.18); background: rgba(15,118,110,.08); color: var(--primary-color); }
.qv-sun-grid, .qv-sun-offsets-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.qv-sun-field { display: flex; flex-direction: column; gap: 8px; }
.qv-sun-label { font-size: .92rem; font-weight: 800; color: #64748b; }
.qv-sun-input { width: 100%; min-height: 56px; border-radius: 16px; border: 1px solid rgba(15,118,110,.18); background: #fff; padding: 0 16px; color: #1f2937; font-size: 1rem; font-weight: 800; outline: none; transition: .18s ease; }
.qv-sun-input:focus { border-color: rgba(15,118,110,.34); box-shadow: 0 0 0 4px rgba(15,118,110,.08); }
.qv-sun-hint { margin-top: 8px; color: #64748b; font-size: .88rem; font-weight: 600; }
.qv-mode-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.qv-mode-info-card { background: #ffffff; border: 1px solid rgba(15,118,110,.12); border-radius: 18px; padding: 18px 20px; box-shadow: 0 8px 20px rgba(15,23,42,.04); display: flex; flex-direction: column; gap: 10px; min-height: 170px; }
.qv-mode-info-title { font-size: 1.08rem; font-weight: 800; line-height: 1.25; color: #1f2937; margin: 0; padding-bottom: 8px; border-bottom: 1px solid rgba(15,118,110,.10); }
.qv-mode-info-text { font-size: 1rem; line-height: 1.72; font-weight: 500; color: #64748b; letter-spacing: .01em; text-wrap: pretty; }
.qv-sun-map-wrap { margin-top: 16px; border: 1px solid rgba(15,118,110,.14); border-radius: 18px; background: #fff; padding: 14px; box-shadow: 0 8px 24px rgba(15,23,42,.04); }
.qv-sun-map-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.qv-sun-map-title { display: flex; align-items: center; gap: 8px; color: var(--primary-color); font-weight: 800; }
.qv-sun-map-hint { color: #64748b; font-size: .9rem; font-weight: 600; }
#qv-sun-map { width: 100%; height: 280px; border-radius: 16px; overflow: hidden; border: 1px solid rgba(15,118,110,.14); }
.qv-panel-card-head--with-tools { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.qv-settings-toolbar { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin-left: auto; }
.qv-action-tile--toolbar { min-width: auto; padding: 9px 12px; border-radius: 12px; gap: 8px; box-shadow: 0 6px 14px rgba(15,118,110,.12); }
.qv-action-tile--toolbar .qv-action-tile-icon { font-size: 1rem; margin-top: 0; }
.qv-action-tile--toolbar .qv-action-tile-title { font-size: .88rem; line-height: 1.1; font-weight: 800; white-space: nowrap; }
.qv-action-tile--toolbar .qv-action-tile-subtitle { display: none; }
.qv-latest-group-card { background: var(--secondary-color); border: 1px solid var(--border-primary, rgba(16,122,109,.14)); border-radius: 18px; padding: 14px; height: 100%; }
.qv-latest-group-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.qv-latest-group-title { font-weight: 800; font-size: 1.2rem; color: var(--text-color-dark); }
.qv-latest-group-body { display: flex; flex-direction: column; gap: 14px; }
.qv-latest-card-item { background: #fff; border: 1px solid rgba(16,122,109,.10); border-radius: 18px; padding: 16px; }
.qv-latest-card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.qv-latest-card-title { font-weight: 800; font-size: 1.1rem; color: var(--text-color-dark); }
.qv-latest-card-body { display: flex; flex-direction: column; gap: 10px; }
.qv-latest-card-kv { color: var(--text-color-dark); font-size: 1rem; }
.qv-latest-card-kv span { color: #6b7280; font-weight: 700; margin-right: 6px; }
.qv-latest-card-actions { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.qv-inline-read-btn { min-height: 42px; border-radius: 12px; }
.qv-di-wrap { display: flex; flex-direction: column; gap: 18px; }
.qv-di-section { display: flex; flex-direction: column; gap: 12px; }
.qv-di-section-title { font-size: 1rem; font-weight: 800; color: var(--primary-color); }
.qv-di-grid { display: grid; gap: 14px; }
.qv-di-grid--types { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.qv-di-card { border: 1px solid rgba(16,122,109,.15); border-radius: 18px; background: #fff; padding: 16px; text-align: left; transition: .2s ease; }
.qv-di-card:hover { border-color: rgba(16,122,109,.35); transform: translateY(-1px); }
.qv-di-card.is-active { border-color: var(--primary-color); box-shadow: 0 10px 24px rgba(16,122,109,.12); background: rgba(16,122,109,.04); }
.qv-di-card-icon { width: 46px; height: 46px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(16,122,109,.08); color: var(--primary-color); font-size: 1.2rem; margin-bottom: 10px; }
.qv-di-card-title { font-weight: 800; color: var(--text-color-dark); margin-bottom: 6px; }
.qv-di-card-text { color: #6b7280; line-height: 1.45; font-size: .95rem; }
.qv-di-form-card, .qv-di-info-card { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; }
.qv-di-label { display: block; font-weight: 700; color: var(--text-color-dark); margin-bottom: 8px; }
.qv-di-input { width: 100%; min-height: 52px; border: 1px solid rgba(16,122,109,.25); border-radius: 14px; padding: 0 14px; background: #f7ffff; color: var(--text-color-dark); font-weight: 600; }
.qv-di-help-text, .qv-di-info-text { margin-top: 10px; color: #6b7280; line-height: 1.5; }
.qv-di-info-title { font-weight: 800; color: var(--primary-color); margin-bottom: 8px; }
.qv-inline-error { border: 1px solid rgba(220,38,38,.18); background: rgba(220,38,38,.06); color: #b42318; border-radius: 14px; padding: 12px 14px; font-weight: 700; }
.qv-di-modal-popup { max-width: 980px !important; }
.qv-di-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.qv-di-card-subtext { color: #7b8794; font-size: .93rem; line-height: 1.35; }
.qv-di-type-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; line-height: 1; white-space: nowrap; border: 1px solid transparent; }
.qv-di-type-badge--sensor { background: rgba(16,122,109,.10); color: #127a6d; border-color: rgba(16,122,109,.14); }
.qv-di-type-badge--counter { background: rgba(245,158,11,.12); color: #b76b00; border-color: rgba(245,158,11,.22); }
.qv-di-type-badge--alarm { background: rgba(239,68,68,.10); color: #c24141; border-color: rgba(239,68,68,.18); }
.qv-di-grid--inputs { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.qv-ai-type-badge { display: inline-flex; align-items: center; justify-content: center; min-height: 30px; padding: 6px 12px; border-radius: 999px; font-size: .82rem; font-weight: 800; line-height: 1; white-space: nowrap; border: 1px solid transparent; }
.qv-ai-type-badge--normal { background: rgba(16,122,109,.10); color: #127a6d; border-color: rgba(16,122,109,.14); }
.qv-ai-type-badge--alarm { background: rgba(239,68,68,.10); color: #c24141; border-color: rgba(239,68,68,.18); }
.qv-ai-block { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; margin-bottom: 16px; }
.qv-ai-block-title { font-weight: 800; color: var(--primary-color); margin-bottom: 12px; }
.qv-ai-subtitle { font-weight: 800; color: var(--text-color-dark); margin-top: 16px; margin-bottom: 10px; }
.qv-ai-choice-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 12px; }
.qv-ai-choice-card { border: 1px solid rgba(16,122,109,.15); border-radius: 16px; background: #fff; padding: 14px; text-align: left; transition: .2s ease; }
.qv-ai-choice-card:hover { border-color: rgba(16,122,109,.35); transform: translateY(-1px); }
.qv-ai-choice-card.is-active { border-color: var(--primary-color); box-shadow: 0 10px 24px rgba(16,122,109,.12); background: rgba(16,122,109,.04); }
.qv-ai-choice-title { font-weight: 800; color: var(--text-color-dark); margin-bottom: 4px; }
.qv-ai-choice-text { color: #6b7280; line-height: 1.4; font-size: .92rem; }
.qv-ai-form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.iot-dashboard { min-height: 100vh; padding: 24px; }
.dashboard-shell { margin: 0 auto; }
.card-glass { background: linear-gradient(180deg, rgba(4,30,26,.92) 0%, rgba(6,48,42,.82) 100%); border: 1px solid var(--border); border-radius: var(--radius); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); box-shadow: var(--shadow); }
.control-bar { position: sticky; top: 12px; z-index: 40; padding: 18px; margin-bottom: 22px; }
.toolbar-grid { display: grid; grid-template-columns: minmax(260px,320px) minmax(280px,1fr) auto; gap: 16px; align-items: end; }
.field-group label { display: block; margin-bottom: 8px; font-size: .9rem; font-weight: 600; color: #cbd5e1; }
.device-select, .date-input { width: 100%; height: 48px; padding: 0 14px; border-radius: 12px; border: 1px solid rgba(148,163,184,.16); background: rgba(2,6,23,.48); color: var(--text); outline: none; transition: .2s ease; }
.device-select:focus, .date-input:focus { border-color: var(--accent-2); box-shadow: 0 0 0 3px rgba(56,189,248,.12); }
.range-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.range-btn { height: 48px; padding: 0 16px; border: none; border-radius: 12px; background: rgba(255,255,255,.05); color: #dbeafe; border: 1px solid rgba(148,163,184,.14); cursor: pointer; transition: .2s ease; font-weight: 600; }
.range-btn:hover { background: rgba(255,255,255,.08); transform: translateY(-1px); }
.range-btn.active { background: linear-gradient(180deg, #0a6e5c 0%, #0aa3a1 100%); color: #fff; border-color: rgba(10,163,161,.42); box-shadow: 0 12px 28px rgba(10,110,92,.28); }
.toolbar-status { margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.06); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: center; }
#dashboardStatus { padding: 10px 14px; border-radius: 12px; font-weight: 600; border: 1px solid transparent; background: rgba(255,255,255,.04); }
#dashboardStatus.is-info { color: #dbeafe; border-color: rgba(59,130,246,.18); }
#dashboardStatus.is-success { color: #dcfce7; border-color: rgba(34,197,94,.24); background: rgba(34,197,94,.08); }
#dashboardStatus.is-warning { color: #fef3c7; border-color: rgba(245,158,11,.24); background: rgba(245,158,11,.08); }
#dashboardStatus.is-error { color: #ffe4e6; border-color: rgba(251,113,133,.24); background: rgba(251,113,133,.08); }
#dashboardMeta { display: flex; gap: 10px; flex-wrap: wrap; }
.meta-chip { padding: 10px 12px; border-radius: 999px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); color: #cbd5e1; font-size: .86rem; }
.meta-chip strong { color: #fff; font-weight: 700; }
.overview-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 18px; margin-bottom: 22px; }
.overview-card { padding: 18px; min-height: 240px; }
.overview-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.overview-title { font-size: 1rem; font-weight: 700; color: #f8fafc; }
.overview-subtitle { margin-top: 4px; font-size: .86rem; color: var(--muted); }
.overview-value { font-size: 1.15rem; font-weight: 800; color: #fff; text-align: right; }
.overview-gauge-wrap { position: relative; height: 150px; }
.overview-footer { margin-top: 10px; display: flex; justify-content: space-between; gap: 10px; flex-wrap: wrap; color: var(--muted); font-size: .85rem; }
.charts-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; align-items: stretch; }
.chart-card { padding: 18px; min-height: 530px; display: flex; flex-direction: column; overflow: hidden; }
.chart-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
.chart-heading { min-width: 0; }
.chart-title { margin: 0; font-size: 1.22rem; line-height: 1.2; font-weight: 800; color: #f8fafc; }
.chart-subtitle { margin-top: 6px; color: var(--muted); font-size: .9rem; }
.chart-actions { display: flex; gap: 10px; flex-wrap: wrap; flex-shrink: 0; }
.icon-btn { width: 44px; height: 44px; border-radius: 12px; border: 1px solid rgba(148,163,184,.16); background: rgba(255,255,255,.04); color: #dbeafe; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: .2s ease; }
.icon-btn:hover { transform: translateY(-1px); background: rgba(255,255,255,.08); border-color: rgba(56,189,248,.24); }
.icon-btn.is-active { background: rgba(10,163,161,.16); border-color: rgba(10,163,161,.34); color: #fff; }
.icon-btn i, .icon-btn svg { width: 18px; height: 18px; }
.chart-current-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
.chart-stat-pill { padding: 10px 12px; border-radius: 14px; border: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.035); color: #e2e8f0; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.chart-stat-label { color: var(--muted); font-size: .82rem; }
.chart-container { position: relative; flex: 1; min-height: 350px; }
.chart-container canvas { width: 100% !important; height: 100% !important; display: block; }
.chart-container.is-hidden { display: none; }
.chart-table-wrap { display: none; }
.metric-table { width: 100%; border-collapse: collapse; min-width: 720px; }
.metric-table th, .metric-table td { padding: 12px 14px; border-bottom: 1px solid rgba(255,255,255,.06); text-align: left; font-size: .92rem; }
.empty-state { grid-column: 1 / -1; padding: 56px 24px; text-align: center; }
.empty-icon { margin-bottom: 12px; }
.empty-icon svg { width: 34px; height: 34px; color: #60a5fa; }
.empty-state h3 { margin: 0 0 8px; font-size: 1.2rem; }
.empty-state p, .empty-state h3 { margin: 0; color: var(--muted); }
.settings-modal-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 22px; padding-bottom: 14px; border-bottom: 1px solid rgba(10,163,161,.12); }
.settings-modal-header h3 { margin: 0 0 6px; font-size: 1.45rem; font-weight: 800; color: #ecfffb; letter-spacing: -.02em; }
.settings-modal-header p { margin: 0; color: #9fc6bf; font-size: .95rem; font-weight: 600; }
.settings-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.field-check:hover { border-color: rgba(10,163,161,.32); background: linear-gradient(180deg, rgba(7,58,50,.78) 0%, rgba(6,44,38,.7) 100%); transform: translateY(-1px); }
.field-check input { width: 17px; height: 17px; accent-color: #0aa3a1; flex: 0 0 auto; }
.settings-actions { margin-top: 18px; display: flex; justify-content: flex-end; gap: 10px; }
.btn-primary, .btn-secondary { min-width: 130px; height: 46px; border: none; border-radius: 12px; cursor: pointer; font-weight: 700; transition: .2s ease; }
.btn-primary { background: linear-gradient(180deg, #6366f1 0%, #4f46e5 100%); color: #fff; }
.btn-primary:hover { transform: translateY(-1px); }
.btn-secondary { background: rgba(255,255,255,.08); color: #fff; border: 1px solid rgba(255,255,255,.1); }
.hidden { display: none !important; }
.chart-card.is-fullscreen .chart-container { min-height: 0; }
.chart-table-wrap.is-open { display: block; max-height: 390px; overflow: auto; border-radius: 14px; border: 1px solid rgba(255,255,255,.08); background: rgba(2,6,23,.38); display: block; max-height: 390px; overflow: auto; border-radius: 14px; border: 1px solid rgba(10,163,161,.16); background: rgba(4,30,26,.72); }
.metric-table th { position: sticky; top: 0; z-index: 1; background: #0f172a; color: #cbd5e1; font-weight: 700; position: sticky; top: 0; z-index: 1; background: rgba(4,30,26,.96); color: #d7f3ee; font-weight: 700; }
.metric-table td { color: #f8fafc; color: #f8fafc; background: transparent; }
.settings-modal-card { position: relative; width: min(720px, 100%); border-radius: 22px; border: 1px solid rgba(10,163,161,.24); background: radial-gradient(circle at top right, rgba(10,163,161,.10) 0%, transparent 28%), radial-gradient(circle at top left, rgba(230,185,88,.08) 0%, transparent 24%), linear-gradient(180deg, rgba(3,25,21,.985) 0%, rgba(5,40,34,.97) 100%); box-shadow: 0 30px 80px rgba(0,0,0,.42), inset 0 1px 0 rgba(255,255,255,.03); padding: 24px; overflow: hidden; width: min(640px, 100%); border-radius: 20px; border: 1px solid rgba(10,163,161,.22); background: linear-gradient(180deg, rgba(4,30,26,.98) 0%, rgba(6,48,42,.94) 100%); box-shadow: 0 30px 80px rgba(0,0,0,.42); padding: 20px; }
.field-check { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 14px 16px; border-radius: 16px; background: linear-gradient(180deg, rgba(6,48,42,.72) 0%, rgba(5,38,33,.64) 100%); border: 1px solid rgba(10,163,161,.16); color: #eaf7f4; cursor: pointer; transition: .18s ease; box-shadow: inset 0 1px 0 rgba(255,255,255,.02); background: rgba(6,48,42,.58); border: 1px solid rgba(10,163,161,.14); color: #e2e8f0; }
.chart-card.is-fullscreen { position: fixed !important; inset: 12px; z-index: 1300; height: calc(100vh - 24px); min-height: unset; padding: 20px; position: fixed !important; inset: 12px; z-index: 1300; height: calc(100vh - 24px); min-height: unset; padding: 20px; }
.modal-backdrop-chart { position: fixed; inset: 0; z-index: 1200; background: rgba(2,6,23,.72); backdrop-filter: blur(6px); z-index: 1400; }
.settings-modal { position: fixed; inset: 0; z-index: 1210; display: flex; align-items: center; justify-content: center; padding: 18px; z-index: 1410; }
.dashboard-export-actions .range-btn { height: 42px; padding: 0 14px; }
.qv-multi-read-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.qv-multi-read-card { border: 1px solid rgba(16,122,109,.16); border-radius: 18px; background: #fff; padding: 18px; }
.qv-multi-read-card-title { font-size: 1.05rem; font-weight: 800; color: var(--primary-color); margin-bottom: 12px; }
.qv-multi-read-hint { color: #c24141; font-size: .92rem; margin-bottom: 10px; }
.qv-multi-read-option { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-weight: 700; color: var(--text-color-dark); }
.qv-general-write-wrap { display: flex; flex-direction: column; gap: 18px; }
.qv-general-write-field { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 16px; }
.qv-general-write-label { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; font-weight: 800; color: var(--text-color-dark); }
.qv-general-write-input { width: 100%; min-height: 52px; border: 1px solid rgba(16,122,109,.25); border-radius: 14px; padding: 0 14px; background: #f7ffff; color: var(--text-color-dark); font-weight: 600; }
.qv-general-write-help { color: #6b7280; font-weight: 600; }
.qv-multi-read-cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
.qv-multi-read-cards--outputs { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); }
.qv-multi-read-select-card { position: relative; display: flex; flex-direction: column; gap: 10px; padding: 18px; border: 1px solid rgba(16,122,109,.14); border-radius: 18px; background: #fff; cursor: pointer; transition: .2s ease; }
.qv-multi-read-select-card:hover { border-color: rgba(16,122,109,.34); transform: translateY(-1px); }
.qv-multi-read-select-card input { position: absolute; top: 14px; right: 14px; }
.qv-multi-read-select-card:has(input:checked) { border-color: var(--primary-color); background: rgba(16,122,109,.04); box-shadow: 0 10px 24px rgba(16,122,109,.10); }
.qv-multi-read-select-icon { width: 48px; height: 48px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(16,122,109,.08); color: var(--primary-color); font-size: 1.2rem; }
.qv-multi-read-select-title { font-weight: 800; color: var(--text-color-dark); }
.qv-multi-read-select-text { color: #6b7280; font-size: .94rem; line-height: 1.45; }
.qv-multi-read-output-box { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; }
.qv-multi-read-output-note { color: #b45309; font-weight: 700; margin-bottom: 14px; }
.qv-general-write-card { display: flex; flex-direction: column; gap: 12px; border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 16px; cursor: pointer; }
.qv-general-write-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.qv-general-write-card-title-wrap { display: flex; align-items: center; gap: 10px; min-width: 0; }
.qv-general-write-card-icon { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(16,122,109,.08); color: var(--primary-color); font-size: 1.1rem; flex: 0 0 auto; }
.qv-general-write-card-title { font-weight: 800; color: var(--text-color-dark); line-height: 1.3; }
.qv-general-write-card-check { flex: 0 0 auto; }
.qv-general-write-card:has(.qv-general-write-check:checked) { border-color: var(--primary-color); background: rgba(16,122,109,.04); box-shadow: 0 10px 24px rgba(16,122,109,.10); }
.qv-general-write-card-help { color: #6b7280; font-size: .92rem; line-height: 1.45; }
.stats-hero-shell { position: relative; padding: 28px; margin-bottom: 22px; overflow: hidden; }
.stats-hero-shell::before { content: ""; position: absolute; inset: auto -80px -120px auto; width: 280px; height: 280px; border-radius: 50%; background: radial-gradient(circle, rgba(10,163,161,.18) 0%, rgba(10,163,161,0) 72%); pointer-events: none; }
.stats-hero-grid { display: grid; grid-template-columns: minmax(0,1.15fr) minmax(280px,.85fr); gap: 22px; align-items: center; }
.stats-hero-copy { min-width: 0; }
.stats-eyebrow { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); color: #d7f3ee; font-size: .88rem; font-weight: 700; margin-bottom: 16px; }
.stats-eyebrow i { width: 18px; height: 18px; color: #67e8f9; }
.stats-hero-title { margin: 0; font-size: clamp(2rem, 3.2vw, 3.2rem); line-height: 1.06; font-weight: 800; letter-spacing: -.03em; color: #f8fafc; max-width: 820px; }
.stats-hero-text { margin: 16px 0 0; max-width: 780px; color: #b8d6d0; font-size: 1rem; line-height: 1.7; }
.stats-hero-chips { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 20px; }
.stats-hero-chip { min-width: 180px; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); display: flex; flex-direction: column; gap: 4px; }
.stats-hero-chip-label { color: #8fb7af; font-size: .78rem; font-weight: 700; letter-spacing: .05em; }
.stats-hero-chip strong { color: #f8fafc; font-size: .96rem; font-weight: 800; word-break: break-word; }
.stats-hero-visual { position: relative; min-height: 320px; border-radius: 24px; overflow: hidden; border: 1px solid rgba(255,255,255,.08); background: linear-gradient(180deg, rgba(255,255,255,.04) 0%, rgba(255,255,255,.02) 100%); display: flex; align-items: center; justify-content: center; }
.stats-hero-visual img { width: 100%; height: 100%; object-fit: cover; display: block; }
.stats-info-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 14px; margin-top: 20px; }
.stats-info-card { padding: 18px; border-radius: 18px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); min-height: 152px; }
.stats-info-icon { width: 48px; height: 48px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: rgba(10,163,161,.12); border: 1px solid rgba(10,163,161,.18); margin-bottom: 14px; }
.stats-info-icon i { width: 20px; height: 20px; color: #ffffff !important; }
.stats-info-icon svg { color: #ffffff !important; }
.stats-hero-visual video.stats-hero-video { width: 100%; height: 100%; display: block; object-fit: cover; border-radius: inherit; }
.stats-info-title { color: #f8fafc; font-size: 1rem; font-weight: 800; margin-bottom: 8px; }
.stats-info-text { color: #9fc6bf; font-size: .92rem; line-height: 1.65; }
.stats-section-lead { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 18px; }
.stats-section-title { color: #f8fafc; font-size: 1.08rem; font-weight: 800; margin: 0; }
.stats-section-subtitle { margin-top: 6px; color: #9fc6bf; font-size: .92rem; line-height: 1.6; }
.stats-toolbar-badge { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 999px; background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); color: #d7f3ee; font-size: .85rem; font-weight: 700; white-space: nowrap; }
.stats-toolbar-badge i { width: 16px; height: 16px; color: #67e8f9; }
.toolbar-status-right { display: flex; align-items: center; justify-content: flex-end; gap: 12px; flex-wrap: wrap; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex: 1; flex-wrap: wrap; }
.dashboard-export-actions { display: flex; gap: 10px; flex-wrap: wrap; display: flex; gap: 10px; flex-wrap: wrap; }
.stats-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; margin-bottom: 22px; }
.stats-kpi-card { padding: 18px; min-height: 150px; }
.stats-kpi-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.stats-kpi-icon { width: 50px; height: 50px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; background: rgba(10,163,161,.12); border: 1px solid rgba(10,163,161,.18); }
.stats-kpi-icon i { width: 20px; height: 20px; color: #67e8f9; }
.stats-kpi-icon svg { color: #ffffff; }
.stats-kpi-label { color: #9fc6bf; font-size: .86rem; font-weight: 700; }
.stats-kpi-value { color: #f8fafc; font-size: 1.6rem; font-weight: 800; line-height: 1.1; margin-bottom: 8px; word-break: break-word; }
.stats-kpi-note { color: #8fb7af; font-size: .88rem; line-height: 1.55; }
.stats-help-grid { display: flex; margin-top: 22px; }
.stats-help-card, .stats-video-card { padding: 22px; }
.stats-help-list { display: grid; gap: 12px; margin-top: 16px; }
.stats-help-item { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: 16px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); }
.stats-help-item-icon { width: 40px; height: 40px; border-radius: 12px; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; background: rgba(10,163,161,.12); border: 1px solid rgba(10,163,161,.18); }
.stats-help-item-icon i { width: 18px; height: 18px; color: #67e8f9; }
.stats-help-item-icon svg { color: #ffffff; }
.stats-help-item-title { color: #f8fafc; font-size: .95rem; font-weight: 800; margin-bottom: 4px; }
.stats-help-item-text { color: #9fc6bf; font-size: .9rem; line-height: 1.6; }
.stats-video-frame { margin-top: 16px; border-radius: 18px; overflow: hidden; border: 1px solid rgba(255,255,255,.08); background: rgba(2,6,23,.34); aspect-ratio: 16/10; }
.stats-video-frame video { width: 100%; height: 100%; display: block; object-fit: cover; background: rgba(2,6,23,.48); }
.stats-video-note { margin-top: 12px; color: #8fb7af; font-size: .88rem; line-height: 1.6; }
@media (max-width: 760px) {
  .iot-map-popup__grid, .iot-map-popup__io-grid, .iot-map-popup__manual-toggles { grid-template-columns: 1fr; }
  .iot-map-popup__manual-toggles, .iot-map-popup__grid, .iot-map-popup__io-grid { grid-template-columns: 1fr; }
  .iot-map-popup__io-card:last-child { grid-column: auto; grid-column: auto; }
  .iot-map-popup--wide { width: min(430px, calc(100vw - 20px)); min-width: unset; max-width: min(430px, calc(100vw - 20px)); width: min(430px, calc(100vw - 16px)); min-width: 0; max-width: min(430px, calc(100vw - 16px)); }
  .iot-map-popup__io-card--full .iot-map-popup__mini-list { grid-template-columns: 1fr; }
  .iot-map-popup__io-grid--ordered, .iot-map-popup__grid--after-io { grid-template-columns: 1fr; }
  .iot-map-popup__io-card--full { grid-column: auto; }
  .iot-map-popup__sticky-footer { flex-direction: column; align-items: stretch; }
  .iot-dashboard { padding: 14px; }
  .control-bar, .chart-card, .overview-card { padding: 14px; }
  .settings-grid { grid-template-columns: 1fr; }
  .chart-card.is-fullscreen { inset: 0; height: 100vh; border-radius: 0; }
  .stats-hero-shell, .stats-help-card, .stats-video-card, .stats-kpi-card { padding: 16px; }
  .stats-kpi-grid { grid-template-columns: 1fr; }
  .stats-section-lead { flex-direction: column; align-items: flex-start; }
  .stats-hero-chip { width: 100%; min-width: 0; }
  .stats-hero-visual { min-height: 220px; }
}
.qv-multi-read-select-card input, .qv-general-write-check { display: none; }
.qv-multi-read-select-card, .qv-general-write-card { position: relative; }
.qv-multi-read-select-card::after, .qv-general-write-card::after { content: ""; position: absolute; top: 14px; right: 14px; width: 22px; height: 22px; border-radius: 999px; border: 1.5px solid rgba(16,122,109,.28); background: #fff; transition: .2s ease; }
.qv-multi-read-select-card.is-selected::after, .qv-general-write-card.is-selected::after { content: "✓"; display: flex; align-items: center; justify-content: center; color: #fff; font-size: .82rem; font-weight: 900; background: var(--primary-color); border-color: var(--primary-color); }
.qv-general-intro-card { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; margin-bottom: 18px; }
.qv-general-intro-badges { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.qv-general-intro-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 8px 14px; border-radius: 999px; background: rgba(16,122,109,.08); color: var(--primary-color); border: 1px solid rgba(16,122,109,.14); font-weight: 800; font-size: .92rem; }
.qv-general-intro-badge--warning { background: rgba(245,158,11,.10); color: #b76b00; border-color: rgba(245,158,11,.22); }
.qv-general-intro-text { color: #6b7280; line-height: 1.6; font-weight: 600; }
.qv-general-write-popup .dash-action-swal-popup, .qv-general-write-popup { max-width: 2000px !important; }
.qv-general-write-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.qv-general-write-card.is-selected { border-color: var(--primary-color); background: rgba(16,122,109,.04); box-shadow: 0 10px 24px rgba(16,122,109,.10); }
.qv-general-write-card-state { display: none; }
.qv-general-map-wrap { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; margin-top: 4px; }
.qv-general-map-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.qv-general-map-title { display: flex; align-items: center; gap: 10px; color: var(--primary-color); font-weight: 800; font-size: 1.05rem; }
.qv-general-map-hint { color: #6b7280; font-weight: 600; }
.qv-general-coords-status { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 14px; border-radius: 16px; background: #f8fafc; border: 1px solid rgba(16,122,109,.10); color: #6b7280; font-weight: 700; margin-bottom: 14px; }
.qv-general-coords-status.is-filled { background: rgba(16,122,109,.08); color: var(--primary-color); border-color: rgba(16,122,109,.18); }
#qv-general-settings-map { width: 100%; height: 360px; border-radius: 16px; overflow: hidden; border: 1px solid rgba(16,122,109,.14); }
.qv-multi-read-select-card.is-selected { border-color: var(--primary-color); background: rgba(16,122,109,.04); box-shadow: 0 10px 24px rgba(16,122,109,.10); }
.qv-history-swal-popup { width: 1280px !important; max-width: 1280px !important; }
.qv-history-swal { display: flex; flex-direction: column; }
.qv-history-swal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 10px 6px 18px; border-bottom: 1px solid rgba(16,122,109,.10); }
.qv-history-swal-title-wrap { display: flex; align-items: flex-start; gap: 14px; }
.qv-history-swal-icon { width: 58px; height: 58px; border-radius: 18px; display: flex; align-items: center; justify-content: center; background: rgba(16,122,109,.08); color: var(--primary-color); font-size: 1.35rem; border: 1px solid rgba(16,122,109,.14); }
.qv-history-swal-title { font-size: 2rem; font-weight: 900; color: var(--primary-color); line-height: 1.1; }
.qv-history-swal-subtitle { margin-top: 4px; color: #6b7280; font-size: 1.02rem; font-weight: 600; }
.qv-history-swal-help { width: 52px; height: 52px; border-radius: 16px; border: 1px solid rgba(229,171,42,.45); background: #fffaf0; color: #d39b17; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }
.qv-history-swal-body { padding-top: 18px; }
.qv-history-toolbar { display: flex; flex-direction: column; gap: 14px; margin-bottom: 16px; }
.qv-history-date-wrap { display: grid; grid-template-columns: 58px minmax(0, 1fr) 58px; align-items: center; border: 1px solid rgba(16,122,109,.14); border-radius: 18px; overflow: hidden; background: #fff; }
.qv-history-date-icon, .qv-history-date-clear { height: 58px; display: flex; align-items: center; justify-content: center; color: #6b7280; background: #f8fafc; border: none; }
.qv-history-date-input { height: 58px; border: none; outline: none; padding: 0 16px; font-weight: 700; color: var(--text-color-dark); background: #fff; }
.qv-history-footer { padding: 10px 6px 0; }
.qv-history-popup { width: 1380px !important; max-width: 1380px !important; }
.qv-history-shell .dash-action-swal-body { grid-template-columns: 320px minmax(0, 1fr); align-items: stretch; }
.qv-history-shell .dash-action-swal-hero { min-width: 320px; max-width: 320px; overflow: hidden; border-right: 1px solid rgba(16,122,109,.08); }
.qv-history-shell .dash-action-swal-hero img { width: 100%; height: 100%; object-fit: cover; display: block; }
.qv-history-shell .dash-action-swal-side { min-width: 0; }
.qv-history-intro-card { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; margin-bottom: 16px; }
.qv-history-intro-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.qv-history-intro-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 8px 14px; border-radius: 999px; background: rgba(16,122,109,.08); color: var(--primary-color); border: 1px solid rgba(16,122,109,.14); font-weight: 800; font-size: .92rem; }
.qv-history-intro-text { color: #6b7280; line-height: 1.6; font-weight: 600; }
.qv-history-tabs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.qv-history-tab { min-height: 54px; border-radius: 16px; border: 1px solid rgba(16,122,109,.14); background: #f7ffff; color: var(--primary-color); font-weight: 800; display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 56px; border-radius: 16px; border: 1px solid rgba(16,122,109,.14); background: #f7ffff; color: var(--primary-color); font-weight: 800; display: flex; align-items: center; justify-content: center; gap: 8px; }
.qv-history-tab.is-active { background: rgba(16,122,109,.08); border-color: var(--primary-color); box-shadow: 0 10px 24px rgba(16,122,109,.10); background: rgba(16,122,109,.08); border-color: var(--primary-color); box-shadow: 0 10px 24px rgba(16,122,109,.10); background: rgba(16,122,109,.08); border-color: var(--primary-color); box-shadow: 0 10px 24px rgba(16,122,109,.10); }
.qv-history-filter-box { display: grid; grid-template-columns: 58px minmax(0, 1fr) 58px; align-items: center; border: 1px solid rgba(16,122,109,.14); border-radius: 18px; overflow: hidden; background: #fff; margin-bottom: 16px; }
.qv-history-filter-icon, .qv-history-filter-clear { height: 58px; display: flex; align-items: center; justify-content: center; color: #6b7280; background: #f8fafc; border: none; }
.qv-history-filter-input { height: 58px; border: none; outline: none; padding: 0 16px; font-weight: 700; color: var(--text-color-dark); background: #fff; }
.qv-history-content-shell { border: 1px solid rgba(16,122,109,.16); border-radius: 20px; background: #fff; overflow: hidden; border: 1px solid rgba(16,122,109,.16); border-radius: 20px; background: #fff; overflow: hidden; }
.qv-history-pane { display: block; display: block; }
.qv-history-content { min-height: 460px; max-height: 560px; overflow: auto; padding: 18px; min-height: 420px; max-height: 520px; overflow: auto; padding: 18px; min-height: 430px; max-height: 560px; overflow: auto; padding: 18px; }
.qv-history-loading { text-align: center; padding: 16px 0 6px; text-align: center; padding: 14px 0 6px; }
.qv-history-footer-meta { text-align: right; color: #6b7280; font-weight: 600; padding: 10px 18px 14px; text-align: right; color: #6b7280; font-weight: 600; padding: 10px 18px 14px; text-align: right; color: #6b7280; font-weight: 600; }
.qv-history-shell .dash-action-swal-action-row { justify-content: flex-end; }
.qv-central-popup { width: 1680px !important; max-width: 1680px !important; }
.qv-central-swal .dash-action-swal-body { min-height: 78vh; }
.qv-central-swal .dash-action-swal-side { min-width: 0; min-width: 0; }
.qv-central-intro-card { border: 1px solid rgba(16,122,109,.12); border-radius: 18px; background: #fff; padding: 18px; margin-bottom: 16px; }
.qv-central-intro-badges { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 12px; }
.qv-central-intro-badge { display: inline-flex; align-items: center; gap: 8px; min-height: 34px; padding: 8px 14px; border-radius: 999px; background: rgba(16,122,109,.08); color: var(--primary-color); border: 1px solid rgba(16,122,109,.14); font-weight: 800; font-size: .92rem; }
.qv-central-intro-text { color: #6b7280; line-height: 1.6; font-weight: 600; }
.qv-central-badges-strip { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; }
.qv-central-close-btn { background: #fff; }
.qv-central-swal .dash-action-swal-content { overflow: visible; }
.qv-central-body-nohero { display: block !important; min-height: 78vh; }
.qv-central-side-full { width: 100%; min-width: 0; }
.usersdash-controls { padding: 18px; border-radius: 22px; }
.usersdash-controls-row { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; flex-wrap: wrap; }
.usersdash-controls-title { font-size: 1.05rem; font-weight: 800; color: #f8fafc; }
.usersdash-controls-subtitle { margin-top: 4px; color: #9fc6bf; font-size: .92rem; }
.usersdash-controls-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; justify-content: flex-end; }
.usersdash-controls-meta { margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,.06); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: center; }
[data-users-chart-card].chart-card .chart-container canvas { width: 100% !important; height: 100% !important; max-height: 100% !important; display: block !important; }
#qv-central-close-footer { width: 100%; min-height: 58px; justify-content: center; position: relative; z-index: 50; pointer-events: auto; }
.usersdash-shell { display: flex; flex-direction: column; gap: 22px; display: flex; flex-direction: column; gap: 22px; }
.usersdash-hero { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(320px,.8fr); gap: 24px; align-items: center; padding: 28px; border-radius: 24px; border: 1px solid rgba(10,163,161,.14); background: radial-gradient(circle at top right, rgba(10,163,161,.10) 0%, transparent 26%), radial-gradient(circle at top left, rgba(230,185,88,.10) 0%, transparent 22%), linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,251,250,.98) 100%); box-shadow: 0 18px 44px rgba(0,0,0,.08); display: grid; grid-template-columns: minmax(0,1.25fr) minmax(360px,.75fr); gap: 24px; align-items: stretch; padding: 28px; border-radius: 24px; border: 1px solid rgba(10,163,161,.14); background: radial-gradient(circle at top right, rgba(10,163,161,.10) 0%, transparent 26%), radial-gradient(circle at top left, rgba(230,185,88,.10) 0%, transparent 22%), linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,251,250,.98) 100%); box-shadow: 0 18px 44px rgba(0,0,0,.08); }
.usersdash-hero-content { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.usersdash-hero-badge { display: inline-flex; align-items: center; gap: 8px; width: max-content; padding: 10px 14px; border-radius: 999px; background: rgba(10,163,161,.10); color: #0f766e; border: 1px solid rgba(10,163,161,.16); font-weight: 700; display: inline-flex; align-items: center; gap: 8px; width: max-content; padding: 10px 14px; border-radius: 999px; background: rgba(10,163,161,.10); color: #0f766e; border: 1px solid rgba(10,163,161,.16); font-weight: 700; }
.usersdash-hero-title { margin: 0; font-size: 2rem; line-height: 1.1; font-weight: 800; color: #0f766e; margin: 0; font-size: 2rem; line-height: 1.1; font-weight: 800; color: #0f766e; }
.usersdash-hero-text { margin: 0; max-width: 760px; color: #64748b; font-size: 1rem; line-height: 1.7; margin: 0; max-width: 760px; color: #64748b; font-size: 1rem; line-height: 1.7; }
.usersdash-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.usersdash-hero-kpis-wrap { margin-top: 4px; }
.usersdash-kpis { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 16px; display: grid; grid-template-columns: repeat(auto-fit,minmax(185px,1fr)); gap: 14px; }
.usersdash-kpi-card { padding: 16px; border-radius: 18px; border: 1px solid rgba(10,163,161,.10); background: rgba(255,255,255,.74); box-shadow: 0 10px 24px rgba(0,0,0,.04); min-width: 0; }
.usersdash-kpi-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 10px; }
.usersdash-kpi-title { color: #64748b; font-size: .85rem; font-weight: 700; }
.usersdash-kpi-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(10,163,161,.10); color: #0f766e; font-size: 1.15rem; flex: 0 0 auto; }
.usersdash-kpi-value { font-size: 1.9rem; line-height: 1; font-weight: 800; color: #0f172a; }
.usersdash-kpi-foot { margin-top: 8px; color: #64748b; font-size: .88rem; line-height: 1.45; }
.usersdash-hero-bottom { margin-top: 2px; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; align-items: flex-end; }
.usersdash-hero-status-meta { display: flex; flex-direction: column; gap: 10px; min-width: 0; flex: 1 1 420px; }
.usersdash-hero-tools { display: flex; gap: 12px; flex-wrap: wrap; justify-content: flex-end; align-items: center; }
#usersDashStatus { padding: 10px 14px; border-radius: 12px; font-weight: 600; border: 1px solid transparent; background: rgba(255,255,255,.72); width: max-content; max-width: 100%; }
#usersDashStatus.is-info { color: #0f172a; border-color: rgba(59,130,246,.18); }
#usersDashStatus.is-success { color: #166534; border-color: rgba(34,197,94,.24); background: rgba(220,252,231,.92); }
#usersDashStatus.is-warning { color: #92400e; border-color: rgba(245,158,11,.24); background: rgba(254,243,199,.95); }
#usersDashStatus.is-error { color: #991b1b; border-color: rgba(251,113,133,.24); background: rgba(255,228,230,.96); }
#usersDashMeta { display: flex; gap: 10px; flex-wrap: wrap; }
.usersdash-hero-visual { position: relative; min-height: 280px; display: flex; align-items: center; justify-content: center; border-radius: 22px; background: linear-gradient(180deg, rgba(236,253,250,.95) 0%, rgba(240,249,255,.96) 100%); border: 1px solid rgba(10,163,161,.10); overflow: hidden; min-height: 100%; border-radius: 22px; background: linear-gradient(180deg, rgba(236,253,250,.95) 0%, rgba(240,249,255,.96) 100%); border: 1px solid rgba(10,163,161,.10); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.usersdash-hero-video { width: 100%; height: 100%; object-fit: cover; display: block; backface-visibility: hidden; -webkit-backface-visibility: hidden; transform: translateZ(0); -webkit-transform: translateZ(0); will-change: transform; width: 100%; height: 100%; object-fit: cover; display: block; }
.usersdash-main-grid { display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.65fr); gap: 20px; align-items: start; display: grid; grid-template-columns: minmax(0,1.55fr) minmax(320px,.65fr); gap: 20px; align-items: start; }
.usersdash-main-grid > * { min-width: 0; min-width: 0; }
.usersdash-charts-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; align-items: stretch; min-width: 0; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 18px; align-items: stretch; min-width: 0; }
.usersdash-side-column { display: flex; flex-direction: column; gap: 18px; min-width: 0; display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.usersdash-side-card { border-radius: 22px; border: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,252,251,.98) 100%); box-shadow: 0 12px 30px rgba(0,0,0,.05); padding: 18px; }
.usersdash-side-head { margin-bottom: 12px; }
.usersdash-side-title { display: flex; align-items: center; gap: 10px; font-weight: 800; color: #0f766e; }
.usersdash-feed { display: flex; flex-direction: column; gap: 10px; max-height: 900px; overflow: auto; }
.usersdash-feed-item { padding: 12px 14px; border-radius: 16px; background: #f8fafc; border: 1px solid rgba(148,163,184,.14); }
.usersdash-feed-top { display: flex; justify-content: space-between; gap: 10px; align-items: center; margin-bottom: 6px; }
.usersdash-feed-user { font-weight: 800; color: #0f172a; }
.usersdash-feed-time { color: #64748b; font-size: .82rem; white-space: nowrap; }
.usersdash-feed-text { color: #475569; font-size: .92rem; line-height: 1.55; word-break: break-word; }
.usersdash-feed-status { margin-top: 8px; display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; font-size: .8rem; font-weight: 700; }
.usersdash-feed-status.is-success { color: #166534; background: #dcfce7; }
.usersdash-feed-status.is-failure { color: #991b1b; background: #fee2e2; }
.usersdash-insights { display: flex; flex-direction: column; gap: 10px; }
.usersdash-insight-item { display: flex; gap: 12px; align-items: flex-start; padding: 12px 14px; border-radius: 16px; background: #f8fafc; border: 1px solid rgba(148,163,184,.14); }
.usersdash-insight-icon { width: 38px; height: 38px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(10,163,161,.10); color: #0f766e; flex: 0 0 auto; }
.usersdash-insight-title { font-weight: 800; color: #0f172a; margin-bottom: 4px; }
.usersdash-insight-text { color: #475569; font-size: .92rem; line-height: 1.55; }
.usersdash-table-card .card-header { border-bottom: 1px solid rgba(10,163,161,.14); border-bottom: 1px solid rgba(10,163,161,.14); }
.usersdash-table-subtitle { color: #64748b; font-size: .92rem; color: #64748b; font-size: .92rem; }
.usersdash-empty { padding: 24px; border-radius: 18px; background: #f8fafc; border: 1px dashed rgba(148,163,184,.24); color: #64748b; text-align: center; padding: 24px; border-radius: 18px; background: #f8fafc; border: 1px dashed rgba(148,163,184,.24); color: #64748b; text-align: center; }
[data-users-chart-card].chart-card { min-width: 0; min-height: 530px; height: 100%; display: flex; flex-direction: column; overflow: hidden; min-width: 0; min-height: 530px; height: 530px; display: flex; flex-direction: column; overflow: hidden; }
[data-users-chart-card].chart-card .chart-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 14px; }
[data-users-chart-card].chart-card .chart-heading { min-width: 0; }
[data-users-chart-card].chart-card .chart-actions { display: flex; gap: 10px; flex-wrap: wrap; flex-shrink: 0; }
[data-users-chart-card].chart-card .chart-current-row { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; }
[data-users-chart-card].chart-card .chart-container { position: relative; flex: 1 1 auto; min-height: 380px; height: 380px; padding: 0 6px 18px; overflow: visible; position: relative; flex: 1 1 auto; min-height: 340px; height: 340px; padding: 0 6px 30px; overflow: visible; }
[data-users-chart-card].chart-card.is-donut-chart { min-height: 690px; height: 100%; }
[data-users-chart-card].chart-card.is-donut-chart .chart-container { flex: 1 1 auto; min-height: 250px; height: 250px; display: flex; align-items: center; justify-content: center; padding: 0 6px 8px; overflow: visible; }
[data-users-chart-card].chart-card.is-donut-chart .chart-container canvas { max-width: 62% !important; max-height: 280px !important; }
[data-users-chart-card].chart-card.is-donut-chart .usersdash-donut-legend { margin-top: 12px; }
[data-users-chart-card].chart-card canvas { width: 100% !important; height: 100% !important; max-height: 100% !important; display: block !important; }
[data-users-chart-card].chart-card .chart-table-wrap.is-open { display: block; max-height: 390px; overflow: auto; display: block; max-height: 390px; overflow: auto; }
[data-users-chart-card].chart-card.is-fullscreen { position: fixed !important; inset: 12px; z-index: 1300; height: calc(100vh - 24px); min-height: unset; padding: 20px; border-radius: 22px; }
[data-users-chart-card].chart-card.is-fullscreen .chart-container { height: calc(100vh - 230px); min-height: calc(100vh - 230px); }
body.chart-fullscreen-open { overflow: hidden; overflow: hidden; }
@media (max-width: 560px) {
  .usersdash-kpis { grid-template-columns: 1fr; }
}
.qv-central-swal .dash-action-swal-action-row { justify-content: flex-end; display: block; position: relative; z-index: 30; }
.qv-central-swal #qv-central-close-footer { width: 100%; min-height: 58px; justify-content: center; width: 100%; min-height: 58px; justify-content: center; position: relative; z-index: 31; pointer-events: auto; }
.qv-central-popup .swal2-close { z-index: 40 !important; pointer-events: auto !important; }
#qv-central-help-btn { position: absolute; top: 18px; right: 82px; width: 52px; height: 52px; border: 1px solid rgba(229,171,42,.45); border-radius: 16px; background: #fffaf0; color: #d39b17; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; box-shadow: 0 8px 20px rgba(16,122,109,.08); transition: .18s ease; z-index: 20; }
#qv-central-help-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(16,122,109,.12); }
.qv-actions-swal .swal2-close { top: 18px !important; right: 18px !important; width: 52px !important; height: 52px !important; border-radius: 16px !important; border: 1px solid rgba(229,171,42,.45) !important; background: #fff !important; color: #8b95a7 !important; font-size: 1.35rem !important; box-shadow: 0 8px 20px rgba(16,122,109,.08) !important; transition: .18s ease !important; }
.qv-actions-swal .swal2-close:hover { color: var(--error-color) !important; background: var(--error-light-color-fade) !important; border-color: var(--error-color) !important; }
.dashboard-loading-overlay { position: fixed; inset: 0; z-index: 1600; display: flex; align-items: center; justify-content: center; padding: 24px; background: rgba(3, 18, 16, .58); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); opacity: 1; visibility: visible; transition: opacity .22s ease, visibility .22s ease; }
.dashboard-loading-overlay.hidden { opacity: 0; visibility: hidden; pointer-events: none; }
.dashboard-loading-card { width: min(720px, calc(100vw - 32px)); min-height: 280px; display: grid; grid-template-columns: minmax(220px, 280px) minmax(0, 1fr); gap: 22px; align-items: center; padding: 24px; border-radius: 28px; border: 1px solid rgba(10,163,161,.16); background: radial-gradient(circle at top right, rgba(10,163,161,.12) 0%, transparent 28%), radial-gradient(circle at top left, rgba(230,185,88,.08) 0%, transparent 24%), linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(244,250,249,.98) 100%); box-shadow: 0 24px 70px rgba(0,0,0,.18); }
.dashboard-loading-media { display: flex; align-items: center; justify-content: center; min-height: 220px; border-radius: 22px; background: linear-gradient(180deg, rgba(236,253,250,.95) 0%, rgba(240,249,255,.96) 100%); border: 1px solid rgba(10,163,161,.10); overflow: hidden; }
.dashboard-loading-media img { width: 100%; max-width: 240px; height: auto; object-fit: contain; display: block; }
.dashboard-loading-content { display: flex; flex-direction: column; gap: 12px; }
.dashboard-loading-badge { display: inline-flex; align-items: center; gap: 8px; width: max-content; padding: 10px 14px; border-radius: 999px; background: rgba(10,163,161,.10); border: 1px solid rgba(10,163,161,.16); color: #0f766e; font-weight: 800; }
.dashboard-loading-content h3 { margin: 0; font-size: 1.7rem; line-height: 1.1; font-weight: 800; color: #0f766e; }
.dashboard-loading-content p { margin: 0; color: #64748b; font-size: 1rem; line-height: 1.7; max-width: 420px; }
.dashboard-loading-dots { display: flex; align-items: center; gap: 10px; margin-top: 4px; }
.dashboard-loading-dots span { width: 12px; height: 12px; border-radius: 50%; background: linear-gradient(180deg, #0aa3a1 0%, #0f766e 100%); box-shadow: 0 8px 18px rgba(10,163,161,.24); animation: dashboardLoadingPulse 1.1s infinite ease-in-out; }
.dashboard-loading-dots span:nth-child(2) { animation-delay: .15s; }
.dashboard-loading-dots span:nth-child(3) { animation-delay: .30s; }
body.dashboard-busy-open { overflow: hidden; }
.range-btn:disabled, .icon-btn:disabled, .chart-action:disabled, .device-select:disabled, .date-input:disabled { opacity: .68; cursor: not-allowed; pointer-events: none; }
@keyframes dashboardLoadingPulse {
  0%, 80%, 100% { transform: scale(.72); opacity: .45; }
  40% { transform: scale(1); opacity: 1; }
}
@media (max-width: 860px) {
  .dashboard-loading-card { grid-template-columns: 1fr; min-height: unset; }
  .dashboard-loading-media { min-height: 180px; }
}
.qv-step3-topbar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: start; margin: 12px 0 16px; }
.qv-step3-topbar-summary { min-width: 0; }
.qv-step3-topbar-summary > * { margin-bottom: 0 !important; }
.qv-step3-topbar, .qv-step3-toolbar { display: none; }
.qv-step3-info-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; padding: 14px 16px; margin: 10px 0 16px; border: 1px solid rgba(16,122,109,.10); border-radius: 16px; background: #fff; box-shadow: 0 6px 16px rgba(16,122,109,.05); }
.qv-step3-info-main { display: flex; align-items: center; gap: 12px; min-width: 0; }
.qv-step3-info-icon { width: 42px; height: 42px; border-radius: 13px; display: flex; align-items: center; justify-content: center; background: rgba(16,122,109,.07); color: var(--primary-color); font-size: 1rem; flex: 0 0 auto; }
.qv-step3-info-title { color: var(--primary-color); font-weight: 800; font-size: .98rem; line-height: 1.15; margin-bottom: 6px; }
.qv-step3-info-meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.qv-step3-mini-badge { min-height: 28px; padding: 5px 10px; border-radius: 999px; display: inline-flex; align-items: center; background: #f8fafc; border: 1px solid rgba(148,163,184,.18); color: #64748b; font-size: .84rem; font-weight: 700; line-height: 1; }
.qv-step3-mini-badge--mode { background: rgba(16,122,109,.08); border-color: rgba(16,122,109,.14); color: var(--primary-color); }
.qv-step3-reload-btn { min-height: 46px; padding: 0 16px; border-radius: 14px; display: inline-flex; align-items: center; gap: 8px; white-space: nowrap; align-self: center; min-height: 38px; padding: 0 12px; border: 1px solid rgba(16,122,109,.12); border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; background: #f7ffff; color: var(--primary-color); font-weight: 700; font-size: .92rem; box-shadow: none; transition: .16s ease; }
.qv-step3-reload-btn:hover { background: rgba(16,122,109,.08); border-color: rgba(16,122,109,.18); transform: none; box-shadow: none; }
.qv-step3-reload-btn:disabled { opacity: .7; cursor: not-allowed; }
.qv-editor-reload-btn { min-height: 38px; padding: 0 12px; border: 1px solid rgba(16,122,109,.12); border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; gap: 7px; white-space: nowrap; background: #f7ffff; color: var(--primary-color); font-weight: 700; font-size: .92rem; box-shadow: none; transition: .16s ease; }
.qv-editor-reload-btn:hover { background: rgba(16,122,109,.08); border-color: rgba(16,122,109,.18); }
.qv-editor-reload-btn:disabled { opacity: .7; cursor: not-allowed; }
.qv-general-intro-head { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 14px; align-items: start; }
.qv-general-intro-head-main { min-width: 0; }
.qv-di-topbar { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 12px; align-items: center; margin-bottom: 14px; padding: 14px 16px; border: 1px solid rgba(16,122,109,.10); border-radius: 16px; background: #fff; box-shadow: 0 6px 16px rgba(16,122,109,.05); }
.qv-di-topbar-copy { min-width: 0; }
.qv-di-topbar-title { color: var(--primary-color); font-weight: 800; font-size: .98rem; line-height: 1.15; margin-bottom: 4px; }
.qv-di-topbar-text { color: #6b7280; font-weight: 600; font-size: .93rem; line-height: 1.5; }
.profiledash-shell { display: flex; flex-direction: column; gap: 22px; }
.profiledash-shell .tab-content-profile-page { display: none; }
.profiledash-shell .tab-content-profile-page.active { display: block; }
.profiledash-hero { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(340px,.8fr); gap: 24px; align-items: stretch; padding: 28px; border-radius: 26px; border: 1px solid rgba(10,163,161,.12); margin-top: 18px; background: radial-gradient(circle at top right, rgba(10,163,161,.10) 0%, transparent 28%), radial-gradient(circle at top left, rgba(230,185,88,.08) 0%, transparent 22%), linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,251,250,.98) 100%); box-shadow: 0 18px 40px rgba(0,0,0,.06); }
.profiledash-hero-main { display: flex; flex-direction: column; gap: 18px; }
.profiledash-hero-badge { display: inline-flex; align-items: center; gap: 8px; width: max-content; padding: 10px 14px; border-radius: 999px; background: rgba(10,163,161,.10); color: #0f766e; border: 1px solid rgba(10,163,161,.16); font-weight: 800; }
.profiledash-hero-head { display: flex; align-items: center; gap: 16px; }
.profiledash-avatar { width: 86px; height: 86px; border-radius: 22px; overflow: hidden; flex: 0 0 auto; background: #fff; border: 1px solid rgba(148,163,184,.14); box-shadow: 0 10px 24px rgba(0,0,0,.06); }
.profiledash-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.profiledash-hero-copy { min-width: 0; }
.profiledash-hero-title { margin: 0 0 6px; font-size: 2.15rem; line-height: 1.08; font-weight: 900; color: #0f766e; word-break: break-word; }
.profiledash-hero-role { font-size: 1rem; font-weight: 700; color: #0f172a; margin-bottom: 4px; }
.profiledash-hero-location { color: #64748b; font-size: .95rem; }
.profiledash-hero-text { margin: 0; max-width: 760px; color: #64748b; font-size: 1rem; line-height: 1.75; }
.profiledash-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.profiledash-hero-actions .tab-link { border: none; }
.profiledash-hero-actions .tab-link.active { box-shadow: 0 14px 28px rgba(10,110,92,.18); }
.profiledash-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.profiledash-summary-card { padding: 16px 18px; border-radius: 18px; background: #ffffff; border: 1px solid rgba(148,163,184,.14); box-shadow: 0 10px 24px rgba(0,0,0,.04); min-width: 0; }
.profiledash-summary-label { display: flex; align-items: center; gap: 8px; color: #64748b; font-size: .9rem; font-weight: 700; margin-bottom: 10px; }
.profiledash-summary-label i { color: #0f766e; font-size: 1rem; }
.profiledash-summary-value { color: #0f172a; font-size: 1.02rem; font-weight: 800; line-height: 1.45; word-break: break-word; }
.profiledash-hero-media { position: relative; min-height: 340px; border-radius: 24px; overflow: hidden; border: 1px solid rgba(10,163,161,.10); background: linear-gradient(180deg, rgba(237,250,249,.95) 0%, rgba(241,249,255,.96) 100%); }
.profiledash-panel { background: #ffffff; border: 1px solid rgba(148,163,184,.14); border-radius: 24px; box-shadow: 0 16px 36px rgba(0,0,0,.05); overflow: hidden; }
.profiledash-panel-header { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; padding: 22px 24px 0; }
.profiledash-panel-title { margin: 0; font-size: 1.22rem; font-weight: 900; color: #0f172a; }
.profiledash-panel-subtitle { margin-top: 6px; color: #64748b; font-size: .92rem; }
.profiledash-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; padding: 22px 24px 24px; }
.profiledash-info-card { min-width: 0; padding: 18px; border-radius: 20px; background: #f8fafc; border: 1px solid rgba(148,163,184,.12); }
.profiledash-info-label { display: flex; align-items: center; gap: 8px; color: #64748b; font-size: .92rem; font-weight: 800; margin-bottom: 10px; }
.profiledash-info-top .profiledash-info-label { margin-bottom: 0; }
.profiledash-info-label i { color: #0f766e; font-size: 1rem; }
.profiledash-info-value { color: #0f172a; font-size: 1rem; font-weight: 800; line-height: 1.6; word-break: break-word; }
.profiledash-email-badge { white-space: nowrap; }
.profiledash-email-badge.is-verified { background: #dcfce7; color: #166534; border: 1px solid rgba(22,101,52,.12); }
.profiledash-email-badge.is-unverified { background: #fee2e2; color: #991b1b; border: 1px solid rgba(153,27,27,.12); }
.profiledash-email-badge.is-neutral { background: #e2e8f0; color: #475569; border: 1px solid rgba(71,85,105,.12); }
.profiledash-edit-layout { display: grid; grid-template-columns: minmax(300px,.72fr) minmax(0,1.28fr); gap: 20px; align-items: start; }
.profiledash-edit-side { background: #ffffff; border: 1px solid rgba(148,163,184,.14); border-radius: 24px; box-shadow: 0 16px 36px rgba(0,0,0,.05); overflow: hidden; position: sticky; top: 18px; height: 100%; }
.profiledash-edit-media { height: 60%; background: linear-gradient(180deg, rgba(237,250,249,.95) 0%, rgba(241,249,255,.96) 100%); border-bottom: 1px solid rgba(148,163,184,.10); }
.profiledash-edit-media img { width: 100%; height: 100%; object-fit: contain; display: block; }
.profiledash-edit-copy { padding: 20px; }
.profiledash-edit-copy h5 { margin: 0 0 10px; font-size: 1.14rem; font-weight: 900; color: #0f172a; }
.profiledash-edit-copy p { margin: 0; color: #64748b; line-height: 1.7; }
.profiledash-edit-points { margin-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.profiledash-edit-point { display: flex; align-items: flex-start; gap: 10px; color: #334155; font-weight: 700; line-height: 1.5; }
.profiledash-edit-point i { color: #0f766e; margin-top: 2px; }
.profiledash-panel-form .profiledash-panel-header { padding-bottom: 0; }
.profiledash-form-wrap { padding: 22px 24px 24px; }
.profiledash-form-wrap .form-group { margin-bottom: 20px; }
.profiledash-form-actions { margin-top: 8px; display: flex; justify-content: flex-start; }
.profiledash-form-wrap .form-control, .profiledash-form-wrap .select2-container--default .select2-selection--single { min-height: 48px; }
/* ===== PROFILE EDIT LAYOUT FIX ===== */
.profiledash-edit-grid { display: grid; grid-template-columns: minmax(380px, 1fr) minmax(520px, 1.08fr); gap: 24px; align-items: stretch; }
.profiledash-edit-visual-card { height: 100%; min-height: 100%; display: flex; flex-direction: column; overflow: hidden; }
.profiledash-edit-visual-media { min-height: 420px; flex: 1 1 auto; display: flex; align-items: center; justify-content: center; padding: 24px; background: linear-gradient(180deg, rgba(236,253,250,.92) 0%, rgba(240,249,255,.96) 100%); border-bottom: 1px solid rgba(10,163,161,.10); }
.profiledash-edit-visual-media img { width: 100%; max-width: 520px; max-height: 460px; object-fit: contain; display: block; }
.profiledash-edit-visual-body { flex: 1 1 auto; display: flex; flex-direction: column; justify-content: flex-end; padding: 26px 28px 30px; }
.profiledash-edit-form-card { min-width: 0; overflow: visible; }
.profiledash-edit-form-card .row, .profiledash-edit-form-card .col-12, .profiledash-edit-form-card .col-md-6, .profiledash-edit-form-card .col-lg-6 { min-width: 0; }
.profiledash-edit-form-card .form-group { margin-bottom: 18px; }
.profiledash-edit-form-card .input-group { width: 100%; flex-wrap: nowrap; align-items: stretch; }
.profiledash-edit-form-card .input-group-text { flex: 0 0 48px; width: 48px; min-width: 48px; justify-content: center; }
.profiledash-edit-form-card .form-control, .profiledash-edit-form-card .form-select, .profiledash-edit-form-card select { min-width: 0; width: 100%; }
.profiledash-edit-form-card .select2-container { width: 100% !important; min-width: 0; }
.profiledash-edit-form-card .select2-selection { min-height: 54px; }
/* ===== PHONE / COUNTRY DROPDOWN FIX ===== */
.profiledash-edit-form-card .iti { width: 100%; display: block; }
.profiledash-edit-form-card .iti input, .profiledash-edit-form-card .iti input[type="tel"] { width: 100% !important; min-width: 0; padding-left: 230px !important; }
.profiledash-edit-form-card .iti__country-container { left: 0; z-index: 20; }
.profiledash-edit-form-card .iti__selected-country { max-width: 220px; }
.profiledash-edit-form-card .iti__selected-country-primary { height: 54px; padding: 0 14px 0 12px; border-radius: 12px 0 0 12px; }
.profiledash-edit-form-card .iti__selected-dial-code { margin-left: 8px; white-space: nowrap; }
.profiledash-edit-form-card .iti__dropdown-content { z-index: 9999; min-width: 320px; max-width: 360px; border-radius: 16px; overflow: hidden; }
.profiledash-edit-form-card .iti__search-input { width: 100%; min-width: 0; }
.profiledash-edit-form-card .iti__country-list { max-height: 260px; }
.profiledash-edit-form-card .iti__country { white-space: normal; line-height: 1.35; }
.profiledash-edit-form-card .iti__country-name { white-space: normal; }
/* για να μην κόβεται dropdown από parent cards */
.profiledash-edit-grid, .profiledash-edit-form-card, .profiledash-edit-visual-card, .profiledash-tab-panel, .profiledash-content-card { overflow: visible; }
/* ===== RESPONSIVE ===== */
.profiledash-edit-media-video { position: relative; overflow: hidden; }
.profiledash-edit-video { width: 100%; height: 100%; display: block; object-fit: contain; border-radius: inherit; background: transparent; }
.profiledash-inline-meta { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
.profiledash-edit-card { height: 100%; border-radius: 24px; background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,252,251,.98) 100%); border: 1px solid rgba(10,163,161,.12); box-shadow: 0 14px 36px rgba(0,0,0,.06); overflow: hidden; }
.profiledash-edit-head { padding: 24px 24px 0; }
.profiledash-edit-title { margin: 0; font-size: 1.45rem; line-height: 1.15; font-weight: 800; color: #0f172a; }
.profiledash-edit-subtitle { margin: 8px 0 0; color: #64748b; font-size: .96rem; line-height: 1.6; }
.profiledash-edit-body { padding: 24px; }
#changePasswordSection, #changeEmailSection { scroll-margin-top: 110px; }
.profiledash-shell--credentials { display: flex; flex-direction: column; gap: 22px; display: flex; flex-direction: column; gap: 22px; }
.profiledash-hero--credentials { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(340px,.9fr); gap: 28px; align-items: stretch; padding: 28px; }
.profiledash-hero--credentials .profiledash-hero-content { display: flex; flex-direction: column; justify-content: center; gap: 14px; min-width: 0; }
.profiledash-hero--credentials .profiledash-hero-title { margin: 0; }
.profiledash-hero--credentials .profiledash-hero-text { margin: 0; max-width: 760px; line-height: 1.7; }
.profiledash-hero--credentials .profiledash-hero-actions { margin-top: 6px; display: flex; gap: 12px; flex-wrap: wrap; }
.profiledash-hero--credentials .profiledash-hero-visual { min-height: 360px; min-height: 320px; border-radius: 24px; overflow: hidden; background: linear-gradient(180deg, rgba(236,253,250,.95) 0%, rgba(240,249,255,.96) 100%); border: 1px solid rgba(10,163,161,.10); }
.profiledash-hero-video { width: 100%; height: 100%; object-fit: cover; display: block; width: 100%; height: 100%; display: block; object-fit: cover; border-radius: inherit; width: 100%; height: 100%; display: block; object-fit: cover; }
.profiledash-edit-section--credentials { width: 100%; }
.profiledash-edit-layout--credentials { display: grid; grid-template-columns: minmax(340px,.9fr) minmax(0,1.1fr); gap: 24px; align-items: stretch; }
.profiledash-edit-card--credentials { width: 100%; height: 100%; border-radius: 24px; background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,252,251,.98) 100%); border: 1px solid rgba(10,163,161,.12); box-shadow: 0 14px 36px rgba(0,0,0,.06); overflow: hidden; }
.profiledash-edit-card--credentials.is-active { display: block; }
.credentials-switch-btn.is-active { box-shadow: 0 14px 30px rgba(10,110,92,.18); }
.profiledash-edit-card--credentials.d-none { display: none !important; }
.profiledash-edit-card--credentials .profiledash-edit-head { padding: 24px 24px 0; }
.profiledash-edit-card--credentials .profiledash-edit-body { padding: 24px; }
#otp_code_container { display: none; margin-top: 24px; display: none; margin-top: 24px; }
.container_otp { padding: 22px; border-radius: 20px; background: linear-gradient(180deg, rgba(236,253,250,.92) 0%, rgba(248,250,252,.98) 100%); border: 1px solid rgba(10,163,161,.14); padding: 22px; border-radius: 20px; background: linear-gradient(180deg, rgba(236,253,250,.92) 0%, rgba(248,250,252,.98) 100%); border: 1px solid rgba(10,163,161,.14); }
.container_otp p { margin-bottom: 16px; color: #475569; font-size: .95rem; margin-bottom: 16px; color: #475569; font-size: .95rem; }
.otp-input { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.otp-input input { width: 54px; height: 54px; border-radius: 14px; border: 1px solid rgba(148,163,184,.18); background: #fff; text-align: center; font-size: 1.1rem; font-weight: 700; outline: none; width: 54px; height: 54px; border-radius: 14px; border: 1px solid rgba(148,163,184,.18); background: #fff; text-align: center; font-size: 1.1rem; font-weight: 700; outline: none; }
.otp-input input:focus { border-color: rgba(10,163,161,.42); box-shadow: 0 0 0 4px rgba(10,163,161,.10); border-color: rgba(10,163,161,.42); box-shadow: 0 0 0 4px rgba(10,163,161,.10); }
.resend-text { margin-top: 14px; color: #64748b; font-size: .92rem; margin-top: 14px; color: #64748b; font-size: .92rem; }
.resend-link { color: #0f766e; font-weight: 700; cursor: pointer; color: #0f766e; font-weight: 700; cursor: pointer; }
.profiledash-classic-card { background: #fff; border: 1px solid rgba(15,118,110,.18); border-radius: 22px; overflow: hidden; box-shadow: 0 10px 28px rgba(15,23,42,.06); }
.profiledash-classic-card-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 22px; border-bottom: 2px solid rgba(15,118,110,.14); background: #fff; }
.profiledash-classic-card-head-left { min-width: 0; }
.profiledash-classic-card-title { margin: 0; font-size: 1.6rem; line-height: 1.1; font-weight: 900; color: #0f766e; letter-spacing: -.02em; }
.profiledash-classic-card-subtitle { margin: 10px 0 0; max-width: 760px; color: #64748b; font-size: 1rem; line-height: 1.7; }
.profiledash-classic-card-body { padding: 22px; background: #f6fbfa; }
.profiledash-classic-inner { border: 2px solid rgba(15,118,110,.16); border-radius: 18px; background: #f8fcfb; padding: 22px; }
.profiledash-classic-info-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.profiledash-classic-info-item { background: #fff; border: 1px solid rgba(148,163,184,.16); border-radius: 18px; padding: 18px 18px 16px; box-shadow: 0 6px 16px rgba(15,23,42,.03); }
.profiledash-classic-info-label { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; color: #64748b; font-size: .92rem; font-weight: 700; }
.profiledash-classic-info-label i { color: #0f766e; font-size: 1rem; }
.profiledash-classic-info-value { color: #0f172a; font-size: 1.05rem; font-weight: 800; line-height: 1.45; word-break: break-word; }
.profiledash-info-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-bottom: 10px; display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.profiledash-classic-side { background: #fff; border: 1px solid rgba(148,163,184,.16); border-radius: 22px; overflow: hidden; box-shadow: 0 8px 18px rgba(15,23,42,.04); height: 100%; display: flex; flex-direction: column; }
.profiledash-classic-side-media { background: #eef8f7; min-height: 320px; display: flex; align-items: center; justify-content: center; overflow: hidden; height: 60%; }
.profiledash-classic-side-media img, .profiledash-classic-side-media video { width: 100%; height: 100%; object-fit: cover; display: block; }
.profiledash-classic-side-copy { padding: 24px 24px 22px; }
.profiledash-classic-side-copy h5 { margin: 0 0 12px; font-size: 1.55rem; font-weight: 850; color: #0f172a; }
.profiledash-classic-side-copy p { margin: 0 0 16px; color: #64748b; line-height: 1.8; font-size: .98rem; }
.profiledash-classic-points { display: flex; flex-direction: column; gap: 12px; }
.profiledash-classic-point { display: flex; align-items: flex-start; gap: 10px; color: #0f172a; font-weight: 700; line-height: 1.55; }
.profiledash-classic-point i { color: #0f766e; margin-top: 2px; flex: 0 0 auto; }
.profiledash-edit-form-shell { display: flex; min-width: 0; display: flex; flex-direction: column; gap: 16px; }
.dash-action-info-text, .dash-action-mini-text, .dash-action-info-title { word-break: break-word; overflow-wrap: anywhere; }
.dash-action-info-card, .dash-action-mini-card { min-width: 0; }
.dash-action-info-grid { display: flex; flex-direction: column; gap: .75rem; align-items: stretch; }
.swal2-popup .dash-action-info-card, .swal2-popup .dash-action-mini-card { overflow: hidden; }
.qv-sun-send-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 14px; margin: 0 0 18px; }
.qv-sun-send-card { position: relative; display: flex; flex-direction: column; gap: 12px; min-height: 132px; padding: 18px 18px 16px; border: 1.5px solid rgba(16,122,109,.18); border-radius: 22px; background: #f8fffd; cursor: pointer; transition: .18s ease; box-shadow: 0 8px 18px rgba(16,122,109,.05); }
.qv-sun-send-card:hover { border-color: rgba(16,122,109,.34); box-shadow: 0 10px 24px rgba(16,122,109,.08); }
.qv-sun-send-card.is-selected { background: rgba(16,122,109,.06); border-color: var(--primary-color); box-shadow: 0 12px 28px rgba(16,122,109,.10); }
.qv-sun-send-check { display: none; }
.qv-sun-send-check-ui { position: absolute; top: 14px; right: 14px; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid rgba(16,122,109,.28); background: #fff; display: flex; align-items: center; justify-content: center; color: transparent; transition: .18s ease; }
.qv-sun-send-card.is-selected .qv-sun-send-check-ui { background: var(--primary-color); border-color: var(--primary-color); color: #fff; }
.qv-sun-send-card-icon { width: 52px; height: 52px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: rgba(16,122,109,.08); color: var(--primary-color); font-size: 1.2rem; }
.qv-sun-send-card-copy { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.qv-sun-send-card-title { font-size: 1rem; font-weight: 800; line-height: 1.2; color: var(--text-color-dark); }
.qv-sun-send-card-text { font-size: .88rem; line-height: 1.5; color: #6b7280; font-weight: 600; }
.overviewdash-hero { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(360px,.75fr); gap: 24px; align-items: stretch; padding: 28px; border-radius: 24px; border: 1px solid rgba(10,163,161,.14); background: radial-gradient(circle at top right, rgba(10,163,161,.10) 0%, transparent 28%), radial-gradient(circle at top left, rgba(230,185,88,.08) 0%, transparent 22%), linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(245,251,250,.98) 100%); box-shadow: 0 18px 44px rgba(0,0,0,.08); margin-top: 18px; }
.overviewdash-hero-content { display: flex; flex-direction: column; gap: 14px; min-width: 0; height: 100%; }
.overviewdash-hero-badge { display: inline-flex; align-items: center; gap: 8px; width: max-content; padding: 10px 14px; border-radius: 999px; background: rgba(10,163,161,.10); color: #0f766e; border: 1px solid rgba(10,163,161,.16); font-weight: 700; }
.overviewdash-hero-title { margin: 0; font-size: 2rem; line-height: 1.12; font-weight: 800; color: var(--primary-color); }
.overviewdash-hero-text { margin: 0; max-width: 840px; color: #64748b; font-size: 1rem; line-height: 1.7; }
.overviewdash-hero-actions { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
.overviewdash-hero-visual { min-height: 360px; border-radius: 22px; border: 1px solid rgba(10,163,161,.10); background: linear-gradient(180deg, rgba(236,253,250,.95) 0%, rgba(240,249,255,.96) 100%); overflow: hidden; display: flex; align-items: center; justify-content: center; }
.overviewdash-hero-visual video, .overviewdash-hero-visual img { width: 100%; height: 100%; display: block; }
.overviewdash-kpi-card:hover { transform: translateY(-3px); box-shadow: 0 20px 38px rgba(15,23,42,.10); }
.overviewdash-kpi-card::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, #0aa3a1 0%, #22c55e 100%); }
.overviewdash-kpi-card::after { content: ""; position: absolute; right: -24px; top: -24px; width: 110px; height: 110px; background: radial-gradient(circle, rgba(10,163,161,.10) 0%, transparent 72%); pointer-events: none; }
.overviewdash-kpi-icon { width: 46px; height: 46px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: linear-gradient(180deg, rgba(10,163,161,.12) 0%, rgba(15,118,110,.18) 100%); color: #0f766e; font-size: 1.18rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.58); flex: 0 0 auto; }
.overviewdash-kpi-foot { padding-top: 12px; border-top: 1px solid rgba(148,163,184,.14); color: #64748b; font-size: .92rem; line-height: 1.55; }
.overviewdash-main-grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(290px,.6fr); gap: 18px; align-items: start; }
.overviewdash-kpi-card { position: relative; overflow: hidden; min-height: 198px; padding: 18px 18px 16px; border-radius: 24px; border: 1px solid rgba(10,163,161,.10); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,252,251,.98) 100%); box-shadow: 0 16px 32px rgba(15,23,42,.06); transition: transform .18s ease, box-shadow .18s ease; min-height: 184px; padding: 16px 16px 14px; }
.overviewdash-main-left, .overviewdash-main-right { min-width: 0; }
.overviewdash-analytics-section { display: flex; flex-direction: column; gap: 14px; }
.overviewdash-section-head h3 { margin: 0; font-size: 1.45rem; font-weight: 800; color: #0f172a; }
.overviewdash-section-head p { margin: 4px 0 0; color: #64748b; }
.overviewdash-analytics-grid { display: flex; flex-direction: column; gap: 18px; }
.overviewdash-side-card h4 { margin: 0 0 12px; font-size: 1.05rem; font-weight: 800; color: #0f766e; }
.overviewdash-table-wrap { overflow: auto; border-radius: 16px; border: 1px solid rgba(148,163,184,.12); }
.overviewdash-chart-card .icon-btn { background: #f8fafc; border: 1px solid rgba(148,163,184,.16); color: #0f766e; }
.overviewdash-chart-card .icon-btn:hover, .overviewdash-chart-card .icon-btn.is-active { background: rgba(10,163,161,.10); border-color: rgba(10,163,161,.24); color: #0f766e; }
.overviewdash-chart-card.is-fullscreen { position: fixed !important; inset: 12px; z-index: 1300; height: calc(100vh - 24px); min-height: unset; max-height: none; padding: 20px; }
.overviewdash-chart-card.is-fullscreen .chart-container { min-height: 0; max-height: none; height: calc(100vh - 240px); }
.overviewdash-chart-card .chart-table-wrap { background: #fff; }
.overviewdash-chart-card .metric-table th { background: #f8fafc; color: #0f172a; }
.overviewdash-chart-card .metric-table td { color: #475569; }
.overviewdash-block-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
.overviewdash-block-title { display: flex; flex-direction: column; gap: 4px; }
.overviewdash-block-title h3 { margin: 0; font-size: 1.35rem; color: #0f766e; font-weight: 800; }
.overviewdash-block-title p { margin: 0; color: #64748b; font-size: .92rem; line-height: 1.55; display: block; }
@media (max-width: 1500px) {
  .overviewdash-analytics-grid { grid-template-columns: 1fr; }
}
.overviewdash-row-three, .overviewdash-analytics-section, .overviewdash-techlogs-section { margin-top: 22px; }
.overviewdash-gauge-canvas canvas { width: 100% !important; height: 100% !important; display: block; }
.overviewdash-queue-card .card-body { padding: 14px 16px; }
.overviewdash-map-card .card-body { padding: 14px; }
.overviewdash-map-card #thessaloniki-app { height: 100%; min-height: 540px; border-radius: 18px; overflow: hidden; }
.overviewdash-card-subtitle { color: #64748b; font-size: .92rem; line-height: 1.5; }
.overviewdash-section-title { margin: 0; font-size: 1.35rem; font-weight: 800; color: #0f172a; }
.overviewdash-section-subtitle { margin-top: 6px; color: #64748b; font-size: .95rem; }
.overviewdash-charts-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; align-items: stretch; display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.overviewdash-tables-side { display: flex; flex-direction: column; gap: 18px; display: flex; flex-direction: column; gap: 18px; }
.overviewdash-side-card { border-radius: 22px; border: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,252,251,.98) 100%); box-shadow: 0 12px 30px rgba(0,0,0,.05); padding: 18px; border-radius: 22px; border: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,252,251,.98) 100%); box-shadow: 0 12px 30px rgba(0,0,0,.05); padding: 18px; }
.overviewdash-summary-table { width: 100%; border-collapse: collapse; min-width: 100%; width: 100%; border-collapse: collapse; }
.overviewdash-summary-table th, .overviewdash-summary-table td { padding: 12px 14px; border-bottom: 1px solid rgba(148,163,184,.12); text-align: left; font-size: .92rem; padding: 12px 14px; border-bottom: 1px solid rgba(148,163,184,.14); text-align: left; font-size: .92rem; }
.overviewdash-summary-table th { background: #f8fafc; color: #0f172a; font-weight: 800; color: #0f172a; font-weight: 800; background: #f8fafc; }
.overviewdash-summary-table td { color: #475569; color: #475569; }
.overviewdash-feed { display: flex; flex-direction: column; gap: 10px; display: flex; flex-direction: column; gap: 10px; }
.overviewdash-feed-item { padding: 12px 14px; border-radius: 16px; background: #f8fafc; border: 1px solid rgba(148,163,184,.14); padding: 12px 14px; border-radius: 16px; background: #f8fafc; border: 1px solid rgba(148,163,184,.14); }
.overviewdash-feed-title { font-weight: 800; color: #0f172a; margin-bottom: 6px; font-weight: 800; color: #0f172a; margin-bottom: 4px; }
.overviewdash-feed-text { color: #475569; font-size: .92rem; line-height: 1.5; color: #475569; font-size: .92rem; line-height: 1.55; }
.overviewdash-feed-meta { margin-top: 8px; color: #64748b; font-size: .82rem; margin-top: 8px; color: #64748b; font-size: .82rem; }
.overviewdash-chart-card { padding: 18px; min-height: 530px; display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; border: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,252,251,.98) 100%); box-shadow: 0 12px 30px rgba(0,0,0,.05); min-width: 0; height: 100%; min-height: 560px; padding: 18px; min-height: 530px; display: flex; flex-direction: column; overflow: hidden; border-radius: 22px; background: linear-gradient(180deg, rgba(4,30,26,.95) 0%, rgba(6,48,42,.90) 100%); border: 1px solid rgba(10,163,161,.12); box-shadow: 0 18px 42px rgba(0,0,0,.12); }
.overviewdash-chart-card .chart-title { color: #0f172a; margin: 0; font-size: 1.22rem; line-height: 1.2; font-weight: 800; color: #f8fafc; }
.overviewdash-chart-card .chart-subtitle { color: #64748b; margin-top: 6px; color: #9fc6bf; font-size: .9rem; }
.overviewdash-chart-card .chart-stat-pill { background: #f8fafc; border: 1px solid rgba(148,163,184,.14); color: #0f172a; padding: 10px 12px; border-radius: 14px; border: 1px solid rgba(255,255,255,.06); background: rgba(255,255,255,.035); color: #e2e8f0; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.overviewdash-chart-card .chart-stat-label { color: #64748b; color: #9fc6bf; font-size: .82rem; }
.overviewdash-chart-card .chart-container { position: relative; flex: 1; min-height: 300px; max-height: 300px; position: relative; flex: 1; min-height: 350px; }
.overviewdash-chart-card .chart-container canvas { width: 100% !important; height: 100% !important; display: block; width: 100% !important; height: 100% !important; display: block; }
.overviewdash-donut-legend { margin-top: 14px; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.overviewdash-donut-legend-item { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-radius: 14px; background: #f8fafc; border: 1px solid rgba(148,163,184,.14); display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); }
.overviewdash-donut-legend-left { display: flex; align-items: center; gap: 10px; min-width: 0; display: flex; align-items: center; gap: 10px; min-width: 0; }
.overviewdash-donut-dot { width: 12px; height: 12px; border-radius: 999px; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.overviewdash-donut-label { color: #475569; font-size: .88rem; line-height: 1.4; color: #e2e8f0; font-size: .9rem; font-weight: 700; }
.overviewdash-donut-value { color: #0f172a; font-weight: 800; font-size: .88rem; white-space: nowrap; color: #9fc6bf; font-size: .85rem; font-weight: 700; white-space: nowrap; }
.overviewdash-chart-placeholder { min-height: 220px; border-radius: 22px; border: 1px dashed rgba(148,163,184,.24); background: #f8fafc; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; color: #64748b; }
.overviewdash-chart-placeholder i { font-size: 2rem; }
@media (max-width: 1600px) {
  .overviewdash-charts-grid { grid-template-columns: 1fr 1fr; }
}
.overviewdash-gauges-strip { margin: 18px 0 22px; }
.overviewdash-gauges-section { margin-top: 18px; }
.overviewdash-gauge-card { padding: 16px; border-radius: 22px; border: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,252,251,.98) 100%); box-shadow: 0 12px 30px rgba(0,0,0,.05); min-height: 220px; border-radius: 22px; border: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,252,251,.98) 100%); box-shadow: 0 12px 30px rgba(0,0,0,.05); padding: 18px; display: flex; flex-direction: column; background: linear-gradient(180deg, rgba(4,30,26,.96) 0%, rgba(6,48,42,.88) 100%); border: 1px solid rgba(10,163,161,.14); border-radius: 20px; box-shadow: 0 18px 44px rgba(0,0,0,.10); padding: 18px; min-height: 240px; position: relative; overflow: hidden; min-height: 250px; padding: 18px; border-radius: 22px; border: 1px solid rgba(10,163,161,.14); background: radial-gradient(circle at top right, rgba(10,163,161,.18) 0%, transparent 28%), linear-gradient(180deg, rgba(5,52,44,.96) 0%, rgba(10,77,67,.92) 100%); box-shadow: 0 18px 42px rgba(0,0,0,.10); }
.overviewdash-gauge-icon { width: 40px; height: 40px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(10,163,161,.10); color: #0f766e; font-size: 1.05rem; width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(10,163,161,.10); color: #0f766e; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.06); color: #d7f3ee; width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.08); color: #d7f3ee; flex: 0 0 auto; }
.overviewdash-gauge-canvas { position: relative; height: 150px; position: relative; min-height: 120px; position: relative; height: 150px; position: relative; height: 150px; margin-top: 8px; }
.overviewdash-gauge-foot { margin-top: 10px; text-align: center; color: #64748b; font-size: .88rem; font-weight: 700; margin-top: 10px; color: #64748b; font-size: .88rem; font-weight: 700; margin-top: 8px; display: flex; justify-content: center; align-items: center; gap: 8px; color: #9fc6bf; font-weight: 700; font-size: .92rem; margin-top: 6px; display: flex; align-items: center; justify-content: center; color: #9fc6bf; font-weight: 700; font-size: .92rem; }
.overviewdash-shell { display: flex; flex-direction: column; gap: 22px; gap: 14px; }
.overviewdash-hero-visual-interactive { perspective: 1200px; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent; overflow: hidden; }
.overviewdash-hero-visual-inner { position: relative; width: 100%; height: 100%; border-radius: 24px; overflow: hidden; transform-style: preserve-3d; transition: transform .28s ease, box-shadow .28s ease, filter .28s ease; will-change: transform; }
.overviewdash-hero-visual-interactive:hover .overviewdash-hero-visual-inner { box-shadow: 0 24px 60px rgba(15,23,42,.14), 0 0 0 1px rgba(10,163,161,.12) inset; }
.overviewdash-hero-video { width: 100%; height: 100%; display: block; transform: scale(1.1); transition: transform .35s ease; backface-visibility: hidden; }
.overviewdash-hero-visual-interactive:hover .overviewdash-hero-video { transform: scale(1.3); }
.overviewdash-hero-glow { position: absolute; inset: -12%; background: radial-gradient(circle at var(--mx,50%) var(--my,50%), rgba(56,189,248,.18) 0%, rgba(10,163,161,.12) 16%, rgba(255,255,255,0) 42%); opacity: 0; transition: opacity .28s ease; pointer-events: none; z-index: 2; }
.overviewdash-hero-visual-interactive:hover .overviewdash-hero-glow, .overviewdash-hero-visual-interactive.is-active .overviewdash-hero-glow { opacity: 1; }
.overviewdash-hero-tip-badge { position: absolute; top: 16px; right: 16px; z-index: 3; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; background: rgba(255,255,255,.88); backdrop-filter: blur(10px); border: 1px solid rgba(10,163,161,.12); color: #0f766e; font-weight: 700; font-size: .9rem; box-shadow: 0 10px 24px rgba(15,23,42,.08); transition: transform .22s ease, opacity .22s ease; }
.overviewdash-hero-tip-chip { position: absolute; left: 18px; bottom: 18px; z-index: 3; display: inline-flex; align-items: center; gap: 10px; max-width: min(360px, calc(100% - 36px)); padding: 12px 16px; border-radius: 16px; background: rgba(15,23,42,.78); backdrop-filter: blur(10px); color: #f8fafc; border: 1px solid rgba(255,255,255,.08); box-shadow: 0 16px 36px rgba(15,23,42,.18); transform: translateY(14px); opacity: 0; pointer-events: none; transition: transform .25s ease, opacity .25s ease; }
.overviewdash-hero-tip-chip i { color: #5eead4; font-size: 1.05rem; flex: 0 0 auto; }
.overviewdash-hero-tip-chip span { display: block; line-height: 1.4; font-size: .95rem; font-weight: 700; }
.overviewdash-hero-visual-interactive:hover .overviewdash-hero-tip-chip, .overviewdash-hero-visual-interactive.is-active .overviewdash-hero-tip-chip { opacity: 1; transform: translateY(0); }
.overviewdash-hero-visual-interactive.is-pressed .overviewdash-hero-visual-inner { transform: scale(.992); }
@keyframes overviewHeroPulse {
  0% { transform: scale(1); }
  45% { transform: scale(1.018); }
  100% { transform: scale(1); }
}
.overviewdash-hero-visual-interactive.is-active .overviewdash-hero-tip-badge { animation: overviewHeroPulse .42s ease; }
@media (hover:none) {
  .overviewdash-hero-tip-badge { opacity: .96; }
}
@media (prefers-reduced-motion:reduce) {
  .overviewdash-hero-visual-inner, .overviewdash-hero-video, .overviewdash-hero-glow, .overviewdash-hero-tip-badge, .overviewdash-hero-tip-chip { transition: none !important; animation: none !important; }
  .overviewdash-hero-visual-interactive:hover .overviewdash-hero-video { transform: none; }
}
.overviewdash-kpis { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 14px; margin-top: 8px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 16px; }
.overviewdash-kpi-card-premium { position: relative; overflow: hidden; min-height: 164px; padding: 18px 18px 16px; border-radius: 22px; border: 1px solid rgba(10,163,161,.10); background: linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(246,251,250,.98) 100%); box-shadow: 0 16px 34px rgba(15,23,42,.06); transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
.overviewdash-kpi-card-premium:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(15,23,42,.10); border-color: rgba(10,163,161,.18); }
.overviewdash-kpi-topline { position: absolute; left: 0; top: 0; width: 100%; height: 4px; background: linear-gradient(90deg, #0aa3a1 0%, #38bdf8 50%, #22c55e 100%); opacity: .95; }
.overviewdash-kpi-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.overviewdash-kpi-badge { margin: 0; padding: 0; background: none; border: none; color: #0f766e; font-size: 1rem; font-weight: 900; line-height: 1.24; max-width: 75%; }
.overviewdash-kpi-badge i { font-size: 1rem; flex: 0 0 auto; }
.overviewdash-kpi-icon-shell { width: 46px; height: 46px; border-radius: 16px; display: flex; align-items: center; justify-content: center; background: linear-gradient(180deg, rgba(10,163,161,.10) 0%, rgba(56,189,248,.10) 100%); color: #0f766e; font-size: 1.15rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.55); flex: 0 0 auto; }
.overviewdash-kpi-main { display: flex; flex-direction: column; gap: 10px; }
.overviewdash-kpi-value { font-size: 2.4rem; line-height: 1; font-weight: 900; color: #0f172a; margin-bottom: 14px; letter-spacing: -.04em; font-size: 2.15rem; margin-bottom: 12px; font-size: 2.2rem; line-height: 1; font-weight: 900; color: #0f172a; letter-spacing: -.03em; }
.overviewdash-kpi-note { color: #64748b; font-size: .98rem; line-height: 1.55; max-width: 95%; }
.overviewdash-mini-gauges { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; margin-bottom: 18px; display: grid; grid-template-columns: 1fr; gap: 16px; display: grid; grid-template-columns: repeat(4,minmax(240px,1fr)); gap: 18px; display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 18px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 18px; }
.overviewdash-gauge-head { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: flex-start; gap: 10px; margin-bottom: 10px; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 8px; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; margin-bottom: 2px; }
.overviewdash-gauge-title { font-weight: 800; color: #0f766e; font-size: .95rem; font-size: .95rem; font-weight: 800; color: #0f172a; font-size: 1rem; font-weight: 800; color: #f8fafc; color: #f8fafc; font-weight: 800; font-size: 1rem; line-height: 1.35; color: #f8fafc; font-size: 1rem; font-weight: 900; line-height: 1.2; margin-bottom: 4px; }
.overviewdash-gauge-subtitle { color: rgba(226,232,240,.82); font-size: .88rem; line-height: 1.35; max-width: 92%; }
.overviewdash-gauge-value-top { min-width: 30px; text-align: right; color: #f8fafc; font-size: 1.6rem; font-weight: 900; line-height: 1; letter-spacing: -.03em; }
.overviewdash-gauge-card-premium { position: relative; overflow: hidden; min-height: 210px; padding: 14px 16px 12px; border-radius: 22px; border: 1px solid rgba(255,255,255,.06); background: radial-gradient(circle at top right, rgba(34,197,94,.08) 0%, transparent 24%), radial-gradient(circle at bottom left, rgba(56,189,248,.10) 0%, transparent 26%), linear-gradient(180deg, #113533 0%, #1f4f49 54%, #2a6157 100%); box-shadow: 0 18px 42px rgba(15,23,42,.12); min-height: 198px; }
.overviewdash-gauge-footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: -2px; }
.overviewdash-gauge-meta-left { display: flex; flex-direction: column; gap: 4px; color: #e2e8f0; }
.overviewdash-gauge-meta-left strong { color: #f8fafc; font-size: 1.04rem; font-weight: 900; }
.overviewdash-gauge-meta-label { color: rgba(226,232,240,.72); font-size: .84rem; font-weight: 700; }
.overviewdash-gauge-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 70px; height: 38px; padding: 0 14px; border-radius: 999px; font-weight: 900; font-size: .95rem; box-shadow: inset 0 1px 0 rgba(255,255,255,.18); }
.overviewdash-gauge-chip.is-good { color: #062f1e; background: linear-gradient(180deg, #86efac 0%, #4ade80 100%); }
.overviewdash-gauge-chip.is-info { color: #0f2942; background: linear-gradient(180deg, #c7d2fe 0%, #a5b4fc 100%); }
.overviewdash-gauge-chip.is-warning { color: #4a2b05; background: linear-gradient(180deg, #fcd34d 0%, #f59e0b 100%); }
.overviewdash-equal-row { align-items: stretch; }
.overviewdash-equal-row > [class*="col-"] { display: flex; }
#overviewDashConnectionsWrap, #overviewDashMapWrap { width: 100%; display: flex; }
#overviewDashConnectionsWrap .overviewdash-chart-card, #overviewDashMapWrap .overviewdash-map-card { width: 100%; height: 100%; min-height: 100%; }
#overviewDashConnectionsWrap .overviewdash-chart-card { min-height: 520px; }
#overviewDashMapWrap .overviewdash-map-card { min-height: 520px; }
#overviewDashMapWrap .overviewdash-map-body, #overviewDashMapWrap .overviewdash-map-shell { height: 100%; display: flex; flex-direction: column; }
#overviewDashMap { flex: 1 1 auto; min-height: 420px; height: 100%; }
#sidebar-toggle-right { position: fixed; top: 20%; right: 40px; transform: rotate(270deg); transform-origin: right top; background: var(--background-dark4); backdrop-filter: blur(5px); color: #ffffff; padding: 8px 16px; border-radius: 10px 10px 0 0; cursor: pointer; z-index: 1034; font-weight: bold; font-size: 1rem; transition: opacity .25s ease, transform .25s ease; pointer-events: auto !important;cursor: pointer;}
#sidebar-toggle-right.hidden { opacity: 0; pointer-events: none; }
#glassySidebarRight { position: fixed; top: 0; right: -60%; height: 100%; width: 60%; max-width: 1000px; background: rgba(255, 255, 255, 0.6); backdrop-filter: blur(12px); box-shadow: -2px 0 10px rgba(0, 0, 0, 0.2); transition: all 0.4s ease; z-index: 1035 !important; padding: 20px; overflow-y: auto; border-left: 1px solid rgba(255, 255, 255, 0.1); border-top-left-radius: 20px; border-bottom-left-radius: 20px; }
#glassySidebarRight.active { right: 0; }
#glassySidebarRight.is-open { right: 0; }
#sidebar-toggle-right-inner { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 112px; border-radius: 12px 0 0 12px; background: var(--background-dark4); backdrop-filter: blur(5px); color: #ffffff; display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: -2px 0 10px rgba(0, 0, 0, 0.18); z-index: 2; }
.overviewdash-sidebar-handle-icon { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
#sidebar-arrow-icon { font-size: 1.55rem; transition: transform .3s ease; }
#glassySidebarRight.active #sidebar-arrow-icon { transform: rotate(180deg); }
.overviewdash-sidebar-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 22px 16px; border-bottom: 1px solid rgba(15,85,94,.10); background: linear-gradient(180deg, rgba(255,255,255,.76) 0%, rgba(245,251,250,.72) 100%); }
.overviewdash-sidebar-title { color: #0f172a; font-weight: 900; font-size: 1.18rem; line-height: 1.1; }
.overviewdash-sidebar-subtitle { margin-top: 6px; color: #64748b; font-size: .92rem; line-height: 1.45; }
.overviewdash-sidebar-close { width: 42px; height: 42px; border: none; border-radius: 14px; background: rgba(15,85,94,.08); color: #0f766e; font-size: 1.2rem; display: flex; align-items: center; justify-content: center; cursor: pointer; flex: 0 0 auto; }
.overviewdash-sidebar-body { display: flex; flex-direction: column; gap: 18px; margin-top: 8px; flex: 1 1 auto; overflow: auto; padding: 18px; display: flex; flex-direction: column; gap: 18px; }
.overviewdash-gauges-section--sidebar .overviewdash-mini-gauges { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 16px; }
.overviewdash-analytics-section--sidebar .overviewdash-charts-grid { grid-template-columns: 1fr; gap: 16px; }
.overviewdash-summary-section--sidebar .overviewdash-tables-side { display: grid; gap: 16px; }
body.has-overview-sidebar-open { overflow: hidden; overflow: hidden; }
.overviewdash-hero-map-card { display: flex; flex-direction: column; min-height: 100%; padding: 0; overflow: hidden; }
.overviewdash-hero-map-body #thessaloniki-app .leaflet-container { width: 100% !important; height: 100% !important; min-height: 420px !important; border-radius: 22px !important; }
.overviewdash-hero-map-body { flex: 1 1 auto; min-height: 340px; padding: 14px; padding: 0; min-height: 420px; height: 420px; padding: 0; min-height: 420px; height: 420px; }
.overviewdash-hero-map-stage { position: relative; width: 100%; height: 100%; min-height: 420px; overflow: visible; }
.overviewdash-hero-map-toolbar-overlay { position: absolute; top: 14px; left: 14px; right: 14px; z-index: 600; display: flex; justify-content: center; pointer-events: none; }
.overviewdash-hero-map-toolbar-overlay .iot-map-toolbar { pointer-events: auto; }
.overviewdash-hero-map-toolbar-overlay .iot-map-toolbar__group { display: flex; gap: 8px; flex-wrap: wrap; }
.overviewdash-hero-map-body #thessaloniki-app { width: 100%; height: 100%; min-height: 320px; border-radius: 22px; overflow: hidden; width: 100%; height: 100%; min-height: 420px; border-radius: 22px !important; overflow: hidden !important; }
.overviewdash-hero-map-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 16px 18px 12px; border-bottom: 1px solid rgba(10,163,161,.12); background: linear-gradient(180deg, rgba(255,255,255,.60) 0%, rgba(246,252,251,.30) 100%); padding: 14px 18px 8px; }
.overviewdash-hero-map-title { color: #0f172a; font-size: 1.02rem; font-weight: 900; line-height: 1.2; font-size: 1rem; font-weight: 900; line-height: 1.2; }
.overviewdash-hero-map-card.is-fullscreen .overviewdash-hero-map-stage, .overviewdash-hero-map-card.is-fullscreen .overviewdash-hero-map-body, .overviewdash-hero-map-card.is-fullscreen #thessaloniki-app { min-height: calc(100vh - 120px); height: calc(100vh - 120px); }
.overviewdash-hero-map-card.is-fullscreen .overviewdash-hero-map-toolbar-overlay { top: 18px; left: 18px; right: 18px; }
.overviewdash-hero-map-toolbar-overlay .iot-map-filter-btn { position: relative; }
#map-filter-tooltip { position: fixed; left: 0; top: 0; z-index: 99999; padding: 8px 12px; border-radius: 12px; background: rgba(15,23,42,.96); color: #f8fafc; font-size: .84rem; font-weight: 800; white-space: nowrap; box-shadow: 0 10px 24px rgba(15,23,42,.22); opacity: 0; pointer-events: none; transform: translateY(-50%); transition: opacity .14s ease; }
#map-filter-tooltip.is-visible { opacity: 1; }
.overviewdash-sidebar-hero-media { position: relative; margin: 4px 0 18px; border-radius: 22px; overflow: hidden; min-height: 200px; height: 200px; border: 1px solid rgba(10,163,161,.10); background: linear-gradient(180deg, rgba(236,253,250,.92) 0%, rgba(240,249,255,.96) 100%); }
.overviewdash-sidebar-hero-media-inner { position: relative; width: 100%; height: 100%; overflow: hidden; border-radius: 22px; transform-style: preserve-3d; transition: transform .18s ease; }
.overviewdash-sidebar-hero-video { width: 100%; height: 100%; object-fit: cover; display: block; transform: scale(1.02); transition: transform .28s ease; }
.overviewdash-sidebar-hero-glow { position: absolute; inset: auto auto 10% 8%; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle, rgba(10,163,161,.20) 0%, transparent 72%); filter: blur(10px); pointer-events: none; }
.overviewdash-sidebar-hero-tip-badge { position: absolute; top: 14px; right: 14px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; background: rgba(255,255,255,.88); color: #0f766e; font-weight: 800; box-shadow: 0 8px 18px rgba(15,23,42,.08); backdrop-filter: blur(8px); z-index: 2; }
.overviewdash-sidebar-hero-tip-chip { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; background: rgba(15,85,94,.88); color: #f8fafc; font-weight: 700; box-shadow: 0 10px 22px rgba(15,23,42,.16); backdrop-filter: blur(8px); z-index: 2; transition: transform .18s ease, opacity .18s ease; }
#overviewDashSettingsModal .hidden { display: none !important; }
#usersDashSettingsModal .hidden { display: none !important; }
.usersdash-donut-legend { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
.usersdash-donut-legend-item { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 12px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); }
.usersdash-donut-legend-left { display: flex; align-items: center; gap: 10px; min-width: 0; display: flex; align-items: center; gap: 10px; min-width: 0; }
.usersdash-donut-dot { width: 10px; height: 10px; border-radius: 999px; flex: 0 0 auto; width: 10px; height: 10px; border-radius: 999px; flex: 0 0 auto; }
.usersdash-donut-label { color: #e2e8f0; font-size: .9rem; font-weight: 700; color: #e2e8f0; font-size: .9rem; font-weight: 700; }
.usersdash-donut-value { color: #9fc6bf; font-size: .85rem; font-weight: 700; white-space: nowrap; color: #9fc6bf; font-size: .85rem; font-weight: 700; white-space: nowrap; }
.usersdash-main-left { min-width: 0; display: flex; flex-direction: column; gap: 18px; }
.usersdash-section-block { margin-top: 22px; padding: 18px; border-radius: 22px; background: linear-gradient(180deg, rgba(5,52,44,.94) 0%, rgba(10,77,67,.90) 100%); box-shadow: 0 18px 44px rgba(0,0,0,.18); border: 1px solid rgba(10,163,161,.12); }
.usersdash-section-head { margin-bottom: 16px; }
.usersdash-section-title { margin: 0; font-size: 1.18rem; font-weight: 800; color: #f8fafc; }
.usersdash-section-subtitle { margin: 6px 0 0; color: #9fc6bf; font-size: .92rem; }
.usersdash-charts-grid--donuts, .usersdash-charts-grid--bars { grid-template-columns: repeat(2, minmax(0,1fr)); }
@media (max-width: 1200px) {
  .dash-log-row-head { grid-template-columns: 90px 64px minmax(220px, 1fr); }
  .dash-log-summary { grid-column: 1 / -1; }
  .dash-log-expand { justify-self: start; }
  .card-map .card-header { align-items: flex-start !important; }
  .iot-map-toolbar--header { width: 100%; margin-left: 0; justify-content: flex-start; }
  .qv-state-grid-3 { grid-template-columns: 1fr; }
  .qv-setting-kv-grid--wide, .qv-setting-kv-grid { grid-template-columns: 1fr; }
  .qv-dashboard-header { flex-direction: column; }
  .qv-settings-toolbar { width: 100%; justify-content: flex-start; }
  .toolbar-grid { grid-template-columns: 1fr; }
  .charts-grid { grid-template-columns: 1fr; }
  .stats-hero-grid, .stats-help-grid { grid-template-columns: 1fr; }
  .stats-info-grid { grid-template-columns: 1fr; }
  .stats-kpi-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .qv-general-write-grid { grid-template-columns: 1fr; }
  .qv-history-shell .dash-action-swal-body { grid-template-columns: 1fr; }
  .qv-history-shell .dash-action-swal-hero { display: none; }
  .qv-history-tabs { grid-template-columns: 1fr; }
  .qv-history-popup { width: 96vw !important; max-width: 96vw !important; }
  .usersdash-charts-grid { grid-template-columns: 1fr; grid-template-columns: 1fr; }
  .profiledash-edit-layout { grid-template-columns: 1fr; }
  .profiledash-edit-side { position: relative; top: 0; }
  .profiledash-edit-layout--credentials { grid-template-columns: 1fr; }
  .overviewdash-mini-gauges { grid-template-columns: 1fr; }
  .overviewdash-charts-grid { grid-template-columns: 1fr; grid-template-columns: 1fr; }
  .overviewdash-map-card #thessaloniki-app { min-height: 420px; }
  #glassySidebarRight { width: 85%; right: -85%; }
  .usersdash-charts-grid--donuts, .usersdash-charts-grid--bars { grid-template-columns: 1fr; }
}
.device-queue-mode-badge { display: inline-flex; align-items: center; gap: .38rem; padding: .42rem .82rem; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1; letter-spacing: .01em; box-shadow: 0 8px 18px rgba(15, 23, 42, .08); }
.device-queue-mode-badge--pending { color: #0369a1; background: linear-gradient(180deg,#eff8ff 0%, #dbeafe 100%); border: 1px solid rgba(3, 105, 161, .18); }
.device-queue-mode-badge--sending { color: #ffffff; background: linear-gradient(135deg,#2563eb 0%, #0ea5e9 100%); border: 1px solid rgba(37, 99, 235, .18); }
.device-queue-mode-badge--offline { color: #6d28d9; background: linear-gradient(180deg,#f5f3ff 0%, #ede9fe 100%); border: 1px solid rgba(109, 40, 217, .16); }
.device-queue-mode-badge--failed { color: #be123c; background: linear-gradient(180deg,#fff1f2 0%, #ffe4e6 100%); border: 1px solid rgba(190, 24, 93, .14); }
.qv-map-marker-label { background: rgba(52, 84, 98, .92); color: #fff; border: 0; border-radius: 10px; padding: 6px 10px; font-size: 12px; font-weight: 700; line-height: 1; box-shadow: 0 8px 18px rgba(15, 23, 42, .18); }
.qv-map-marker-label::before { display: none; }
@media (prefers-reduced-motion: no-preference) {
  :root { scroll-behavior: auto !important; }
}
/* =========================================================
   OVERVIEW MAP RESPONSIVE FIX - MOBILE / TABLET
========================================================= */
.iot-map-popup--compact-mobile .iot-map-popup__top--compact-mobile { padding-bottom: 18px; }
.iot-map-popup--compact-mobile .iot-map-popup__top-main { align-items: center; }
.iot-map-popup--compact-mobile .iot-map-popup__device-id { font-size: 1.04rem; line-height: 1.3; }
.iot-map-popup--compact-mobile .iot-map-popup__sticky-footer--compact-mobile { position: static; margin-top: 0; padding: 0 18px 18px; border-top: none; background: transparent; }
/* ---------- TABLET ---------- */
/* ---------- MOBILE ---------- */
/* =========================================================
   OVERVIEW CHART CARDS - MOBILE / TABLET
========================================================= */
/* =========================================================
   USERS PAGE - TABLE + MOBILE FULLSCREEN FIX
========================================================= */
/* =========================================================
   USERS PAGE CHARTS - MOBILE / TABLET CLEANUP
========================================================= */
/* =========================================================
   CHARTS.PHP - MOBILE / TABLET CHART CARDS
========================================================= */
@media (max-width: 1199.98px) {
  .overviewdash-charts-grid { grid-template-columns: 1fr !important; }
  .overviewdash-chart-card { min-height: auto; padding: 16px; }
  .overviewdash-chart-card .chart-header { flex-direction: column; align-items: stretch; gap: 14px; }
  .overviewdash-chart-card .chart-heading { width: 100%; min-width: 0; }
  .overviewdash-chart-card .chart-title { font-size: 1.12rem; line-height: 1.2; }
  .overviewdash-chart-card .chart-subtitle { font-size: .96rem; line-height: 1.45; max-width: 100%; }
  .overviewdash-chart-card .chart-actions { width: 100%; justify-content: flex-end; gap: 8px; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .overviewdash-chart-card .chart-actions::-webkit-scrollbar { display: none; }
  .overviewdash-chart-card .icon-btn { width: 42px; height: 42px; min-width: 42px; min-height: 42px; border-radius: 13px; flex: 0 0 auto; }
  .overviewdash-chart-card .chart-current-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; }
  .overviewdash-chart-card .chart-stat-pill { width: 100%; min-width: 0; }
  .overviewdash-chart-card .chart-stat-pill strong { word-break: break-word; }
  .overviewdash-chart-card .chart-container { min-height: 320px; }
  .overviewdash-donut-legend-item { align-items: flex-start; gap: 10px; }
  .overviewdash-donut-value { white-space: normal; text-align: left; }
  .usersdash-table-card .card-body { overflow-x: auto; -webkit-overflow-scrolling: touch; }
  #user-catalog-table_wrapper { width: 100%; }
  #user-catalog-table { width: 100% !important; }
  .usersdash-section-block { padding: 18px; }
  .usersdash-section-head { margin-bottom: 16px; }
  [data-users-chart-card].chart-card { min-height: auto !important; height: auto !important; padding: 16px; }
  [data-users-chart-card].chart-card .chart-header { flex-direction: column; align-items: stretch; gap: 14px; }
  [data-users-chart-card].chart-card .chart-heading { width: 100%; min-width: 0; }
  [data-users-chart-card].chart-card .chart-title { font-size: 1.08rem; line-height: 1.14; }
  [data-users-chart-card].chart-card .chart-subtitle { font-size: .94rem; line-height: 1.45; max-width: 100%; }
  [data-users-chart-card].chart-card .chart-actions { width: 100%; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; gap: 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  [data-users-chart-card].chart-card .chart-actions::-webkit-scrollbar { display: none; }
  [data-users-chart-card].chart-card .icon-btn { width: 42px; height: 42px; min-width: 42px; min-height: 42px; border-radius: 13px; flex: 0 0 auto; }
  [data-users-chart-card].chart-card .chart-current-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
  [data-users-chart-card].chart-card .chart-stat-pill { width: 100%; min-width: 0; }
  [data-users-chart-card].chart-card .chart-stat-pill strong { word-break: break-word; }
  [data-users-chart-card].chart-card .chart-container { min-height: 320px !important; height: 320px !important; padding: 0 2px 22px; }
  [data-users-chart-card].chart-card.is-donut-chart { min-height: auto !important; height: auto !important; }
  [data-users-chart-card].chart-card.is-donut-chart .chart-container { min-height: 250px !important; height: 250px !important; padding: 0 2px 8px; }
  [data-users-chart-card].chart-card.is-donut-chart .chart-container canvas { max-width: min(78vw, 320px) !important; max-height: 250px !important; }
  [data-users-chart-card].chart-card.is-donut-chart .usersdash-donut-legend { margin-top: 14px; }
  .control-bar { position: relative !important; top: auto !important; bottom: auto !important; left: auto !important; right: auto !important; inset: auto !important; z-index: 1 !important; transform: none !important; }
  .control-bar .stats-section-lead, .control-bar .toolbar-grid, .control-bar .toolbar-status, .control-bar .toolbar-status-right { position: static !important; top: auto !important; z-index: auto !important; }
  #statsKpiContainer, #overviewContainer, #chartsContainer { position: relative; z-index: 2; }
  .dashboard-shell .charts-grid { grid-template-columns: 1fr !important; }
  .dashboard-shell .overview-grid { grid-template-columns: 1fr !important; }
  .dashboard-shell .charts-grid .chart-card, .dashboard-shell .overview-grid .chart-card { min-height: auto !important; height: auto !important; padding: 16px; }
  .dashboard-shell .charts-grid .chart-card .chart-header, .dashboard-shell .overview-grid .chart-card .chart-header { flex-direction: column; align-items: stretch; gap: 14px; }
  .dashboard-shell .charts-grid .chart-card .chart-heading, .dashboard-shell .overview-grid .chart-card .chart-heading { width: 100%; min-width: 0; }
  .dashboard-shell .charts-grid .chart-card .chart-title, .dashboard-shell .overview-grid .chart-card .chart-title { font-size: 1.08rem; line-height: 1.14; }
  .dashboard-shell .charts-grid .chart-card .chart-subtitle, .dashboard-shell .overview-grid .chart-card .chart-subtitle { font-size: .94rem; line-height: 1.45; max-width: 100%; }
  .dashboard-shell .charts-grid .chart-card .chart-actions, .dashboard-shell .overview-grid .chart-card .chart-actions { width: 100%; justify-content: flex-start; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; gap: 8px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .dashboard-shell .charts-grid .chart-card .chart-actions::-webkit-scrollbar, .dashboard-shell .overview-grid .chart-card .chart-actions::-webkit-scrollbar { display: none; }
  .dashboard-shell .charts-grid .chart-card .icon-btn, .dashboard-shell .overview-grid .chart-card .icon-btn { width: 42px; height: 42px; min-width: 42px; min-height: 42px; border-radius: 13px; flex: 0 0 auto; }
  .dashboard-shell .charts-grid .chart-card .chart-current-row, .dashboard-shell .overview-grid .chart-card .chart-current-row { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 10px; margin-bottom: 14px; }
  .dashboard-shell .charts-grid .chart-card .chart-stat-pill, .dashboard-shell .overview-grid .chart-card .chart-stat-pill { width: 100%; min-width: 0; }
  .dashboard-shell .charts-grid .chart-card .chart-stat-pill strong, .dashboard-shell .overview-grid .chart-card .chart-stat-pill strong { word-break: break-word; }
  .dashboard-shell .charts-grid .chart-card .chart-container, .dashboard-shell .overview-grid .chart-card .chart-container { min-height: 320px !important; height: 320px !important; max-height: none !important; padding: 0 2px 22px; }
  .dashboard-shell .charts-grid .chart-card canvas, .dashboard-shell .overview-grid .chart-card canvas { width: 100% !important; height: 100% !important; max-height: 100% !important; display: block !important; }
  #device-catalog-table td:first-child .d-inline-flex.align-items-center.border.border-secondary.rounded span { white-space: normal !important; overflow-wrap: anywhere; word-break: break-all; }
  #device-catalog-table th:first-child, #device-catalog-table td:first-child { width: 100% !important; max-width: 100% !important; }
  #device-user-catalog-table td:first-child .d-inline-flex.align-items-center.border.border-secondary.rounded span { white-space: normal !important; overflow-wrap: anywhere; word-break: break-all; }
  #device-user-catalog-table th:first-child, #device-user-catalog-table td:first-child { width: 100% !important; max-width: 100% !important; }
}
@media (min-width: 768px) and (max-width: 1199.98px) {
  .overviewdash-hero-map-toolbar-overlay { left: 14px; right: 14px; top: 14px; justify-content: center; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-toolbar { width: auto; max-width: 100%; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-toolbar__group { display: flex; justify-content: center; gap: 10px; flex-wrap: unset; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-filter-btn { min-height: 44px; padding: 0 14px; border-radius: 15px !important; justify-content: center; white-space: nowrap; }
  .iot-map-popup--compact-mobile { min-width: 280px; max-width: min(86vw, 360px); }
  .leaflet-popup { max-width: 360px !important; }
  .overviewdash-hero-map-card.is-fullscreen .leaflet-popup { max-width: 420px !important; }
  .iot-map-popup--wide { width: min(360px, calc(100vw - 36px)); max-width: min(360px, calc(100vw - 36px)); }
  .overviewdash-hero-map-card.is-fullscreen .iot-map-popup--wide { width: min(420px, calc(100vw - 36px)); max-width: min(420px, calc(100vw - 36px)); max-height: 78vh; }
  .overviewdash-hero-map-card.is-fullscreen .iot-map-popup__body { max-height: 56vh; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; }
  .dash-action-swal-popup { width: calc(100vw - 48px) !important; max-width: calc(100vw - 48px) !important; }
  .dash-action-swal { min-height: auto; }
  .dash-action-swal-body { grid-template-columns: 1fr !important; padding: 1.1rem !important; }
  .dash-action-swal-hero { min-height: 260px; max-height: 260px; }
}
.qv-inline-read-btn--locked { opacity: 0.38 !important; pointer-events: none !important; filter: grayscale(0.18); box-shadow: none !important; transform: none !important; }
.qv-action-confirm--locked { opacity: 0.38 !important; pointer-events: none !important; filter: grayscale(0.18); box-shadow: none !important; transform: none !important; }
.dash-action-swal-confirm.qv-action-confirm--locked, .dash-action-swal-confirm:disabled { opacity: 0.42 !important; cursor: not-allowed !important; pointer-events: none !important; box-shadow: none !important; transform: none !important; filter: grayscale(0.18) !important; }
.qv-action-tile--locked { opacity: 0.38 !important; pointer-events: none !important; filter: grayscale(0.18); box-shadow: none !important; transform: none !important; opacity: 0.38 !important; pointer-events: none !important; cursor: not-allowed !important; filter: grayscale(0.18); box-shadow: none !important; transform: none !important; }
/* =========================================================
   WIDE LAPTOP / 16:10 FIX
   περίπου για 1400–1700 widths με ανοιχτό sidebar
========================================================= */
@media (min-width: 1201px) and (max-width: 1680px) {
  .overviewdash-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .overviewdash-main-grid { grid-template-columns: 1fr; }
  .overviewdash-mini-gauges { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .overviewdash-map-card #thessaloniki-app { min-height: 460px; }
  .usersdash-main-grid { grid-template-columns: 1fr; }
  .usersdash-charts-grid { grid-template-columns: 1fr; }
  [data-users-chart-card].chart-card .chart-container { min-height: 340px; height: 340px; }
}
@media (min-width: 1201px) and (max-width: 1540px) {
  .overviewdash-hero { grid-template-columns: 1fr; }
  .usersdash-hero { grid-template-columns: 1fr; }
}
.withdraw-reason-badges { display: flex; flex-wrap: wrap; gap: 10px; }
.withdraw-reason-badge { appearance: none; border: 1px solid rgba(28, 163, 184, 0.22); background: #f6fbfc; color: #136f86; border-radius: 999px; padding: 0.62rem 1rem; font-size: 0.95rem; font-weight: 700; line-height: 1; box-shadow: none; transition: all 0.18s ease; cursor: pointer; white-space: nowrap; }
.withdraw-reason-badge:hover { border-color: rgba(28, 163, 184, 0.45); background: #eef8fa; color: #0f6378; }
.withdraw-reason-badge.is-active { background: linear-gradient(135deg, #11998e 0%, #18b7b0 100%); color: #ffffff; border-color: transparent; box-shadow: 0 10px 24px rgba(17, 153, 142, 0.22); }
.withdraw-reason-badge:focus { outline: none; box-shadow: 0 0 0 0.2rem rgba(24, 183, 176, 0.18); }
.qv-sun-date-field { margin-top: 14px; }
.qv-sun-calc-time { margin-top: 6px; font-size: 0.92rem; font-weight: 700; color: #14856f; }
.returnsdash-chart-card { background: linear-gradient(180deg, rgba(255,255,255,0.98) 0%, rgba(246,251,252,0.98) 100%); border: 1px solid rgba(28, 163, 184, 0.12); border-radius: 22px; padding: 1.15rem 1.15rem 1rem; min-height: 360px; box-shadow: 0 16px 45px rgba(18, 74, 92, 0.08); position: relative; overflow: hidden; }
.returnsdash-chart-card::after { content: ""; position: absolute; inset: auto -40px -40px auto; width: 140px; height: 140px; border-radius: 50%; background: radial-gradient(circle, rgba(24,183,176,0.11) 0%, rgba(24,183,176,0) 70%); pointer-events: none; }
.returnsdash-chart-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 14px; }
.returnsdash-chart-title { margin: 0; font-size: 1.05rem; font-weight: 800; color: #155e75; }
.returnsdash-chart-subtitle { margin: 4px 0 0; font-size: 0.92rem; color: #5f6f7c; line-height: 1.45; }
.returnsdash-chart-icon { width: 46px; height: 46px; min-width: 46px; border-radius: 16px; display: inline-flex; align-items: center; justify-content: center; background: rgba(24, 183, 176, 0.12); color: #129b95; font-size: 1.15rem; }
.returnsdash-chart-wrap { position: relative; min-height: 250px; }
.returnsdash-empty { display: flex; align-items: center; justify-content: center; min-height: 220px; border-radius: 18px; border: 1px dashed rgba(28, 163, 184, 0.22); background: rgba(245, 250, 251, 0.75); color: #6c7a86; font-weight: 600; text-align: center; padding: 1rem; }
.returnsdash-kpi-note { font-size: 0.84rem; color: #70808c; line-height: 1.4; }
#returns-catalog-table_wrapper .dt-layout-row:first-child { margin-bottom: 10px; }
#returns-catalog-table_wrapper .dt-search { float: right; margin-bottom: 1vh; }
.returns-device-meta { display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.returns-device-title { font-weight: 800; color: #18414f; line-height: 1.2; }
.returns-device-sub { display: inline-flex; flex-wrap: wrap; gap: 6px; }
.returns-device-chip { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(22, 118, 143, 0.18); background: #f7fbfc; color: #2a4b57; border-radius: 999px; padding: 0.25rem 0.6rem; font-size: 0.8rem; font-weight: 700; }
.returns-reason-cell { font-size: 0.93rem; line-height: 1.5; color: #475865; }
.returns-user-meta { display: flex; flex-direction: column; gap: 4px; font-size: 0.9rem; color: #536672; }
.returns-user-main { font-weight: 700; color: #244a58; }
.returns-status-badge { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 0.35rem 0.75rem; font-size: 0.82rem; font-weight: 800; border: 1px solid rgba(230, 87, 87, 0.18); background: rgba(255, 231, 231, 0.8); color: #cf4c4c; }
#returnsDashCharts .chart-container.is-hidden { display: none !important; }
#returnsDashCharts .usersdash-donut-legend.hidden { display: none !important; }
#returnsDashCharts.usersdash-charts-grid { align-items: stretch; grid-auto-rows: 1fr; align-items: stretch; grid-auto-rows: 1fr; align-items: stretch; grid-auto-rows: 1fr; }
#returnsDashCharts > * { min-width: 0; height: 100%; min-width: 0; height: 100%; min-width: 0; height: 100%; }
#returnsDashCharts [data-users-chart-card].chart-card, #returnsDashCharts [data-users-chart-card].chart-card.is-donut-chart { min-height: 560px !important; height: 560px !important; min-height: 560px !important; height: 560px !important; min-height: 560px !important; height: 560px !important; }
#returnsDashCharts [data-users-chart-card].chart-card .chart-container { min-height: 340px; height: 340px; min-height: 360px !important; height: 360px !important; min-height: 360px !important; height: 360px !important; min-height: 360px !important; height: 360px !important; }
#returnsDashCharts [data-users-chart-card].chart-card.is-donut-chart .chart-container { min-height: 300px; height: 300px; padding: 0 6px 8px; display: flex; align-items: center; justify-content: center; min-height: 300px !important; height: 300px !important; display: flex; align-items: center; justify-content: center; padding: 0 6px 8px; min-height: 300px !important; height: 300px !important; display: flex; align-items: center; justify-content: center; padding: 0 6px 8px; min-height: 300px !important; height: 300px !important; display: flex; align-items: center; justify-content: center; padding: 0 6px 8px; }
#returnsDashCharts [data-users-chart-card].chart-card.is-donut-chart .chart-container canvas { max-width: 60% !important; max-height: 260px !important; max-width: 60% !important; max-height: 260px !important; max-width: 60% !important; max-height: 260px !important; max-width: 60% !important; max-height: 260px !important; }
#returnsDashCharts [data-users-chart-card].chart-card.is-donut-chart .usersdash-donut-legend { margin-top: auto; margin-top: auto; margin-top: auto; margin-top: auto; }
#returnsDashCharts [data-users-chart-card].chart-card.is-fullscreen { position: fixed !important; inset: 12px !important; z-index: 1300 !important; width: auto !important; height: calc(100vh - 24px) !important; min-height: calc(100vh - 24px) !important; max-height: calc(100vh - 24px) !important; padding: 20px !important; border-radius: 22px !important; }
#returnsDashCharts [data-users-chart-card].chart-card.is-fullscreen .chart-container { height: calc(100vh - 230px) !important; min-height: calc(100vh - 230px) !important; }
#returnsDashCharts [data-users-chart-card].chart-card.is-fullscreen.is-donut-chart .chart-container { height: 260px !important; min-height: 260px !important; }
.notifications-dropdown-menu { border-radius: 18px; border: 1px solid rgba(0,0,0,.06); box-shadow: 0 18px 40px rgba(15, 23, 42, .14); padding-bottom: .35rem; }
.notification-item { display: flex; gap: 12px; padding: 12px 16px; cursor: pointer; transition: background .18s ease; }
.notification-item:hover { background: rgba(15, 118, 110, .06); }
.notification-item.unread { background: rgba(57, 175, 107, .06); }
.notification-icon { min-width: 28px; font-size: 1.15rem; padding-top: 2px; }
.notification-title { font-weight: 700; color: #1f2937; }
.notification-date { font-size: .84rem; color: #6b7280; margin-top: 2px; margin-bottom: 4px; }
.helpdash-shell { display: flex; flex-direction: column; gap: 1.5rem; padding: 1rem 0 2rem; }
.helpdash-hero { position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .75fr); gap: 1.25rem; padding: 1.5rem; border-radius: 28px; background: radial-gradient(circle at top right, rgba(43, 195, 188, 0.16), transparent 26%), linear-gradient(135deg, rgba(0, 71, 79, 0.98), rgba(8, 47, 73, 0.92)); color: #fff; overflow: hidden; box-shadow: 0 18px 38px rgba(0,0,0,.14); }
.helpdash-hero-copy { display: flex; flex-direction: column; gap: 1rem; min-width: 0; }
.helpdash-badge { display: inline-flex; align-items: center; gap: .55rem; width: max-content; max-width: 100%; padding: .7rem 1rem; border-radius: 999px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); font-weight: 700; font-size: .98rem; backdrop-filter: blur(12px); }
.helpdash-title { margin: 0; font-size: clamp(2rem, 3.2vw, 3.2rem); line-height: 1.05; font-weight: 900; letter-spacing: -0.03em; }
.helpdash-text { margin: 0; max-width: 920px; font-size: 1.05rem; line-height: 1.75; color: rgba(255,255,255,.88); }
.helpdash-search-row { display: flex; align-items: center; gap: .8rem; flex-wrap: wrap; }
.helpdash-search-wrap { position: relative; flex: 1 1 420px; min-width: 260px; }
.helpdash-search-wrap i { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: rgba(255,255,255,.72); font-size: 1.1rem; }
.helpdash-search { width: 100%; min-height: 56px; padding: .9rem 1rem .9rem 2.9rem; border-radius: 18px; border: 1px solid rgba(255,255,255,.14); background: rgba(255,255,255,.1); color: #fff; outline: none; box-shadow: none; }
.helpdash-search::placeholder { color: rgba(255,255,255,.62); }
.helpdash-hero-points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem; margin-top: .2rem; }
.helpdash-point { display: flex; gap: .85rem; align-items: flex-start; padding: 1rem 1rem; border-radius: 22px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(10px); }
.helpdash-point-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.12); color: #fff; flex: 0 0 auto; font-size: 1.1rem; }
.helpdash-point-title { margin: 0 0 .2rem; font-size: 1rem; font-weight: 800; }
.helpdash-point-text { margin: 0; font-size: .94rem; line-height: 1.55; color: rgba(255,255,255,.82); }
.helpdash-hero-visual { display: flex; align-items: center; justify-content: center; min-width: 0; }
.helpdash-hero-visual-card { width: 100%; min-height: 100%; display: flex; flex-direction: column; justify-content: space-between; gap: 1rem; padding: 1.2rem; border-radius: 24px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); backdrop-filter: blur(12px); }
.helpdash-hero-visual img { width: 100%; max-width: 360px; max-height: 280px; object-fit: contain; align-self: center; filter: drop-shadow(0 16px 32px rgba(0,0,0,.22)); }
.helpdash-kpis { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: .85rem; }
.helpdash-kpi { padding: 1rem 1rem; border-radius: 20px; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.14); }
.helpdash-kpi-label { display: flex; align-items: center; gap: .45rem; font-size: .9rem; color: rgba(255,255,255,.72); margin-bottom: .5rem; }
.helpdash-kpi-value { font-size: 1.3rem; font-weight: 900; line-height: 1.1; }
.helpdash-card { width: 100%; padding: 1.35rem; border-radius: 26px; background: #fff; box-shadow: 0 16px 34px rgba(15, 23, 42, .08); border: 1px solid rgba(15,23,42,.05); }
.helpdash-card-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; flex-wrap: wrap; }
.helpdash-card-title { margin: 0; font-size: 1.45rem; font-weight: 900; color: var(--primary-color); letter-spacing: -0.02em; }
.helpdash-card-subtitle { margin: .2rem 0 0; color: var(--text-color); opacity: .78; line-height: 1.65; }
.helpdash-toc { margin: 0; padding: 0; }
.helpdash-toc ul { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .75rem; }
.helpdash-toc a { display: inline-flex; align-items: center; gap: .45rem; padding: .8rem 1rem; border-radius: 999px; text-decoration: none; font-weight: 700; color: var(--primary-color); background: var(--background-dark2); border: 1px solid rgba(0,0,0,.06); transition: .18s ease; }
.helpdash-toc a:hover { transform: translateY(-1px); background: rgba(43,195,188,.12); }
.helpdash-toc a.is-hidden { opacity: .42; pointer-events: none; }
.help-doc { max-width: none; width: 100%; }
.help-doc, .help-doc * { text-align: left !important; }
.help-doc section.help-section { margin-bottom: 1.6rem; }
.help-doc h2 { margin: 0 0 .65rem; padding-bottom: .55rem; font-size: 1.55rem; font-weight: 900; color: var(--primary-color); border-bottom: 2px solid rgba(0,0,0,.06); }
.help-doc h3 { margin: 1rem 0 .35rem; font-size: 1.08rem; font-weight: 800; color: var(--primary-color); }
.help-doc p { margin: .15rem 0 .7rem; line-height: 1.8; color: var(--text-color); }
.help-doc ul { margin: .15rem 0 .85rem 1.1rem; }
.help-doc li { margin-bottom: .45rem; line-height: 1.72; color: var(--text-color); }
.help-callout { display: flex; gap: .9rem; align-items: flex-start; padding: 1rem 1rem; border-radius: 22px; background: rgba(43,195,188,.08); border: 1px solid rgba(43,195,188,.22); margin: .9rem 0 1rem; }
.help-callout-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(43,195,188,.14); border: 1px solid rgba(43,195,188,.3); color: var(--primary-color); font-size: 1.1rem; flex: 0 0 auto; }
.help-callout strong { color: var(--primary-color); }
.help-faq { display: flex; flex-direction: column; gap: .9rem; }
.faq-item { border: 1px solid rgba(0,0,0,.08); border-radius: 20px; background: var(--background-dark_4); padding: 0 1rem; transition: .18s ease; }
.faq-item:hover { background: rgba(0,0,0,.02); }
.faq-question { background: none; border: none; width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; font-size: 1rem; font-weight: 800; color: var(--primary-color); cursor: pointer; }
.faq-question i { transition: transform .2s ease; }
.faq-item.active .faq-question i { transform: rotate(180deg); }
.faq-answer { max-height: 0; overflow: hidden; opacity: 0; transition: max-height .25s ease, opacity .25s ease; padding: 0; }
.faq-answer p { margin: 0 0 1rem; }
.help-highlight { background: #fff3cd; border-radius: 4px; padding: 0 2px; }
.d-none { display: none !important; }
@media (max-width: 1400px) {
  .qv-central-popup { width: 96vw !important; max-width: 96vw !important; }
  .qv-central-swal .dash-action-swal-body { grid-template-columns: 1fr; }
  .qv-central-swal .dash-action-swal-hero { display: none; }
  .usersdash-main-grid { grid-template-columns: 1fr; grid-template-columns: 1fr; }
  .profiledash-edit-grid { grid-template-columns: 1fr; }
  .profiledash-edit-visual-card { order: 1; }
  .profiledash-edit-form-card { order: 2; }
  .overviewdash-main-grid { grid-template-columns: 1fr; }
  .overviewdash-row-three { grid-template-columns: 1fr; }
  .overviewdash-mini-gauges { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .overviewdash-kpis, .overviewdash-mini-gauges { grid-template-columns: repeat(2, minmax(0,1fr)); }
  .helpdash-hero { grid-template-columns: 1fr; }
}
@media (max-width: 992px) {
  .qv-manual-mode-grid { grid-template-columns: 1fr; }
  .qv-mode-simple-grid, .qv-logic-grid { grid-template-columns: 1fr; }
  .qv-remote-summary-grid, .qv-remote-sources-grid { grid-template-columns: 1fr; }
  .qv-rlm-header { padding: 22px 18px 18px; }
  .qv-rlm-title { font-size: 1.55rem; }
  .qv-rlm-header-actions { gap: 10px; }
  .qv-rlm-header-btn--help span { display: none; }
  .qv-rlm-step-row--top { grid-template-columns: 1fr; }
  .qv-rlm-logic-grid { grid-template-columns: 1fr; }
  .qv-rlm-source-grid { grid-template-columns: 1fr; }
  .qv-rlm-footer { flex-direction: column-reverse; }
  .qv-rlm-footer-btn { width: 100%; }
  .qv-day-grid { grid-template-columns: 1fr; }
  .qv-day-window-grid { grid-template-columns: 1fr; }
  .qv-day-window-actions { grid-template-columns: 1fr; }
  .qv-day-window-footer { flex-direction: column; align-items: flex-start; }
  .qv-day-inline-hint { text-align: left; }
  .qv-configure-mode-popup--week .qv-week-grid { grid-template-columns: 1fr; }
  .qv-week-day-slots { grid-template-columns: 1fr; }
  .qv-week-slot-footer { flex-direction: column; align-items: flex-start; }
  .qv-week-inline-hint { text-align: left; }
  .qv-sun-grid, .qv-sun-offsets-grid { grid-template-columns: 1fr; }
  #qv-sun-map { height: 240px; }
  .qv-history-tabs { grid-template-columns: 1fr; }
  .qv-history-swal-popup { width: 95vw !important; max-width: 95vw !important; }
  .usersdash-hero { grid-template-columns: 1fr; grid-template-columns: 1fr; }
  .qv-step3-topbar { grid-template-columns: 1fr; }
  .qv-step3-info-card { grid-template-columns: 1fr; }
  .qv-step3-reload-btn { width: 100%; justify-content: center; width: 100%; }
  .qv-general-intro-head { grid-template-columns: 1fr; }
  .qv-general-intro-card .qv-editor-reload-btn { width: 100%; justify-content: center; }
  .qv-di-topbar { grid-template-columns: 1fr; }
  .qv-di-topbar .qv-editor-reload-btn { width: 100%; justify-content: center; }
  .profiledash-hero { grid-template-columns: 1fr; }
  .profiledash-info-grid { grid-template-columns: 1fr; }
  .profiledash-edit-visual-media { min-height: 320px; padding: 18px; }
  .profiledash-edit-visual-media img { max-width: 420px; max-height: 340px; }
  .profiledash-hero--credentials { grid-template-columns: 1fr; }
  .profiledash-hero--credentials .profiledash-hero-visual { min-height: 280px; min-height: 260px; }
  .profiledash-classic-info-grid { grid-template-columns: 1fr; }
  .profiledash-classic-card-head { align-items: flex-start; flex-direction: column; }
  .profiledash-classic-card-title { font-size: 1.35rem; }
  .qv-sun-send-grid { grid-template-columns: 1fr; }
  .overviewdash-hero { grid-template-columns: 1fr; }
  .overviewdash-mini-gauges { grid-template-columns: 1fr 1fr; }
  #glassySidebarRight { width: 100%; max-width: 100%; right: -100%; }
  .overviewdash-gauges-section--sidebar .overviewdash-mini-gauges { grid-template-columns: 1fr; }
  #sidebar-toggle-right { top: auto; bottom: 18px; right: 18px; writing-mode: initial; text-orientation: initial; transform: none; border-radius: 999px; border-right: 1px solid rgba(255,255,255,.08); }
  .helpdash-hero-points, .helpdash-kpis { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  .dash-help-swal { min-height: auto; }
  .dash-help-swal-header { padding: 1rem; }
  .dash-help-swal-title { font-size: 1.4rem; }
  .dash-help-swal-subtitle { font-size: .94rem; }
  .dash-help-swal-body { grid-template-columns: 1fr; padding: 1rem; }
  .dash-help-swal-hero { min-height: 220px; max-height: 220px; }
  .dash-help-swal-hero img { transform: none; }
  .dash-action-swal { min-height: auto; }
  .dash-action-swal-body { grid-template-columns: 1fr; padding: 1rem; }
  .dash-action-swal-hero { min-height: 240px; max-height: 240px; }
  .dash-action-swal-action-row { grid-template-columns: 1fr; }
  .dash-action-swal-title { font-size: 1.4rem; }
  .dash-action-swal-header { padding: 1rem 6.7rem 1rem 1rem; }
  .dash-action-swal-top-actions { top: 14px; right: 64px; top: 14px; right: 64px; }
  .dash-action-swal-help { width: 42px; height: 42px; border-radius: 12px; width: 42px; height: 42px; border-radius: 12px; }
  .dash-action-swal-popup .swal2-close { top: 14px !important; right: 14px !important; width: 42px !important; height: 42px !important; border-radius: 12px !important; }
  .dash-icon-picker-grid { grid-template-columns: repeat(auto-fill, minmax(52px, 1fr)); gap: .55rem; }
  .dash-icon-option { min-height: 52px; border-radius: 12px; }
  .dash-icon-option i { font-size: 1.35rem; }
  .dash-status-swal { padding: 1.6rem 1rem 1.2rem 1rem; }
  .dash-status-swal-icon { width: 90px; height: 90px; font-size: 2.7rem; margin-bottom: 1rem; }
  .dash-status-swal-title { font-size: 1.6rem; }
  .dash-status-swal-text { font-size: 1rem; }
  .dash-status-swal-confirm { width: 100%; }
  .dash-table-shell-head { flex-direction: column; align-items: flex-start; }
  .dash-table-shell-desc { text-align: left; }
  .dash-users-hero { flex-direction: column; align-items: flex-start; padding: 1rem; }
  .dash-users-hero-figure { flex: 0 0 auto; }
  .dash-users-hero-figure img { max-width: 100px; max-height: 84px; }
  .dash-users-hero-title { font-size: 1.15rem; }
  .dash-users-hero-desc { font-size: .95rem; }
  .dash-modal .dash-modal-dialog { max-width: 96vw; margin: .5rem auto; }
  .dash-modal .dash-modal-header, .dash-modal .dash-modal-body, .dash-modal .dash-modal-footer { padding: 1rem; }
  .dash-modal-hero, .dash-modal-hero--compact { grid-template-columns: 1fr; text-align: center; justify-items: center; }
  .dash-modal-hero-media { width: 100%; justify-content: center; }
  .dash-modal-hero-media img { max-width: 120px; }
  .dash-modal-hero-content { width: 100%; }
  .dash-editor-card-head, .dash-modal-footer, .dash-table-shell-head { flex-direction: column; align-items: stretch; }
  .dash-editor-card-tip, .dash-table-shell-desc { text-align: left; }
  .dash-modal-footer-actions { width: 100%; flex-direction: column; }
  .dash-modal-btn-secondary, .dash-modal-btn-primary { width: 100%; justify-content: center; }
  #UsersByDeviceModal .modal-body { padding: 1rem !important; padding: 1rem !important; }
  .dash-serial-hint { grid-template-columns: 1fr; text-align: center; }
  .dash-serial-hint-media img { max-width: 200px; }
  .dash-modal-hero-sn-inline { grid-template-columns: 1fr; max-width: 100%; text-align: center; }
  .dash-modal-hero-sn-inline-badge, .dash-modal-hero-sn-inline-text, .dash-modal-hero-sn-inline-example { grid-column: auto; grid-row: auto; justify-self: center; }
  .dash-modal-hero-sn-inline-example img { max-width: 170px; }
  .dash-serial-card { grid-template-columns: 1fr; text-align: center; }
  .dash-serial-card-text { max-width: 100%; }
  .dash-serial-card-media img { max-width: 220px; }
  .dash-log-row-head { grid-template-columns: 1fr; }
  .dash-log-time, .dash-log-direction { text-align: left; align-items: flex-start; }
  .dash-log-groups, .dash-log-output-grid, .dash-log-week-grid { grid-template-columns: 1fr; }
  .qv-mode-info-grid { grid-template-columns: 1fr; }
  .qv-mode-info-card { min-height: auto; padding: 16px; }
  .qv-mode-info-title { font-size: 1rem; }
  .qv-mode-info-text { font-size: .95rem; line-height: 1.65; }
  .usersdash-controls { padding: 16px; }
  .usersdash-hero { padding: 20px; padding: 20px; }
  .usersdash-hero-title { font-size: 1.6rem; font-size: 1.6rem; }
  .usersdash-kpis { grid-template-columns: 1fr 1fr; }
  [data-users-chart-card].chart-card { min-height: 480px; height: 480px; min-height: 480px; height: 480px; }
  [data-users-chart-card].chart-card .chart-container { min-height: 280px; min-height: 280px; height: 280px; }
  .profiledash-hero { padding: 20px; gap: 18px; }
  .profiledash-hero-head { align-items: flex-start; }
  .profiledash-hero-title { font-size: 1.7rem; }
  .profiledash-summary-grid { grid-template-columns: 1fr; }
  .profiledash-panel-header, .profiledash-info-grid, .profiledash-form-wrap { padding-left: 16px; padding-right: 16px; }
  .profiledash-hero-media { min-height: 240px; }
  .profiledash-edit-form-card .iti input, .profiledash-edit-form-card .iti input[type="tel"] { padding-left: 150px !important; }
  .profiledash-edit-form-card .iti__selected-country { max-width: 145px; }
  .profiledash-edit-form-card .iti__dropdown-content { min-width: 280px; max-width: calc(100vw - 40px); }
  .profiledash-edit-visual-body { padding: 20px 20px 24px; }
  .profiledash-edit-head, .profiledash-edit-body { padding: 18px; }
  .profiledash-hero--credentials { padding: 20px; gap: 20px; }
  .profiledash-edit-card--credentials .profiledash-edit-head, .profiledash-edit-card--credentials .profiledash-edit-body { padding: 18px; }
  .otp-input input { width: 46px; height: 46px; width: 46px; height: 46px; }
  .profiledash-classic-card-head { padding: 16px 16px 14px; }
  .profiledash-classic-card-body { padding: 16px; }
  .profiledash-classic-inner { padding: 16px; }
  .profiledash-classic-side-media { min-height: 240px; }
  .overviewdash-hero { padding: 20px; }
  .overviewdash-hero-title { font-size: 1.6rem; }
  .overviewdash-donut-legend { grid-template-columns: 1fr; }
  .overviewdash-mini-gauges { grid-template-columns: 1fr; grid-template-columns: 1fr; }
  .overviewdash-kpis, .overviewdash-mini-gauges { grid-template-columns: 1fr; }
  .overviewdash-kpi-card-premium, .overviewdash-gauge-card-premium { min-height: auto; }
  .overviewdash-gauge-canvas { height: 118px; }
  #glassySidebarRight { width: 100%; max-width: 100%; right: -100%; border-radius: 0; padding: 16px; }
  #sidebar-toggle-right { top: auto; bottom: 18px; right: 18px; transform: none; border-radius: 999px; }
  #sidebar-toggle-right-inner { left: 12px; top: 12px; transform: none; width: 40px; height: 40px; border-radius: 12px; }
  [data-users-chart-card].chart-card.is-fullscreen { inset: 0 !important; width: 100vw !important; height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; padding: 16px !important; z-index: 2000 !important; overflow: auto; }
  [data-users-chart-card].chart-card.is-fullscreen .chart-header { flex-direction: column; align-items: stretch; gap: 12px; }
  [data-users-chart-card].chart-card.is-fullscreen .chart-actions { width: 100%; flex-wrap: nowrap; overflow-x: auto; overflow-y: hidden; justify-content: flex-start; scrollbar-width: none; }
  [data-users-chart-card].chart-card.is-fullscreen .chart-actions::-webkit-scrollbar { display: none; }
  [data-users-chart-card].chart-card.is-fullscreen .chart-container { height: calc(100vh - 240px); min-height: calc(100vh - 240px); height: calc(100dvh - 290px) !important; min-height: calc(100dvh - 290px) !important; }
  [data-users-chart-card].chart-card.is-fullscreen.is-donut-chart .chart-container { height: 260px !important; min-height: 260px !important; }
  [data-users-chart-card].chart-card.is-fullscreen .usersdash-donut-legend { margin-top: 14px; }
  #device-catalog-logs-table tr.child .log-badge-card-title { white-space: normal; line-height: 1.2; }
  #device-catalog-logs-table tr.child .log-badge-card-summary, #device-catalog-logs-table tr.child .log-badge-card-summary > div { max-width: 100%; }
  #device-catalog-logs-table tr.child .log-badge-card .badge { max-width: 100%; white-space: normal !important; overflow-wrap: anywhere; word-break: break-word; line-height: 1.35; text-align: left; }
  #device-catalog-logs-table tr.child .log-desc { text-align: left !important; line-height: 1.45; }
  #returnsDashCharts [data-users-chart-card].chart-card.is-fullscreen { inset: 0 !important; width: 100vw !important; height: 100dvh !important; min-height: 100dvh !important; max-height: 100dvh !important; border-radius: 0 !important; padding: 16px !important; z-index: 2000 !important; overflow: auto; }
  #returnsDashCharts [data-users-chart-card].chart-card.is-fullscreen .chart-container { height: calc(100dvh - 290px) !important; min-height: calc(100dvh - 290px) !important; }
  #returnsDashCharts [data-users-chart-card].chart-card.is-fullscreen.is-donut-chart .chart-container { height: 260px !important; min-height: 260px !important; }
  .helpdash-shell { gap: 1rem; }
  .helpdash-hero, .helpdash-card { padding: 1rem; border-radius: 22px; }
  .helpdash-title { font-size: 2rem; }
  .helpdash-toc ul { flex-direction: column; }
  .faq-question { align-items: flex-start; }
  .helpdash-search-row { flex-direction: column; align-items: stretch; display: block !important; margin-bottom: 1rem !important; }
  .helpdash-search-wrap { min-width: 0; width: 100%; position: static !important; flex: none !important; width: 100% !important; min-width: 0 !important; min-height: 0 !important; height: auto !important; margin: 0 !important; }
  .helpdash-search-wrap i { display: none !important; }
  .helpdash-search { display: block !important; width: 100% !important; min-height: 56px !important; padding: 0 1rem !important; margin: 0 !important; }
  .helpdash-hero-points { margin-top: 1rem !important; }
}
.qv-actions-swal-fastfade.swal2-popup { animation-duration: 120ms !important; transition-duration: 120ms !important; }
.qv-swal-fade-in { animation: qvSwalFastFadeIn 120ms ease-out !important; }
.qv-swal-fade-out { animation: qvSwalFastFadeOut 100ms ease-in !important; }
.qv-swal-backdrop-fade-in { animation: qvSwalBackdropFadeIn 120ms ease-out !important; }
.qv-swal-backdrop-fade-out { animation: qvSwalBackdropFadeOut 100ms ease-in !important; }
@keyframes qvSwalFastFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes qvSwalFastFadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
@keyframes qvSwalBackdropFadeIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes qvSwalBackdropFadeOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
#device-log-filter + .select2-container { width: 100% !important; }
#device-log-filter + .select2-container .select2-selection--single { min-height: 52px; border-radius: 14px; padding: 10px 14px; display: flex; align-items: center; }
#device-log-filter + .select2-container .select2-selection__rendered { line-height: 1.4 !important; padding-left: 0 !important; white-space: normal !important; }
#device-log-filter + .select2-container .select2-selection__arrow { height: 100% !important; right: 12px !important; }
.select2-container--open { z-index: 999999 !important; }
.select2-dropdown { z-index: 999999 !important; }
#app-main > div.app-content > div > section > div > div { z-index: 1; }
/* ===== Bulk alarm clear modal ===== */
.dash-action-modal--alarm-bulk-clear .dash-action-list-card { margin-top: 1rem; border: 1px solid rgba(14, 165, 233, 0.14); border-radius: 1.15rem; background: linear-gradient(180deg, rgba(236, 253, 245, 0.72) 0%, rgba(255, 255, 255, 0.96) 100%); overflow: hidden; }
.dash-action-modal--alarm-bulk-clear .dash-action-list-head { display: flex; align-items: center; justify-content: space-between; gap: .75rem; padding: 1rem 1.1rem .85rem; border-bottom: 1px solid rgba(15, 118, 110, 0.10); background: rgba(255,255,255,0.45); }
.dash-action-modal--alarm-bulk-clear .dash-action-list-title { display: inline-flex; align-items: center; gap: .55rem; font-size: 1rem; font-weight: 800; color: var(--primary-color); }
.dash-action-modal--alarm-bulk-clear .dash-action-list-title i { font-size: 1rem; opacity: .9; }
.dash-action-modal--alarm-bulk-clear .dash-action-list-body { display: flex; flex-direction: column; gap: .8rem; padding: 1rem 1.1rem 1.1rem; }
.dash-action-modal--alarm-bulk-clear .dash-action-list-item { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: .95rem 1rem; border: 1px solid rgba(15, 118, 110, 0.14); border-radius: 1rem; background: linear-gradient(135deg, rgba(236, 253, 245, 0.95) 0%, rgba(255,255,255,0.98) 100%); box-shadow: 0 8px 20px rgba(15, 23, 42, 0.05); }
.dash-action-modal--alarm-bulk-clear .dash-action-list-item-main { min-width: 0; flex: 1 1 auto; }
.dash-action-modal--alarm-bulk-clear .dash-action-list-item-title { font-size: 1rem; font-weight: 800; line-height: 1.35; color: var(--primary-color); }
.dash-action-modal--alarm-bulk-clear .dash-action-list-item-subtitle { margin-top: .25rem; font-size: .92rem; line-height: 1.45; color: var(--text-color-secondary, #5f6b7a); }
.dash-action-modal--alarm-bulk-clear .dash-action-list-item-side { flex: 0 0 auto; display: flex; align-items: center; justify-content: center; }
.dash-action-modal--alarm-bulk-clear .dash-action-info-card-danger { border: 1px solid rgba(244, 63, 94, 0.18); background: linear-gradient(180deg, rgba(255, 241, 242, 0.95) 0%, rgba(255,255,255,0.98) 100%); }
.dash-action-modal--alarm-bulk-clear .dash-action-info-icon-danger { color: #e11d48; background: rgba(244, 63, 94, 0.10); border: 1px solid rgba(244, 63, 94, 0.16); }
.charts-pref-swal-popup { width: min(980px, 92vw) !important; border-radius: 28px !important; padding: 0 !important; overflow: hidden !important; background: transparent !important; box-shadow: none !important; }
.charts-pref-swal { background: radial-gradient(circle at top right, rgba(10,163,161,.16), transparent 34%), linear-gradient(180deg, #eef7f6 0%, #f8fbfb 100%); border: 1px solid rgba(15,118,110,.14); border-radius: 28px; overflow: hidden; box-shadow: 0 24px 70px rgba(15, 23, 42, .18); }
.charts-pref-swal-header { padding: 28px 30px 16px; border-bottom: 1px solid rgba(15,118,110,.10); background: linear-gradient(180deg, rgba(10,163,161,.08) 0%, rgba(255,255,255,.76) 100%); }
.charts-pref-swal-title { font-size: 2rem; font-weight: 800; line-height: 1.1; color: #0f766e; margin-bottom: 6px; }
.charts-pref-swal-subtitle { color: #475569; font-size: 1rem; line-height: 1.6; }
.charts-pref-swal-body { padding: 22px 30px 28px; }
.charts-pref-swal-toolbar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 18px; }
.charts-pref-swal-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-height: 56vh; overflow: auto; padding-right: 4px; }
.charts-pref-group { background: rgba(255,255,255,.72); border: 1px solid rgba(15,118,110,.12); border-radius: 18px; padding: 16px 16px 12px; box-shadow: 0 10px 24px rgba(15, 23, 42, .05); }
.charts-pref-swal-actions { display: flex; justify-content: flex-end; gap: 12px; margin-top: 20px; flex-wrap: wrap; }
.charts-pref-btn { min-width: 150px; border: 0; border-radius: 14px; padding: 12px 18px; font-weight: 700; transition: .2s ease; }
.charts-pref-btn--primary { background: linear-gradient(135deg, #0f766e 0%, #0aa3a1 100%); color: #fff; box-shadow: 0 10px 24px rgba(10,163,161,.24); }
.charts-pref-btn--ghost { background: #fff; color: #475569; border: 1px solid rgba(15,118,110,.18); }
@media (max-width: 767.98px) {
  .overviewdash-hero-map-card .overviewdash-hero-map-body, .overviewdash-hero-map-card .overviewdash-hero-map-stage, .overviewdash-hero-map-card #thessaloniki-app { min-height: 360px; height: 360px; }
  .overviewdash-hero-map-toolbar-overlay { left: 10px; right: 10px; top: auto; bottom: 18px; justify-content: center; overflow: hidden; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-toolbar { width: min(100%, 320px); max-width: 320px; overflow: hidden; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-toolbar__group { display: flex; flex-wrap: nowrap; gap: 10px; width: 100%; overflow-x: auto; overflow-y: hidden; scroll-snap-type: x mandatory; -webkit-overflow-scrolling: touch; scrollbar-width: none; justify-content: flex-start; padding-bottom: 2px; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-toolbar__group::-webkit-scrollbar { display: none; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-filter-btn { flex: 0 0 calc(50% - 5px); min-width: calc(50% - 5px); min-height: 42px; padding: 0 12px; border-radius: 14px !important; justify-content: center; scroll-snap-align: start; white-space: nowrap; }
  .overviewdash-hero-map-toolbar-overlay .iot-map-filter-count { min-width: 22px; height: 22px; font-size: 11px; padding: 0 6px; }
  .iot-map-popup--compact-mobile { min-width: 240px; max-width: min(88vw, 300px); }
  .iot-map-popup--compact-mobile .iot-map-popup__action-btn { min-height: 50px; font-size: .95rem; }
  .leaflet-popup { max-width: 360px !important; width: 75vw !important; }
  .overviewdash-hero-map-card.is-fullscreen .leaflet-popup { max-width: 420px !important; width: 75vw !important; }
  .iot-map-popup--wide { width: min(360px, calc(100vw - 36px)); max-width: min(360px, calc(100vw - 36px)); }
  .overviewdash-hero-map-card.is-fullscreen .iot-map-popup--wide { width: min(420px, calc(100vw - 36px)); max-width: min(420px, calc(100vw - 36px)); max-height: 78vh; }
  .overviewdash-hero-map-card.is-fullscreen .iot-map-popup__body { max-height: 58vh; overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; padding-right: 6px; }
  .overviewdash-hero-map-card.is-fullscreen .iot-map-popup__grid, .overviewdash-hero-map-card.is-fullscreen .iot-map-popup__io-grid, .overviewdash-hero-map-card.is-fullscreen .iot-map-popup__manual-toggles { grid-template-columns: 1fr; }
  .overviewdash-techlogs-section { display: none !important; }
  .overviewdash-chart-card { padding: 14px; border-radius: 20px; }
  .overviewdash-chart-card .chart-title { font-size: 1.04rem; }
  .overviewdash-chart-card .chart-subtitle { font-size: .9rem; }
  .overviewdash-chart-card .chart-current-row { grid-template-columns: 1fr; gap: 8px; }
  .overviewdash-chart-card .chart-container { min-height: 280px; }
  .overviewdash-chart-card .icon-btn { width: 40px; height: 40px; min-width: 40px; min-height: 40px; }
  #AddDeviceModal .dash-modal-subtitle, #AddDeviceModal .dash-modal-title { display: none; }
  .usersdash-section-block { padding: 14px; }
  [data-users-chart-card].chart-card { padding: 14px; border-radius: 20px; }
  [data-users-chart-card].chart-card .chart-title { font-size: 1rem; }
  [data-users-chart-card].chart-card .chart-subtitle { font-size: .9rem; }
  [data-users-chart-card].chart-card .chart-current-row { grid-template-columns: 1fr; gap: 8px; }
  [data-users-chart-card].chart-card .chart-container { min-height: 280px !important; height: 280px !important; }
  [data-users-chart-card].chart-card.is-donut-chart .chart-container { min-height: 220px !important; height: 220px !important; }
  [data-users-chart-card].chart-card.is-donut-chart .chart-container canvas { max-width: min(76vw, 260px) !important; max-height: 220px !important; }
  .control-bar { margin-bottom: 18px; }
  .dashboard-shell .charts-grid .chart-card, .dashboard-shell .overview-grid .chart-card { padding: 14px; border-radius: 20px; }
  .dashboard-shell .charts-grid .chart-card .chart-title, .dashboard-shell .overview-grid .chart-card .chart-title { font-size: 1rem; }
  .dashboard-shell .charts-grid .chart-card .chart-subtitle, .dashboard-shell .overview-grid .chart-card .chart-subtitle { font-size: .9rem; }
  .dashboard-shell .charts-grid .chart-card .chart-current-row, .dashboard-shell .overview-grid .chart-card .chart-current-row { grid-template-columns: 1fr; gap: 8px; }
  .dashboard-shell .charts-grid .chart-card .chart-container, .dashboard-shell .overview-grid .chart-card .chart-container { min-height: 280px !important; height: 280px !important; }
  .dash-action-modal--alarm-bulk-clear .dash-action-list-head { padding: .9rem .9rem .8rem; }
  .dash-action-modal--alarm-bulk-clear .dash-action-list-body { padding: .9rem; gap: .7rem; }
  .dash-action-modal--alarm-bulk-clear .dash-action-list-item { flex-direction: column; align-items: flex-start; gap: .75rem; padding: .9rem; }
  .dash-action-modal--alarm-bulk-clear .dash-action-list-item-side { width: 100%; justify-content: flex-start; }
  .dash-action-modal--alarm-bulk-clear .dash-action-list-item-title { font-size: .96rem; }
  .dash-action-modal--alarm-bulk-clear .dash-action-list-item-subtitle { font-size: .88rem; }
  .charts-pref-swal-header, .charts-pref-swal-body { padding-left: 18px; padding-right: 18px; }
  .charts-pref-swal-title { font-size: 1.5rem; }
  .charts-pref-swal-grid { grid-template-columns: 1fr; max-height: 52vh; }
  .charts-pref-btn { width: 100%; }
  .charts-pref-swal-actions { flex-direction: column-reverse; }
}
.charts-pref-sheet { display: flex; flex-direction: column; gap: 16px; }
.charts-pref-toolbar .btn { min-width: 170px; }
.charts-pref-msg { display: none; padding: 10px 12px; border-radius: 14px; font-weight: 600; font-size: .95rem; }
.charts-pref-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; max-height: 56vh; overflow: auto; padding-right: 4px; }
.charts-pref-group-card { background: rgba(255,255,255,.82); border: 1px solid rgba(15, 118, 110, .14); border-radius: 22px; padding: 16px 18px 14px; box-shadow: 0 10px 30px rgba(15, 23, 42, .05); }
.charts-pref-group-head { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; }
.charts-pref-group-icon { width: 44px; height: 44px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: rgba(10,163,161,.10); color: #0f766e; font-size: 1.2rem; flex: 0 0 auto; }
.charts-pref-group-title-wrap { min-width: 0; }
.charts-pref-group-title { font-weight: 800; color: #0f766e; margin-bottom: 12px; font-size: 1rem; text-transform: none; font-size: 1.05rem; font-weight: 800; color: #0f766e; line-height: 1.2; margin-bottom: 2px; }
.charts-pref-group-subtitle { font-size: .88rem; color: #64748b; line-height: 1.45; }
.charts-pref-item { display: flex; align-items: center; gap: 10px; padding: 8px 0; color: #0f766e; font-size: 1rem; line-height: 1.35; display: flex; align-items: center; gap: 12px; padding: 8px 0; color: #0f766e; font-size: 1rem; line-height: 1.35; }
.charts-pref-item input[type="checkbox"] { width: 18px; height: 18px; accent-color: #0aa3a1; flex: 0 0 auto; width: 18px; height: 18px; accent-color: #0aa3a1; flex: 0 0 auto; }
.charts-pref-item-label { flex: 1 1 auto; }
@media (max-width: 991.98px) {
  .returnsdash-chart-card { min-height: 320px; }
  .returnsdash-chart-wrap { min-height: 220px; }
  .charts-pref-grid { grid-template-columns: 1fr; }
}
.charts-pref-toolbar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 2px; display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 2px; }
.charts-pref-toolbar .btn-primary-theme-container, .charts-pref-toolbar .btn-grey-theme-compact { min-width: 180px; justify-content: center; align-items: center; border-radius: 14px !important; padding: 14px 18px !important; font-weight: 700 !important; box-shadow: 0 8px 20px rgba(15, 23, 42, .10); }
.charts-pref-toggle-row { display: flex; align-items: center; gap: 12px; padding: 8px 0; cursor: pointer; user-select: none; }
.charts-pref-toggle-row input { display: none; }
.charts-pref-toggle-ui { position: relative; width: 48px; height: 28px; border-radius: 999px; background: #cbd5e1; transition: .22s ease; flex: 0 0 auto; box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .08); }
.charts-pref-toggle-ui::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #ffffff; box-shadow: 0 4px 10px rgba(15, 23, 42, .16); transition: .22s ease; }
.charts-pref-toggle-row input:checked + .charts-pref-toggle-ui { background: linear-gradient(135deg, #0f766e 0%, #0aa3a1 100%); }
.charts-pref-toggle-row input:checked + .charts-pref-toggle-ui::after { transform: translateX(20px); }
.charts-pref-toggle-text { flex: 1 1 auto; color: #0f766e; font-size: 1rem; line-height: 1.35; }
.device-quick-chip-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0 0 8px 0; }
.device-quick-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: .78rem; font-weight: 700; line-height: 1; border: 1px solid transparent; white-space: nowrap; }
.device-quick-chip--din { background: rgba(245,158,11,.12); color: #b45309; border-color: rgba(245,158,11,.28); }
.device-quick-chip--ain { background: rgba(14,165,233,.12); color: #0369a1; border-color: rgba(14,165,233,.28); }
.device-group-chip-strip { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin-top: 8px; max-width: 100%; }
.device-group-chip { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 999px; font-size: .74rem; font-weight: 700; line-height: 1; white-space: nowrap; color: #0f766e; background: rgba(15,118,110,.10); border: 1px solid rgba(15,118,110,.18); }
.device-group-chip i { font-size: .9rem; opacity: .9; }
.device-group-chip--more { color: #475569; background: rgba(148,163,184,.12); border-color: rgba(148,163,184,.22); }
.dash-action-input-help { margin: 0 0 10px 0; color: var(--text-color); font-size: .92rem; }
.dash-group-empty-state { display: flex; align-items: center; gap: 10px; padding: 14px 16px; border-radius: 16px; background: rgba(15,118,110,.06); border: 1px dashed rgba(15,118,110,.18); color: var(--primary-color); font-weight: 600; }
.dash-group-empty-state.is-error { background: rgba(220,38,38,.06); border-color: rgba(220,38,38,.18); color: #b91c1c; }
.dash-group-selector-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.dash-group-selector-item { margin: 0; cursor: pointer; }
.dash-group-selector-checkbox { display: none; }
.dash-group-selector-card { display: block; padding: 14px 16px; border-radius: 18px; border: 1px solid rgba(15,118,110,.16); background: #fff; transition: .2s ease; }
.dash-group-selector-checkbox:checked + .dash-group-selector-card { border-color: var(--primary-color); background: rgba(15,118,110,.08); box-shadow: 0 8px 20px rgba(15,118,110,.10); }
.dash-group-selector-head { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dash-group-selector-icon { width: 34px; height: 34px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1rem; }
.dash-group-selector-title { font-weight: 800; color: var(--primary-color); }
.dash-group-selector-count { margin-left: auto; font-size: .82rem; font-weight: 700; color: var(--text-color); }
.dash-group-selector-desc { margin-top: 8px; font-size: .9rem; color: var(--text-color); }
.dash-groups-manager-body { min-height: 180px; }
.dash-groups-manager-list { display: flex; flex-direction: column; gap: 14px; }
.dash-groups-manager-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; }
.dash-groups-manager-title-wrap { display: flex; align-items: center; gap: 12px; }
.dash-groups-manager-icon { width: 40px; height: 40px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1.05rem; }
.dash-groups-manager-meta { font-size: .88rem; color: var(--secondary-color); font-weight: 600; }
.dash-groups-manager-devices { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.dash-groups-manager-device-chip { display: inline-flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 999px; background: rgba(15,118,110,.08); border: 1px solid rgba(15,118,110,.16); color: var(--primary-color); font-size: .82rem; font-weight: 700; }
.dash-groups-manager-device-chip.is-empty { background: rgba(148,163,184,.10); border-color: rgba(148,163,184,.16); color: #475569; }
.dash-groups-toolbar-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 20px; border: none; border-radius: 16px; background: linear-gradient(135deg, #0f8c78 0%, #0a6f60 100%); color: #fff; font-size: 1rem; font-weight: 800; box-shadow: 0 10px 22px rgba(15,118,110,.22); transition: .2s ease; cursor: pointer; }
.dash-groups-toolbar-btn:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(15,118,110,.26); }
.dash-group-loading-state { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-radius: 18px; border: 1px dashed rgba(15,118,110,.18); background: rgba(15,118,110,.06); color: var(--primary-color); font-weight: 700; }
.dash-group-empty-illustration { width: 120px; max-width: 32%; object-fit: contain; filter: drop-shadow(0 8px 20px rgba(15,118,110,.10)); }
.dash-group-empty-title { font-size: 1.08rem; font-weight: 800; color: var(--primary-color); }
.dash-group-empty-text { color: var(--text-color-light); font-size: .95rem; line-height: 1.5; }
.dash-action-info-card { display: flex; align-items: flex-start; gap: .75rem; padding: .95rem 1rem; border-radius: 18px; background: rgba(255,255,255,0.76); border: 1px solid rgba(0,0,0,0.05); box-shadow: 0 6px 18px rgba(0,0,0,0.04); display: flex; align-items: center; gap: 14px; padding: 16px 18px; }
.dash-action-info-card > div:last-child { display: flex; flex-direction: column; justify-content: center; gap: 4px; min-width: 0; }
.dash-action-info-title { font-size: 1rem; font-weight: 700; line-height: 1.24; color: var(--primary-color); margin-bottom: .22rem; margin: 0; line-height: 1.1; font-weight: 800; }
.dash-action-info-text { font-size: .96rem; line-height: 1.48; color: var(--text-color); opacity: .88; margin: 0; line-height: 1.35; }
.dash-action-device-code { color: var(--secondary-color); font-weight: 700; word-break: break-all; display: inline-block; max-width: 100%; word-break: break-word; overflow-wrap: anywhere; line-height: 1.45; display: inline-block; margin-top: 2px; }
.dash-icon-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; margin-top: 6px; }
.dash-icon-btn { width: 100%; min-height: 56px; border-radius: 16px; border: 1px solid rgba(15,118,110,.22); background: #fff; color: var(--primary-color); display: flex; align-items: center; justify-content: center; font-size: 1.25rem; transition: .18s ease; cursor: pointer; }
.dash-icon-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(15,118,110,.10); }
.dash-icon-btn.active { border-color: #d9a93a; background: rgba(217,169,58,.10); color: #d9a93a; box-shadow: 0 10px 24px rgba(217,169,58,.14); }
.dash-action-textarea { width: 100%; min-height: 110px; resize: vertical; padding: 14px 16px; border-radius: 16px; border: 1px solid rgba(15,118,110,.22); background: #fff; color: var(--text-color); font-size: 1rem; line-height: 1.45; outline: none; transition: .18s ease; }
.dash-action-textarea:focus { border-color: var(--primary-color); box-shadow: 0 0 0 4px rgba(15,118,110,.08); }
@media (max-width: 640px) {
  .dash-icon-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.dash-group-empty-state--illustrated { display: flex; align-items: center; gap: 18px; padding: 18px; border-radius: 20px; align-items: center; justify-content: center; min-height: 190px; }
.dash-group-empty-content { display: flex; flex-direction: column; gap: 8px; max-width: 420px; }
.dash-groups-toolbar { display: flex; align-items: center; justify-content: flex-start; margin-bottom: 14px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.dash-groups-toolbar-left { display: flex; align-items: center; gap: 12px; }
.dash-groups-manager-card { padding: 16px 18px; border-radius: 20px; border: 1px solid rgba(15,118,110,.14); background: #fff; box-shadow: 0 8px 24px rgba(15,118,110,.06); padding: 18px 20px; border-radius: 22px; border: 1px solid rgba(15,118,110,.14); background: #fff; box-shadow: 0 10px 28px rgba(15,118,110,.06); }
.dash-groups-manager-card-top { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
.dash-groups-manager-left { display: flex; align-items: flex-start; gap: 14px; min-width: 0; flex: 1; }
.dash-groups-manager-main { min-width: 0; flex: 1; }
.dash-groups-manager-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.dash-groups-manager-title { font-size: 1.02rem; font-weight: 800; color: var(--primary-color); font-size: 1.08rem; font-weight: 900; color: var(--primary-color); }
.dash-groups-manager-count-badge { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: .82rem; font-weight: 800; }
.dash-groups-manager-desc { margin-top: 10px; color: var(--text-color-light); font-size: .92rem; margin-top: 6px; color: var(--text-color-light); font-size: .92rem; line-height: 1.45; }
.dash-groups-manager-desc.is-muted { opacity: .75; }
.dash-groups-manager-actions { display: flex; gap: 8px; flex-wrap: wrap; display: flex; gap: 8px; flex-wrap: wrap; justify-content: flex-end; }
.dash-groups-manager-devices-wrap { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(15,118,110,.10); }
.dash-groups-manager-devices-title { display: flex; align-items: center; gap: 8px; color: var(--primary-color); font-weight: 800; margin-bottom: 10px; }
.dash-delete-warning-box { display: flex; gap: 14px; align-items: flex-start; padding: 16px 18px; border-radius: 18px; background: rgba(245,158,11,.08); border: 1px solid rgba(245,158,11,.18); }
.dash-delete-warning-icon { width: 42px; height: 42px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(245,158,11,.12); color: #d97706; font-size: 1.1rem; }
.dash-delete-warning-title { font-size: 1rem; font-weight: 900; color: var(--primary-color); margin-bottom: 4px; }
.dash-delete-warning-text { color: var(--text-color); line-height: 1.5; }
.dash-group-picker-help { margin-bottom: 14px; color: var(--text-color); line-height: 1.5; }
.dash-group-device-picker-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
.dash-group-device-picker-item { margin: 0; cursor: pointer; }
.dash-group-device-picker-checkbox { display: none; }
.dash-group-device-picker-card { display: block; padding: 14px 16px; border-radius: 18px; border: 1px solid rgba(15,118,110,.16); background: #fff; transition: .18s ease; }
.dash-group-device-picker-checkbox:checked + .dash-group-device-picker-card { border-color: var(--primary-color); background: rgba(15,118,110,.08); box-shadow: 0 8px 20px rgba(15,118,110,.10); }
.dash-group-device-picker-head { display: flex; align-items: center; gap: 10px; }
.dash-group-device-picker-icon { width: 34px; height: 34px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1rem; }
.dash-group-device-picker-title { font-weight: 800; color: var(--primary-color); }
.dash-group-device-picker-sub { display: block; margin-top: 8px; color: var(--text-color-light); font-size: .82rem; word-break: break-all; }
/* =========================================================
   GROUPS PIPELINE UI (CLEAN BLOCK)
   ΒΑΛΕ ΤΟ ΣΤΟ ΤΕΛΟΣ ΤΟΥ style-dashboard.css
========================================================= */
.grp-manager-shell { display: flex; flex-direction: column; gap: 16px; }
.grp-manager-add-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 46px; padding: 0 18px; border: none; border-radius: 16px; background: linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color: var(--text-color-light); font-size: 1rem; font-weight: 800; box-shadow: 0 10px 24px rgba(15,118,110,.16); transition: .18s ease; }
.grp-manager-add-btn:hover { transform: translateY(-1px); filter: brightness(1.02); }
.grp-manager-body { min-height: 220px; }
.grp-loading { display: flex; align-items: center; gap: 10px; padding: 16px 18px; border-radius: 18px; border: 1px dashed rgba(15,118,110,.18); background: rgba(15,118,110,.06); color: var(--primary-color); font-weight: 700; }
.grp-card-main { min-width: 0; }
.grp-card-head { display: flex; align-items: flex-start; gap: 12px; min-width: 0; }
.grp-card-title-wrap { min-width: 0; flex: 1 1 auto; }
.grp-card-title-row { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.grp-card-desc.is-muted { opacity: .72; }
.grp-card-divider { height: 1px; background: rgba(15,118,110,.10); margin: 16px 0 14px; }
.grp-card-section-title { display: flex; align-items: center; gap: 8px; color: var(--primary-color); font-weight: 800; margin-bottom: 10px; }
.grp-chip-row { display: flex; flex-wrap: wrap; gap: 8px; }
.grp-chip { display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 999px; background: rgba(15,118,110,.08); border: 1px solid rgba(15,118,110,.16); color: var(--primary-color); font-size: .82rem; font-weight: 700; max-width: 100%; }
.grp-chip span { white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.grp-chip.is-empty { background: rgba(148,163,184,.10); border-color: rgba(148,163,184,.16); color: #475569; }
.grp-empty-state { display: flex; align-items: center; gap: 18px; padding: 20px; border-radius: 22px; border: 1px dashed rgba(15,118,110,.18); background: rgba(15,118,110,.04); }
.grp-empty-state img { width: 120px; max-width: 28%; object-fit: contain; filter: drop-shadow(0 8px 20px rgba(15,118,110,.08)); }
.grp-empty-copy { display: flex; flex-direction: column; gap: 8px; }
.grp-empty-title { font-size: 1.12rem; font-weight: 900; color: var(--primary-color); }
.grp-empty-text { color: var(--primary-color); line-height: 1.55; }
.grp-picker-help { color: var(--secondary-color); line-height: 1.55; }
.grp-picker-empty { display: flex; align-items: center; gap: 8px; padding: 14px 16px; border-radius: 16px; border: 1px dashed rgba(148,163,184,.18); background: rgba(148,163,184,.06); color: #475569; font-weight: 700; }
.grp-list { display: flex; flex-direction: column; gap: 16px; display: flex; flex-direction: column; gap: 14px; }
.grp-card-icon { width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1.1rem; flex: 0 0 auto; width: 44px; height: 44px; border-radius: 14px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1.1rem; flex: 0 0 auto; }
.grp-card-desc { margin-top: 8px; color: var(--secondary-color); font-size: .92rem; line-height: 1.45; white-space: normal; word-break: break-word; overflow-wrap: anywhere; margin-top: 6px; color: var(--secondary-color); font-size: .92rem; line-height: 1.45; white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.grp-picker-shell { display: flex; flex-direction: column; gap: 14px; display: flex; flex-direction: column; gap: 14px; }
.grp-picker-search { display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 18px; border: 1px solid rgba(15,118,110,.16); background: #fff; display: flex; align-items: center; gap: 10px; padding: 12px 14px; border-radius: 18px; border: 1px solid rgba(15,118,110,.16); background: #fff; }
.grp-picker-search i { color: var(--primary-color); font-size: 1rem; color: var(--primary-color); }
.grp-picker-search input { border: none; outline: none; background: transparent; width: 100%; font-size: .97rem; color: var(--text-color); width: 100%; border: none; outline: none; background: transparent; font-size: .97rem; }
.grp-picker-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 14px; }
.grp-picker-item { margin: 0; cursor: pointer; margin: 0; cursor: pointer; }
.grp-picker-checkbox { display: none; display: none; }
.grp-picker-card { display: flex; flex-direction: column; gap: 10px; min-height: 112px; padding: 16px 16px 14px; border-radius: 20px; border: 1px solid rgba(15,118,110,.16); background: #fff; transition: .18s ease; display: flex; flex-direction: column; gap: 10px; min-height: 60px; padding: 16px; border-radius: 20px; border: 1px solid rgba(15,118,110,.16); background: #fff; transition: .18s ease; }
.grp-picker-checkbox:checked + .grp-picker-card { border-color: var(--primary-color); background: rgba(15,118,110,.08); box-shadow: 0 8px 20px rgba(15,118,110,.10); border-color: var(--primary-color); background: rgba(15,118,110,.08); box-shadow: 0 8px 20px rgba(15,118,110,.10); }
.grp-picker-head { display: flex; align-items: flex-start; gap: 10px; display: flex; align-items: flex-start; gap: 10px; }
.grp-picker-icon { width: 36px; height: 36px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1rem; flex: 0 0 auto; width: 36px; height: 36px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: 1rem; flex: 0 0 auto; }
.grp-picker-main { min-width: 0; flex: 1 1 auto; min-width: 0; flex: 1 1 auto; }
.grp-picker-title { font-weight: 900; color: var(--primary-color); line-height: 1.3; white-space: normal; word-break: break-word; overflow-wrap: anywhere; font-weight: 900; color: var(--primary-color); line-height: 1.3; white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.grp-picker-sub { margin-top: 6px; color: var(--text-color-light); font-size: .82rem; line-height: 1.35; white-space: normal; word-break: break-word; overflow-wrap: anywhere; margin-top: 6px; color: var(--text-color-light); font-size: .82rem; line-height: 1.35; white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.grp-picker-other-groups { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; display: flex; flex-wrap: wrap; gap: 6px; margin-top: 2px; }
.grp-picker-other-badge { display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; background: rgba(148,163,184,.12); border: 1px solid rgba(148,163,184,.18); color: #475569; font-size: .75rem; font-weight: 700; line-height: 1; max-width: 100%; display: inline-flex; align-items: center; gap: 5px; padding: 5px 9px; border-radius: 999px; background: rgba(148,163,184,.12); border: 1px solid rgba(148,163,184,.18); color: #475569; font-size: .75rem; font-weight: 700; line-height: 1; max-width: 100%; }
.grp-picker-other-badge span { white-space: normal; word-break: break-word; overflow-wrap: anywhere; white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.grp-manager-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.grp-manager-search { display: flex; align-items: center; gap: 10px; min-width: 280px; flex: 1 1 280px; max-width: 380px; padding: 12px 14px; border-radius: 18px; border: 1px solid rgba(15,118,110,.16); background: #fff; }
.grp-manager-search i { color: var(--primary-color); }
.grp-manager-search input { width: 100%; border: none; outline: none; background: transparent; font-size: .96rem; color: var(--text-color); }
.grp-card-row { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.grp-card-left { display: flex; align-items: flex-start; gap: 12px; min-width: 0; flex: 1 1 auto; display: flex; align-items: center; gap: 12px; min-width: 0; flex: 1 1 auto; }
.grp-card-title-stack { min-width: 0; flex: 1 1 auto; min-width: 0; flex: 1 1 auto; }
.grp-card-title-line { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.grp-card-title { font-size: 1.06rem; font-weight: 900; line-height: 1.25; color: var(--primary-color); white-space: normal; word-break: break-word; overflow-wrap: anywhere; font-size: 1.08rem; font-weight: 900; line-height: 1.25; color: var(--primary-color); white-space: normal; word-break: break-word; overflow-wrap: anywhere; font-size: 1.08rem; font-weight: 900; line-height: 1.25; color: var(--primary-color); white-space: normal; word-break: break-word; overflow-wrap: anywhere; }
.grp-card-count { display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: .82rem; font-weight: 800; line-height: 1; white-space: nowrap; display: inline-flex; align-items: center; padding: 5px 10px; border-radius: 999px; background: rgba(15,118,110,.10); color: var(--primary-color); font-size: .82rem; font-weight: 800; line-height: 1; white-space: nowrap; }
.grp-card-actions { display: flex; flex-wrap: wrap; gap: 8px; justify-content: flex-end; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; justify-content: flex-end; flex: 0 0 auto; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; flex: 0 0 auto; }
.grp-card-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 0 14px; border-radius: 14px; font-weight: 800; white-space: nowrap; line-height: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 42px; padding: 0 14px; border-radius: 14px; font-weight: 800; white-space: nowrap; line-height: 1; width: 48px; min-width: 48px; height: 48px; padding: 0; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; }
.grp-card-btn i { font-size: 1rem; }
@media (max-width: 991px) {
  #device-catalog-logs-table_wrapper .logs-export-toolbar { grid-template-columns: 1fr; }
  #device-catalog-logs-table_wrapper .logs-filters-row { align-items: stretch; }
  #device-catalog-logs-table_wrapper .logs-date-toolbar { width: 100%; min-width: 0; }
  .dash-group-selector-grid { grid-template-columns: 1fr; }
  .dash-groups-manager-card-head { flex-direction: column; }
  .dash-group-empty-state--illustrated { flex-direction: column; text-align: center; }
  .dash-group-empty-illustration { max-width: 160px; width: 100%; }
  .dash-icon-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .dash-groups-manager-card-top { flex-direction: column; }
  .dash-groups-manager-actions { justify-content: flex-start; }
  .dash-group-device-picker-grid { grid-template-columns: 1fr; }
  .grp-empty-state { flex-direction: column; text-align: center; }
  .grp-empty-state img { max-width: 160px; width: 100%; }
  .grp-picker-grid { grid-template-columns: 1fr; }
  .grp-card-row { flex-direction: column; align-items: flex-start; }
  .grp-card-actions { justify-content: flex-start; }
}
.grp-card { border: 1px solid rgba(15,118,110,.14); background: #fff; border-radius: 22px; box-shadow: 0 10px 28px rgba(15,118,110,.06); padding: 18px; cursor: pointer; transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.grp-card:hover { transform: translateY(-1px); box-shadow: 0 14px 28px rgba(15,118,110,.10); border-color: rgba(15,118,110,.24); }
.dash-help-trigger:disabled { cursor: not-allowed; opacity: .45; }
.qv-channel-section { border:1px solid rgba(15,118,110,.12); border-radius:18px; background:#fff; padding:14px; margin-bottom:14px; }
.qv-channel-section-title { display:flex; align-items:center; gap:8px; color:var(--primary-color); font-weight:900; margin-bottom:12px; }
.qv-channel-card { border:1px solid rgba(15,118,110,.12); border-radius:16px; background:rgba(15,118,110,.03); padding:14px; }
.qv-channel-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:12px; flex-wrap:wrap; }
.qv-channel-card-title { font-size:1rem; font-weight:900; color:var(--primary-color); }
.qv-channel-card-meta { font-size:.82rem; color:var(--text-color); }
.qv-channel-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.qv-channel-empty { padding:14px 16px; border-radius:14px; border:1px dashed rgba(148,163,184,.22); background:rgba(148,163,184,.06); color:#475569; font-weight:700; }
.qv-device-settings-group-actions { display:flex; justify-content:flex-start; margin-bottom:12px; }
.qv-manage-groups-btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:46px; padding:0 18px; border:none; border-radius:16px; background:linear-gradient(135deg, var(--primary-color), var(--secondary-color)); color:#fff; font-size:.96rem; font-weight:800; box-shadow:0 10px 24px rgba(15,118,110,.16); transition:.18s ease; }
.qv-manage-groups-btn:hover { transform:translateY(-1px); filter:brightness(1.02); }
.qv-device-groups-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; }
.qv-device-group-card { margin:0; cursor:pointer; }
.qv-device-group-checkbox { display:none; }
.qv-device-group-card-inner { border:1px solid rgba(15,118,110,.14); background:#fff; border-radius:18px; padding:14px; transition:.18s ease; }
.qv-device-group-checkbox:checked + .qv-device-group-card-inner { border-color:var(--primary-color); background:rgba(15,118,110,.08); box-shadow:0 8px 18px rgba(15,118,110,.08); }
.qv-device-group-head { display:flex; align-items:flex-start; gap:12px; }
.qv-device-group-icon { width:40px; height:40px; border-radius:12px; display:flex; align-items:center; justify-content:center; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:1rem; flex:0 0 auto; }
.qv-device-group-main { min-width:0; flex:1 1 auto; }
.qv-device-group-title-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.qv-device-group-title { font-weight:900; color:var(--text-color); line-height:1.25; }
.qv-device-group-count-badge { display:inline-flex; align-items:center; margin-left: auto; padding:4px 9px; border-radius:999px; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:.78rem; font-weight:800; line-height:1; white-space:nowrap; }
.qv-device-group-desc { margin-top:6px; color:var(--text-color); opacity:.78; line-height:1.4; }
.qv-channel-accordion-item { border:1px solid rgba(15,118,110,.12); border-radius:18px; background:#fff; overflow:hidden; margin-bottom:12px; }
.qv-channel-accordion-toggle { width:100%; border:none; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; text-align:left; }
.qv-channel-accordion-title { display:flex; align-items:center; gap:8px; color:var(--text-color); font-weight:900; }
.qv-channel-accordion-meta { display:flex; align-items:center; gap:8px; color:var(--text-color); opacity:.7; font-weight:700; }
.qv-channel-accordion-item.is-open .qv-channel-accordion-meta i { transform:rotate(180deg); }
.qv-channel-accordion-body { padding:0 16px 16px 16px; border-top:1px solid rgba(15,118,110,.08); }
@media (max-width: 991px) {
  .qv-device-groups-grid { grid-template-columns:1fr; }
}
.qv-channel-section { border:1px solid rgba(15,118,110,.12); border-radius:18px; background:#fff; overflow:hidden; margin-bottom:14px; }
.qv-channel-section-toggle { width:100%; border:none; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:16px 18px; text-align:left; }
.qv-channel-section-toggle-left { display:flex; align-items:center; gap:8px; color:var(--text-color); font-weight:900; }
.qv-channel-section-toggle-right { display:flex; align-items:center; gap:10px; color:var(--text-color); opacity:.78; font-weight:800; }
.qv-channel-section.is-open .qv-channel-section-toggle-right i { transform:rotate(180deg); }
.qv-channel-section-body { padding:14px 16px 16px 16px; border-top:1px solid rgba(15,118,110,.08); background:rgba(15,118,110,.03); }
.qv-channel-list { display:flex; flex-direction:column; gap:12px; }
.qv-channel-item { border:1px solid rgba(15,118,110,.12); border-radius:18px; background:#fff; overflow:hidden; }
.qv-channel-item-toggle { width:100%; border:none; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:12px; padding:14px 16px; text-align:left; transition:.18s ease; }
.qv-channel-item-toggle:hover { background:rgba(15,118,110,.04); }
.qv-channel-item-toggle-left { display:flex; align-items:center; gap:8px; min-width:0; }
.qv-channel-item-title { font-size:1.02rem; font-weight:900; color:var(--primary-color); line-height:1.25; }
.qv-channel-item-toggle-right { display:flex; align-items:center; gap:10px; flex:0 0 auto; }
.qv-channel-item-code { display:inline-flex; align-items:center; padding:5px 10px; border-radius:999px; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:.78rem; font-weight:800; line-height:1; white-space:nowrap; }
.qv-channel-item.is-open .qv-channel-item-toggle-right i { transform:rotate(180deg); }
.qv-channel-item-body { padding:0 14px 14px 14px; border-top:1px solid rgba(15,118,110,.08); background:rgba(15,118,110,.03); }
.qv-channel-grid { display:grid; grid-template-columns:repeat(2, minmax(0, 1fr)); gap:12px; margin-top:14px; }
.qv-channel-transform-wrap { grid-column:1 / -1; }
.qv-channel-name-card,
.qv-channel-output-name-card { grid-column:1 / -1; }
.qv-channel-unit-card--raw { background:linear-gradient(180deg, rgba(255,251,235,.92) 0%, rgba(254,243,199,.70) 100%) !important; border-color:rgba(180,110,40,.22) !important; }
.qv-channel-unit-card--raw .dash-action-input-label { color:#9a5b1a; }
.qv-channel-unit-card--display { background:linear-gradient(180deg, rgba(236,253,245,.92) 0%, rgba(204,251,241,.62) 100%) !important; border-color:rgba(15,118,110,.20) !important; }
.qv-channel-unit-card--display .dash-action-input-label { color:var(--primary-color); }
.qv-channel-transform-disabled { grid-column:1 / -1; display:flex; align-items:flex-start; gap:8px; padding:12px 14px; border-radius:14px; background:rgba(148,163,184,.08); border:1px dashed rgba(148,163,184,.18); color:var(--text-color); opacity:.8; }
.qv-channel-empty { padding:14px 16px; border-radius:14px; border:1px dashed rgba(148,163,184,.22); background:rgba(148,163,184,.06); color:var(--text-color); opacity:.8; font-weight:700; }
@media (max-width: 991px) {
  .qv-channel-grid { grid-template-columns:1fr; }
}
/* Channel settings cards - πιο κοντά στο UI των ρυθμίσεων */
.qv-channel-section { background: linear-gradient(180deg, rgba(15,118,110,.035) 0%, rgba(15,118,110,.018) 100%); border: 1px solid rgba(15,118,110,.14); box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }
.qv-channel-section-body { background: rgba(15,118,110,.035); }
.qv-channel-item { background: linear-gradient(180deg, rgba(235,248,245,.88) 0%, rgba(244,251,249,.96) 100%); border: 1px solid rgba(15,118,110,.14); box-shadow:
    0 8px 18px rgba(15,118,110,.05),
    inset 0 1px 0 rgba(255,255,255,.7); }
.qv-channel-item-toggle { background: transparent; }
.qv-channel-item-toggle:hover { background: rgba(15,118,110,.045); }
.qv-channel-item-body { background: rgba(15,118,110,.03); }
.qv-channel-item .dash-action-input-card { background: linear-gradient(180deg, rgba(255,255,255,.88) 0%, rgba(245,251,250,.94) 100%); border: 1px solid rgba(15,118,110,.10); border-radius: 18px; box-shadow: inset 0 1px 0 rgba(255,255,255,.65); }
.qv-channel-item .dash-action-input { background: rgba(255,255,255,.92); }
.qv-channel-transform-disabled { background: linear-gradient(180deg, rgba(248,250,252,.82) 0%, rgba(241,245,249,.9) 100%); border: 1px dashed rgba(148,163,184,.22); }
.qv-expression-chip { background: rgba(255,255,255,.88); }
.qv-expression-chip:hover { background: rgba(15,118,110,.08); }
/* Outer channel settings shell */
.qv-channel-section { background: transparent !important; border: 1px solid rgba(15,118,110,.12) !important; box-shadow: none !important; }
.qv-channel-section-toggle { background: transparent !important; border-radius: 18px !important; }
.qv-channel-section-body { background: transparent !important; padding: 12px 0 0 0 !important; border-top: none !important; }
.qv-channel-list { gap: 12px !important; }
.qv-channel-item { margin: 0 12px 12px 12px !important; }
math-field:not(:defined) { visibility:hidden; }
.qv-mathlive-wrap { display:flex; flex-direction:column; gap:8px; }
.qv-mathlive-field { display:block; width:100%; min-height:58px; padding:10px 12px; border:1px solid rgba(15,118,110,.9); border-radius:16px; background:#fff; color:var(--text-color); --hue:175; --primary:var(--primary-color); --caret-color:var(--primary-color); --selection-background-color:rgba(15,118,110,.12); }
.qv-mathlive-field::part(menu-toggle),
.qv-mathlive-field::part(virtual-keyboard-toggle) { display:none !important; }
.qv-mathlive-field.is-invalid { border-color:#ef476f; box-shadow:0 0 0 3px rgba(239,71,111,.12); }
.qv-mathlive-error { color:#ef476f; font-size:.82rem; font-weight:700; line-height:1.35; }
.qv-expression-help { color:var(--text-color); opacity:.78; font-size:.84rem; margin-top: 0.5em; }
.qv-transform-builder { display:flex; flex-direction:column; gap:14px; }
.qv-transform-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.qv-transform-field { display:flex; flex-direction:column; gap:6px; }
.qv-transform-field label { font-size:.86rem; font-weight:800; color:var(--text-color); }
.qv-formula-op { opacity:.75; font-weight:900; }
.qv-formula-num,
.qv-formula-var { font-weight:900; color:var(--primary-color); }
.qv-formula-tag { display:inline-flex; align-items:center; padding:4px 9px; border-radius:999px; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:.78rem; font-weight:800; }
@media (max-width: 991px) {
  .qv-transform-grid { grid-template-columns:1fr; }
}
.qv-formula-builder { display:flex; flex-direction:column; gap:12px; }
.qv-formula-toolbar { display:flex; flex-wrap:wrap; gap:8px; }
.qv-formula-chip { border:1px solid rgba(15,118,110,.16); background:#fff; color:var(--text-color); border-radius:999px; padding:6px 10px; font-size:.82rem; font-weight:800; line-height:1; transition:.18s ease; }
.qv-formula-chip:hover { background:rgba(15,118,110,.08); border-color:rgba(15,118,110,.28); }
.qv-formula-chip--danger { color:#ef476f; border-color:rgba(239,71,111,.22); background:rgba(239,71,111,.05); }
.qv-channel-transform-editor { font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; min-height: 74px; height: 74px; line-height: 1.45; padding: 14px 16px!important; resize: vertical!important; display: block; box-sizing: border-box; }
.qv-transform-preview-shell { border:1px solid rgba(15,118,110,.14); background:rgba(15,118,110,.04); border-radius:16px; padding:14px; }
.qv-transform-preview-title { font-size:.86rem; font-weight:900; color:var(--primary-color); margin-bottom:10px; }
.qv-transform-preview { min-height:48px; display:flex; align-items:center; flex-wrap:wrap; gap:8px; font-size:1.05rem; color:var(--text-color); }
.qv-transform-expression-text { margin-top:10px; font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; font-size:.86rem; color:var(--text-color); opacity:.82; word-break:break-word; }
.qv-transform-error { margin-top:8px; color:#ef476f; font-size:.84rem; font-weight:700; }
.qv-formula-number,
.qv-formula-var { color:var(--primary-color); font-weight:900; }
.qv-formula-group { display:inline-flex; align-items:center; gap:6px; }
.qv-formula-op { opacity:.78; font-weight:900; }
.qv-formula-frac { display:inline-flex; flex-direction:column; align-items:center; justify-content:center; vertical-align:middle; }
.qv-formula-frac-top { border-bottom:2px solid currentColor; padding:0 8px 4px 8px; line-height:1.2; }
.qv-formula-frac-bottom { padding-top:4px; line-height:1.2; }
.qv-formula-power-wrap { display:inline-flex; align-items:flex-start; }
.qv-formula-power { margin-left:3px; font-size:.72em; font-weight:900; }
.qv-formula-root-wrap { display:inline-flex; align-items:flex-end; gap:2px; }
.qv-formula-root-index { font-size:.62em; transform:translateY(-8px); }
.qv-formula-root-symbol { font-size:1.4em; line-height:1; }
.qv-formula-root-content { border-top:2px solid currentColor; padding:2px 6px 0 6px; }
.qv-formula-abs { font-weight:900; }
.qv-formula-fn { font-weight:800; }
.qv-formula-comma { opacity:.72; }
.qv-formula-builder.is-invalid .qv-channel-transform-editor { border-color:#ef476f !important; box-shadow:0 0 0 3px rgba(239,71,111,.12); }
.qv-transform-expression-text { display:none !important; }
.qv-channel-item-state-badge { display:inline-flex; align-items:center; gap:6px; padding:5px 10px; border-radius:999px; background:rgba(148,163,184,.12); color:#64748b; font-size:.76rem; font-weight:800; line-height:1; white-space:nowrap; }
.qv-channel-item-state-badge.is-filled { background:rgba(180, 110, 40, .14); color:#9a5b1a; }
.qv-channel-item-state-badge.is-empty { background:rgba(148,163,184,.12); color:#64748b; }
.qv-channel-item-clear-btn { width:34px; height:34px; border:none; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:rgba(239,71,111,.08); color:#ef476f; transition:.18s ease; }
.qv-channel-item-clear-btn:hover { background:rgba(239,71,111,.14); transform:translateY(-1px); }
.qv-channel-item-toggle-right { display:flex; align-items:center; gap:8px; flex:0 0 auto; }
.qv-channel-item-head { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid rgba(15,118,110,.08); background:transparent; }
.qv-channel-item-toggle-left { min-width:0; flex:1 1 auto; }
.qv-channel-item-clear-btn { flex:0 0 36px; width:36px; height:36px; margin:0; }
.qv-channel-item-body { border-top:none; padding:14px; }
.qv-channel-section-count-badge { display:inline-flex; align-items:center; justify-content:center; padding:6px 12px; border-radius:999px; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:.82rem; font-weight:800; line-height:1; white-space:nowrap; }
.qv-channel-section-toggle-right { display:flex; align-items:center; gap:10px; flex-wrap:nowrap; white-space:nowrap; }
.qv-channel-item-toggle-right { display:flex; align-items:center; gap:8px; flex-wrap:nowrap; white-space:nowrap; }
.qv-channel-item-title,
.qv-channel-item.is-filled .qv-channel-item-title { color: var(--primary-color) !important; }
.qv-channel-item-head { display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid rgba(15,118,110,.08); }
.qv-channel-item-toggle { flex:1 1 auto; min-width:0; width:auto; padding:0; border:none; background:transparent; }
.qv-channel-item-toggle:hover { background:transparent; }
.qv-channel-item-toggle-right { display:flex; align-items:center; gap:8px; flex:0 0 auto; flex-wrap:nowrap; white-space:nowrap; }
.qv-channel-item-icons,
.qv-channel-section-icons { display:none; align-items:center; gap:6px; }
.qv-channel-state-icon { width:30px; height:30px; border-radius:999px; display:inline-flex; align-items:center; justify-content:center; background:rgba(180,110,40,.14); color:#9a5b1a; border:1px solid rgba(180,110,40,.18); font-size:.9rem; line-height:1; }
.qv-channel-item-code,
.qv-channel-section-count-badge { display:inline-flex; align-items:center; justify-content:center; padding:6px 12px; border-radius:999px; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:.82rem; font-weight:800; line-height:1; white-space:nowrap; opacity:1; }
.qv-channel-section-toggle-right { display:flex; align-items:center; gap:10px; flex-wrap:nowrap; white-space:nowrap; color:var(--text-color); opacity:1; }
.qv-channel-item-clear-btn { width:36px; height:36px; flex:0 0 36px; border:none; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:rgba(239,71,111,.08); color:#ef476f; margin:0; }
.qv-channel-item-clear-btn:hover { background:rgba(239,71,111,.14); }
.qv-channel-section-toggle-left { display:flex; align-items:center; gap:12px; min-width:0; }
.qv-channel-section-toggle-left i { width:42px; height:42px; border-radius:14px; display:inline-flex; align-items:center; justify-content:center; background:rgba(15,118,110,.07); border:1px solid rgba(15,118,110,.22); color:var(--primary-color); font-size:1.1rem; line-height:1; flex:0 0 42px; }
.qv-channel-section-toggle-left span { color:var(--primary-color); font-weight:900; font-size:1.1rem; line-height:1.1; letter-spacing:-0.01em; }
.qv-channel-section-toggle { padding:16px 18px; }
.qv-channel-section { border:1px solid rgba(15,118,110,.14); border-radius:22px; background:#fff; }
.qv-device-groups-summary-grid { display:grid; grid-template-columns:repeat(2, minmax(0,1fr)); gap:12px; }
.qv-device-groups-summary-card { padding:14px 16px; border-radius:18px; border:1px solid rgba(15,118,110,.16); background:#fff; box-shadow:none; cursor:default; pointer-events:none; }
.qv-device-groups-summary-head { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.qv-device-groups-summary-title-wrap { display:flex; align-items:center; gap:10px; min-width:0; }
.qv-device-groups-summary-icon { width:34px; height:34px; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:rgba(15,118,110,.10); color:var(--primary-color); font-size:1rem; flex:0 0 34px; }
.qv-device-groups-summary-title { font-weight:800; color:var(--primary-color); line-height:1.2; }
.qv-device-groups-summary-desc { margin-top:8px; font-size:.92rem; color:var(--text-color); opacity:.82; }
@media (max-width: 991px) {
  .qv-device-groups-summary-grid { grid-template-columns:1fr; }
}
.dash-inline-form-error { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; margin-bottom:14px; border-radius:16px; background:rgba(239,71,111,.08); border:1px solid rgba(239,71,111,.18); color:#d64566; font-size:.95rem; font-weight:700; line-height:1.4; }
.dash-inline-form-error i { font-size:1.1rem; line-height:1.2; flex:0 0 auto; margin-top:1px; }
.qv-state-row-sub--profile-badges { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.qv-state-mini-chip--unit { background:rgba(15,118,110,.10); color:var(--primary-color); }
.qv-state-mini-chip--transform { background:rgba(180,110,40,.12); color:#9a5b1a; }
.qv-card-icon-btn { width:38px; height:38px; border:none; border-radius:12px; display:inline-flex; align-items:center; justify-content:center; background:rgba(15,118,110,.08); color:var(--primary-color); transition:.18s ease; }
.qv-card-icon-btn:hover { background:rgba(15,118,110,.14); transform:translateY(-1px); }
#qv-single-channel-inline-error { display:flex; align-items:flex-start; gap:10px; padding:12px 14px; margin-bottom:14px; border-radius:16px; background:rgba(239,71,111,.08); border:1px solid rgba(239,71,111,.18); color:#d64566; font-size:.95rem; font-weight:700; line-height:1.4; }
.qv-state-row-sub--values { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.qv-state-mini-chip--raw { background:rgba(15,118,110,.10); color:var(--primary-color); border:1px solid rgba(15,118,110,.16); }
.qv-state-mini-chip--transform { background:rgba(180,110,40,.14); color:#9a5b1a; border:1px solid rgba(180,110,40,.18); }
.qv-state-mini-chip--transform i { margin-right:6px; }
.overview-transform-row { margin-top:10px; }
.overview-transform-pill { display:inline-flex; align-items:center; gap:8px; padding:7px 12px; border-radius:999px; background:rgba(10,163,161,.14); border:1px solid rgba(10,163,161,.28); color:#dffcf8; font-size:.82rem; font-weight:700; line-height:1; }
.overview-transform-pill i,
.overview-transform-pill svg { width:15px; height:15px; color:#7ee7db; }
.overview-transform-pill span { color:#eafffb; }
.sidebar-brand { height: auto !important; min-height: 78px !important; padding: 10px 10px 12px !important; margin: 0 0 10px 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.sidebar-brand > a { display:flex !important; align-items:center !important; justify-content:center !important; width:calc(100% - 8px) !important; min-height:72px !important; padding:10px 14px !important; background:#ffffff !important; border-radius:14px !important; box-shadow:none !important; text-decoration:none !important; overflow:visible !important; }
.sidebar-brand .brand-image { display:block !important; width:auto !important; max-width:100% !important; height:auto !important; max-height:56px !important; object-fit:contain !important; object-position:center !important; opacity:1 !important; filter:none !important; box-shadow:none !important; border:0 !important; background:transparent !important; margin:0 auto !important; }
.sidebar-wrapper { padding-top: 0!important; }
.is-disabled-by-offline { opacity: .42 !important; cursor: not-allowed !important; pointer-events: none !important; filter: grayscale(.25); box-shadow: none !important; }
button.is-disabled-by-offline,
.btn.is-disabled-by-offline,
.qv-card-mini-btn.is-disabled-by-offline,
.qv-card-icon-btn.is-disabled-by-offline,
.qv-inline-read-btn.is-disabled-by-offline { opacity: .42 !important; cursor: not-allowed !important; }
.qv-inline-toggle-wrap.is-disabled-by-offline,
.qv-inline-toggle-input.is-disabled-by-offline + .qv-inline-toggle-slider { opacity: .5 !important; cursor: not-allowed !important; }
/* === Quick View Mode Builder polish: Manual / OR / AND === */

.qv-manual-mode-card--wide { grid-column: 1 / -1; }
.qv-manual-mode-card--wide .qv-logic-grid { grid-template-columns: 1fr !important; }
.qv-mode-panel .qv-logic-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important; gap: 12px !important; }
.qv-manual-mode-card--wide .qv-mode-group { padding: 14px !important; overflow: hidden; }
.qv-logic-card { width: 100%; min-width: 0; align-items: center !important; gap: 12px !important; padding: 14px !important; overflow: hidden; }
.qv-logic-card-copy { min-width: 0; flex: 1 1 auto; }
.qv-logic-card-title { display: block; max-width: 100%; overflow-wrap: anywhere; word-break: normal; line-height: 1.2; }
.qv-logic-card-subtitle { display: block; max-width: 100%; overflow-wrap: anywhere; word-break: normal; line-height: 1.35; }
.qv-logic-check { flex: 0 0 20px !important; }
.qv-logic-card-icon { flex: 0 0 42px !important; }
.qv-manual-restore-row { margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(15, 118, 110, .06); border: 1px solid rgba(15, 118, 110, .14); }
.qv-mode-note--example { margin-top: 14px; padding: 12px 14px; border-radius: 14px; background: rgba(234, 179, 8, .08); border: 1px solid rgba(234, 179, 8, .22); color: #475569; }
.qv-mode-group--timing { background: #fbfefd; border-color: rgba(15, 118, 110, .18); }
.qv-delay-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 12px; }
.qv-delay-field { padding: 12px; border-radius: 14px; background: #ffffff; border: 1px solid rgba(15, 23, 42, .08); }
.qv-delay-label { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; font-size: .86rem; font-weight: 800; color: #0f766e; }
.qv-delay-input { width: 100%; min-height: 42px; border-radius: 12px; border: 1px solid rgba(15, 118, 110, .24); background: #fff; padding: 8px 12px; font-weight: 800; color: #1f2937; outline: none; }
.qv-delay-input:focus { border-color: var(--primary-color); box-shadow: 0 0 0 3px rgba(15, 118, 110, .10); }
.qv-delay-help { margin-top: 8px; font-size: .78rem; line-height: 1.35; color: #64748b; }
@media (max-width: 1200px) {
  .qv-mode-panel .qv-logic-grid { grid-template-columns: 1fr !important; }
}
.qv-manual-toggle-wrap.is-safety-blocked { opacity: .72; }
.qv-manual-toggle-wrap.is-safety-blocked .qv-inline-toggle-note { color: #b45309 !important; font-weight: 800; }
.qv-manual-toggle-wrap.is-safety-blocked .qv-inline-toggle-slider { cursor: not-allowed !important; filter: grayscale(.2); }
.helpdash-manual-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 18px; flex-wrap: wrap; }
.helpdash-manual-cta { display: inline-flex; align-items: center; gap: 14px; min-width: 320px; padding: 14px 18px; border-radius: 18px; text-decoration: none; background: linear-gradient(135deg, #0f8b8d 0%, #0b6b78 100%); color: #fff; box-shadow: 0 12px 28px rgba(8, 72, 84, 0.22); border: 1px solid rgba(255, 255, 255, 0.12); transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; }
.helpdash-manual-cta:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(8, 72, 84, 0.28); filter: brightness(1.03); color: #fff; text-decoration: none; }
.helpdash-manual-cta-icon { width: 48px; height: 48px; border-radius: 14px; display: inline-flex; align-items: center; justify-content: center; background: rgba(255, 255, 255, 0.14); font-size: 1.35rem; flex: 0 0 48px; }
.helpdash-manual-cta-copy { display: flex; flex-direction: column; gap: 2px; line-height: 1.2; }
.helpdash-manual-cta-copy strong { font-size: 1rem; font-weight: 800; color: #fff; }
.helpdash-manual-cta-copy small { font-size: .86rem; color: rgba(255, 255, 255, 0.88); }
.helpdash-manual-meta { display: flex; flex-wrap: wrap; gap: 10px; }
.helpdash-manual-chip { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; background: rgba(255, 255, 255, 0.08); border: 1px solid rgba(255, 255, 255, 0.10); color: #dff6f7; font-size: .92rem; font-weight: 700; }
.helpdash-toc-download a { background: linear-gradient(135deg, rgba(15, 139, 141, 0.12) 0%, rgba(11, 107, 120, 0.16) 100%); border: 1px solid rgba(15, 139, 141, 0.22); }
.helpdash-toc-download a i { color: #0f8b8d; }
@media (max-width: 991.98px) {
  .helpdash-manual-row { align-items: stretch; }
  .helpdash-manual-cta { width: 100%; min-width: 0; }
  .helpdash-manual-meta { width: 100%; }
}
@media (max-width: 575.98px) {
  .helpdash-manual-cta { padding: 13px 14px; border-radius: 16px; }
  .helpdash-manual-cta-icon { width: 42px; height: 42px; border-radius: 12px; flex-basis: 42px; }
  .helpdash-manual-chip { width: 100%; justify-content: center; }
}
.dash-modal-subtitle--secondary { margin-top: 4px; color: #6b7280; font-size: 0.92rem; font-weight: 600; }
.dash-action-inline-error { display:flex; align-items:flex-start; gap:.7rem; margin:0 0 1rem 0; padding:.95rem 1rem; border-radius:16px; background:var(--error-light-color-fade); border:1px solid var(--error-color); color:var(--error-color); font-size:.95rem; font-weight:600; line-height:1.45; }
.dash-action-inline-error i { font-size:1.15rem; line-height:1; margin-top:.08rem; flex:0 0 auto; }
.dash-action-input.is-invalid-transfer { border-color:var(--error-color) !important; box-shadow:0 0 0 .18rem rgba(239,68,68,.12) !important; }
.device-mini-toggle.is-disabled-mode { opacity:1 !important; }
.device-mini-toggle.is-disabled-mode .device-mini-toggle-slider { cursor:not-allowed !important; filter:none !important; }
.device-mini-toggle.is-disabled-mode input:not(:checked) + .device-mini-toggle-slider { opacity:.82; }
.device-mini-toggle.is-disabled-mode input:checked + .device-mini-toggle-slider,
.device-mini-toggle.is-active-state input:checked + .device-mini-toggle-slider { background:var(--primary-color) !important; border-color:var(--primary-color) !important; opacity:1 !important; filter:none !important; }
.device-mini-toggle.is-disabled-mode input:checked + .device-mini-toggle-slider::before,
.device-mini-toggle.is-active-state input:checked + .device-mini-toggle-slider::before { opacity:1 !important; }
.qv-delay-field--toggle { display:flex; flex-direction:column; justify-content:flex-start; }
.qv-inline-switch { display:inline-flex; align-items:center; gap:10px; min-height:42px; margin-top:6px; cursor:pointer; user-select:none; }
.qv-inline-switch input { display:none; }
.qv-inline-switch-slider { position:relative; width:56px; height:32px; border-radius:999px; background:#d9e4e7; border:1px solid rgba(15,23,42,.08); transition:.2s ease; flex:0 0 56px; }
.qv-inline-switch-slider::after { content:""; position:absolute; top:3px; left:3px; width:24px; height:24px; border-radius:50%; background:#ffffff; box-shadow:0 4px 10px rgba(15,23,42,.15); transition:.2s ease; }
.qv-inline-switch input:checked + .qv-inline-switch-slider { background:linear-gradient(135deg, #118a82 0%, #169f98 100%); border-color:#118a82; }
.qv-inline-switch input:checked + .qv-inline-switch-slider::after { left:27px; }
.qv-inline-switch-text { font-weight:800; color:#0f766e; line-height:1; }
.qv-related-badge { background: linear-gradient(135deg,#7c3aed,#a855f7); color:#fff; border:0; box-shadow:0 8px 18px rgba(124,58,237,.18); }
.qv-relations-toolbar-btn { background: linear-gradient(135deg,#7c3aed,#a855f7) !important; color:#fff !important; border:0 !important; box-shadow:0 10px 24px rgba(124,58,237,.22); }
.qv-relations-toolbar-btn:hover { filter:brightness(1.04); color:#fff !important; }
.qv-relations-shell { display:flex; flex-direction:column; gap:14px; }
.qv-relations-toolbar { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.qv-relations-search { width:100%; min-height:52px; border-radius:16px; border:1px solid rgba(15,118,110,.18); background:rgba(255,255,255,.92); padding:0 16px; outline:none; box-shadow:none; }
.qv-relations-tabs { display:flex; flex-wrap:wrap; gap:10px; }
.qv-relations-tab { border:1px solid rgba(124,58,237,.18); background:rgba(124,58,237,.08); color:#6d28d9; border-radius:999px; padding:10px 16px; font-weight:800; cursor:pointer; transition:.18s ease; }
.qv-relations-tab.is-active { background:linear-gradient(135deg,#7c3aed,#a855f7); color:#fff; border-color:transparent; box-shadow:0 10px 22px rgba(124,58,237,.18); }
.qv-relations-results { display:flex; flex-direction:column; gap:12px; max-height:58vh; overflow:auto; padding-right:4px; }
.qv-rel-card { border:1px solid rgba(15,118,110,.14); background:rgba(255,255,255,.7); border-radius:18px; padding:14px 16px; display:flex; flex-direction:column; gap:10px; }
.qv-rel-card-head { display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.qv-rel-card-title { font-weight:800; color:#0f766e; display:flex; align-items:center; gap:8px; }
.qv-rel-card-meta { display:flex; flex-wrap:wrap; gap:8px; }
.qv-rel-chip { display:inline-flex; align-items:center; gap:6px; padding:8px 12px; border-radius:999px; font-size:.82rem; font-weight:700; border:1px solid rgba(124,58,237,.18); background:rgba(124,58,237,.08); color:#6d28d9; }
.qv-rel-chip--output { background:rgba(15,118,110,.08); border-color:rgba(15,118,110,.18); color:#0f766e; }
.qv-rel-empty { border:1px dashed rgba(15,118,110,.18); background:rgba(255,255,255,.58); border-radius:20px; padding:22px 18px; text-align:center; color:#64748b; font-weight:600; }
.qv-rel-network-placeholder { border:1px dashed rgba(124,58,237,.22); background:linear-gradient(180deg,rgba(124,58,237,.05),rgba(255,255,255,.75)); border-radius:20px; padding:18px; min-height:260px; display:flex; flex-direction:column; gap:14px; }
.qv-rel-network-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.qv-rel-network-node { border:1px solid rgba(15,118,110,.14); background:#fff; border-radius:18px; padding:14px; display:flex; flex-direction:column; gap:10px; }
.qv-rel-network-node-title { font-weight:800; color:#0f766e; }
.qv-rel-network-node-outs { display:flex; flex-wrap:wrap; gap:8px; }
.qv-rel-list { display: flex; flex-direction: column; gap: 14px; }
.qv-rel-card { background: #fff; border: 1px solid rgba(19, 122, 109, 0.14); border-radius: 18px; padding: 16px; }
.qv-rel-card-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.qv-rel-card-title { font-weight: 700; font-size: 1rem; color: #0f7a6d; }
.qv-rel-card-subtitle { font-size: .88rem; color: #6d7b88; }
.qv-rel-block { border: 1px dashed rgba(19, 122, 109, 0.16); border-radius: 14px; padding: 12px; margin-top: 10px; }
.qv-rel-block-top { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.qv-rel-flow { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.qv-rel-source-pill,
.qv-rel-target-pill { display: inline-flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: #f8fbfb; border: 1px solid rgba(19, 122, 109, 0.12); }
.qv-rel-source-device,
.qv-rel-target-device { font-weight: 600; color: #1f2d2f; }
.qv-rel-source-meta,
.qv-rel-target-meta { font-size: .85rem; color: #6d7b88; }
.qv-rel-arrow { font-size: 1.2rem; color: #7b61ff; }
.qv-rel-output-badge,
.qv-rel-logic-badge,
.qv-rel-enabled-badge,
.qv-rel-disabled-badge,
.qv-rel-invert-badge,
.qv-related-badge { border-radius: 999px; padding: 6px 10px; font-size: .78rem; font-weight: 600; }
.qv-rel-network-canvas { height: 480px; background: #fbfcfc; border: 1px solid rgba(19, 122, 109, 0.12); border-radius: 18px; }
.qv-rel-list-compact { display: flex; flex-direction: column; gap: 12px; }
.qv-rel-card-compact { padding: 14px 16px; border-radius: 18px; }
.qv-rel-card-head-compact { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.qv-rel-card-body-compact { display: flex; flex-direction: column; gap: 10px; }
.qv-rel-block-compact { padding: 12px; border: 1px dashed rgba(16, 132, 120, 0.18); border-radius: 16px; background: rgba(255, 255, 255, 0.55); }
.qv-rel-block-top-compact { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 10px; }
.qv-rel-compact-flow { display: flex; flex-direction: column; gap: 10px; }
.qv-rel-compact-target { padding: 10px 12px; border-radius: 12px; background: rgba(122, 92, 255, 0.06); border: 1px solid rgba(122, 92, 255, 0.12); }
.qv-rel-compact-target-title { font-size: 14px; font-weight: 700; color: #21483f; margin-bottom: 4px; }
.qv-rel-compact-target-subtitle { font-size: 13px; color: #5d6e69; }
.qv-rel-compact-sources { display: flex; flex-direction: column; gap: 8px; }
.qv-rel-source-item { padding: 10px 12px; border-radius: 12px; background: #f7fbfa; border: 1px solid rgba(15, 119, 106, 0.10); }
.qv-rel-source-item-main { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; line-height: 1.35; }
.qv-rel-source-device { font-weight: 700; color: #1d4f45; }
.qv-rel-source-kind { color: #5d6e69; font-weight: 600; }
.qv-rel-source-sep { color: #96a8a2; }
.qv-rel-invert-badge { background: rgba(255, 89, 120, 0.10); color: #d64d6d; border: 1px solid rgba(255, 89, 120, 0.18); border-radius: 999px; padding: 4px 8px; font-size: 12px; font-weight: 700; }
.qv-rel-ui-list,
.qv-rel-graph-list { display: flex; flex-direction: column; gap: 12px; }
.qv-rel-ui-card,
.qv-rel-graph-card { background: #ffffff; border: 1px solid rgba(19, 122, 109, 0.12); border-radius: 18px; padding: 14px; box-shadow: 0 8px 22px rgba(15, 118, 110, 0.06); }
.qv-rel-ui-card-head,
.qv-rel-graph-card-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 12px; }
.qv-rel-ui-device-title,
.qv-rel-graph-card-title { font-size: 1rem; font-weight: 800; color: #0f7a6d; line-height: 1.2; }
.qv-rel-ui-device-subtitle,
.qv-rel-graph-card-subtitle { margin-top: 2px; font-size: .84rem; color: #6b7b87; }
.qv-rel-ui-card-body { display: flex; flex-direction: column; gap: 10px; }
.qv-rel-ui-block { border: 1px dashed rgba(19, 122, 109, 0.16); border-radius: 16px; padding: 12px; background: rgba(248, 251, 251, 0.7); }
.qv-rel-ui-block-top { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.qv-rel-ui-pill { display: inline-flex; align-items: center; gap: 6px; border-radius: 999px; padding: 6px 10px; font-size: .78rem; font-weight: 700; line-height: 1; }
.qv-rel-ui-pill--primary { background: linear-gradient(135deg, #7c4dff 0%, #b155ff 100%); color: #fff; box-shadow: 0 8px 20px rgba(124, 77, 255, 0.20); }
.qv-rel-ui-pill--soft { background: rgba(15, 122, 109, 0.08); color: #0f7a6d; border: 1px solid rgba(15, 122, 109, 0.12); }
.qv-rel-ui-pill--logic { background: rgba(91, 108, 255, 0.08); color: #6158d8; border: 1px solid rgba(91, 108, 255, 0.14); }
.qv-rel-ui-pill--success { background: rgba(18, 185, 129, 0.10); color: #0d9f70; border: 1px solid rgba(18, 185, 129, 0.16); }
.qv-rel-ui-pill--muted { background: rgba(148, 163, 184, 0.10); color: #64748b; border: 1px solid rgba(148, 163, 184, 0.16); }
.qv-rel-ui-flow { display: grid; grid-template-columns: minmax(0, 1.45fr) 74px minmax(0, 0.95fr); gap: 12px; align-items: center; }
.qv-rel-ui-sources { display: flex; flex-direction: column; gap: 8px; }
.qv-rel-ui-source { padding: 10px 12px; border-radius: 14px; background: #f8fbfb; border: 1px solid rgba(19, 122, 109, 0.10); }
.qv-rel-ui-source-title-row { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.qv-rel-ui-source-title { font-size: .95rem; font-weight: 800; color: #1b4f46; line-height: 1.2; }
.qv-rel-ui-source-secondary { margin-top: 2px; font-size: .78rem; color: #83939c; }
.qv-rel-ui-source-meta { margin-top: 7px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.qv-rel-ui-mini-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: .73rem; font-weight: 700; line-height: 1; }
.qv-rel-ui-mini-badge--type { background: rgba(15, 122, 109, 0.08); color: #0f7a6d; border: 1px solid rgba(15, 122, 109, 0.12); }
.qv-rel-ui-mini-badge--danger { background: rgba(255, 89, 120, 0.10); color: #d64d6d; border: 1px solid rgba(255, 89, 120, 0.18); }
.qv-rel-ui-source-channel { font-size: .8rem; color: #64748b; font-weight: 600; }
.qv-rel-ui-center { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.qv-rel-ui-center-badge { min-width: 48px; text-align: center; border-radius: 999px; padding: 7px 10px; background: linear-gradient(135deg, #7c4dff 0%, #aa5cff 100%); color: #fff; font-size: .78rem; font-weight: 800; box-shadow: 0 8px 18px rgba(124, 77, 255, 0.18); }
.qv-rel-ui-center-arrow { font-size: 1.35rem; color: #7c4dff; }
.qv-rel-ui-target { padding: 12px; border-radius: 16px; background: rgba(124, 77, 255, 0.05); border: 1px solid rgba(124, 77, 255, 0.14); }
.qv-rel-ui-target-title { font-size: .95rem; font-weight: 800; color: #21483f; line-height: 1.2; }
.qv-rel-ui-target-subtitle { margin-top: 4px; font-size: .82rem; color: #6b7b87; font-weight: 700; }
.qv-rel-graph-stage { display: grid; grid-template-columns: minmax(0, 1.35fr) 92px minmax(0, 1fr); gap: 14px; align-items: center; }
.qv-rel-graph-col { display: flex; flex-direction: column; gap: 10px; }
.qv-rel-graph-node { position: relative; padding: 12px 14px; border-radius: 16px; border: 1px solid rgba(19, 122, 109, 0.12); background: #f8fbfb; min-height: 72px; }
.qv-rel-graph-node--source { border-left: 4px solid #0aa3a1; }
.qv-rel-graph-node--target { border-left: 4px solid #7c4dff; background: rgba(124, 77, 255, 0.05); }
.qv-rel-graph-node-title { font-size: .94rem; font-weight: 800; color: #1f2d2f; line-height: 1.2; }
.qv-rel-graph-node-subtitle { margin-top: 4px; font-size: .8rem; color: #6b7b87; font-weight: 600; }
.qv-rel-graph-node-flag { margin-top: 8px; display: inline-flex; align-items: center; border-radius: 999px; padding: 4px 8px; font-size: .72rem; font-weight: 700; background: rgba(100, 116, 139, 0.10); color: #64748b; width: fit-content; }
.qv-rel-graph-node-flag.is-enabled { background: rgba(18, 185, 129, 0.10); color: #0d9f70; }
.qv-rel-graph-node-flag.is-disabled { background: rgba(148, 163, 184, 0.10); color: #64748b; }
.qv-rel-graph-middle { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; }
.qv-rel-graph-middle-badge { min-width: 52px; text-align: center; border-radius: 999px; padding: 8px 10px; background: linear-gradient(135deg, #7c4dff 0%, #aa5cff 100%); color: #fff; font-size: .78rem; font-weight: 800; box-shadow: 0 8px 18px rgba(124, 77, 255, 0.18); }
.qv-rel-graph-middle-line { width: 2px; min-height: 80px; background: linear-gradient(180deg, rgba(124,77,255,.15) 0%, rgba(124,77,255,.55) 50%, rgba(124,77,255,.15) 100%); border-radius: 999px; }
.qv-rel-graph-middle-arrow { font-size: 1.3rem; color: #7c4dff; }
.qv-rel-empty--small { padding: 10px 12px; border-radius: 12px; font-size: .84rem; }
@media (max-width: 991.98px) {
  .qv-rel-ui-flow,
    .qv-rel-graph-stage { grid-template-columns: 1fr; }
  .qv-rel-ui-center,
    .qv-rel-graph-middle { flex-direction: row; justify-content: flex-start; }
  .qv-rel-graph-middle-line { width: 54px; min-height: 2px; height: 2px; }
}
.qv-rel-network-wrap { width: 100%; min-height: 420px; border: 1px solid rgba(122, 92, 255, 0.14); border-radius: 20px; background: linear-gradient(180deg, #fbfcff 0%, #f7fafc 100%); overflow: hidden; position: relative; }
#qv-rel-network-canvas { width: 100%; height: 420px; display: block; }
.qv-rel-network-empty { min-height: 220px; display: flex; align-items: center; justify-content: center; text-align: center; color: #6d7b88; font-weight: 600; padding: 24px; }
.qv-rel-network-shell { display: flex; flex-direction: column; gap: 12px; height: 100%; min-height: 420px; background: #ffffff; border: 1px solid rgba(139, 92, 246, 0.16); border-radius: 20px; padding: 14px; }
.qv-rel-network-shell:fullscreen { width: 100vw; height: 100vh; border-radius: 0; padding: 18px; background: #f7fbfa; }
.qv-rel-network-toolbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; flex-wrap: wrap; }
.qv-rel-network-toolbar-left { display: flex; flex-direction: column; gap: 4px; }
.qv-rel-network-title { font-size: 15px; font-weight: 700; color: #0f7a6d; }
.qv-rel-network-subtitle { font-size: 12px; color: #6d7b88; }
.qv-rel-network-toolbar-actions { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.qv-rel-network-btn { width: 38px; height: 38px; border-radius: 12px; border: 1px solid rgba(139, 92, 246, 0.18); background: #f6f1ff; color: #7c3aed; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: .2s ease; }
.qv-rel-network-btn:hover { background: #8b5cf6; color: #fff; border-color: #8b5cf6; }
.qv-rel-network-canvas-wrap { flex: 1; min-height: 420px; border: 1px solid rgba(139, 92, 246, 0.14); border-radius: 18px; overflow: hidden; background: linear-gradient(180deg, #fcfbff 0%, #f8fbfa 100%); }
.qv-rel-network-shell:fullscreen .qv-rel-network-canvas-wrap { min-height: calc(100vh - 110px); }
.qv-rel-network-canvas { width: 100%; height: 100%; min-height: 420px; }
.qv-rel-network-shell { width: 100%; max-width: 100%; min-width: 0; overflow: hidden; }
.qv-rel-network-canvas-wrap { position: relative; width: 100%; max-width: 100%; min-width: 0; overflow: hidden; }
.qv-rel-network-canvas { width: 100%; height: 520px; max-width: 100%; overflow: hidden; }
.qv-rel-network-shell.is-fullscreen { width: 100vw !important; height: 100vh !important; max-width: 100vw !important; max-height: 100vh !important; padding: 18px; box-sizing: border-box; background: #f6fbfa; overflow: hidden; }
.qv-rel-network-shell.is-fullscreen .qv-rel-network-canvas-wrap { height: calc(100vh - 150px) !important; max-height: calc(100vh - 150px) !important; }
.qv-rel-network-shell.is-fullscreen .qv-rel-network-canvas { height: 100% !important; max-height: none !important; }
.qv-rel-network-shell:not(.is-fullscreen) .qv-rel-network-canvas-wrap { height: auto !important; max-height: none !important; }
.qv-rel-network-shell:not(.is-fullscreen) .qv-rel-network-canvas { height: 520px !important; }
.dash-action-swal-body { min-width: 0; overflow: hidden; }
.dash-action-swal-side { flex: 1 1 0; min-width: 0; width: auto !important; max-width: 100%; overflow: hidden; }
.dash-action-swal-content { min-width: 0; width: 100%; max-width: 100%; overflow: hidden; }
.qv-relations-shell,
.qv-relations-results,
.qv-rel-network-shell,
.qv-rel-network-canvas-wrap,
.qv-rel-network-canvas { min-width: 0; max-width: 100%; }
.qv-relations-results { width: 100%; }
.qv-rel-network-shell { width: 100%; overflow: hidden; }
.qv-rel-network-canvas-wrap { width: 100%; overflow: hidden; }
.qv-rel-network-canvas { width: 100%; height: 520px; overflow: hidden; }
.qv-manual-safety-save-btn.is-disabled,
.qv-manual-safety-save-btn:disabled { opacity: 0.65 !important; pointer-events: none !important; }
.qv-inline-output-toggle-wrap { position: relative; display: inline-flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 999px; background: #ffffff; border: 1px solid rgba(148, 163, 184, 0.18); box-shadow: 0 6px 18px rgba(15, 23, 42, 0.08); }
.qv-inline-output-code { font-size: 13px; font-weight: 700; color: #0f766e; line-height: 1; }
.qv-inline-output-toggle { display: none; }
.qv-inline-output-slider { position: relative; width: 40px; height: 22px; border-radius: 999px; background: #cbd5e1; transition: .2s ease; cursor: pointer; }
.qv-inline-output-slider::after { content: ""; position: absolute; top: 3px; left: 3px; width: 16px; height: 16px; border-radius: 50%; background: #ffffff; transition: .2s ease; box-shadow: 0 2px 6px rgba(15,23,42,.18); }
.qv-inline-output-toggle:checked + .qv-inline-output-slider { background: linear-gradient(135deg,#059669,#10b981); }
.qv-inline-output-toggle:checked + .qv-inline-output-slider::after { transform: translateX(18px); }
.qv-rich-tooltip .tooltip-inner { max-width: 280px; padding: 10px 12px; border-radius: 14px; text-align: left; background: linear-gradient(180deg,#0f172a,#111827); color: #e2e8f0; box-shadow: 0 12px 28px rgba(15,23,42,.28); border: 1px solid rgba(148,163,184,.18); }
.device-quick-chip--ok { background: rgba(16,185,129,.12); color: #047857; border: 1px solid rgba(16,185,129,.28); }
.device-quick-chip--off { background: rgba(100,116,139,.12); color: #475569; border: 1px solid rgba(100,116,139,.22); }
.qv-glass-tooltip .tooltip-inner { background: rgba(255,255,255,.88); color: #29414a; border: 1px solid rgba(15,118,110,.18); border-radius: 14px; box-shadow: 0 16px 40px rgba(15,23,42,.16); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); text-align: left; padding: 10px 12px; max-width: 320px; }
.qv-glass-tooltip .tooltip-arrow::before { border-top-color: rgba(255,255,255,.88) !important; border-bottom-color: rgba(255,255,255,.88) !important; border-left-color: rgba(255,255,255,.88) !important; border-right-color: rgba(255,255,255,.88) !important; }
.qv-glass-tooltip-title { font-size: 12px; font-weight: 800; color: #0f766e; margin-bottom: 4px; }
.qv-glass-tooltip-line { font-size: 12px; line-height: 1.45; color: #334155; }
.qv-relations-pulse-btn { position: relative; animation: qvRelationsFloatPulse 1.8s ease-in-out infinite; box-shadow: 0 10px 24px rgba(124, 58, 237, 0.28); }
.qv-relations-pulse-btn::after { content: ""; position: absolute; inset: -6px; border-radius: 16px; border: 2px solid rgba(124, 58, 237, 0.28); animation: qvRelationsRing 1.8s ease-out infinite; pointer-events: none; }
@keyframes qvRelationsFloatPulse {
  0% { transform: scale(1); box-shadow: 0 10px 24px rgba(124, 58, 237, 0.20); }
  50% { transform: scale(1.045); box-shadow: 0 14px 30px rgba(124, 58, 237, 0.34); }
  100% { transform: scale(1); box-shadow: 0 10px 24px rgba(124, 58, 237, 0.20); }
}
@keyframes qvRelationsRing {
  0% { opacity: 0.75; transform: scale(0.96); }
  70% { opacity: 0; transform: scale(1.10); }
  100% { opacity: 0; transform: scale(1.14); }
}
.qv-relations-fullscreen-hint { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 14px; background: rgba(14, 165, 233, 0.10); border: 1px solid rgba(14, 165, 233, 0.20); color: #0f766e; font-size: 0.9rem; font-weight: 600; margin-bottom: 12px; }
.autoprov-layout-grid { display:grid; grid-template-columns: 380px minmax(0, 1fr); gap:24px; align-items:start; margin-top:24px; }
.autoprov-status-list { display:flex; flex-direction:column; gap:16px; }
.autoprov-status-card { display:flex; align-items:flex-start; gap:14px; background:#fff; border:1px solid rgba(15,23,42,0.08); border-radius:18px; padding:18px; box-shadow:0 10px 30px rgba(15,23,42,0.06); }
.autoprov-status-icon { width:52px; height:52px; min-width:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; background:rgba(20,184,166,0.12); color:#0f766e; font-size:1.25rem; border:1px solid rgba(20,184,166,0.28); }
.autoprov-status-content { min-width:0; flex:1; }
.autoprov-status-title { font-size:1rem; font-weight:700; color:#0f766e; margin-bottom:4px; }
.autoprov-status-value { font-size:1.12rem; font-weight:800; color:#1f2937; line-height:1.35; margin-bottom:6px; }
.autoprov-status-value--small { font-size:.95rem; font-weight:700; word-break:break-word; }
.autoprov-status-note { font-size:.92rem; line-height:1.55; color:#5b6876; }
.autoprov-control-card { background:linear-gradient(180deg,#0f766e 0%, #0b5d56 100%); border-radius:24px; padding:24px; color:#fff; box-shadow:0 20px 50px rgba(15,118,110,0.24); }
.autoprov-control-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:20px; }
.autoprov-control-title { margin:0 0 6px 0; font-size:2rem; font-weight:800; color:#fff; }
.autoprov-control-subtitle { margin:0; color:rgba(255,255,255,0.82); line-height:1.6; }
.autoprov-help-mini { width:48px; height:48px; border:none; border-radius:16px; display:flex; align-items:center; justify-content:center; background:rgba(255,255,255,0.12); color:#fff; font-size:1.2rem; }
.autoprov-form-grid { display:flex; flex-direction:column; gap:18px; }
.autoprov-setting-row { display:flex; align-items:center; justify-content:space-between; gap:18px; padding:16px 18px; border-radius:18px; background:rgba(255,255,255,0.08); border:1px solid rgba(255,255,255,0.10); }
.autoprov-setting-row--stack { display:block; }
.autoprov-setting-info { min-width:0; }
.autoprov-setting-label { display:block; margin:0 0 6px 0; font-size:1rem; font-weight:800; color:#fff; }
.autoprov-setting-help { font-size:.92rem; line-height:1.55; color:rgba(255,255,255,0.78); }
.autoprov-input,
.autoprov-select,
.autoprov-textarea { margin-top:12px; border-radius:14px; min-height:52px; border:1px solid rgba(255,255,255,0.18); background:#fff; color:#1f2937; }
.autoprov-textarea { min-height:120px; resize:vertical; }
.autoprov-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:4px; }
.autoprov-switch { position:relative; display:inline-block; width:66px; height:36px; min-width:66px; }
.autoprov-switch input { opacity:0; width:0; height:0; }
.autoprov-switch-slider { position:absolute; inset:0; cursor:pointer; background:rgba(255,255,255,0.28); border-radius:999px; transition:all .2s ease; }
.autoprov-switch-slider:before { content:""; position:absolute; width:28px; height:28px; left:4px; top:4px; border-radius:50%; background:#fff; transition:all .2s ease; box-shadow:0 4px 12px rgba(0,0,0,0.16); }
.autoprov-switch input:checked + .autoprov-switch-slider { background:#14b8a6; }
.autoprov-switch input:checked + .autoprov-switch-slider:before { transform:translateX(30px); }
@media (max-width: 1199px) {
  .autoprov-layout-grid { grid-template-columns:1fr; }
}
@media (max-width: 767px) {
  .autoprov-control-card { padding:18px; border-radius:20px; }
  .autoprov-control-title { font-size:1.5rem; }
  .autoprov-setting-row { display:block; }
  .autoprov-switch { margin-top:14px; }
}
.autoprov-danger-btn { display: inline-flex; align-items: center; gap: 10px; min-height: 52px; padding: 0 18px; border-radius: 14px; border: 1px solid rgba(255, 255, 255, 0.14); background: rgba(255, 255, 255, 0.08); color: #ffffff; font-weight: 700; box-shadow: none; transition: 0.2s ease; }
.autoprov-danger-btn:disabled { opacity: 0.45; cursor: not-allowed; background: rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.78); }
.autoprov-danger-btn.is-enabled:not(:disabled) { background: linear-gradient(135deg, #7f1d1d 0%, #b91c1c 100%); border-color: rgba(255, 255, 255, 0.12); color: #fff; box-shadow: 0 12px 28px rgba(185, 28, 28, 0.28); }
.autoprov-danger-btn.is-enabled:not(:disabled):hover { transform: translateY(-1px); box-shadow: 0 16px 34px rgba(185, 28, 28, 0.34); }
.autoprov-danger-btn.is-armed:not(:disabled) { background: linear-gradient(135deg, #991b1b 0%, #ef4444 100%); box-shadow: 0 16px 36px rgba(239, 68, 68, 0.34); }
.autoprov-danger-btn i { font-size: 1.05rem; }
.autoprov-setting-row--stack .autoprov-danger-btn { width: 100%; justify-content: center; }
.autoprov-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-top: 10px; }
.autoprov-refresh-btn { min-width: 150px; height: 48px; border-radius: 14px; border: 1px solid rgba(255,255,255,0.14); background: rgba(255,255,255,0.10); color: #ffffff; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: 0.2s ease; }
.autoprov-refresh-btn:focus,
.autoprov-refresh-btn:active { background: rgba(255,255,255,0.18) !important; color: #ffffff !important; box-shadow: none; }
@media (max-width: 768px) {
  .autoprov-actions { flex-direction: column; align-items: stretch; }
  .autoprov-actions .btn,
    .autoprov-refresh-btn { width: 100%; }
}
.autoprov-actions { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; margin-top: 18px; }
.autoprov-save-btn { min-width: 190px; height: 54px; padding: 0 22px; border: 0; border-radius: 16px; background: linear-gradient(135deg, #f59e0b 0%, #ea580c 100%); color: #ffffff; font-size: 16px; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; gap: 10px; box-shadow: 0 14px 30px rgba(234, 88, 12, 0.28); transition: transform 0.18s ease, box-shadow 0.18s ease, opacity 0.18s ease; }
.autoprov-save-btn:hover { color: #ffffff; background: var(--secondary-color); transform: translateY(-1px); box-shadow: 0 18px 34px rgba(234, 88, 12, 0.34); }
.autoprov-save-btn:focus,
.autoprov-save-btn:active { color: #ffffff !important; box-shadow: 0 0 0 0.2rem rgba(245, 158, 11, 0.22) !important; outline: none; }
.autoprov-save-btn:disabled { opacity: 0.65; cursor: not-allowed; transform: none; box-shadow: none; }
.autoprov-refresh-btn { min-width: 160px; height: 54px; padding: 0 20px; border-radius: 16px; border: 1px solid rgba(255,255,255,0.16); background: rgba(255,255,255,0.10); color: #ffffff; font-size: 15px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; gap: 8px; transition: 0.2s ease; }
.autoprov-refresh-btn:hover { background: rgba(255,255,255,0.16); color: #ffffff; }
.autoprov-refresh-btn:focus,
.autoprov-refresh-btn:active { background: rgba(255,255,255,0.18) !important; color: #ffffff !important; box-shadow: none !important; outline: none; }
@media (max-width: 768px) {
  .autoprov-actions { flex-direction: column; align-items: stretch; }
  .autoprov-save-btn,
    .autoprov-refresh-btn { width: 100%; min-width: 100%; }
}
/* Submenu μέσα στο "Συσκευές" πιο μικρό, πιο μέσα, πιο σκούρο */
.sidebar-menu .nav-treeview { margin-top: 0.35rem; padding-left: 1rem; }
.sidebar-menu .nav-treeview .nav-item { margin-bottom: 0.35rem; }
.sidebar-menu .nav-treeview .nav-link { min-height: 44px; padding: 0.7rem 0.9rem; border-radius: 12px; background: rgba(76, 91, 101, 0.92); border: 1px solid rgba(255,255,255,0.08); margin-left: 0.35rem; margin-right: 0.35rem; font-size: 0.95rem; }
.sidebar-menu .nav-treeview .nav-link p { font-size: 0.95rem; margin: 0; }
.sidebar-menu .nav-treeview .nav-link i { font-size: 1rem; margin-right: 0.55rem; opacity: 0.92; }
.sidebar-menu .nav-treeview .nav-link:hover { background: rgba(63, 77, 86, 0.98); transform: translateX(2px); }
.sidebar-menu .nav-treeview .nav-link.active,
.sidebar-menu .nav-treeview .nav-link.router-link-active,
.sidebar-menu .nav-treeview .nav-link[aria-current="page"] { background: linear-gradient(135deg, #18b7ad 0%, #13a99f 100%); color: #ffffff; box-shadow: 0 8px 20px rgba(19, 169, 159, 0.22); }
.sidebar-menu .nav-treeview .nav-link.active i,
.sidebar-menu .nav-treeview .nav-link.active p { color: #ffffff; }
/* λίγο πιο "συμπιεσμένο" submenu */
.sidebar-menu .nav-item.menu-open > .nav-treeview { padding-top: 0.15rem; padding-bottom: 0.15rem; }
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview { padding-left: 10px !important; padding-right: 10px !important; margin-top: 4px !important; }
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview > .nav-item { margin: 0 !important; padding: 0 !important; }
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview > .nav-item > .nav-link,
.app-sidebar.side-bar-dark .sidebar-menu .nav-item.menu-open .nav-treeview > .nav-item > .nav-link { display: flex !important; align-items: center !important; width: 100% !important; margin: 4px 0 0 0 !important; min-height: 36px !important; height: 36px !important; padding: 5px 10px 5px 12px !important; border-radius: 10px !important; box-sizing: border-box !important; }
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview > .nav-item > .nav-link i { width: 16px !important; min-width: 16px !important; margin-right: 8px !important; font-size: .88rem !important; text-align: center !important; }
.app-sidebar.side-bar-dark .sidebar-menu .nav-treeview > .nav-item > .nav-link p { margin: 0 !important; line-height: 1 !important; font-size: .88rem !important; }
.grp-card-btn--pulse { min-width: 48px; height: 48px; border: 0 !important; border-radius: 14px !important; background: linear-gradient(135deg, #7c3aed 0%, #a855f7 100%) !important; color: #ffffff !important; box-shadow:
        0 10px 24px rgba(124, 58, 237, 0.28),
        0 0 0 1px rgba(255, 255, 255, 0.14) inset !important; position: relative; overflow: visible; transition: transform .18s ease, box-shadow .18s ease, filter .18s ease; animation: grpPulseAction 1.8s ease-in-out infinite; }
.grp-card-btn--pulse:hover,
.grp-card-btn--pulse:focus { transform: translateY(-2px) scale(1.03); color: #ffffff !important; filter: brightness(1.04); box-shadow:
        0 14px 28px rgba(124, 58, 237, 0.34),
        0 0 0 1px rgba(255, 255, 255, 0.18) inset !important; }
.grp-card-btn--pulse i { font-size: 1.08rem; color: #ffffff !important; }
.grp-card-btn--pulse::after { content: ""; position: absolute; inset: -6px; border-radius: 18px; border: 2px solid rgba(168, 85, 247, 0.32); opacity: 0; transform: scale(0.92); animation: grpPulseRing 1.8s ease-out infinite; pointer-events: none; }
@keyframes grpPulseAction {
  0%,
    100% { transform: scale(1); box-shadow:
            0 10px 24px rgba(124, 58, 237, 0.28),
            0 0 0 1px rgba(255, 255, 255, 0.14) inset; }
  50% { transform: scale(1.045); box-shadow:
            0 16px 34px rgba(124, 58, 237, 0.36),
            0 0 0 1px rgba(255, 255, 255, 0.18) inset; }
}
@keyframes grpPulseRing {
  0% { opacity: .55; transform: scale(.9); }
  70% { opacity: 0; transform: scale(1.18); }
  100% { opacity: 0; transform: scale(1.18); }
}
.qv-group-manual-top-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.qv-group-manual-outputs-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin-top:8px; }
.qv-group-manual-output-card { display:flex !important; flex-direction:column !important; align-items:stretch !important; padding:18px !important; border-radius:24px !important; min-height:auto !important; height:auto !important; background:#fff !important; border:1px solid rgba(10,163,161,.14) !important; box-shadow:0 14px 28px rgba(7,77,74,.08) !important; overflow:hidden !important; }
.qv-group-manual-output-head { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:0; }
.qv-group-manual-output-head-left { display:flex; align-items:center; gap:12px; min-width:0; flex:1 1 auto; }
.qv-group-manual-output-title-wrap { min-width:0; display:flex; align-items:center; }
.qv-group-manual-output-title { margin:0 !important; font-size:1.2rem !important; font-weight:800 !important; color:#0a6e5c !important; line-height:1.15 !important; }
.qv-group-manual-output-badge { display:inline-flex; align-items:center; justify-content:center; padding:.42rem .8rem; border-radius:999px; background:#dff4f1; color:#0a6e5c; font-weight:800; font-size:.92rem; white-space:nowrap; max-width:100%; }
.qv-group-manual-output-meta { margin:0; color:#5f7680; font-size:14px; line-height:1.45; }
.qv-group-manual-switch-wrap { margin:2px 0 0; }
.qv-group-manual-switch { position:relative; display:flex; align-items:center; width:100%; height:56px; border:none; border-radius:999px; padding:4px; background:#e4ecec; box-shadow:inset 0 0 0 1px rgba(16,138,127,.18); cursor:pointer; transition:all .18s ease; overflow:hidden; }
.qv-group-manual-switch:hover { box-shadow:inset 0 0 0 1px rgba(16,138,127,.26); }
.qv-group-manual-switch:focus { outline:none; box-shadow:inset 0 0 0 1px rgba(16,138,127,.24),0 0 0 3px rgba(16,138,127,.12); }
.qv-group-manual-switch-knob { position:absolute; top:4px; left:4px; width:calc(50% - 4px); height:48px; border-radius:999px; background:#118a7f; box-shadow:0 8px 20px rgba(17,138,127,.22); transition:left .18s ease,background .18s ease,box-shadow .18s ease; z-index:1; }
.qv-group-manual-switch.is-on .qv-group-manual-switch-knob { left:4px; background:#118a7f; box-shadow:0 8px 20px rgba(17,138,127,.22); }
.qv-group-manual-switch.is-off .qv-group-manual-switch-knob { left:calc(50% + 0px); background:#7f8c96; box-shadow:0 8px 20px rgba(127,140,150,.18); }
.qv-group-manual-switch-label { position:relative; z-index:2; width:50%; height:100%; display:flex; align-items:center; justify-content:center; text-align:center; font-weight:800; font-size:1rem; line-height:1; padding:0 10px; user-select:none; transition:color .18s ease,opacity .18s ease; pointer-events:none; }
.qv-group-manual-switch-label-on,.qv-group-manual-switch-label-off { color:#70818a; }
.qv-group-manual-switch.is-on .qv-group-manual-switch-label-on { color:#fff; }
.qv-group-manual-switch.is-on .qv-group-manual-switch-label-off { color:#70818a; }
.qv-group-manual-switch.is-off .qv-group-manual-switch-label-on { color:#70818a; }
.qv-group-manual-switch.is-off .qv-group-manual-switch-label-off { color:#fff; }
.qv-group-manual-exec-btn { width:100%; min-height:72px; border:none; border-radius:20px; background:linear-gradient(135deg,#0a8b78 0%,#0a6e5c 100%); color:#fff; display:flex; align-items:center; justify-content:center; gap:.7rem; padding:1rem 1.15rem; font-size:1.05rem; font-weight:800; line-height:1.25; box-shadow:0 10px 22px rgba(10,110,92,.18); transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease; }
.qv-group-manual-exec-btn:hover { transform:translateY(-1px); box-shadow:0 14px 26px rgba(10,110,92,.24); }
.qv-group-manual-exec-btn:disabled { opacity:.55; cursor:not-allowed; transform:none; box-shadow:none; }
.qv-group-manual-exec-btn i { font-size:1.2rem; line-height:1; flex:0 0 auto; }
.qv-group-manual-exec-btn span { display:block; white-space:normal; text-align:center; }
.qv-group-manual-preview-table td,.qv-group-manual-preview-table th { vertical-align:middle !important; }
@media (max-width:1100px) {
  .qv-group-manual-top-grid { grid-template-columns:1fr; }
}
@media (max-width:991.98px) {
  .qv-group-manual-outputs-grid { grid-template-columns:1fr; }
}
@media (max-width:768px) {
  .grp-manual-wide-alert { padding:16px; }
  .grp-manual-wide-alert-title { font-size:17px; }
  .qv-group-manual-output-card { padding:16px !important; }
  .qv-group-manual-output-head { align-items:flex-start; }
  .qv-group-manual-output-badge { width:100%; justify-content:center; }
  .qv-group-manual-switch { height:54px; }
  .qv-group-manual-switch-knob { height:46px; }
  .qv-group-manual-exec-btn { min-height:64px; font-size:1rem; }
}
.qv-group-manual-output-meta { display:flex; flex-direction:column; gap:8px; margin:4px 0 14px; }
.qv-group-manual-output-meta-line { font-size:14px; line-height:1.6; color:#5b7178; }
.qv-group-manual-table-card { margin-top:18px; padding:16px; border-radius:24px; background:#fff; border:1px solid rgba(10,163,161,.14); box-shadow:0 14px 34px rgba(7,77,74,.08); overflow:hidden; }
.qv-group-manual-table-head { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:12px; }
.qv-group-manual-table-title { font-size:17px; font-weight:900; color:#0a6e5c; line-height:1.2; }
.qv-group-manual-table-subtitle { font-size:13px; font-weight:600; color:#6b7d84; margin-top:3px; }
.qv-group-manual-table-scroll { width:100%; overflow-x:auto; padding-bottom:8px; scrollbar-color:#0aa3a1 #e7f3f2; scrollbar-width:thin; }
.qv-group-manual-preview-table { width:100%; min-width:820px; border-collapse:separate!important; border-spacing:0 8px!important; margin:0!important; background:transparent!important; }
.qv-group-manual-preview-table thead th { padding:12px 14px; background:#0a6e5c; color:#fff; font-size:13px; font-weight:900; white-space:nowrap; border:none!important; }
.qv-group-manual-preview-table tbody tr { background:#f8fbfb; box-shadow:0 6px 16px rgba(7,77,74,.05); }
.qv-group-manual-preview-table tbody td { padding:12px 14px; background:#f8fbfb; border-top:1px solid rgba(10,163,161,.10)!important; border-bottom:1px solid rgba(10,163,161,.10)!important; border-left:none!important; border-right:none!important; font-size:14px; color:#25383d; vertical-align:middle!important; white-space:nowrap; }
.qv-group-manual-preview-table .badge { border-radius:999px!important; padding:7px 10px!important; font-size:12px!important; font-weight:900!important; letter-spacing:.01em; box-shadow:none!important; }
.qv-group-manual-preview-table .bg-success { background:#13895f!important; color:#fff!important; }
.qv-group-manual-preview-table .bg-danger { background:#e84d5b!important; color:#fff!important; }
.qv-group-manual-preview-table .bg-warning { background:#f4bd22!important; color:#fff!important; }
.qv-group-manual-preview-table .bg-dark { background:#24433f!important; color:#fff!important; }
.qv-group-manual-preview-table .bg-secondary { background:#7d8c93!important; color:#fff!important; }
.qv-group-manual-table-empty { text-align:center!important; color:#6b7d84!important; font-weight:700!important; padding:22px!important; }
.qv-group-manual-device-name { display:inline-flex; align-items:center; max-width:170px; white-space:normal; line-height:1.15; font-weight:900; color:#1f2d2f; }
.qv-group-manual-device-cell { display:flex; flex-direction:column; gap:4px; }
.qv-group-manual-device-meta { font-size:12px; color:#7b8791; }
#qv-group-manual-preview-table_wrapper { width:100%; }
.qv-group-manual-table-card .dt-container { width:100%; }
.qv-group-manual-table-card .dt-layout-row { align-items:center; margin:0 0 12px 0; row-gap:10px; }
.qv-group-manual-table-card .dt-layout-row:last-child { margin:12px 0 0 0; }
.qv-group-manual-table-card .dt-search input,
.qv-group-manual-table-card .dataTables_filter input { border:1px solid rgba(10,110,92,.14); border-radius:14px; min-height:42px; padding:0 12px; outline:none; }
.qv-group-manual-table-card .dt-length select,
.qv-group-manual-table-card .dataTables_length select { border:1px solid rgba(10,110,92,.14); border-radius:12px; min-height:38px; padding:0 28px 0 10px; }
.qv-group-manual-table-card .dt-info,
.qv-group-manual-table-card .dataTables_info { padding-top:12px!important; color:#6b7280; }
.qv-group-manual-table-card .dt-paging,
.qv-group-manual-table-card .dataTables_paginate { padding-top:12px!important; }
.qv-group-manual-table-card .paginate_button .page-link,
.qv-group-manual-table-card .dt-paging-button { border-radius:12px!important; }
.qv-group-manual-inline-message { display:none; align-items:center; gap:8px; margin:0 0 12px; padding:10px 12px; border-radius:12px; font-size:13px; font-weight:700; line-height:1.45; }
.qv-group-manual-inline-message i { font-size:16px; line-height:1; }
.qv-group-manual-inline-message.is-error { display:flex; background:rgba(220,53,69,.10); border:1px solid rgba(220,53,69,.18); color:#b42318; }
.qv-group-manual-inline-message.is-success { display:flex; background:rgba(10,110,92,.10); border:1px solid rgba(10,110,92,.18); color:#0a6e5c; }
.qv-group-manual-info-card { display:flex; align-items:flex-start; gap:16px; padding:18px 20px; border:1px solid rgba(10,110,92,0.10); border-radius:22px; background:#fff; }
.qv-group-manual-info-icon { width:52px; min-width:52px; height:52px; border-radius:16px; display:flex; align-items:center; justify-content:center; border:1.5px solid rgba(10,163,161,0.45); background:rgba(10,163,161,0.08); color:#0a6e5c; font-size:22px; }
.qv-group-manual-info-content { flex:1; min-width:0; }
.qv-group-manual-info-title { font-size:1.35rem; font-weight:800; line-height:1.2; color:#0a6e5c; margin-bottom:10px; }
.qv-group-manual-info-text { font-size:1rem; line-height:1.75; color:#52606d; }
.qv-group-manual-info-text + .qv-group-manual-info-text { margin-top:10px; }
.qv-ui-switch { position:relative; display:inline-flex; width:54px; min-width:54px; height:30px; margin:0; }
.qv-ui-switch input { position:absolute; opacity:0; pointer-events:none; }
.qv-ui-switch-slider { position:absolute; inset:0; cursor:pointer; background:#cbd5e1; border-radius:999px; transition:all .2s ease; box-shadow:inset 0 0 0 1px rgba(15,23,42,0.06); }
.qv-ui-switch-slider::before { content:""; position:absolute; width:24px; height:24px; left:3px; top:3px; border-radius:50%; background:#fff; transition:all .2s ease; box-shadow:0 2px 8px rgba(15,23,42,0.18); }
.qv-ui-switch input:checked + .qv-ui-switch-slider { background:#0a7f6f; }
.qv-ui-switch input:checked + .qv-ui-switch-slider::before { transform:translateX(24px); }
.qv-ui-switch input:focus + .qv-ui-switch-slider { box-shadow:0 0 0 3px rgba(10,127,111,0.16); }
.qv-group-manual-preaction-toggle-row { display:flex; align-items:center; gap:14px; padding:16px 18px; border:1px solid rgba(10,110,92,.14); border-radius:18px; background:#f6fbfa; margin-bottom:14px; }
.qv-group-manual-preaction-toggle-text { font-size:15px; line-height:1.45; font-weight:700; color:#334155; }
.swal2-popup.qv-group-manual-main-modal{
  width:96vw!important;
  max-width:96vw!important;
  padding:0!important;
}

.swal2-popup.qv-group-manual-main-modal .swal2-html-container{
  margin:0!important;
  padding:0!important;
  display:block!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal{
  min-height:100%!important;
  display:flex!important;
  flex-direction:column!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-header{
  position:sticky!important;
  top:0!important;
  z-index:8!important;
  background:#eef5f4!important;
  padding:18px 20px 14px!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-body{
  display:grid!important;
  grid-template-columns:280px minmax(0,1fr)!important;
  gap:16px!important;
  align-items:stretch!important;
  padding:0 20px 20px!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-hero{
  position:sticky!important;
  top:16px!important;
  align-self:stretch!important;
  display:flex!important;
  align-items:stretch!important;
  justify-content:center!important;
  border-radius:28px!important;
  background:#f4f8f7!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-hero img{
  width:100%!important;
  height:100%!important;
  display:block!important;
  object-fit:cover!important;
  object-position:center center!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-side{
  min-width:0!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-content{
  overflow:visible!important;
  padding-right:0!important;
}

.swal2-popup.qv-group-manual-main-modal .dash-action-swal-action-row{
  position:sticky!important;
  bottom:0!important;
  z-index:9!important;
  background:#eef5f4!important;
  padding-top:14px!important;
  margin-top:14px!important;
}

.swal2-popup.qv-group-manual-main-modal .qv-group-manual-outputs-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  align-items:start!important;
}

.swal2-popup.qv-group-manual-main-modal .qv-group-manual-output-card{
  min-width:0!important;
}

.swal2-popup.qv-group-manual-main-modal .qv-group-manual-preview-table{
  min-width:1100px!important;
}

@media (max-width:1600px){
  .swal2-popup.qv-group-manual-main-modal .qv-group-manual-outputs-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:1200px){
  .swal2-popup.qv-group-manual-main-modal{
    width:98vw!important;
    max-width:98vw!important;
    height:96vh!important;
    max-height:96vh!important;
  }

  .swal2-popup.qv-group-manual-main-modal .swal2-html-container{
    height:calc(96vh - 78px)!important;
    max-height:calc(96vh - 78px)!important;
  }

  .swal2-popup.qv-group-manual-main-modal .dash-action-swal-body{
    grid-template-columns:1fr!important;
  }

  .swal2-popup.qv-group-manual-main-modal .dash-action-swal-hero{
    display:none!important;
  }
}

@media (max-width:768px){
  .swal2-popup.qv-group-manual-main-modal .qv-group-manual-outputs-grid{
    grid-template-columns:1fr!important;
  }
}

.qv-group-manual-command-btn:disabled,
.qv-group-manual-command-btn.is-disabled {
  opacity: .45 !important;
  cursor: not-allowed !important;
  pointer-events: none !important;
  transform: none !important;
  box-shadow: none !important;
  animation: none !important;
}

.qv-group-manual-header-grid { display:grid !important; grid-template-columns:repeat(2,minmax(0,1fr)) !important; gap:14px !important; align-items:stretch !important; }

.qv-group-manual-email-pref-card .dash-action-mini-content { width:100% !important; }

.qv-group-manual-email-toggle-row { display:flex !important; align-items:center !important; gap:12px !important; margin:8px 0 0 0 !important; cursor:pointer !important; }
.qv-group-manual-email-toggle-row.is-disabled { cursor:not-allowed !important; opacity:.72 !important; }

.qv-group-manual-email-toggle-copy { display:block !important; font-size:15px !important; line-height:1.45 !important; color:#5f6f7b !important; }

.qv-group-manual-email-note { margin:6px 0 0 52px !important; font-size:13px !important; color:#8b97a3 !important; word-break:break-word !important; }

.qv-group-manual-toggle-switch { position:relative !important; display:inline-flex !important; width:46px !important; min-width:46px !important; height:26px !important; }

.qv-group-manual-toggle-switch input { opacity:0 !important; width:0 !important; height:0 !important; position:absolute !important; }

.qv-group-manual-toggle-slider { position:absolute !important; inset:0 !important; border-radius:999px !important; background:#c7d2da !important; transition:all .2s ease !important; }

.qv-group-manual-toggle-slider::before { content:'' !important; position:absolute !important; width:20px !important; height:20px !important; left:3px !important; top:3px !important; border-radius:50% !important; background:#fff !important; box-shadow:0 2px 10px rgba(0,0,0,.12) !important; transition:all .2s ease !important; }

.qv-group-manual-toggle-switch input:checked + .qv-group-manual-toggle-slider { background:#118a75 !important; }

.qv-group-manual-toggle-switch input:checked + .qv-group-manual-toggle-slider::before { transform:translateX(20px) !important; }

@media (max-width: 991.98px) {
  .qv-group-manual-header-grid { grid-template-columns:1fr !important; }
}

.qv-group-manual-summary-card { display:flex; align-items:flex-start; gap:18px; padding:22px 24px; background:#ffffff; border:1px solid rgba(16,163,161,0.12); border-radius:24px; margin-bottom:18px; }
.qv-group-manual-summary-icon { width:52px; min-width:52px; height:52px; border-radius:18px; display:flex; align-items:center; justify-content:center; border:1px solid rgba(16,163,161,0.5); color:#0f766e; background:rgba(16,163,161,0.08); font-size:22px; }
.qv-group-manual-summary-content { min-width:0; flex:1 1 auto; }
.qv-group-manual-summary-title { font-size:18px; font-weight:800; line-height:1.2; color:#0f766e; margin-bottom:12px; }
.qv-group-manual-summary-text { font-size:15px; line-height:1.7; color:#5b6b76; margin:0 0 10px 0; }
.qv-group-manual-summary-text:last-child { margin-bottom:0; }
.qv-group-manual-progress-card { margin:0 0 18px; padding:18px; border-radius:22px; background:#fff; border:1px solid rgba(15,118,110,.14); box-shadow:0 12px 26px rgba(7,77,74,.07); }
.qv-group-manual-progress-slot { margin:4px 0 12px; }
.qv-group-manual-progress-slot:empty { display:none; }
.qv-group-manual-progress-card--inline { margin:0; padding:14px; border-radius:18px; box-shadow:none; background:#f8fdfc; }
.qv-group-manual-output-card.is-running { border-color:rgba(15,118,110,.28) !important; box-shadow:0 16px 30px rgba(7,77,74,.11) !important; }
.qv-group-manual-output-card .qv-group-manual-progress-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.qv-group-manual-output-card .qv-group-manual-progress-title { font-size:15px; }
.qv-group-manual-output-card .qv-group-manual-progress-percent { font-size:20px; min-width:54px; }
.qv-group-manual-switch:disabled,
.qv-group-manual-switch.is-disabled { opacity:.55; cursor:not-allowed; }
.qv-group-manual-progress-head { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; margin-bottom:12px; }
.qv-group-manual-progress-title { font-size:17px; font-weight:900; color:#0f766e; line-height:1.2; }
.qv-group-manual-progress-subtitle { margin-top:4px; font-size:13px; font-weight:700; color:#6b7d84; }
.qv-group-manual-progress-percent { min-width:64px; text-align:right; font-size:24px; line-height:1; font-weight:900; color:#0a6e5c; }
.qv-group-manual-progress-bar { height:12px; border-radius:999px; overflow:hidden; background:#dcebea; box-shadow:inset 0 0 0 1px rgba(15,118,110,.08); }
.qv-group-manual-progress-bar span { display:block; height:100%; width:0; border-radius:999px; background:linear-gradient(90deg,#0f766e,#16a394); transition:width .25s ease; }
.qv-group-manual-progress-grid { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); gap:10px; margin-top:14px; }
.qv-group-manual-progress-grid div { padding:10px 12px; border-radius:14px; background:#f5fbfa; border:1px solid rgba(15,118,110,.10); min-width:0; }
.qv-group-manual-progress-grid span { display:block; font-size:12px; font-weight:800; color:#71848a; margin-bottom:4px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.qv-group-manual-progress-grid strong { display:block; font-size:18px; line-height:1; color:#21383d; }
.qv-group-manual-progress-final { display:flex; align-items:center; gap:8px; margin-top:12px; padding:10px 12px; border-radius:14px; background:rgba(19,137,95,.10); color:#0f766e; font-size:13px; font-weight:800; }
.qv-group-manual-progress-final i { font-size:16px; line-height:1; }

@media (max-width: 991.98px) {
  .qv-group-manual-summary-card { padding:18px; }
  .qv-group-manual-progress-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .qv-group-manual-output-card .qv-group-manual-progress-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

.qv-group-manual-summary-icon i { font-size:22px; line-height:1; display:flex; align-items:center; justify-content:center; }

.qv-group-manual-output-cell { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; }

.qv-group-manual-output-live-badge { display:inline-flex; align-items:center; justify-content:center; min-width:88px; padding:4px 10px; border-radius:999px; font-size:12px; font-weight:700; line-height:1; border:1px solid transparent; }

.qv-group-manual-output-live-badge.is-active { background:rgba(25,135,84,.12); color:#198754; border-color:rgba(25,135,84,.22); }

.qv-group-manual-output-live-badge.is-inactive { background:rgba(108,117,125,.12); color:#5c6770; border-color:rgba(108,117,125,.2); }

.dash-action-swal-top-close {width:46px;height:46px;border:none;border-radius:14px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:rgba(255,255,255,.82);border:1px solid rgba(0,0,0,.08);color:#6b7280;box-shadow:0 8px 20px rgba(0,0,0,.08);transition:all .18s ease;}
.dash-action-swal-top-close:hover {color:var(--error-color);background:var(--error-light-color-fade);border-color:var(--error-color);}
.dash-action-swal-top-actions {position:absolute;top:18px;right:18px;z-index:31;display:flex;align-items:center;gap:10px;}
.dash-action-swal-header {padding-right:8.2rem;}
.dash-action-swal-action-row.is-single {grid-template-columns:1fr !important;}
.dash-action-swal-action-row.is-single .dash-action-swal-confirm {max-width:280px;width:100%;justify-self:end;}
.qv-legal-accept-modal .dash-action-swal-body {grid-template-columns:340px minmax(0,1fr);}
.qv-legal-doc-modal .dash-action-swal-body {grid-template-columns:300px minmax(0,1fr);}
.qv-legal-accept-shell {display:flex;flex-direction:column;gap:16px;}
.qv-legal-accept-summary {align-items:flex-start;}
.qv-legal-doc-actions {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;}
.qv-legal-inline-card {display:flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:12px 14px;border-radius:16px;border:1px solid rgba(10,163,161,.18);background:rgba(10,163,161,.08);color:var(--primary-color);font-weight:800;line-height:1.2;cursor:pointer;transition:all .18s ease;}
.qv-legal-inline-card:hover {border-color:rgba(10,163,161,.34);background:rgba(10,163,161,.13);transform:translateY(-1px);box-shadow:0 10px 24px rgba(8,60,74,.08);}
.qv-legal-inline-card i {font-size:1.15rem;}
.qv-legal-accept-checks {display:flex;flex-direction:column;gap:12px;}
.qv-legal-accept-check {display:grid;grid-template-columns:24px minmax(0,1fr);align-items:flex-start;gap:12px;padding:16px 18px;border:1px solid rgba(10,163,161,.14);border-radius:18px;background:rgba(255,255,255,.76);transition:.18s ease;}
.qv-legal-accept-check:hover {border-color:rgba(10,163,161,.28);box-shadow:0 10px 24px rgba(8,60,74,.06);}
.qv-legal-accept-check--error {border-color:rgba(220,53,69,.36);background:rgba(220,53,69,.06);}
.qv-legal-accept-check input[type="checkbox"] {-webkit-appearance:none;appearance:none;width:22px;height:22px;margin:1px 0 0 0;border-radius:8px;border:2px solid rgba(10,110,92,.34);background:#fff;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:all .18s ease;position:relative;box-shadow:0 4px 10px rgba(8,60,74,.05);}
.qv-legal-accept-check input[type="checkbox"]:hover {border-color:var(--primary-color);}
.qv-legal-accept-check input[type="checkbox"]:focus-visible {outline:3px solid rgba(10,163,161,.2);outline-offset:2px;}
.qv-legal-accept-check input[type="checkbox"]:checked {background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));border-color:var(--primary-color);box-shadow:0 8px 18px rgba(10,110,92,.18);}
.qv-legal-accept-check input[type="checkbox"]:checked::after {content:"";width:6px;height:11px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);margin-top:-1px;}
.qv-legal-accept-check label {display:block;color:#31535b;font-size:.98rem;line-height:1.58;cursor:pointer;margin:0;}
.qv-legal-inline-link {display:inline;padding:0;border:none;background:none;color:var(--primary-color);font-weight:800;text-decoration:underline;text-underline-offset:3px;cursor:pointer;vertical-align:baseline;}
.qv-legal-inline-link:hover {color:var(--secondary-color);}
.qv-legal-accept-note {padding:14px 16px;border-radius:16px;background:rgba(10,163,161,.08);color:#5f7680;font-size:.93rem;line-height:1.6;}
.qv-legal-accept-error {padding:12px 14px;border-radius:14px;background:rgba(220,53,69,.10);border:1px solid rgba(220,53,69,.18);color:#b42318;font-weight:700;font-size:.94rem;line-height:1.5;}
.qv-legal-accept-modal .dash-action-swal-action-row.is-single .dash-action-swal-confirm {max-width:320px;width:100%;justify-self:end;}
.qv-legal-accept-modal .dash-action-swal-confirm.is-loading {opacity:.72;pointer-events:none;}
.qv-legal-doc-shell {max-height:58vh;overflow:auto;padding-right:6px;}
.qv-legal-doc-shell h1 {font-size:1.8rem;font-weight:800;color:var(--primary-color);margin:0 0 1rem 0;}
.qv-legal-doc-shell h2 {font-size:1.12rem;font-weight:800;color:var(--primary-color);margin:1.4rem 0 .65rem 0;}
.qv-legal-doc-shell h3 {font-size:1rem;font-weight:800;color:var(--primary-color);margin:1.15rem 0 .55rem 0;}
.qv-legal-doc-shell p {font-size:.97rem;line-height:1.72;color:var(--text-color);margin:0 0 .9rem 0;}
.qv-legal-doc-shell ul {margin:0 0 1rem 1.1rem;padding:0;}
.qv-legal-doc-shell li {margin:0 0 .42rem 0;line-height:1.65;color:var(--text-color);}
.qv-legal-doc-shell a {color:var(--primary-color);font-weight:700;text-decoration:underline;}
@media (max-width: 768px) {
.qv-legal-accept-modal .dash-action-swal-body,.qv-legal-doc-modal .dash-action-swal-body {grid-template-columns:1fr;}
.qv-legal-doc-actions {grid-template-columns:1fr;}
.qv-legal-accept-modal .dash-action-swal-action-row.is-single .dash-action-swal-confirm {max-width:none;justify-self:stretch;}
}


#sign_up_form .signup-consent-box {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 18px;
}

#sign_up_form .signup-consent-card {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 14px;
    margin: 0;
    padding: 16px 18px;
    border: 1px solid rgba(10, 163, 161, 0.22);
    border-radius: 18px!important;
    background: rgba(255, 255, 255, 0.42);
    cursor: pointer;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}

#sign_up_form .signup-consent-card:hover {
    border-color: rgba(10, 163, 161, 0.34);
    box-shadow: 0 10px 22px rgba(8, 60, 74, 0.08);
}

#sign_up_form .signup-consent-input {
    position: absolute !important;
    opacity: 0 !important;
    pointer-events: none !important;
    width: 1px !important;
    height: 1px !important;
    margin: 0 !important;
}

#sign_up_form .signup-consent-check {
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    margin-top: 1px;
    border-radius: 8px;
    border: 2px solid rgba(10, 163, 161, 0.35);
    background: #ffffff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    box-sizing: border-box;
    transition: all .2s ease;
}

#sign_up_form .signup-consent-check i {
    font-size: 16px;
    line-height: 1;
    opacity: 0;
    transform: scale(0.7);
    transition: all .18s ease;
}

#sign_up_form .signup-consent-input:checked + .signup-consent-check {
    background: linear-gradient(135deg, #0a6e5c 0%, #0aa3a1 100%);
    border-color: #0a8f88;
    box-shadow: 0 8px 18px rgba(10, 110, 92, 0.18);
}

#sign_up_form .signup-consent-input:checked + .signup-consent-check i {
    opacity: 1;
    transform: scale(1);
}

#sign_up_form .signup-consent-input:focus-visible + .signup-consent-check {
    outline: 0;
    box-shadow: 0 0 0 4px rgba(10, 163, 161, 0.16);
}

#sign_up_form .signup-consent-text {
    flex: 1 1 auto;
    display: block;
    font-size: 15px;
    line-height: 1.6;
    color: var(--text-color);
    font-weight: 500;
}

#sign_up_form .signup-consent-text a {
    color: var(--primary-color);
    font-weight: 700;
    text-decoration: none;
}

#sign_up_form .signup-consent-text a:hover {
    text-decoration: underline;
}

#sign_up_form .signup-consent-note {
    margin-top: 2px;
    padding: 14px 16px;
    border-radius: 16px;
    background: rgba(10, 163, 161, 0.08);
    color: var(--primar-color);
    font-size: 13px;
    line-height: 1.6;
}

@media (max-width: 575.98px) {
    #sign_up_form .signup-consent-card {
        padding: 14px 14px;
        gap: 12px;
        border-radius: 16px;
    }

    #sign_up_form .signup-consent-check {
        width: 24px;
        height: 24px;
        flex-basis: 24px;
    }

    #sign_up_form .signup-consent-text {
        font-size: 14px;
        line-height: 1.55;
    }

    #sign_up_form .signup-consent-note {
        font-size: 12.5px;
        padding: 12px 14px;
    }
}

.profiledash-hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.profiledash-delete-account-btn {
    min-width: 220px;
    border-radius: 14px;
    font-weight: 700;
    box-shadow: 0 10px 22px rgba(185, 28, 28, 0.18);
}

.profiledash-delete-account-btn i {
    margin-right: 6px;
}

.qv-group-manual-preview-device-col{min-width:260px;max-width:320px;}
.qv-group-manual-device-cell{display:flex;flex-direction:column;gap:8px;min-width:0;}
.qv-group-manual-device-name{font-weight:700;line-height:1.35;color:var(--text-color);}
.qv-group-manual-device-meta--wrap{display:block;max-width:100%;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;line-height:1.45;font-size:13px;color:var(--text-color);}
#device-group-manual-preview-table td.qv-group-manual-preview-device-col{white-space:normal!important;}
#device-group-manual-preview-table td.qv-group-manual-preview-device-col *{white-space:normal!important;}
.qv-group-manual-output-toggle{display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:4px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.30);background:rgba(226,232,240,.70);color:#64748b;font-size:12px;font-weight:700;line-height:1;white-space:nowrap;}
.qv-group-manual-output-toggle-knob{position:relative;display:inline-block;width:34px;height:20px;border-radius:999px;background:rgba(148,163,184,.45);transition:all .2s ease;}
.qv-group-manual-output-toggle-knob::after{content:'';position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#ffffff;box-shadow:0 2px 6px rgba(15,23,42,.16);transition:all .2s ease;}
.qv-group-manual-output-toggle.is-active{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.28);color:#0f8a5f;}
.qv-group-manual-output-toggle.is-active .qv-group-manual-output-toggle-knob{background:#0f8a5f;}
.qv-group-manual-output-toggle.is-active .qv-group-manual-output-toggle-knob::after{left:16px;}
.qv-group-manual-output-toggle.is-inactive{background:rgba(226,232,240,.72);border-color:rgba(148,163,184,.28);color:#5b6777;}
.qv-group-manual-output-toggle-label{display:inline-block;}

/* Packet Inspector */
.overview-packet-inspector-section{margin-top:24px;}
.overview-packet-inspector-card{background:linear-gradient(180deg,rgba(255,255,255,.98) 0%,rgba(248,252,252,.98) 100%);border:1px solid rgba(8,118,103,.18);border-radius:28px;padding:28px;box-shadow:0 22px 50px rgba(8,60,74,.08);}
.overview-packet-inspector-head{display:grid;grid-template-columns:minmax(0,1fr) 160px;gap:24px;align-items:center;margin-bottom:24px;}
.overview-packet-inspector-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:999px;background:rgba(10,163,161,.10);border:1px solid rgba(10,163,161,.18);color:var(--primary-color);font-weight:700;font-size:13px;margin-bottom:12px;}
.overview-packet-inspector-head h3{margin:0 0 8px 0;color:var(--primary-color);font-size:30px;font-weight:800;line-height:1.15;}
.overview-packet-inspector-head p{margin:0;color:var(--text-color);font-size:15px;line-height:1.7;max-width:760px;}
.overview-packet-inspector-media{display:flex;justify-content:flex-end;align-items:center;}
.overview-packet-inspector-media img{width:132px;max-width:100%;height:auto;filter:drop-shadow(0 14px 28px rgba(8,60,74,.12));}
.overview-packet-inspector-input{display:flex;flex-direction:column;gap:12px;}
.overview-packet-inspector-input label{font-size:14px;font-weight:700;color:var(--primary-color);}
.overview-packet-inspector-input textarea{width:100%;min-height:140px;padding:16px 18px;border-radius:20px;border:1px solid rgba(8,118,103,.18);background:#f8fcfc;color:var(--text-color);font-size:14px;line-height:1.7;resize:vertical;outline:none;box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.overview-packet-inspector-input textarea:focus{border-color:rgba(10,163,161,.34);box-shadow:0 0 0 4px rgba(10,163,161,.10);}
.overview-packet-inspector-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:4px;}
.overview-packet-inspector-result{margin-top:22px;}
.overview-packet-inspector-summary{border-radius:24px;padding:18px 20px;border:1px solid transparent;margin-bottom:18px;}
.overview-packet-inspector-summary.is-success{background:linear-gradient(180deg,rgba(16,185,129,.10) 0%,rgba(236,253,245,.94) 100%);border-color:rgba(16,185,129,.20);}
.overview-packet-inspector-summary.is-warning{background:linear-gradient(180deg,rgba(245,158,11,.10) 0%,rgba(255,251,235,.96) 100%);border-color:rgba(245,158,11,.22);}
.overview-packet-inspector-summary.is-error{background:linear-gradient(180deg,rgba(239,68,68,.10) 0%,rgba(254,242,242,.96) 100%);border-color:rgba(239,68,68,.22);}
.overview-packet-inspector-summary-title{font-size:18px;font-weight:800;color:var(--primary-color);margin-bottom:4px;}
.overview-packet-inspector-summary-subtitle{font-size:14px;color:var(--text-color-light);margin-bottom:14px;}
.overview-packet-inspector-checks{display:flex;flex-wrap:wrap;gap:10px;}
.overview-packet-inspector-check{display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;border:1px solid transparent;font-size:12px;font-weight:700;line-height:1;}
.overview-packet-inspector-check.is-ok{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.20);color:#0f8a5f;}
.overview-packet-inspector-check.is-bad{background:rgba(239,68,68,.12);border-color:rgba(239,68,68,.20);color:#b42318;}
.overview-packet-inspector-check.is-neutral{background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.20);color:#526071;}
.overview-packet-inspector-check-label{opacity:.82;}
.overview-packet-inspector-check-value{font-weight:800;}
.overview-packet-inspector-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:16px;}
.overview-packet-inspector-panel{background:#ffffff;border:1px solid rgba(8,118,103,.14);border-radius:22px;padding:18px 18px 16px 18px;box-shadow:0 10px 24px rgba(8,60,74,.05);min-width:0;}
.overview-packet-inspector-panel-title{font-size:14px;font-weight:800;color:var(--primary-color);margin-bottom:12px;display:flex;align-items:center;gap:8px;}
.overview-packet-inspector-code{margin:0;padding:16px 18px;border-radius:18px;background:#0f172a;color:#e2e8f0;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;min-height:72px;}
.overview-packet-inspector-table{width:100%;border-collapse:collapse;}
.overview-packet-inspector-table th{width:34%;padding:10px 12px;border-bottom:1px solid rgba(8,118,103,.10);color:var(--primary-color);font-size:13px;font-weight:800;text-align:left;vertical-align:top;}
.overview-packet-inspector-table td{padding:10px 12px;border-bottom:1px solid rgba(8,118,103,.10);color:var(--text-color);font-size:13px;line-height:1.55;vertical-align:top;word-break:break-word;overflow-wrap:anywhere;}
.overview-packet-inspector-list{margin:0;padding-left:18px;}
.overview-packet-inspector-list li{margin-bottom:8px;font-size:13px;line-height:1.6;}
.overview-packet-inspector-list.is-error li{color:#b42318;}
.overview-packet-inspector-list.is-warning li{color:#9a6700;}
.overview-packet-inspector-grid--single{grid-template-columns:minmax(0,1fr);}
.overview-packet-inspector-success-note{display:flex;align-items:flex-start;gap:10px;padding:14px 16px;border-radius:18px;background:rgba(16,185,129,.10);border:1px solid rgba(16,185,129,.18);color:#0f8a5f;font-size:13px;font-weight:700;line-height:1.6;}
@media (max-width:991.98px){.overview-packet-inspector-head{grid-template-columns:minmax(0,1fr);}.overview-packet-inspector-media{justify-content:flex-start;}.overview-packet-inspector-grid{grid-template-columns:minmax(0,1fr);}}
@media (max-width:575.98px){.overview-packet-inspector-card{padding:20px 16px;}.overview-packet-inspector-head h3{font-size:24px;}.overview-packet-inspector-checks{gap:8px;}.overview-packet-inspector-check{width:100%;justify-content:space-between;}.overview-packet-inspector-table th,.overview-packet-inspector-table td{display:block;width:100%;padding:8px 0;border-bottom:none;}.overview-packet-inspector-table tr{display:block;padding:10px 0;border-bottom:1px solid rgba(8,118,103,.10);}}

.overviewdash-rawlogs-shell { width: 100%; display: flex; flex-direction: column; gap: 18px; }

.overviewdash-rawlogs-hero { width: 100%; display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 26px 28px; border-radius: 28px; background: linear-gradient(135deg, rgba(255,255,255,.96) 0%, rgba(236,250,248,.92) 100%); border: 1px solid rgba(10,163,161,.18); box-shadow: 0 18px 46px rgba(8,60,74,.08); }

.overviewdash-rawlogs-hero-copy { max-width: 980px; }

.overviewdash-rawlogs-badge { display: inline-flex; align-items: center; gap: 8px; padding: 9px 15px; margin-bottom: 12px; border-radius: 999px; background: rgba(10,163,161,.12); border: 1px solid rgba(10,163,161,.18); color: var(--primary-color); font-weight: 800; font-size: 13px; }

.overviewdash-rawlogs-hero h2 { margin: 0 0 8px 0; color: var(--primary-color); font-size: clamp(24px, 2.1vw, 34px); font-weight: 900; letter-spacing: -.03em; }

.overviewdash-rawlogs-hero p { margin: 0; color: var(--priamry-color); font-size: 15px; line-height: 1.75; max-width: 980px; }

.overviewdash-rawlogs-toolbar { display: grid; grid-template-columns: repeat(3, minmax(180px, 1fr)); gap: 14px; padding: 18px; border-radius: 24px; background: rgba(236,250,248,.78); border: 1px solid rgba(10,163,161,.18); }

.rawlogs-filter-card { min-width: 0; padding: 14px 16px; border-radius: 18px; background: rgba(255,255,255,.86); border: 1px solid rgba(10,163,161,.16); box-shadow: 0 10px 28px rgba(8,60,74,.06); }

.rawlogs-filter-card label { display: block; margin-bottom: 8px; color: var(--primary-color); font-size: 13px; font-weight: 900; }

.rawlogs-filter-card .select2-container { width: 100% !important; }

.rawlogs-filter-card .select2-container--default .select2-selection--single { height: 46px; border-radius: 14px; border: 1px solid rgba(10,163,161,.22); background: rgba(236,250,248,.85); display: flex; align-items: center; }

.rawlogs-filter-card .select2-container--default .select2-selection--single .select2-selection__rendered { color: var(--text-color); font-size: 14px; font-weight: 700; line-height: 46px; padding-left: 14px; padding-right: 34px; }

.rawlogs-filter-card .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 10px; }

.overviewdash-rawlogs-table-card { padding: 18px; border-radius: 24px; background: rgba(236,250,248,.78); border: 2px solid var(--primary-color); box-shadow: 0 16px 40px rgba(8,60,74,.08); overflow: hidden; }

.rawlogs-time-col { width: 92px; }

.rawlogs-time-main { color: #334155; font-size: 14px; font-weight: 900; letter-spacing: .04em; }

.rawlogs-time-sub { margin-top: 2px; color: #64748b; font-size: 11px; font-weight: 800; }

.rawlogs-badge { display: inline-flex; align-items: center; justify-content: center; gap: 4px; width: fit-content; max-width: 100%; padding: 7px 11px; margin: 2px; border-radius: 999px; font-size: 12px; line-height: 1.1; font-weight: 900; white-space: nowrap; }

.rawlogs-badge.is-device { color: #0369a1; background: rgba(14,165,233,.14); border: 1px solid rgba(14,165,233,.28); }

.rawlogs-badge.is-server { color: #6d28d9; background: rgba(124,58,237,.12); border: 1px solid rgba(124,58,237,.24); }

.rawlogs-badge.is-ok { color: #047857; background: rgba(16,185,129,.16); border: 1px solid rgba(16,185,129,.28); }

.rawlogs-badge.is-warning { color: #b45309; background: rgba(245,158,11,.14); border: 1px solid rgba(245,158,11,.28); }

.rawlogs-badge.is-error { color: #be123c; background: rgba(244,63,94,.12); border: 1px solid rgba(244,63,94,.28); }

.rawlogs-badge.is-neutral { color: #0f766e; background: rgba(20,184,166,.12); border: 1px solid rgba(20,184,166,.24); }

.rawlogs-badge.is-meta { color: #475569; background: rgba(226,232,240,.78); border: 1px solid rgba(100,116,139,.28); }

.rawlogs-device-cell { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-width: 0; }

.rawlogs-device-cell strong { color: #1f2d2f; font-size: 14px; font-weight: 900; word-break: break-word; }

.rawlogs-device-cell code { display: block; max-width: 260px; padding: 6px 9px; border-radius: 10px; color: #0f766e; background: rgba(10,163,161,.08); border: 1px solid rgba(10,163,161,.18); font-size: 12px; white-space: normal; overflow-wrap: anywhere; }

.rawlogs-meta-wrap { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }

.rawlogs-packet-col { min-width: 280px; }

.rawlogs-packet-preview { margin: 0; max-width: 100%; padding: 12px 14px; border-radius: 16px; background: rgba(255,255,255,.9); border: 1px solid rgba(10,163,161,.12); color: #0f172a; font-size: 12px; line-height: 1.55; white-space: pre-wrap; overflow-wrap: anywhere; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }

.rawlogs-table-row td { vertical-align: middle !important; }

@media (max-width: 991.98px) { .overviewdash-rawlogs-hero { flex-direction: column; align-items: flex-start; } .overviewdash-rawlogs-toolbar { grid-template-columns: 1fr; } }

@media (max-width: 575.98px) { .overviewdash-rawlogs-hero { padding: 20px; border-radius: 22px; } .overviewdash-rawlogs-table-card { padding: 12px; } .rawlogs-packet-preview { font-size: 11px; } }

.overviewdash-rawlogs-section {
    margin-top: 24px;
}

.overviewdash-rawlogs-hero {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 26px 28px;
    border: 1px solid rgba(10, 163, 161, 0.18);
    border-radius: 28px;
    background: linear-gradient(135deg, rgba(10, 163, 161, 0.08), rgba(255, 255, 255, 0.92));
    margin-bottom: 18px;
}

.overviewdash-rawlogs-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 9px 16px;
    border-radius: 999px;
    background: rgba(10, 163, 161, 0.12);
    border: 1px solid rgba(10, 163, 161, 0.2);
    color: var(--primary-color);
    font-weight: 800;
    font-size: 13px;
    margin-bottom: 14px;
}

.overviewdash-rawlogs-title {
    margin: 0 0 10px 0;
    color: var(--primary-color);
    font-weight: 900;
    font-size: clamp(26px, 2.1vw, 36px);
    letter-spacing: -0.6px;
}

.overviewdash-rawlogs-hero p {
    margin: 0;
    color: var(--primary-color);
    font-size: 15px;
    line-height: 1.75;
    max-width: 980px;
}

.overviewdash-rawlogs-filters {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
    padding: 18px;
    border: 1px solid rgba(10, 163, 161, 0.18);
    border-radius: 24px;
    background: rgba(10, 163, 161, 0.06);
    margin-bottom: 18px;
}

.overviewdash-rawlogs-filter-card {
    padding: 16px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.78);
    border: 1px solid rgba(10, 163, 161, 0.12);
}

.overviewdash-rawlogs-filter-card label {
    display: block;
    margin-bottom: 10px;
    color: var(--primary-color);
    font-weight: 800;
    font-size: 14px;
}

.overviewdash-rawlogs-table-frame {
    padding: 18px;
    border-radius: 24px;
    background: rgba(255, 255, 255, 0.72);
    overflow-x: auto;
}

.overviewdash-rawlogs-section .select2-container--default .select2-selection--single {
    height: 58px;
    border-radius: 14px;
    border: 1px solid rgba(10, 163, 161, 0.22);
    background: rgba(10, 163, 161, 0.12);
    display: flex;
    align-items: center;
}

.overviewdash-rawlogs-section .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: var(--primary-color);
    font-weight: 800;
    line-height: 58px;
    padding-left: 16px;
}

.overviewdash-rawlogs-section .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 58px;
    right: 12px;
}

.overviewdash-rawlogs-section .select2-dropdown {
    border-radius: 14px;
    overflow: hidden;
    border: 1px solid rgba(10, 163, 161, 0.18);
}

.rawlog-time {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 3px;
    color: #334155;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.rawlog-time span {
    font-size: 11px;
    color: #64748b;
}

.rawlog-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    font-weight: 900;
    font-size: 12px;
    line-height: 1;
    white-space: nowrap;
}

.rawlog-source-device {
    background: rgba(14, 165, 233, 0.13);
    color: #0369a1;
    border: 1px solid rgba(14, 165, 233, 0.28);
}

.rawlog-source-server {
    background: rgba(124, 58, 237, 0.13);
    color: #6d28d9;
    border: 1px solid rgba(124, 58, 237, 0.24);
}

.rawlog-check-ok {
    background: rgba(16, 185, 129, 0.16);
    color: #047857;
    border: 1px solid rgba(16, 185, 129, 0.28);
}

.rawlog-check-warning {
    background: rgba(245, 158, 11, 0.14);
    color: #b45309;
    border: 1px solid rgba(245, 158, 11, 0.28);
}

.rawlog-check-error {
    background: rgba(244, 63, 94, 0.12);
    color: #be123c;
    border: 1px solid rgba(244, 63, 94, 0.28);
}

.rawlog-no-id {
    margin-top: 8px;
    background: rgba(10, 163, 161, 0.12);
    color: var(--primary-color);
    border: 1px solid rgba(10, 163, 161, 0.22);
}

.rawlog-device-id {
    color: #1f2d2f;
    font-weight: 900;
    font-size: 13px;
    word-break: break-all;
    overflow-wrap: anywhere;
}

.rawlog-device-empty {
    color: #334155;
}

.rawlog-meta-stack {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.rawlog-meta-chip {
    display: inline-flex;
    align-items: center;
    padding: 6px 9px;
    border-radius: 8px;
    background: #e9eef2;
    color: #475569;
    border: 1px solid #cbd5e1;
    font-size: 12px;
    font-weight: 900;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

.rawlog-packet-preview {
    max-width: 100%;
    padding: 12px 14px;
    border-radius: 16px;
    background: rgba(255, 255, 255, 0.9);
    border: 1px solid rgba(10, 163, 161, 0.1);
    color: #0f172a;
    font-size: 12px;
    font-weight: 800;
    line-height: 1.65;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    white-space: pre-wrap;
    word-break: break-word;
    overflow-wrap: anywhere;
}

@media (max-width: 991.98px) {
    .overviewdash-rawlogs-hero {
        flex-direction: column;
        align-items: flex-start;
    }
}

@media (max-width: 991.98px) {
    .overviewdash-rawlogs-filters {
        grid-template-columns: 1fr;
    }
}

.fwupdate-shell{display:flex;flex-direction:column;gap:22px;padding-bottom:28px;}
.fwupdate-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:22px;padding:26px;border-radius:28px;background:linear-gradient(135deg,rgba(8,60,74,.98),rgba(10,110,92,.94));box-shadow:0 18px 42px rgba(8,60,74,.16);color:#fff;}
.fwupdate-hero:before{content:"";position:absolute;inset:auto -80px -120px auto;width:320px;height:320px;border-radius:999px;background:rgba(230,185,88,.18);filter:blur(4px);}
.fwupdate-hero-main{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px;}
.fwupdate-hero-badge{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.20);font-size:13px;font-weight:700;color:#eaf7f6;}
.fwupdate-hero-title{margin:0;font-size:clamp(28px,3vw,42px);font-weight:850;letter-spacing:-.035em;line-height:1.05;color:#fff;}
.fwupdate-hero-text{max-width:820px;margin:0;color:rgba(255,255,255,.82);font-size:15px;line-height:1.75;}
.fwupdate-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.fwupdate-hero-media{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:220px;}
.fwupdate-hero-media img{width:min(260px,100%);height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.25));}
.fwupdate-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.fwupdate-kpi-card{position:relative;overflow:hidden;padding:18px;border-radius:22px;background:rgba(255,255,255,.92);border:1px solid rgba(10,163,161,.16);box-shadow:0 14px 34px rgba(8,60,74,.08);}
.fwupdate-kpi-card:after{content:"";position:absolute;right:-28px;top:-28px;width:86px;height:86px;border-radius:999px;background:rgba(10,163,161,.09);}
.fwupdate-kpi-icon{width:44px;height:44px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(10,110,92,.12),rgba(10,163,161,.12));color:var(--primary-color);font-size:22px;margin-bottom:12px;}
.fwupdate-kpi-label{font-size:13px;font-weight:700;color:var(--text-color-light);margin-bottom:6px;}
.fwupdate-kpi-value{font-size:28px;font-weight:850;color:var(--primary-color);line-height:1;}
.fwupdate-kpi-hint{font-size:12px;color:var(--text-color-light);margin-top:7px;}
.fwupdate-layout{display:grid;grid-template-columns:minmax(330px,.42fr) minmax(0,.58fr);gap:18px;align-items:start;}
.fwupdate-card{border-radius:24px;background:rgba(255,255,255,.96);border:1px solid rgba(10,163,161,.14);box-shadow:0 16px 38px rgba(8,60,74,.08);overflow:hidden;}
.fwupdate-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid rgba(10,163,161,.12);background:linear-gradient(180deg,rgba(238,245,244,.92),rgba(255,255,255,.95));}
.fwupdate-card-title-wrap{display:flex;align-items:flex-start;gap:12px;}
.fwupdate-card-icon{width:42px;height:42px;min-width:42px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;font-size:21px;box-shadow:0 10px 18px rgba(10,110,92,.18);}
.fwupdate-card-title{margin:0;font-size:18px;font-weight:850;color:var(--primary-color);letter-spacing:-.02em;}
.fwupdate-card-subtitle{margin:4px 0 0 0;font-size:13px;color:var(--text-color-light);line-height:1.55;}
.fwupdate-card-body{padding:20px;}
.fwupdate-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.fwupdate-form-group{display:flex;flex-direction:column;gap:7px;}
.fwupdate-form-group.is-full{grid-column:1/-1;}
.fwupdate-label{font-size:13px;font-weight:800;color:var(--primary-color);}
.fwupdate-file-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:176px;padding:22px;border:1.5px dashed rgba(10,163,161,.38);border-radius:22px;background:linear-gradient(180deg,rgba(10,163,161,.07),rgba(10,110,92,.035));text-align:center;cursor:pointer;transition:all .18s ease;}
.fwupdate-file-drop:hover{border-color:rgba(10,163,161,.70);background:linear-gradient(180deg,rgba(10,163,161,.11),rgba(10,110,92,.055));transform:translateY(-1px);}
.fwupdate-file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.fwupdate-file-icon{width:62px;height:62px;border-radius:22px;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--primary-color);font-size:30px;box-shadow:0 10px 26px rgba(8,60,74,.10);}
.fwupdate-file-title{font-weight:850;color:var(--primary-color);}
.fwupdate-file-text{font-size:13px;color:var(--text-color-light);line-height:1.55;}
.fwupdate-file-name{display:none;max-width:100%;padding:8px 12px;border-radius:999px;background:rgba(10,110,92,.10);border:1px solid rgba(10,110,92,.16);color:var(--primary-color);font-size:12px;font-weight:800;overflow-wrap:anywhere;}
.fwupdate-file-name.is-visible{display:inline-flex;}
.fwupdate-upload-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
.fwupdate-table-shell{border-radius:24px;background:rgba(255,255,255,.96);border:1px solid rgba(10,163,161,.14);box-shadow:0 16px 38px rgba(8,60,74,.08);overflow:hidden;}
.fwupdate-table-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid rgba(10,163,161,.12);background:linear-gradient(180deg,rgba(238,245,244,.92),rgba(255,255,255,.95));}
.fwupdate-table-title{margin:0;font-size:18px;font-weight:850;color:var(--primary-color);}
.fwupdate-table-desc{margin:4px 0 0 0;font-size:13px;color:var(--text-color-light);}
.fwupdate-table-body{padding:16px 18px 20px 18px;}
.fwupdate-release-main{display:flex;flex-direction:column;gap:7px;min-width:0;}
.fwupdate-release-title{font-weight:850;color:var(--primary-color);line-height:1.35;}
.fwupdate-release-file{display:flex;flex-direction:column;gap:5px;min-width:0;}
.fwupdate-release-file-name{font-weight:700;color:var(--text-color);font-size:13px;overflow-wrap:anywhere;line-height:1.35;}
.fwupdate-release-hash{font-size:11px;color:var(--text-color-light);overflow-wrap:anywhere;line-height:1.35;}
.fwupdate-status-stack{display:flex;flex-direction:column;align-items:center;gap:6px;}
.fwupdate-actions{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;}
.fwupdate-mini-btn{width:34px;height:34px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(10,163,161,.16);background:#fff;color:var(--primary-color);transition:all .16s ease;}
.fwupdate-mini-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(8,60,74,.10);}
.fwupdate-mini-btn.is-danger{color:#dc3545;border-color:rgba(220,53,69,.20);}
.fwupdate-mini-btn.is-warning{color:#b7791f;border-color:rgba(245,158,11,.22);}
.fwupdate-mini-btn.is-success{color:#198754;border-color:rgba(25,135,84,.22);}
.fwupdate-progress-row{display:flex;align-items:center;gap:8px;min-width:160px;}
.fwupdate-switch{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:4px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.28);background:rgba(226,232,240,.72);color:#64748b;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer;}
.fwupdate-switch-knob{position:relative;width:34px;height:20px;border-radius:999px;background:rgba(148,163,184,.45);transition:all .18s ease;}
.fwupdate-switch-knob:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:0 2px 6px rgba(15,23,42,.16);transition:all .18s ease;}
.fwupdate-switch.is-on{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.28);color:#0f8a5f;}
.fwupdate-switch.is-on .fwupdate-switch-knob{background:#0f8a5f;}
.fwupdate-switch.is-on .fwupdate-switch-knob:after{left:16px;}
.fwupdate-footer-note{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;border-radius:18px;background:rgba(10,163,161,.07);border:1px solid rgba(10,163,161,.12);color:var(--text-color-light);font-size:13px;line-height:1.55;}
.fwupdate-footer-note i{color:var(--primary-color);font-size:18px;margin-top:1px;}
.fwupdate-bulk-report{display:flex;flex-direction:column;gap:14px;padding:18px 20px;border-radius:24px;background:rgba(255,255,255,.97);border:1px solid rgba(10,163,161,.18);box-shadow:0 16px 38px rgba(8,60,74,.08);}
.fwupdate-bulk-report.is-hidden{display:none;}
.fwupdate-bulk-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;}
.fwupdate-bulk-report-title-wrap{display:flex;align-items:flex-start;gap:12px;min-width:0;}
.fwupdate-bulk-report-icon{width:44px;height:44px;min-width:44px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(10,110,92,.12),rgba(10,163,161,.16));color:var(--primary-color);font-size:22px;}
.fwupdate-bulk-report.is-running .fwupdate-bulk-report-icon i{animation:qvFirmwareProgressSpin 1.1s linear infinite;}
.fwupdate-bulk-report.is-success .fwupdate-bulk-report-icon{background:rgba(16,185,129,.14);color:#047857;}
.fwupdate-bulk-report.is-error .fwupdate-bulk-report-icon{background:rgba(220,53,69,.12);color:#b42318;}
.fwupdate-bulk-report-title{margin:0;font-size:18px;font-weight:900;color:var(--primary-color);}
.fwupdate-bulk-report-subtitle{margin:4px 0 0 0;color:#647985;font-size:13px;font-weight:700;line-height:1.45;}
.fwupdate-bulk-report-percent{display:inline-flex;align-items:center;justify-content:center;min-width:68px;padding:8px 12px;border-radius:999px;background:rgba(10,163,161,.12);border:1px solid rgba(10,163,161,.22);color:var(--primary-color);font-size:15px;font-weight:950;}
.fwupdate-bulk-progress{height:12px;border-radius:999px;background:rgba(8,60,74,.08);border:1px solid rgba(8,60,74,.10);overflow:hidden;}
.fwupdate-bulk-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#0a6e5c,#0aa3a1,#e6b958);transition:width .35s ease;}
.fwupdate-bulk-progress-fill.is-animated{background-size:200% 100%;animation:qvFirmwareProgressMove 1.25s linear infinite;}
.fwupdate-bulk-report-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.fwupdate-bulk-report-grid div{padding:12px;border-radius:16px;background:rgba(10,163,161,.06);border:1px solid rgba(10,163,161,.12);}
.fwupdate-bulk-report-grid span{display:block;color:#647985;font-size:12px;font-weight:800;margin-bottom:4px;}
.fwupdate-bulk-report-grid strong{display:block;color:#073b4a;font-size:20px;font-weight:950;line-height:1;}
@keyframes qvFirmwareProgressSpin{to{transform:rotate(360deg);}}
@media(max-width:1199.98px){.fwupdate-hero{grid-template-columns:1fr;}.fwupdate-layout{grid-template-columns:1fr;}.fwupdate-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767.98px){.fwupdate-hero{padding:20px;border-radius:22px;}.fwupdate-kpi-grid{grid-template-columns:1fr;}.fwupdate-form-grid{grid-template-columns:1fr;}.fwupdate-table-head,.fwupdate-card-head{flex-direction:column;}.fwupdate-table-body{padding:12px;}}
@media(max-width:767.98px){.fwupdate-bulk-report-head{flex-direction:column;}.fwupdate-bulk-report-percent{align-self:flex-start;}.fwupdate-bulk-report-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
.overviewdash-rawlogs-hero p { margin: 0; color: var(--primary-color); font-size: 15px; line-height: 1.75; max-width: 980px; }
.overviewdash-rawlogs-section .card-table { border: 0; box-shadow: none; background: transparent; }
.overviewdash-rawlogs-section .card-body { padding: 0; }
.overviewdash-rawlogs-packet-full { margin: 0; max-width: 100%; max-height: 220px; overflow: auto; white-space: pre-wrap; word-break: break-word; background: #ffffff; border: 1px solid rgba(10,163,161,.22); border-radius: 14px; padding: 12px 14px; font-size: 12px; line-height: 1.55; color: #17252a; }
.rawlogs-packet-col { min-width: 360px; }
.rawlogs-time-col { width: 92px; }
.fwupdate-shell{display:flex;flex-direction:column;gap:22px;padding-bottom:28px;}
.fwupdate-hero{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.65fr);gap:22px;padding:26px;border-radius:28px;background:linear-gradient(135deg,rgba(8,60,74,.98),rgba(10,110,92,.94));box-shadow:0 18px 42px rgba(8,60,74,.16);color:#fff;}
.fwupdate-hero-main{position:relative;z-index:1;display:flex;flex-direction:column;gap:18px;}
.fwupdate-hero-badge{display:inline-flex;align-items:center;gap:8px;width:max-content;padding:8px 13px;border-radius:999px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.20);font-size:13px;font-weight:700;color:#eaf7f6;}
.fwupdate-hero-title{margin:0;font-size:clamp(28px,3vw,42px);font-weight:850;letter-spacing:-.035em;line-height:1.05;color:#fff;}
.fwupdate-hero-text{max-width:820px;margin:0;color:rgba(255,255,255,.84);font-size:15px;line-height:1.75;}
.fwupdate-hero-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.fwupdate-hero-media{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;min-height:220px;}
.fwupdate-hero-media img{width:min(260px,100%);height:auto;filter:drop-shadow(0 18px 30px rgba(0,0,0,.25));}
.fwupdate-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;}
.fwupdate-kpi-card{position:relative;overflow:hidden;padding:18px;border-radius:22px;background:rgba(255,255,255,.97);border:1px solid rgba(10,163,161,.18);box-shadow:0 14px 34px rgba(8,60,74,.08);min-height:150px;}
.fwupdate-kpi-card:after{content:"";position:absolute;right:-28px;top:-28px;width:86px;height:86px;border-radius:999px;background:rgba(10,163,161,.09);}
.fwupdate-kpi-icon{width:44px;height:44px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,rgba(10,110,92,.12),rgba(10,163,161,.12));color:var(--primary-color);font-size:22px;margin-bottom:12px;}
.fwupdate-kpi-label{position:relative;z-index:1;font-size:13px;font-weight:800;color:#0a6e5c;margin-bottom:8px;}
.fwupdate-kpi-value{position:relative;z-index:1;font-size:30px;font-weight:850;color:#073b4a;line-height:1;}
.fwupdate-kpi-hint{position:relative;z-index:1;font-size:12px;color:#607783;margin-top:8px;line-height:1.45;}
.fwupdate-layout{display:grid;grid-template-columns:minmax(360px,.42fr) minmax(0,.58fr);gap:18px;align-items:start;}
.fwupdate-card{border-radius:24px;background:rgba(255,255,255,.98);border:1px solid rgba(10,163,161,.18);box-shadow:0 16px 38px rgba(8,60,74,.08);overflow:hidden;}
.fwupdate-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding:18px 20px;border-bottom:1px solid rgba(10,163,161,.14);background:linear-gradient(180deg,rgba(238,245,244,.94),rgba(255,255,255,.98));}
.fwupdate-card-title-wrap{display:flex;align-items:flex-start;gap:12px;}
.fwupdate-card-icon{width:42px;height:42px;min-width:42px;border-radius:16px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--primary-color),var(--secondary-color));color:#fff;font-size:21px;box-shadow:0 10px 18px rgba(10,110,92,.18);}
.fwupdate-card-title{margin:0;font-size:18px;font-weight:850;color:var(--primary-color);letter-spacing:-.02em;}
.fwupdate-card-subtitle{margin:4px 0 0 0;font-size:13px;color:#647985;line-height:1.55;}
.fwupdate-card-body{padding:20px;}
.fwupdate-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
.fwupdate-form-group{display:flex;flex-direction:column;gap:7px;}
.fwupdate-form-group.is-full{grid-column:1/-1;}
.fwupdate-label{font-size:13px;font-weight:850;color:#006f61;}
.fwupdate-input,.fwupdate-card .form-control,.fwupdate-card .form-select{min-height:50px;border:1px solid rgba(8,60,74,.18)!important;border-radius:14px!important;background:#fff!important;color:#1f2d2f!important;box-shadow:0 8px 20px rgba(8,60,74,.035)!important;font-weight:600;}
.fwupdate-input:focus,.fwupdate-card .form-control:focus,.fwupdate-card .form-select:focus{border-color:rgba(10,163,161,.75)!important;box-shadow:0 0 0 .2rem rgba(10,163,161,.14)!important;}
.fwupdate-card textarea.form-control{min-height:126px!important;resize:vertical;}
.fwupdate-file-drop{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:176px;padding:22px;border:1.5px dashed rgba(10,163,161,.48);border-radius:22px;background:linear-gradient(180deg,rgba(10,163,161,.08),rgba(10,110,92,.04));text-align:center;cursor:pointer;transition:all .18s ease;}
.fwupdate-file-drop:hover{border-color:rgba(10,163,161,.82);background:linear-gradient(180deg,rgba(10,163,161,.12),rgba(10,110,92,.06));transform:translateY(-1px);}
.fwupdate-file-drop input{position:absolute;inset:0;opacity:0;cursor:pointer;}
.fwupdate-file-icon{width:62px;height:62px;border-radius:22px;display:flex;align-items:center;justify-content:center;background:#fff;color:var(--primary-color);font-size:30px;box-shadow:0 10px 26px rgba(8,60,74,.10);}
.fwupdate-file-title{font-weight:850;color:#006f61;}
.fwupdate-file-text{font-size:13px;color:#647985;line-height:1.55;max-width:520px;}
.fwupdate-file-name{display:none;max-width:100%;padding:8px 12px;border-radius:999px;background:rgba(10,110,92,.10);border:1px solid rgba(10,110,92,.16);color:var(--primary-color);font-size:12px;font-weight:850;overflow-wrap:anywhere;}
.fwupdate-file-name.is-visible{display:inline-flex;}
.fwupdate-static-info{display:flex;gap:12px;padding:14px;border-radius:18px;background:linear-gradient(135deg,rgba(10,163,161,.09),rgba(10,110,92,.045));border:1px solid rgba(10,163,161,.16);}
.fwupdate-static-info-icon{width:42px;height:42px;min-width:42px;border-radius:15px;display:flex;align-items:center;justify-content:center;background:#fff;color:#0a6e5c;font-size:21px;box-shadow:0 8px 18px rgba(8,60,74,.06);}
.fwupdate-static-info-title{font-size:14px;font-weight:850;color:#0a6e5c;margin-bottom:3px;}
.fwupdate-static-info-text{font-size:13px;line-height:1.6;color:#536b76;}
.fwupdate-upload-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;}
.fwupdate-table-shell{border-radius:24px;background:rgba(255,255,255,.98);border:1px solid rgba(10,163,161,.18);box-shadow:0 16px 38px rgba(8,60,74,.08);overflow:hidden;}
.fwupdate-table-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid rgba(10,163,161,.14);background:linear-gradient(180deg,rgba(238,245,244,.94),rgba(255,255,255,.98));}
.fwupdate-table-title{margin:0;font-size:18px;font-weight:850;color:var(--primary-color);}
.fwupdate-table-desc{margin:4px 0 0 0;font-size:13px;color:#647985;}
.fwupdate-table-body{padding:16px 18px 20px 18px;}
.fwupdate-compat-stack{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
.fwupdate-compat-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 9px;border-radius:999px;background:rgba(10,163,161,.10);border:1px solid rgba(10,163,161,.20);color:#0a6e5c;font-size:12px;font-weight:850;}
.fwupdate-compat-badge.is-app{background:rgba(230,185,88,.18);border-color:rgba(230,185,88,.34);color:#7a5200;}
.fwupdate-release-main{display:flex;flex-direction:column;gap:7px;min-width:0;}
.fwupdate-release-title{font-weight:850;color:var(--primary-color);line-height:1.35;}
.fwupdate-release-file{display:flex;flex-direction:column;gap:5px;min-width:0;}
.fwupdate-release-file-name{font-weight:750;color:#1f2d2f;font-size:13px;overflow-wrap:anywhere;line-height:1.35;}
.fwupdate-release-hash{font-size:11px;color:#647985;overflow-wrap:anywhere;line-height:1.35;}
.fwupdate-status-stack{display:flex;flex-direction:column;align-items:center;gap:6px;}
.fwupdate-actions{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;}
.fwupdate-mini-btn{width:34px;height:34px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;border:1px solid rgba(10,163,161,.16);background:#fff;color:var(--primary-color);transition:all .16s ease;}
.fwupdate-mini-btn:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(8,60,74,.10);}
.fwupdate-mini-btn.is-danger{color:#dc3545;border-color:rgba(220,53,69,.20);}
.fwupdate-mini-btn.is-warning{color:#b7791f;border-color:rgba(245,158,11,.22);}
.fwupdate-switch{position:relative;display:inline-flex;align-items:center;gap:8px;min-height:30px;padding:4px 10px;border-radius:999px;border:1px solid rgba(148,163,184,.28);background:rgba(226,232,240,.72);color:#64748b;font-size:12px;font-weight:850;white-space:nowrap;cursor:pointer;}
.fwupdate-switch-knob{position:relative;width:34px;height:20px;border-radius:999px;background:rgba(148,163,184,.45);transition:all .18s ease;}
.fwupdate-switch-knob:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:#fff;box-shadow:0 2px 6px rgba(15,23,42,.16);transition:all .18s ease;}
.fwupdate-switch.is-on{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.28);color:#0f8a5f;}
.fwupdate-switch.is-on .fwupdate-switch-knob{background:#0f8a5f;}
.fwupdate-switch.is-on .fwupdate-switch-knob:after{left:16px;}
.fwupdate-footer-note{display:flex;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;border-radius:18px;background:rgba(10,163,161,.08);border:1px solid rgba(10,163,161,.16);color:#536b76;font-size:13px;line-height:1.55;}
.fwupdate-footer-note i{color:var(--primary-color);font-size:18px;margin-top:1px;}
@media(max-width:1199.98px){.fwupdate-hero{grid-template-columns:1fr;}.fwupdate-layout{grid-template-columns:1fr;}.fwupdate-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:767.98px){.fwupdate-hero{padding:20px;border-radius:22px;}.fwupdate-kpi-grid{grid-template-columns:1fr;}.fwupdate-form-grid{grid-template-columns:1fr;}.fwupdate-table-head,.fwupdate-card-head{flex-direction:column;}.fwupdate-table-body{padding:12px;}}
.rawlog-packet-full { margin: 0; max-height: 180px; overflow: auto; white-space: pre-wrap; word-break: break-word; overflow-wrap: anywhere; background: #ffffff; border: 1px solid rgba(10, 163, 161, 0.18); border-radius: 14px; padding: 12px 14px; font-size: 12px; line-height: 1.55; color: #132d35; }

.rawlog-check-ok { background: rgba(16,185,129,.14); color: #047857; border: 1px solid rgba(16,185,129,.28); }

.rawlog-check-warning { background: rgba(245,158,11,.14); color: #92400e; border: 1px solid rgba(245,158,11,.28); }

.rawlog-check-error { background: rgba(239,68,68,.14); color: #b91c1c; border: 1px solid rgba(239,68,68,.28); }

.rawlog-meta-error { background: rgba(239,68,68,.12) !important; color: #b91c1c !important; border-color: rgba(239,68,68,.28) !important; }

.fwupdate-devices-shell{margin-top:18px;}
.fwupdate-device-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;min-width:0;}
.fwupdate-device-main{display:flex;align-items:center;justify-content:center;gap:8px;font-weight:850;color:#21313a;line-height:1.3;text-align:center;overflow-wrap:anywhere;}
.fwupdate-device-main i{font-size:20px;color:var(--primary-color);}
.fwupdate-device-meta{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;max-width:100%;}
.fwupdate-device-meta span{display:inline-flex;align-items:center;max-width:220px;padding:5px 8px;border-radius:9px;border:1px solid rgba(8,60,74,.20);background:rgba(255,255,255,.75);font-size:11px;font-weight:800;color:#344955;overflow-wrap:anywhere;word-break:break-word;line-height:1.25;}
.fwupdate-version-badge{display:inline-flex;align-items:center;justify-content:center;min-width:78px;padding:6px 11px;border-radius:999px;background:rgba(10,163,161,.10);border:1px solid rgba(10,163,161,.24);color:#0a6e5c;font-size:12px;font-weight:850;}
.fwupdate-version-badge.is-latest{background:rgba(230,185,88,.18);border-color:rgba(230,185,88,.34);color:#7a5200;}
.fwupdate-version-badge.is-empty{background:rgba(148,163,184,.12);border-color:rgba(148,163,184,.24);color:#64748b;}
.fwupdate-device-status-wrap{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;}
.fwupdate-device-status{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:850;border:1px solid transparent;white-space:nowrap;}
.fwupdate-device-status.is-ok{background:rgba(16,185,129,.12);border-color:rgba(16,185,129,.24);color:#0f8a5f;}
.fwupdate-device-status.is-warning{background:rgba(245,158,11,.15);border-color:rgba(245,158,11,.28);color:#9a5c00;}
.fwupdate-device-status.is-danger{background:rgba(220,53,69,.10);border-color:rgba(220,53,69,.22);color:#b42318;}
.fwupdate-device-status.is-muted{background:rgba(100,116,139,.10);border-color:rgba(100,116,139,.20);color:#64748b;}
.fwupdate-device-status.is-neutral{background:rgba(10,163,161,.08);border-color:rgba(10,163,161,.18);color:#0a6e5c;}
.fwupdate-device-assignment{font-size:11px;font-weight:750;color:#647985;line-height:1.3;}
.fwupdate-date-badge{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:6px 10px;border-radius:999px;background:rgba(8,60,74,.06);border:1px solid rgba(8,60,74,.12);color:#415765;font-size:12px;font-weight:800;white-space:nowrap;}
.fwupdate-table-body { width: 100%; overflow-x: auto; }
.fwupdate-table-body table { min-width: 980px; }
.fwupdate-release-file { display: flex; flex-direction: column; gap: 4px; max-width: 220px; }
.fwupdate-release-file-name { display: flex; align-items: flex-start; gap: 6px; color: var(--primary-color); font-weight: 800; line-height: 1.25; word-break: break-word; overflow-wrap: anywhere; }
.fwupdate-release-hash { color: var(--text-color-light); font-size: 12px; line-height: 1.35; word-break: break-word; overflow-wrap: anywhere; }
.fwupdate-tech-stack { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.fwupdate-tech-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 5px 10px; background: rgba(10, 163, 161, 0.12); border: 1px solid rgba(10, 163, 161, 0.22); color: var(--primary-color); font-size: 12px; font-weight: 800; white-space: nowrap; }
.fwupdate-usage-stack { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.fwupdate-usage-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.fwupdate-usage-badge.is-devices { background: rgba(10, 110, 92, 0.12); border: 1px solid rgba(10, 110, 92, 0.22); color: #075f50; }
.fwupdate-usage-badge.is-active { background: rgba(230, 185, 88, 0.18); border: 1px solid rgba(230, 185, 88, 0.32); color: #7a5500; }
.fwupdate-state-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 6px 11px; font-size: 12px; font-weight: 900; white-space: nowrap; }
.fwupdate-state-badge.is-published { background: rgba(16, 185, 129, 0.14); border: 1px solid rgba(16, 185, 129, 0.28); color: #047857; }
.fwupdate-state-badge.is-draft { background: rgba(100, 116, 139, 0.12); border: 1px solid rgba(100, 116, 139, 0.22); color: #475569; }
.fwupdate-state-badge.is-archived { background: rgba(245, 158, 11, 0.16); border: 1px solid rgba(245, 158, 11, 0.30); color: #92400e; }
.fwupdate-actions { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.fwupdate-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 12px; padding: 8px 10px; min-height: 36px; font-size: 12px; font-weight: 900; box-shadow: 0 8px 18px rgba(8, 60, 74, 0.12); transition: transform .16s ease, opacity .16s ease, box-shadow .16s ease; }
.fwupdate-action-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(8, 60, 74, 0.18); }
.fwupdate-action-btn:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.fwupdate-action-btn.is-publish { background: linear-gradient(135deg, #0a6e5c 0%, #0aa3a1 100%); color: #fff; }
.fwupdate-action-btn.is-delete { background: rgba(220, 53, 69, 0.10); color: #b42318; border: 1px solid rgba(220, 53, 69, 0.18); }
.fwupdate-date-stack { display: flex; flex-direction: column; align-items: center; gap: 2px; color: var(--primary-color); font-size: 13px; font-weight: 800; white-space: nowrap; }
.fwupdate-date-stack small { color: var(--text-color-light); font-size: 11px; font-weight: 700; }
.fwupdate-table-body { width: 100%; overflow-x: auto; }
.fwupdate-tech-stack { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.fwupdate-tech-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 5px 10px; background: rgba(10, 163, 161, 0.12); border: 1px solid rgba(10, 163, 161, 0.22); color: var(--primary-color); font-size: 12px; font-weight: 800; white-space: nowrap; }
.fwupdate-usage-stack { display: flex; flex-direction: column; align-items: center; gap: 6px; }
.fwupdate-usage-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.fwupdate-usage-badge.is-devices { background: rgba(10, 110, 92, 0.12); border: 1px solid rgba(10, 110, 92, 0.22); color: #075f50; }
.fwupdate-usage-badge.is-active { background: rgba(230, 185, 88, 0.18); border: 1px solid rgba(230, 185, 88, 0.32); color: #7a5500; }
.fwupdate-state-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 6px 11px; font-size: 12px; font-weight: 900; white-space: nowrap; }
.fwupdate-state-badge.is-published { background: rgba(16, 185, 129, 0.14); border: 1px solid rgba(16, 185, 129, 0.28); color: #047857; }
.fwupdate-state-badge.is-draft { background: rgba(100, 116, 139, 0.12); border: 1px solid rgba(100, 116, 139, 0.22); color: #475569; }
.fwupdate-state-badge.is-archived { background: rgba(245, 158, 11, 0.16); border: 1px solid rgba(245, 158, 11, 0.30); color: #92400e; }
.fwupdate-actions { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.fwupdate-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border: 0; border-radius: 12px; padding: 8px 10px; min-height: 36px; font-size: 12px; font-weight: 900; box-shadow: 0 8px 18px rgba(8, 60, 74, 0.12); transition: transform .16s ease, opacity .16s ease, box-shadow .16s ease; }
.fwupdate-action-btn:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 12px 24px rgba(8, 60, 74, 0.18); }
.fwupdate-action-btn:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.fwupdate-action-btn.is-publish { background: linear-gradient(135deg, #0a6e5c 0%, #0aa3a1 100%); color: #fff; }
.fwupdate-action-btn.is-delete { background: rgba(220, 53, 69, 0.10); color: #b42318; border: 1px solid rgba(220, 53, 69, 0.18); }
.fwupdate-date-stack { display: flex; flex-direction: column; align-items: center; gap: 2px; color: var(--primary-color); font-size: 13px; font-weight: 800; white-space: nowrap; }
.fwupdate-date-stack small { color: var(--text-color-light); font-size: 11px; font-weight: 700; }
.fwupdate-publish-all-btn { min-width: 230px; box-shadow: 0 14px 30px rgba(10,110,92,.22); }
.fwupdate-device-badges { display: flex; align-items: center; justify-content: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.fwupdate-qa-badge { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 5px 10px; font-size: 12px; font-weight: 800; white-space: nowrap; }
.fwupdate-qa-badge.is-activated { background: rgba(16,185,129,.14); border: 1px solid rgba(16,185,129,.28); color: #047857; }
.fwupdate-qa-badge.is-released { background: rgba(37,99,235,.12); border: 1px solid rgba(37,99,235,.24); color: #1d4ed8; }
.fwupdate-qa-badge.is-testing { background: rgba(124,58,237,.12); border: 1px solid rgba(124,58,237,.24); color: #6d28d9; }
.fwupdate-qa-badge.is-unknown { background: rgba(100,116,139,.12); border: 1px solid rgba(100,116,139,.22); color: #475569; }
.fwupdate-last-seen { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 999px; padding: 6px 10px; background: rgba(10,163,161,.12); border: 1px solid rgba(10,163,161,.22); color: var(--primary-color); font-size: 12px; font-weight: 800; white-space: nowrap; }
.fwupdate-table-body { width: 100%; overflow-x: auto; }
.fwupdate-action-btn.is-delete { background: rgba(220,53,69,.10); color: #b42318; border: 1px solid rgba(220,53,69,.18); }
.fwupdate-release-cell { display: flex; flex-direction: column; align-items: center; gap: 4px; }
.fwupdate-release-version { color: var(--primary-color); font-size: 16px; font-weight: 900; line-height: 1.2; }
.fwupdate-release-file { max-width: 180px; margin: 0 auto; }
.fwupdate-release-file-name { display: flex; align-items: flex-start; justify-content: center; gap: 6px; color: var(--primary-color); font-size: 13px; font-weight: 900; line-height: 1.25; word-break: break-word; overflow-wrap: anywhere; text-align: center; }
.fwupdate-release-file { max-width: 100%; margin: 0 auto; }
.fwupdate-release-file-name { display: flex; align-items: center; justify-content: center; gap: 6px; color: var(--primary-color); font-size: 12px; font-weight: 900; line-height: 1.25; word-break: break-word; overflow-wrap: anywhere; text-align: center; }
.fwupdate-actions { display: flex; align-items: center; justify-content: center; gap: 8px; flex-wrap: wrap; }
.fwupdate-action-btn { display: inline-flex; align-items: center; justify-content: center; gap: 6px; border-radius: 12px; padding: 8px 12px; min-height: 36px; border: 0; font-size: 12px; font-weight: 900; white-space: nowrap; }
.fwupdate-action-btn.is-delete { background: rgba(220, 53, 69, 0.10); color: #b42318; border: 1px solid rgba(220, 53, 69, 0.18); }
.fwupdate-action-btn:disabled { opacity: .45; cursor: not-allowed; }
.fwupdate-layout{display:grid;grid-template-columns:minmax(360px,500px) minmax(0,1fr);gap:18px;align-items:start;}
.fwupdate-layout > *{min-width:0;}
.fwupdate-table-shell{min-width:0;max-width:100%;overflow:hidden;}
.fwupdate-table-body{width:100%;max-width:100%;overflow:visible;padding:16px 18px 20px 18px;}
#firmware-update-releases-table{width:100%!important;max-width:100%!important;}
#firmware-update-releases-table th{white-space:nowrap;}
#firmware-update-releases-table td{white-space:normal;vertical-align:middle;}
#firmware-update-releases-table .dtr-control{cursor:pointer;}
#firmware-update-releases-table .fwupdate-release-cell{min-width:0;}
#firmware-update-releases-table .fwupdate-release-version{font-size:15px;font-weight:900;color:var(--primary-color);line-height:1.25;word-break:break-word;}
#firmware-update-releases-table .fwupdate-release-file{min-width:0;max-width:100%;}
#firmware-update-releases-table .fwupdate-release-file-name{display:flex;align-items:center;justify-content:center;gap:6px;max-width:100%;font-size:12px;font-weight:850;color:var(--primary-color);line-height:1.25;white-space:normal;word-break:break-word;overflow-wrap:anywhere;text-align:center;}
#firmware-update-releases-table .fwupdate-tech-stack{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
#firmware-update-releases-table .fwupdate-usage-stack{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;}
#firmware-update-releases-table .fwupdate-actions{display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:nowrap;}
#firmware-update-releases-table .fwupdate-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:38px;min-height:36px;padding:8px 10px;border-radius:12px;border:1px solid rgba(220,53,69,.18);background:rgba(220,53,69,.10);color:#b42318;font-size:12px;font-weight:900;white-space:nowrap;}
#firmware-update-releases-table .fwupdate-action-btn span{display:none;}
#firmware-update-releases-table .child{background:rgba(238,245,244,.72);}
#firmware-update-releases-table .dtr-details{width:100%;}
#firmware-update-releases-table .dtr-details li{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:8px 0;border-bottom:1px solid rgba(10,163,161,.10);}
#firmware-update-releases-table .dtr-title{font-weight:850;color:var(--primary-color);}
#firmware-update-releases-table .dtr-data{text-align:right;color:var(--text-color);overflow-wrap:anywhere;}
@media(max-width:1199.98px){.fwupdate-layout{grid-template-columns:1fr;}}
@media(max-width:767.98px){.fwupdate-table-body{padding:12px;}}

.autoprov-log-section { margin-top: 28px; padding: 24px; border: 1px solid rgba(10,163,161,.22); border-radius: 24px; background: rgba(255,255,255,.86); box-shadow: 0 18px 42px rgba(8,60,74,.08); }
.autoprov-log-hero { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.autoprov-log-badge-title { width: fit-content; margin-bottom: 12px; }
.autoprov-log-title { margin: 0; color: var(--primary-color); font-weight: 900; letter-spacing: -.03em; }
.autoprov-log-subtitle { margin: 8px 0 0 0; color: var(--primary-color); line-height: 1.65; max-width: 880px; }
.autoprov-log-filters { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin-bottom: 20px; padding: 16px; border-radius: 22px; background: rgba(10,163,161,.08); border: 1px solid rgba(10,163,161,.16); }
.autoprov-log-filter-card { padding: 14px; border-radius: 18px; background: rgba(255,255,255,.84); border: 1px solid rgba(10,163,161,.12); }
.autoprov-log-filter-card label { display: block; margin-bottom: 8px; color: var(--primary-color); font-weight: 800; }
.autoprov-log-filter { min-height: 48px; border-radius: 14px; border-color: rgba(10,163,161,.28); background-color: rgba(234,247,246,.92); color: var(--primary-color); font-weight: 800; }
.autoprov-log-input { min-height: 48px; border-radius: 14px; border-color: rgba(10,163,161,.28); background-color: rgba(234,247,246,.92); color: var(--primary-color); font-weight: 800; }
.autoprov-log-table-wrap { padding: 18px; border: 2px solid var(--primary-color); border-radius: 18px; background: rgba(238,247,246,.74); overflow-x: auto; }
.autoprov-log-time { display: flex; flex-direction: column; align-items: center; gap: 2px; color: #334155; font-weight: 800; }
.autoprov-log-time span { font-size: 11px; color: #64748b; }
.autoprov-log-status { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 7px 12px; border-radius: 999px; font-weight: 900; white-space: nowrap; }
.autoprov-log-status.is-ok { color: #047857; background: rgba(16,185,129,.16); border: 1px solid rgba(16,185,129,.35); }
.autoprov-log-status.is-info { color: #0369a1; background: rgba(14,165,233,.16); border: 1px solid rgba(14,165,233,.35); }
.autoprov-log-status.is-warning { color: #92400e; background: rgba(245,158,11,.16); border: 1px solid rgba(245,158,11,.38); }
.autoprov-log-status.is-error { color: #b91c1c; background: rgba(239,68,68,.14); border: 1px solid rgba(239,68,68,.34); }
.autoprov-log-status.is-neutral { color: #475569; background: rgba(100,116,139,.14); border: 1px solid rgba(100,116,139,.26); }
.autoprov-log-device-id { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-weight: 900; color: #1f2937; overflow-wrap: anywhere; }
.autoprov-log-device-id.is-empty { color: #64748b; }
.autoprov-log-reason { color: #334155; font-weight: 700; line-height: 1.5; }
.autoprov-log-chip-stack { display: flex; align-items: center; flex-wrap: wrap; gap: 7px; }
.autoprov-log-chip { display: inline-flex; align-items: center; padding: 6px 9px; border-radius: 10px; background: #eef4f8; border: 1px solid #ccd8e1; color: #475569; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; font-weight: 800; }
.autoprov-log-packet { max-width: 560px; padding: 12px 14px; border-radius: 14px; background: #fff; border: 1px solid rgba(10,163,161,.22); color: #0f172a; font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; font-size: 12px; line-height: 1.55; overflow-wrap: anywhere; }
.autoprov-log-packet-col { min-width: 420px; }
@media (max-width: 991.98px) { .autoprov-log-hero { flex-direction: column; align-items: flex-start; } }
@media (max-width: 991.98px) { .autoprov-log-filters { grid-template-columns: 1fr; } }

#firmware-update-devices-table{width:100%!important;}
#firmware-update-devices-table th{white-space:nowrap;}
#firmware-update-devices-table td{white-space:normal;vertical-align:middle;}
#firmware-update-devices-table .dt-column-control{margin-inline-start:4px;}
#firmware-update-devices-table .fwupdate-pill{display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;padding:6px 11px;font-size:12px;font-weight:900;white-space:nowrap;}
#firmware-update-devices-table .fwupdate-pill.is-version{background:rgba(10,163,161,.12);border:1px solid rgba(10,163,161,.24);color:var(--primary-color);}
#firmware-update-devices-table .fwupdate-pill.is-latest{background:rgba(230,185,88,.16);border:1px solid rgba(230,185,88,.32);color:#8a5a00;}
#firmware-update-devices-table .fwupdate-pill.is-mod{background:rgba(10,163,161,.14);border:1px solid rgba(10,163,161,.26);color:var(--primary-color);}
#firmware-update-devices-table .fwupdate-pill.is-online{background:rgba(16,185,129,.14);border:1px solid rgba(16,185,129,.28);color:#047857;}
#firmware-update-devices-table .fwupdate-pill.is-offline{background:rgba(100,116,139,.12);border:1px solid rgba(100,116,139,.22);color:#475569;}
.fwupdate-qa-badge.is-unmapped{background:rgba(100,116,139,.12);border:1px solid rgba(100,116,139,.28);color:#475569;}
.fwupdate-qa-badge.is-withdrawal{background:rgba(245,158,11,.14);border:1px solid rgba(245,158,11,.32);color:#92400e;}
.fwupdate-qa-badge.is-unknown{background:rgba(100,116,139,.12);border:1px solid rgba(100,116,139,.22);color:#475569;}

.flatpickr-calendar { z-index: 999999 !important; }
.qv-time-picker-input { cursor: pointer; caret-color: transparent; }
.qv-time-picker-input[readonly] { background-color: #fff; }

.qv-firmware-update-badge{display:inline-flex;align-items:center;justify-content:center;gap:.25rem;padding:.38rem .65rem;font-weight:800;border:1px solid transparent;white-space:normal;text-align:center;line-height:1.25;}
.qv-firmware-update-active{background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;border-color:#f59e0b;}
.qv-firmware-update-pending{background:linear-gradient(135deg,#e0f2fe,#bae6fd);color:#075985;border-color:#38bdf8;}
.qv-firmware-update-card{display:flex;align-items:flex-start;gap:.65rem;margin:.75rem 0;padding:.8rem .9rem;border-radius:18px;background:rgba(254,243,199,.92);border:1px solid rgba(245,158,11,.35);color:#92400e;font-weight:800;}
.qv-firmware-update-card i{font-size:1.25rem;line-height:1.2;}
.qv-firmware-update-card span{display:block;font-size:.82rem;font-weight:700;opacity:.9;}
.qv-firmware-update-card > div{flex:1;min-width:0;}
.qv-firmware-progress{width:100%;min-width:0;margin-top:.6rem;}
.qv-firmware-progress-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-bottom:.35rem;font-size:.78rem;font-weight:900;color:inherit;}
.qv-firmware-progress-head span{font-size:.78rem!important;font-weight:900!important;opacity:.9!important;}
.qv-firmware-progress-head strong{font-size:.78rem;font-weight:950;}
.qv-firmware-progress-track{position:relative;width:100%;height:9px;border-radius:999px;background:rgba(255,255,255,.78);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(146,64,14,.14);}
.qv-firmware-progress-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#f59e0b,#14b8a6);transition:width .35s ease;}
.qv-firmware-progress-fill.is-animated{background-size:200% 100%;animation:qvFirmwareProgressMove 1.25s linear infinite;}
.fwupdate-update-state{display:flex;flex-direction:column;align-items:center;gap:7px;min-width:220px;}
.fwupdate-update-state .qv-firmware-progress{max-width:230px;margin-top:0;}
.fwupdate-update-state .qv-firmware-progress-track{background:rgba(8,60,74,.08);box-shadow:inset 0 0 0 1px rgba(8,60,74,.12);}
@keyframes qvFirmwareProgressMove{0%{background-position:0 0;}100%{background-position:200% 0;}}

.fw-publish-confirm{display:flex;flex-direction:column;gap:1rem;width:100%;}
.fw-publish-confirm-lead{display:flex;flex-direction:column;gap:.35rem;padding:.9rem 1rem;border-radius:18px;background:rgba(224,242,254,.65);border:1px solid rgba(14,165,233,.22);color:#075985;}
.fw-publish-confirm-lead strong{font-size:1.05rem;color:#0f766e;}
.fw-publish-confirm-lead span{font-size:.92rem;line-height:1.5;font-weight:700;}
.fw-publish-confirm-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;}
.fw-publish-confirm-card{display:flex;align-items:center;gap:.75rem;padding:.9rem;border-radius:18px;background:rgba(255,255,255,.82);border:1px solid rgba(10,163,161,.18);box-shadow:0 12px 30px rgba(15,23,42,.06);}
.fw-publish-confirm-card.is-warning{background:rgba(254,243,199,.82);border-color:rgba(245,158,11,.35);}
.fw-publish-confirm-card.is-success{background:rgba(209,250,229,.78);border-color:rgba(16,185,129,.3);}
.fw-publish-confirm-icon{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(10,163,161,.12);color:#00796b;font-size:1.25rem;flex:0 0 auto;}
.fw-publish-confirm-value{font-size:1.15rem;font-weight:900;color:#0f766e;line-height:1.1;word-break:break-word;}
.fw-publish-confirm-label{font-size:.78rem;font-weight:800;color:#64748b;margin-top:.2rem;}
.fw-publish-confirm-note{display:flex;align-items:flex-start;gap:.55rem;padding:.85rem 1rem;border-radius:18px;background:rgba(254,243,199,.75);border:1px solid rgba(245,158,11,.28);color:#92400e;font-weight:800;line-height:1.45;}
.fw-publish-confirm-note i{font-size:1.15rem;line-height:1.3;}
@media(max-width:767.98px){.fw-publish-confirm-grid{grid-template-columns:1fr;}}

.charts-filter-panel .filters-grid {
    display: grid;
    grid-template-columns: minmax(260px, 320px) minmax(420px, 1fr) minmax(130px, 150px);
    gap: 14px;
    align-items: end;
}

.charts-filter-panel .quick-range-row {
    grid-column: 1 / -1;
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

@media (max-width: 1199.98px) {
    .charts-filter-panel .filters-grid {
        grid-template-columns: 1fr;
    }
}

.charts-filter-panel .filters-grid { display:grid; grid-template-columns:minmax(220px,280px) minmax(360px,1fr) auto; gap:14px; align-items:end; }
.charts-filter-panel .quick-range-row { display:flex; align-items:end; gap:10px; flex-wrap:wrap; }
.charts-filter-panel .filter-actions-row { display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin-top:14px; }
.charts-filter-panel .btn i { font-size:16px; line-height:1; }
.charts-filter-panel .btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; white-space:nowrap; }
.chart-card-bucket-control { display:inline-flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid rgba(255,255,255,.12); border-radius:14px; background:rgba(255,255,255,.06); color:rgba(255,255,255,.78); font-size:12px; font-weight:800; }
.chart-card-bucket-select { min-width:118px; border:0; outline:0; border-radius:10px; padding:7px 28px 7px 10px; background:rgba(4,18,24,.72); color:#fff; font-weight:900; cursor:pointer; }
.chart-card-bucket-select option { color:#10212a; background:#fff; }
@media (min-width:1200px) { .charts-filter-panel .quick-range-row { grid-column:auto; } }
@media (max-width:1199.98px) { .charts-filter-panel .filters-grid { grid-template-columns:1fr; } }
.chart-card-bucket-beta { display:inline-flex; align-items:center; margin-left:4px; padding:2px 6px; border-radius:999px; background:rgba(230,185,88,.18); color:#f8d477; font-size:10px; font-style:normal; font-weight:900; letter-spacing:.04em; }
.qv-device-fw-status-badge{background:linear-gradient(135deg,#fef3c7,#fde68a)!important;color:#92400e!important;border-color:#f59e0b!important;box-shadow:0 8px 18px rgba(245,158,11,.14);}
.qv-device-fw-status-badge i{color:#b45309!important;}
.chart-pref-type-select { margin-left:auto; min-width:110px; border:1px solid rgba(10,163,161,.22); border-radius:999px; padding:7px 12px; background:rgba(10,110,92,.08); color:var(--primary-color); font-weight:800; outline:0; cursor:pointer; }
.chart-pref-type-select option { background:#fff; color:#10212a; }

.chart-pref-type-select {
    margin-left: auto;
    min-width: 128px;
    height: 42px;
    padding: 0 40px 0 14px;
    border: 1px solid rgba(10, 163, 161, 0.28);
    border-radius: 999px;
    background-color: #e7f4f2;
    color: var(--primary-color);
    font-weight: 800;
    font-size: 0.95rem;
    line-height: 1;
    outline: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    box-shadow: inset 0 1px 0 rgba(255,255,255,0.45);
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
    background-image:
        linear-gradient(45deg, transparent 50%, var(--primary-color) 50%),
        linear-gradient(135deg, var(--primary-color) 50%, transparent 50%);
    background-position:
        calc(100% - 18px) calc(50% - 3px),
        calc(100% - 12px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

.chart-pref-type-select:hover {
    border-color: rgba(10, 163, 161, 0.42);
    background-color: #edf8f6;
}

.chart-pref-type-select:focus {
    border-color: var(--secondary-color);
    box-shadow: 0 0 0 0.22rem rgba(10, 163, 161, 0.16);
    background-color: #f4fbfa;
}

.chart-pref-type-select option {
    background: #ffffff;
    color: #16343a;
    font-weight: 700;
}

.charts-pref-toggle-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
}

.charts-pref-toggle-text {
    flex: 1 1 auto;
    min-width: 0;
}

.charts-pref-toggle-row .chart-pref-type-select {
    flex: 0 0 128px;
}

.btn-secondary-theme-compact{position:relative!important;top:0!important;transform:none!important;translate:none!important;transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .18s ease!important;}
.btn-secondary-theme-compact:hover{top:0!important;transform:none!important;translate:none!important;}
.btn-secondary-theme-compact:focus{top:0!important;transform:none!important;translate:none!important;}
.btn-secondary-theme-compact:active{top:0!important;transform:none!important;translate:none!important;}
.chart-pref-type-select { width:128px; }

.charts-pref-toggle-row .select2-container { margin-left:auto; flex:0 0 128px; }

.charts-pref-toggle-row .select2-container--default .select2-selection--single { height:28px; border:1px solid rgba(10,163,161,.34); border-radius: 20px !important; background:#e8f6f4; box-shadow:inset 0 1px 0 rgba(255,255,255,.5); }

.charts-pref-toggle-row .select2-container--default .select2-selection--single .select2-selection__rendered { height:28px; padding:0 36px 0 15px; color:var(--primary-color)!important; font-size:.95rem; font-weight:900; line-height:28px!important; }

.charts-pref-toggle-row .select2-container--default .select2-selection--single .select2-selection__arrow { width:34px; height:28px; right:4px; }

.chart-type-select-dropdown { border:1px solid rgba(10,163,161,.28); border-radius:16px; overflow:hidden; box-shadow:0 18px 42px rgba(7,32,38,.22); }

.chart-type-select-dropdown .select2-results__option { padding:10px 14px; color:#0a6e5c; font-weight:850; background:#ffffff; }

.chart-type-select-dropdown .select2-results__option--highlighted[aria-selected] { background:#0aa3a1; color:#ffffff; }

.chart-type-select-dropdown .select2-results__option[aria-selected=true] { background:#dff3ef; color:#075f51; }

.swal2-popup .select2-container--open .select2-selection--single { border-color:var(--secondary-color); box-shadow:0 0 0 .22rem rgba(10,163,161,.16); }

.chart-pref-type-select {
    margin-left: auto;
    flex: 0 0 124px;
    width: 124px;
    height: 40px;
    padding: 0 34px 0 14px;
    border: 1px solid rgba(10, 163, 161, 0.36);
    border-radius: 999px;
    background-color: #e8f6f4;
    color: var(--primary-color);
    font-size: 0.94rem;
    font-weight: 900;
    line-height: 40px;
    outline: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    background-image:
        linear-gradient(45deg, transparent 50%, var(--primary-color) 50%),
        linear-gradient(135deg, var(--primary-color) 50%, transparent 50%);
    background-position:
        calc(100% - 17px) calc(50% - 3px),
        calc(100% - 11px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

.chart-pref-type-select:hover {
    border-color: rgba(10, 163, 161, 0.58);
    background-color: #f0fbf9;
}

.chart-pref-type-select:focus {
    border-color: var(--secondary-color);
    box-shadow: 0 0 0 0.2rem rgba(10, 163, 161, 0.16);
}

.chart-pref-type-select option {
    background: #ffffff;
    color: #16343a;
    font-weight: 800;
}

.charts-pref-toggle-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: nowrap;
}

.charts-pref-toggle-text {
    flex: 1 1 auto;
    min-width: 0;
}

.charts-pref-toggle-row {
    display: flex;
    align-items: center;
    gap: 12px;
    width: 100%;
}

.charts-pref-switch-label {
    display: flex;
    align-items: center;
    gap: 12px;
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
    cursor: pointer;
}

.charts-pref-toggle-text {
    flex: 1 1 auto;
    min-width: 0;
}

.chart-pref-type-select {
    position: relative;
    z-index: 3;
    flex: 0 0 118px;
    width: 118px;
    height: 38px;
    padding: 0 32px 0 13px;
    border: 1px solid rgba(10, 163, 161, 0.42);
    border-radius: 14px;
    background-color: #e8f6f4;
    color: var(--primary-color);
    font-size: 0.92rem;
    font-weight: 900;
    line-height: 38px;
    outline: 0;
    cursor: pointer;
    appearance: none;
    -webkit-appearance: none;
    -moz-appearance: none;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.65);
    background-image:
        linear-gradient(45deg, transparent 50%, var(--primary-color) 50%),
        linear-gradient(135deg, var(--primary-color) 50%, transparent 50%);
    background-position:
        calc(100% - 17px) calc(50% - 3px),
        calc(100% - 11px) calc(50% - 3px);
    background-size: 6px 6px, 6px 6px;
    background-repeat: no-repeat;
}

.chart-pref-type-select:hover {
    border-color: rgba(10, 163, 161, 0.62);
    background-color: #f0fbf9;
}

.chart-pref-type-select:focus {
    border-color: var(--secondary-color);
    border-radius: 14px;
    box-shadow: 0 0 0 0.18rem rgba(10, 163, 161, 0.14);
}

.chart-pref-type-select option {
    background: #ffffff;
    color: #16343a;
    font-weight: 800;
}

.status-indicator .circle.status-verification {
    background: linear-gradient(135deg, #f59e0b, #fbbf24);
    box-shadow: 0 0 0 8px rgba(245, 158, 11, 0.16);
}

.status-indicator .circle.status-deleted {
    background: linear-gradient(135deg, #64748b, #334155);
    box-shadow: 0 0 0 8px rgba(100, 116, 139, 0.16);
}

.status-indicator .circle.status-banned {
    background: linear-gradient(135deg, #dc2626, #991b1b);
    box-shadow: 0 0 0 8px rgba(220, 38, 38, 0.16);
}

#user-catalog-table .status-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

#user-catalog-table .circle.pulse {
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    opacity: 1;
    box-shadow: 0 8px 18px rgba(15, 23, 42, 0.12);
}

#user-catalog-table .circle.pulse::after {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.18);
}

#user-catalog-table .circle.status-on {
    background: linear-gradient(135deg, #10b981, #059669) !important;
    box-shadow: 0 0 0 8px rgba(16, 185, 129, 0.16), 0 8px 18px rgba(15, 23, 42, 0.12);
}

#user-catalog-table .circle.status-off {
    background: linear-gradient(135deg, #64748b, #475569) !important;
    box-shadow: 0 0 0 8px rgba(100, 116, 139, 0.16), 0 8px 18px rgba(15, 23, 42, 0.12);
}

#user-catalog-table .circle.status-verification {
    background: linear-gradient(135deg, #f59e0b, #fbbf24) !important;
    box-shadow: 0 0 0 8px rgba(245, 158, 11, 0.18), 0 8px 18px rgba(15, 23, 42, 0.12);
}

#user-catalog-table .circle.status-deleted {
    background: linear-gradient(135deg, #475569, #1e293b) !important;
    box-shadow: 0 0 0 8px rgba(71, 85, 105, 0.18), 0 8px 18px rgba(15, 23, 42, 0.12);
}

#user-catalog-table .circle.status-banned {
    background: linear-gradient(135deg, #dc2626, #991b1b) !important;
    box-shadow: 0 0 0 8px rgba(220, 38, 38, 0.18), 0 8px 18px rgba(15, 23, 42, 0.12);
}

#user-catalog-table .status-indicator {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
}

#user-catalog-table .circle.pulse {
    --status-pulse: rgba(16, 185, 129, 0.28);
    width: 34px;
    height: 34px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 0;
    opacity: 1;
    animation: users-status-pulse 1.8s infinite;
}

#user-catalog-table .circle.pulse::after {
    content: '';
    width: 10px;
    height: 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.92);
}

#user-catalog-table .circle.status-on {
    background: linear-gradient(135deg, #10b981, #059669) !important;
    --status-pulse: rgba(16, 185, 129, 0.34);
}

#user-catalog-table .circle.status-off {
    background: linear-gradient(135deg, #64748b, #475569) !important;
    --status-pulse: rgba(100, 116, 139, 0.34);
}

#user-catalog-table .circle.status-verification {
    background: linear-gradient(135deg, #f59e0b, #fbbf24) !important;
    --status-pulse: rgba(245, 158, 11, 0.38);
}

#user-catalog-table .circle.status-deleted {
    background: linear-gradient(135deg, #475569, #1e293b) !important;
    --status-pulse: rgba(71, 85, 105, 0.36);
}

#user-catalog-table .circle.status-banned {
    background: linear-gradient(135deg, #dc2626, #991b1b) !important;
    --status-pulse: rgba(220, 38, 38, 0.36);
}

@keyframes users-status-pulse {
    0% {
        box-shadow: 0 0 0 0 var(--status-pulse), 0 8px 18px rgba(15, 23, 42, 0.12);
    }

    70% {
        box-shadow: 0 0 0 10px rgba(0, 0, 0, 0), 0 8px 18px rgba(15, 23, 42, 0.12);
    }

    100% {
        box-shadow: 0 0 0 0 rgba(0, 0, 0, 0), 0 8px 18px rgba(15, 23, 42, 0.12);
    }
}

.deleted-user-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
}

.deleted-user-message {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 7px 11px;
    border-radius: 999px;
    background: rgba(71, 85, 105, 0.12);
    color: #334155;
    font-weight: 800;
    font-size: 0.82rem;
}

.fw-testing-update-btn {
    background: linear-gradient(135deg, #7c3aed, #a855f7);
    color: #fff;
    border: 1px solid rgba(168, 85, 247, 0.35);
    box-shadow: 0 10px 24px rgba(124, 58, 237, 0.22);
}

.fw-testing-update-btn:hover {
    color: #fff;
    transform: translateY(-1px);
    box-shadow: 0 14px 30px rgba(124, 58, 237, 0.28);
}

/* Testing device select - closed */
.dash-action-modal--firmware-testing .select2-container {
    width: 100% !important;
}

.dash-action-modal--firmware-testing .select2-container--default .select2-selection--single {
    min-height: 58px !important;
    background: #f8fbfb !important;
    border: 1px solid rgba(10, 163, 161, 0.22) !important;
    border-radius: 18px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.9) !important;
    display: flex !important;
    align-items: center !important;
}

.dash-action-modal--firmware-testing .select2-container--default .select2-selection--single .select2-selection__rendered {
    color: #29434a !important;
    line-height: 1.35 !important;
    padding-left: 14px !important;
    padding-right: 42px !important;
    font-weight: 700 !important;
}

.dash-action-modal--firmware-testing .select2-container--default .select2-selection--single .select2-selection__arrow {
    height: 58px !important;
    right: 12px !important;
}

/* Dropdown opened inside Swal */
.swal2-container .select2-container--open .select2-dropdown {
    background: #fff !important;
    border: 1px solid rgba(10, 163, 161, 0.24) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 45px rgba(15, 48, 56, 0.18) !important;
    overflow: hidden !important;
}

.swal2-container .select2-search--dropdown {
    background: #fff !important;
    padding: 12px !important;
    border-bottom: 1px solid rgba(10, 163, 161, 0.10) !important;
}

.swal2-container .select2-search--dropdown .select2-search__field {
    height: 44px !important;
    background: #fdfefe !important;
    border: 1px solid rgba(10, 163, 161, 0.22) !important;
    border-radius: 14px !important;
    padding: 10px 12px !important;
    color: #29434a !important;
    outline: none !important;
    box-shadow: none !important;
}

.swal2-container .select2-results__options {
    padding: 8px !important;
    background: #fff !important;
    max-height: 320px !important;
}

.swal2-container .select2-results__option {
    background: #fff !important;
    border: 1px solid rgba(10, 163, 161, 0.10) !important;
    border-radius: 16px !important;
    margin-bottom: 8px !important;
    padding: 12px 14px !important;
    color: #29434a !important;
}

.swal2-container .select2-results__option--highlighted.select2-results__option--selectable {
    background: #f3fbfb !important;
    border-color: rgba(10, 163, 161, 0.26) !important;
    color: #17343a !important;
}

.swal2-container .select2-results__option[aria-selected="true"] {
    background: #eef9f9 !important;
    border-color: rgba(10, 163, 161, 0.24) !important;
}

.log-item-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-top:10px;
}

.log-status-chip{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:0 10px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.04);
  color:rgba(255,255,255,.68);
  font-size:.76rem;
  font-weight:800;
  text-transform:uppercase;
}

.log-undo-btn{
  border:none;
  min-height:32px;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,179,0,.14);
  border:1px solid rgba(255,179,0,.42);
  color:#ffcf40;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-size:.82rem;
  font-weight:900;
  transition:.18s ease;
}

.log-undo-btn:hover{
  background:rgba(255,179,0,.22);
  color:#fff;
  transform:translateY(-1px);
}

#thessaloniki-app .leaflet-control-layers,
.overviewdash-hero-map-stage .leaflet-control-layers {
    border: 1px solid rgba(10, 163, 161, 0.22);
    border-radius: 14px;
    box-shadow: 0 12px 32px rgba(15, 48, 56, 0.18);
    overflow: hidden;
    z-index: 1000;
}

#thessaloniki-app .leaflet-control-layers-toggle,
.overviewdash-hero-map-stage .leaflet-control-layers-toggle {
    width: 38px;
    height: 38px;
}

#thessaloniki-app .leaflet-control-layers-expanded,
.overviewdash-hero-map-stage .leaflet-control-layers-expanded {
    background: rgba(255, 255, 255, 0.96);
    color: #17343a;
    padding: 0.65rem 0.8rem;
    font-weight: 750;
}

.leaflet-top.leaflet-right {
    z-index: 1005;
}

.leaflet-popup-content {
    max-width: min(92vw, 520px);
}

.iot-map-popup,
.iot-map-popup__body,
.iot-map-popup__manual-section {
    max-width: 100%;
}

.iot-map-popup__manual-inline {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0.55rem;
    width: 100%;
    align-items: stretch;
}

.iot-map-popup__manual-inline .device-mini-toggle--popup-inline {
    width: 100%;
    min-width: 0;
    margin: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: space-between;
    gap: 0.45rem;
    border-radius: 999px;
    padding: 0.42rem 0.55rem 0.42rem 0.7rem;
    background: rgba(255, 255, 255, 0.86);
    border: 1px solid rgba(10, 163, 161, 0.12);
    box-shadow: 0 6px 18px rgba(15, 48, 56, 0.055);
}

.iot-map-popup__manual-inline .device-mini-toggle-tag {
    min-width: 0;
    font-size: 0.78rem;
    font-weight: 900;
    color: #075e58;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.iot-map-popup__manual-inline .device-mini-toggle-slider {
    flex: 0 0 auto;
}

.iot-map-popup__manual-inline .device-mini-toggle--popup-inline.is-pending {
    opacity: 0.72;
}

@media (max-width: 390px) {
    .iot-map-popup__manual-inline {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .iot-map-popup__manual-inline .device-mini-toggle-tag {
        font-size: 0.72rem;
    }
}

.leaflet-popup-content .iot-map-popup__manual-inline,
.iot-map-popup .iot-map-popup__manual-inline {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(82px, 98px)) !important;
    gap: 0.45rem !important;
    width: 100% !important;
    max-width: 100% !important;
    justify-content: center !important;
    justify-items: stretch !important;
    align-items: stretch !important;
}

.leaflet-popup-content .iot-map-popup__manual-inline .device-mini-toggle--popup-inline,
.iot-map-popup .iot-map-popup__manual-inline .device-mini-toggle--popup-inline {
    width: 100% !important;
    max-width: none !important;
    min-width: 82px !important;
    min-height: 29px !important;
    padding: 0.3rem 0.5rem !important;
    gap: 0.38rem !important;
    justify-content: space-between !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 1px solid rgba(15, 23, 42, 0.08) !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08) !important;
}

.leaflet-popup-content .iot-map-popup__manual-inline .device-mini-toggle-tag,
.iot-map-popup .iot-map-popup__manual-inline .device-mini-toggle-tag {
    flex: 0 0 auto !important;
    min-width: 1.55rem !important;
    max-width: none !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
    font-size: 0.72rem !important;
    font-weight: 800 !important;
    color: var(--primary-color) !important;
}

.leaflet-popup-content .iot-map-popup__manual-inline .device-mini-toggle-slider,
.iot-map-popup .iot-map-popup__manual-inline .device-mini-toggle-slider {
    flex: 0 0 auto !important;
}

.leaflet-popup-content .iot-map-popup__manual-inline .device-mini-toggle--popup-inline.is-loading,
.iot-map-popup .iot-map-popup__manual-inline .device-mini-toggle--popup-inline.is-loading {
    box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08) !important;
    padding-left: 0.42rem !important;
}

.leaflet-popup-content .iot-map-popup__manual-inline .device-mini-toggle--popup-inline.is-loading::before,
.iot-map-popup .iot-map-popup__manual-inline .device-mini-toggle--popup-inline.is-loading::before {
    width: 8px !important;
    height: 8px !important;
    flex: 0 0 8px !important;
    border-width: 2px !important;
}


