:root{
  --bg-base:#14181f;--bg-sidebar:#172636;--bg-topbar:#1d222a;--bg-card:#1d222a;
  --bg-elevated:#232b36;--bg-input:#10151c;--bg-hover:#253044;--bg-active:#1d334f;
  --border:#2a3347;--border-strong:#3a4860;--accent:#2196f3;--accent-hover:#42a5f5;
  --text-primary:#e8eaf0;--text-muted:#8d97aa;--text-label:#aab2c2;
  --success:#34d399;--warning:#fbbf24;--danger:#f87171;--info:#60a5fa;
  --radius:9px;--shadow:0 14px 36px rgba(0,0,0,.2);--sidebar-w:260px;
}
html{background:var(--bg-base);color-scheme:dark}
body{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;background:var(--bg-base);color:var(--text-primary)}
a{color:var(--accent)}
.main-wrapper>.content,.main-wrapper>.row,.main-wrapper>.container,.main-wrapper>.qrdd,.main-wrapper>.xcqr-main,.main-wrapper>.main-content,.main-wrapper>.settings-section{width:100%;max-width:1280px;margin:0 auto;padding:28px!important}
.main-wrapper>.row{display:block}
.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:24px}
.page-header h1,.page-header h2{margin:0;color:var(--text-primary);font-size:22px;font-weight:650;letter-spacing:-.02em}
.page-header p{color:var(--text-muted);margin:5px 0 0}
.card,.xcqr-card{background:var(--bg-card)!important;border:1px solid var(--border)!important;border-radius:12px!important;box-shadow:none!important;color:var(--text-primary)!important;padding:20px!important;margin-bottom:20px}
.card-header,.card-title-row{background:transparent!important;border:0!important;border-bottom:1px solid var(--border)!important;padding:0 0 15px!important;margin:0 0 18px!important;display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.card-header h2,.card-header h4,.card-title,.card h2{color:var(--text-primary)!important;margin:0;font-size:16px!important;font-weight:650!important}
.card-category,.card-desc,.card-sub,.card-header p{color:var(--text-muted)!important;margin:4px 0 0!important;font-size:12px!important}
.card-body{padding:0!important}
.form-grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.grid-full,.xcqr-wide{grid-column:1/-1}
.field,.form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.field label,.form-label,label{color:var(--text-label);font-size:12px;font-weight:550}
input[type=text],input[type=password],input[type=url],input[type=email],input[type=number],input[type=datetime-local],input[type=file],textarea,select,.form-control,.form-select{width:100%;min-height:40px;background:var(--bg-input)!important;border:1px solid var(--border)!important;border-radius:var(--radius)!important;color:var(--text-primary)!important;padding:9px 12px!important;font:13px inherit;outline:none;box-shadow:none!important}
textarea{min-height:110px;resize:vertical}input:focus,textarea:focus,select:focus,.form-control:focus{border-color:var(--accent)!important;box-shadow:0 0 0 3px rgba(33,150,243,.12)!important}
input[type=checkbox],input[type=radio]{accent-color:var(--accent)}
.btn,.btn-primary,.btn-submit,.xcqr-button,button.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:39px;border:1px solid var(--border);border-radius:var(--radius)!important;padding:9px 15px!important;background:var(--bg-elevated);color:var(--text-primary)!important;text-decoration:none;font:600 13px inherit;cursor:pointer;transition:.15s ease;box-shadow:none!important}
.btn:hover,.xcqr-button:hover{background:var(--bg-hover);border-color:var(--border-strong)}
.btn-primary,.btn-submit,.btn-success,.xcqr-button{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}.btn-primary:hover,.btn-submit:hover,.btn-success:hover,.xcqr-button:hover{background:var(--accent-hover)!important}
.btn-secondary,.btn-info,.xcqr-button.secondary{background:#334155!important;border-color:#475569!important}.btn-warning{background:#8a6412!important;border-color:#b88716!important}.btn-danger{background:rgba(239,68,68,.12)!important;border-color:rgba(248,113,113,.4)!important;color:var(--danger)!important}
button:disabled,.btn:disabled{opacity:.45;cursor:not-allowed}
.alert,.flash,.xcqr-status,.save-notice{padding:12px 14px;border-radius:var(--radius);border:1px solid var(--border);margin-bottom:18px;font-size:13px}.alert-success,.flash-success,.xcqr-status.ok,.save-notice{background:rgba(16,185,129,.11);border-color:rgba(52,211,153,.3);color:var(--success)}.alert-danger,.alert-error,.flash-error,.xcqr-status.error{background:rgba(239,68,68,.11);border-color:rgba(248,113,113,.3);color:var(--danger)}.alert-info{background:rgba(59,130,246,.12);border-color:rgba(96,165,250,.3);color:#bfdbfe}.alert-warning{background:rgba(245,158,11,.12);border-color:rgba(251,191,36,.3);color:#fde68a}
table,.table{width:100%;border-collapse:collapse;color:var(--text-primary)!important;background:transparent!important}th,td,.table th,.table td{padding:11px 12px!important;border-bottom:1px solid var(--border)!important;text-align:left;font-size:13px;background:transparent!important;color:inherit!important}th,.table th{color:var(--text-label)!important;font-weight:600}.table-responsive{overflow-x:auto;border:1px solid var(--border);border-radius:10px}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:3px 9px;font-size:11px;font-weight:650}.badge-on,.badge-active{background:rgba(52,211,153,.14);color:var(--success)}.badge-off{background:rgba(148,163,184,.14);color:#cbd5e1}.badge-revoked{background:rgba(248,113,113,.14);color:var(--danger)}
.row{display:flex;flex-wrap:wrap;margin:-8px}.row>[class*=col-]{padding:8px;min-width:0}.col-md-3{width:25%}.col-md-4{width:33.333%}.col-md-5{width:41.667%}.col-md-6{width:50%}.col-md-7{width:58.333%}.col-md-8{width:66.667%}.col-md-9{width:75%}.col-md-10{width:83.333%}.col-md-12{width:100%}.ml-auto,.mr-auto{margin-left:auto;margin-right:auto}
.mt-2{margin-top:8px}.mt-3{margin-top:12px}.mb-2{margin-bottom:8px}.mb-3{margin-bottom:12px}.text-muted{color:var(--text-muted)!important}.mono,code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all}
.actions-row,.xcqr-actions,.form-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:18px}
.toggle-row{border-bottom:1px solid var(--border)}
.empty-state{text-align:center;padding:36px 20px;color:var(--text-muted)}
.xcqr-main{margin-left:0!important;color:var(--text-primary)!important}.xcqr-title{color:var(--text-primary)!important}.xcqr-sub{color:var(--text-muted)!important}.xcqr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.xcqr-field{display:flex;flex-direction:column;gap:6px}.xcqr-field small{color:var(--text-muted)}.xcqr-checks{display:flex;gap:18px;flex-wrap:wrap;padding:8px 0}.xcqr-checks label{color:var(--text-label)!important}
.qrdd{max-width:1100px!important;color:var(--text-primary)!important}.qrdd-top h1{font-size:22px!important}.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.info-grid .k{color:var(--text-muted)}
@media(max-width:900px){.form-grid-2,.form-grid-3,.xcqr-grid{grid-template-columns:1fr}.grid-full,.xcqr-wide{grid-column:auto}.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10{width:100%}.main-wrapper>.content,.main-wrapper>.row,.main-wrapper>.container,.main-wrapper>.qrdd,.main-wrapper>.xcqr-main,.main-wrapper>.main-content,.main-wrapper>.settings-section{padding:18px!important}.info-grid{grid-template-columns:1fr}}
@media(max-width:720px){.sidebar{width:70px}.sidebar .brand-text,.sidebar .nav-section-label,.sidebar .nav-item span{display:none}.sidebar .nav-item{justify-content:center}.main-wrapper{margin-left:70px}.topbar{padding:0 14px}.page-header{flex-direction:column}}

/* Dashboard unificata */
.dashboard-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px}
.dashboard-stat{display:flex;gap:14px;align-items:flex-start;min-width:0;padding:20px;background:var(--bg-card);border:1px solid var(--border);border-radius:12px;color:var(--text-primary);text-decoration:none;transition:.15s ease}
.dashboard-stat:hover{transform:translateY(-2px);border-color:var(--border-strong);background:var(--bg-elevated)}
.dashboard-stat-icon{display:grid;place-items:center;width:42px;height:42px;flex:0 0 42px;border-radius:10px;background:rgba(33,150,243,.12);color:var(--accent);font-size:17px}
.dashboard-stat-copy{display:flex;flex-direction:column;min-width:0}.dashboard-stat-label{font-size:12px;color:var(--text-label)}.dashboard-stat strong{font-size:28px;line-height:1.15;margin:5px 0;color:var(--text-primary)}.dashboard-stat small{color:var(--text-muted);font-size:11px;line-height:1.4}
.dashboard-actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.dashboard-action{display:flex;flex-direction:column;gap:5px;padding:15px;border:1px solid var(--border);border-radius:10px;background:var(--bg-input);text-decoration:none}.dashboard-action:hover{border-color:var(--accent);background:var(--bg-hover)}.dashboard-action strong{color:var(--text-primary);font-size:13px}.dashboard-action span{color:var(--text-muted);font-size:12px;line-height:1.45}
@media(max-width:1050px){.dashboard-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-actions{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.dashboard-stats,.dashboard-actions{grid-template-columns:1fr}}
.main-wrapper>.flex-container{width:100%;max-width:1280px;margin:0 auto;padding:28px!important}
@media(max-width:900px){.main-wrapper>.flex-container{padding:18px!important}}


/* XCQR message page unified style */
.message-page{width:100%;max-width:1240px;margin:0 auto}
.message-layout{display:grid;grid-template-columns:minmax(340px,420px) minmax(0,1fr);gap:18px;align-items:start}
.message-transport{display:flex;flex-direction:column;gap:3px}
.message-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-bottom:18px}
.message-mode-button{width:100%;min-width:0}
.message-mode-button.active{background:var(--accent)!important;border-color:var(--accent)!important;color:#fff!important}
.message-lookup{margin-bottom:4px}
.message-search-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
.message-search-row .btn{min-width:84px}
.message-candidates{display:grid;gap:8px;margin:9px 0 16px}
.message-select-all{display:flex!important;align-items:center;gap:8px;padding:7px 2px;color:var(--text-label)!important}
.message-select-all input,.message-candidate input{width:auto!important;flex:0 0 auto;accent-color:var(--accent)}
.message-candidate{display:flex!important;gap:10px;align-items:flex-start;padding:11px 12px!important;margin:0!important;background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer}
.message-candidate:hover{border-color:var(--border-strong);background:var(--bg-hover)}
.message-candidate strong{color:var(--text-primary);font-size:13px}.message-candidate small{display:inline-block;margin-top:4px;color:var(--text-muted);font-size:11px;line-height:1.45}
.message-broadcast-note{margin:0 0 16px}
.message-select-grid{gap:12px}
.message-send-actions{align-items:center}.message-result{min-height:19px;color:var(--text-muted);font-size:12px}
.message-history{display:grid;gap:10px}
.message-entry{background:var(--bg-input);border:1px solid var(--border);border-radius:10px;padding:13px 14px}
.message-entry-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:7px}.message-entry-head strong{color:var(--text-primary)}
.message-state{display:inline-flex;align-items:center;border-radius:999px;padding:3px 8px;background:rgba(52,211,153,.14);color:var(--success);font-size:10px;font-weight:700;text-transform:uppercase}
.message-entry-body{color:var(--text-primary);font-size:13px;line-height:1.5}.message-entry small{display:block;margin-top:7px;color:var(--text-muted);font-size:11px;line-height:1.45}
.message-empty{padding:22px 14px;text-align:center;color:var(--text-muted);background:var(--bg-input);border:1px dashed var(--border);border-radius:10px}
@media(max-width:980px){.message-layout{grid-template-columns:1fr}}
@media(max-width:620px){.message-modes,.message-select-grid{grid-template-columns:1fr}.message-search-row{grid-template-columns:1fr}.message-search-row .btn{width:100%}}
