/* Centro dispositivi — pannello taskbar dark (stile ntfy / checklist) */

.taskbar-fleet-btn {
  position: relative;
  width: 40px;
  height: 40px;
  border: none;
  background: transparent;
  border-radius: var(--radius-sm);
  color: var(--text-1);
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background 0.1s;
  cursor: pointer;
}

.taskbar-fleet-btn:hover,
.taskbar-fleet-btn.active {
  background: var(--bg-hover);
}

.taskbar-fleet-btn svg {
  width: 18px;
  height: 18px;
}

.fleet-panel {
  position: absolute;
  bottom: calc(var(--taskbar-h) + 8px);
  right: 8px;
  width: min(520px, calc(100vw - 16px));
  max-height: min(78vh, calc(100dvh - var(--taskbar-h) - 24px));
  background: rgba(36, 36, 36, 0.96);
  backdrop-filter: var(--blur);
  -webkit-backdrop-filter: var(--blur);
  border: 1px solid var(--border-strong);
  border-radius: var(--radius);
  box-shadow: var(--shadow-window);
  display: none;
  flex-direction: column;
  z-index: 250;
  overflow: hidden;
  color: var(--text-1);
}

.fleet-panel.open {
  display: flex;
  animation: checklist-enter 0.22s cubic-bezier(0.22, 1, 0.36, 1) both;
}

.fleet-panel-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  padding: 14px 14px 10px;
  border-bottom: 1px solid var(--border);
  flex-shrink: 0;
}

.fleet-panel-title {
  margin: 0 0 4px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-1);
  display: flex;
  align-items: center;
  gap: 7px;
}

.fleet-panel-title svg {
  width: 16px;
  height: 16px;
  color: var(--accent);
}

.fleet-panel-sub {
  margin: 0;
  font-size: 0.6875rem;
  color: var(--text-2);
  line-height: 1.35;
}

.fleet-panel-close {
  width: 28px;
  height: 28px;
  border: none;
  border-radius: var(--radius-sm);
  background: transparent;
  color: var(--text-2);
  font-size: 1.2rem;
  cursor: pointer;
  flex-shrink: 0;
  line-height: 1;
}

.fleet-panel-close:hover {
  background: var(--bg-hover);
  color: var(--text-1);
}

.fleet-panel-body {
  overflow-y: auto;
  padding: 14px 16px 18px;
  flex: 1;
  min-height: 0;
}

.fleet-actions {
  display: flex;
  gap: 8px;
  margin-bottom: 14px;
  flex-wrap: wrap;
}

.fleet-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 8px 14px;
  border-radius: var(--radius-sm);
  font-size: 0.8125rem;
  font-weight: 500;
  cursor: pointer;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-1);
  transition: background 0.12s, border-color 0.12s;
}

.fleet-btn:hover {
  background: rgba(255, 255, 255, 0.1);
  border-color: rgba(255, 255, 255, 0.22);
}

.fleet-btn.primary,
.fleet-btn:not(.ghost):not(.danger) {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}

.fleet-btn.primary:hover,
.fleet-btn:not(.ghost):not(.danger):hover {
  filter: brightness(1.08);
}

.fleet-btn.ghost {
  background: rgba(255, 255, 255, 0.06);
  color: var(--text-1);
}

.fleet-btn.danger {
  background: rgba(244, 67, 54, 0.15);
  border-color: rgba(244, 67, 54, 0.35);
  color: #ff8a80;
}

.fleet-btn.sm {
  padding: 6px 10px;
  font-size: 0.75rem;
}

.fleet-device {
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  padding: 12px;
  margin-bottom: 10px;
  background: rgba(0, 0, 0, 0.18);
}

.fleet-device-head {
  display: flex;
  align-items: center;
  gap: 10px;
}

.fleet-device-ic {
  width: 36px;
  height: 36px;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.08);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  color: var(--accent);
  flex-shrink: 0;
}

.fleet-device-meta {
  flex: 1;
  min-width: 0;
}

.fleet-device-name {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--text-1);
}

.fleet-device-sub {
  font-size: 0.6875rem;
  color: var(--text-2);
  margin-top: 2px;
}

.fleet-dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--text-3);
  flex: 0 0 auto;
}

.fleet-dot.on {
  background: #37d67a;
  box-shadow: 0 0 0 2px rgba(36, 36, 36, 0.96);
}

.fleet-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}

.fleet-chip {
  font-size: 0.6875rem;
  padding: 3px 8px;
  border-radius: 999px;
  background: rgba(255, 255, 255, 0.1);
  color: var(--text-2);
}

.fleet-device-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.fleet-cmd-bar {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.fleet-cmd-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.fleet-cmd-offline {
  margin: 10px 0 0;
  font-size: 0.75rem;
  color: var(--text-2);
}

.fleet-cmd-note {
  margin: 10px 0 0;
  font-size: 0.75rem;
  color: #86efac;
}

.fleet-cmd-status {
  margin: 8px 0 0;
  font-size: 0.75rem;
  color: var(--accent, #7eb8ff);
}

.fleet-cmd-status[data-status="error"] {
  color: #f87171;
}

.fleet-cmd-status[data-status="executed"] {
  color: #86efac;
}

.fleet-empty {
  font-size: 0.8125rem;
  color: var(--text-2);
  text-align: center;
  padding: 24px 8px;
}

.fleet-enroll-qr {
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto 16px;
  background: #fff;
  border-radius: 12px;
  padding: 14px;
  line-height: 0;
  width: fit-content;
  max-width: 100%;
}

.fleet-enroll-qr svg {
  display: block;
  width: min(220px, 100%);
  height: auto;
}

/* Wizard arruolamento */
.fleet-wizard {
  display: flex;
  flex-direction: column;
  min-height: min(420px, calc(78vh - var(--taskbar-h) - 80px));
}

.fleet-wizard-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  flex-shrink: 0;
}

.fleet-wizard-steps {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.6875rem;
  color: var(--text-3);
  flex-shrink: 0;
}

.fleet-wizard-steps .on {
  color: var(--accent);
  font-weight: 600;
}

.fleet-wizard-steps .sep {
  opacity: 0.5;
}

.fleet-wizard-lead {
  margin-top: 0;
  flex-shrink: 0;
}

.fleet-control-phone {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  padding: 12px 14px;
  margin-bottom: 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.03);
  cursor: pointer;
  user-select: none;
}

.fleet-control-phone.on,
.fleet-control-phone:hover:not(.disabled) {
  border-color: var(--accent);
  background: rgba(59, 130, 246, 0.08);
}

.fleet-control-phone.disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.fleet-control-phone input[type="radio"] {
  margin-top: 3px;
  flex-shrink: 0;
}

.fleet-control-phone-title {
  font-size: 0.875rem;
  font-weight: 600;
  display: flex;
  align-items: center;
  gap: 8px;
}

.fleet-control-phone-desc,
.fleet-control-phone-note {
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: var(--text-2);
  line-height: 1.45;
}

.fleet-enroll-divider {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 14px 0 10px;
  font-size: 0.7rem;
  color: var(--text-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.fleet-enroll-divider::before,
.fleet-enroll-divider::after {
  content: "";
  flex: 1;
  height: 1px;
  background: var(--border);
}

.fleet-custom-mode-label {
  margin: 0 0 8px;
  user-select: none;
}

.fleet-custom-mode-label span {
  flex: 1;
}

.fleet-chip-control {
  background: rgba(59, 130, 246, 0.15);
  color: var(--accent);
}

.fleet-control-edit {
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid var(--border);
}

.fleet-wizard-scroll {
  flex: 1;
  min-height: 0;
  overflow-y: auto;
  margin: 0 -4px;
  padding: 0 4px 8px;
}

.fleet-wizard-foot {
  flex-shrink: 0;
  padding-top: 12px;
  border-top: 1px solid var(--border);
  margin-top: 8px;
}

.fleet-btn-block {
  width: 100%;
  justify-content: center;
  padding: 12px 16px;
  font-size: 0.875rem;
}

.fleet-qr-screen {
  text-align: center;
}

.fleet-qr-kicker {
  margin: 0 0 12px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-1);
}

.fleet-qr-steps {
  text-align: left;
  margin: 0 0 14px;
  padding: 0;
  list-style: none;
  counter-reset: fleet-qr-step;
}

.fleet-qr-steps li {
  position: relative;
  padding: 4px 0 4px 30px;
  font-size: 0.8125rem;
  color: var(--text-2);
  line-height: 1.4;
  counter-increment: fleet-qr-step;
}

.fleet-qr-steps li::before {
  content: counter(fleet-qr-step);
  position: absolute;
  left: 0;
  top: 3px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: var(--accent);
  color: #fff;
  font-size: 0.6875rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

.fleet-qr-areas {
  font-size: 0.75rem;
  color: var(--text-2);
  text-align: left;
  margin: 0 0 12px;
  line-height: 1.4;
}

.fleet-qr-link-row {
  display: flex;
  gap: 8px;
  align-items: center;
  margin-bottom: 8px;
}

.fleet-qr-link-row .fleet-inp {
  margin-top: 0;
  flex: 1;
  min-width: 0;
  font-size: 0.6875rem;
}

.fleet-qr-exp {
  margin-top: 0;
  margin-bottom: 12px;
}

.fleet-qr-actions {
  display: flex;
  gap: 8px;
  justify-content: center;
  flex-wrap: wrap;
}

.fleet-area-group {
  margin-bottom: 14px;
}

.fleet-area-group-title {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--text-1);
  margin-bottom: 6px;
  letter-spacing: 0.01em;
}

.fleet-area-list {
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.fleet-area-item {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 0.8125rem;
  color: var(--text-1);
  padding: 8px 10px;
  border-radius: var(--radius-sm);
  cursor: pointer;
  user-select: none;
}

.fleet-area-item span {
  color: var(--text-1);
  flex: 1;
  min-width: 0;
}

.fleet-area-item:hover {
  background: var(--bg-hover);
}

.fleet-area-item.locked {
  opacity: 0.85;
}

.fleet-area-item.locked span {
  color: var(--text-2);
}

.fleet-area-item input[type="checkbox"] {
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  accent-color: var(--accent);
  cursor: pointer;
}

.fleet-lock {
  margin-left: auto;
  color: var(--text-3);
  font-size: 0.6875rem;
  display: flex;
  align-items: center;
  gap: 4px;
  flex-shrink: 0;
}

.fleet-note {
  font-size: 0.75rem;
  color: var(--text-2);
  margin-top: 10px;
  line-height: 1.45;
}

.fleet-note code {
  font-size: 0.6875rem;
  color: var(--text-2);
  word-break: break-all;
  background: rgba(0, 0, 0, 0.28);
  padding: 2px 6px;
  border-radius: 4px;
}

.fleet-note.warn {
  color: #ffb86b;
  background: rgba(255, 184, 107, 0.12);
  border: 1px solid rgba(255, 184, 107, 0.35);
  border-radius: var(--radius-sm);
  padding: 8px 10px;
}

.fleet-edit-title {
  margin: 12px 0 4px;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--text-1);
}

.fleet-field {
  display: block;
  font-size: 0.8125rem;
  color: var(--text-2);
  margin-top: 10px;
}

.fleet-field:first-of-type {
  margin-top: 0;
}

.fleet-inp {
  display: block;
  width: 100%;
  box-sizing: border-box;
  margin-top: 6px;
  padding: 8px 10px;
  border: 1px solid var(--border);
  border-radius: var(--radius-sm);
  background: rgba(0, 0, 0, 0.25);
  color: var(--text-1);
  font-size: 0.8125rem;
}

.fleet-inp:focus {
  outline: none;
  border-color: var(--accent);
}

select.fleet-inp,
.fleet-select {
  color-scheme: dark;
  cursor: pointer;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%23b8bcc8' d='M1 1l5 5 5-5'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 30px;
}

select.fleet-inp option,
.fleet-select option {
  background: #2a2a2a;
  color: #f0f0f0;
}

.fleet-check-row {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  font-size: 0.8125rem;
  color: var(--text-1);
  cursor: pointer;
}

.fleet-check-row input {
  accent-color: var(--accent);
}

.fleet-log {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--border);
  font-size: 0.6875rem;
  color: var(--text-3);
  list-style: none;
  padding-left: 0;
}

.fleet-log li {
  margin: 4px 0;
  color: var(--text-2);
}

.fleet-area-pick {
  margin-top: 12px;
}

.fleet-err {
  font-size: 0.75rem;
  color: #ff8a80;
  min-height: 16px;
  margin-top: 8px;
}

.fleet-revoked {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--border);
}

.fleet-revoked summary {
  cursor: pointer;
  font-size: 0.75rem;
  color: var(--text-2);
  user-select: none;
  list-style: none;
}

.fleet-revoked summary::-webkit-details-marker {
  display: none;
}

.fleet-revoked-list {
  margin-top: 10px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.fleet-revoked-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--radius-sm);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid var(--border);
  opacity: 0.85;
}

.fleet-revoked-meta {
  min-width: 0;
}

.fleet-revoked-meta strong {
  display: block;
  font-size: 0.8125rem;
  color: var(--text-1);
}

.fleet-revoked-meta span {
  display: block;
  font-size: 0.6875rem;
  color: var(--text-3);
  margin-top: 2px;
}

/* Device session: nascondi elementi non autorizzati */
body[data-fleet-device="1"] .taskbar-ntfy-btn,
body[data-fleet-device="1"] .taskbar-checklist-btn,
body[data-fleet-device="1"] .taskbar-fleet-btn,
body[data-fleet-device="1"] #start-btn {
  display: none !important;
}
