/* Pannello admin — riusa i token di style.css */
html,body{height:100%;}
body.admin-body{
  background:var(--navy-950);
  display:flex;
  min-height:100vh;
}

/* ---------- login ---------- */
.login-screen{
  min-height:100vh;width:100%;
  display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(700px 400px at 50% -10%, rgba(245,197,24,.14), transparent 60%),
    var(--navy-950);
  padding:20px;
}
.login-card{
  width:100%;max-width:380px;
  background:var(--navy-850);
  border:1px solid rgba(255,255,255,.07);
  border-radius:var(--radius-lg);
  padding:40px 34px;
  box-shadow:var(--shadow-lift);
}
.login-card .brand{justify-content:center;margin-bottom:22px;}
.login-card h2{text-align:center;font-size:1.4rem;margin-bottom:6px;}
.login-card p.sub{text-align:center;color:var(--gray-400);font-size:.88rem;margin-bottom:26px;}
.login-error{
  color:#ff8686;background:rgba(255,90,90,.1);border:1px solid rgba(255,90,90,.3);
  border-radius:var(--radius-sm);padding:10px 14px;font-size:.85rem;margin-bottom:16px;display:none;
}
.login-hint{
  margin-top:20px;font-size:.78rem;color:var(--gray-500);text-align:center;
}

/* ---------- shell ---------- */
.admin-shell{display:flex;width:100%;min-height:100vh;}
.sidebar{
  width:230px;flex-shrink:0;
  background:var(--navy-900);
  border-right:1px solid rgba(255,255,255,.06);
  padding:24px 16px;
  display:flex;flex-direction:column;
}
.sidebar .brand{margin-bottom:30px;padding:0 8px;}
.sidebar .brand img{height:36px;}
.sidebar .brand-text{font-size:1rem;}
.side-nav{display:flex;flex-direction:column;gap:4px;flex:1;}
.side-nav button{
  display:flex;align-items:center;gap:12px;
  background:none;border:none;color:var(--gray-300);
  padding:12px 14px;border-radius:var(--radius-sm);
  font-size:.92rem;font-weight:600;text-align:left;
  transition:background .15s ease, color .15s ease;
}
.side-nav button .ic{font-size:1.05rem;}
.side-nav button:hover{background:rgba(255,255,255,.05);color:var(--white);}
.side-nav button.active{background:rgba(245,197,24,.12);color:var(--gold-400);}
.sidebar-foot{border-top:1px solid rgba(255,255,255,.07);padding-top:16px;}
.sidebar-foot button{width:100%;}

.main{flex:1;min-width:0;padding:34px 40px;overflow-y:auto;}
.main-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;}
.main-header h1{font-size:1.6rem;}
.main-header p{color:var(--gray-400);font-size:.92rem;margin-top:4px;}

.view{display:none;}
.view.active{display:block;}

/* ---------- stat cards ---------- */
.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:32px;}
.stat-card{
  background:var(--navy-850);border:1px solid rgba(255,255,255,.07);
  border-radius:var(--radius-md);padding:20px 22px;
}
.stat-card b{display:block;font-family:var(--font-head);font-size:1.9rem;color:var(--gold-400);}
.stat-card span{color:var(--gray-400);font-size:.85rem;}

/* ---------- panel/table ---------- */
.panel{
  background:var(--navy-850);border:1px solid rgba(255,255,255,.07);
  border-radius:var(--radius-md);overflow:hidden;margin-bottom:26px;
}
.panel-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.06);
}
.panel-head h3{font-size:1.02rem;}
table{width:100%;border-collapse:collapse;font-size:.88rem;}
th,td{padding:13px 22px;text-align:left;border-bottom:1px solid rgba(255,255,255,.05);}
th{color:var(--gray-400);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;}
tr:last-child td{border-bottom:none;}
td select{
  background:var(--navy-900);color:var(--white);border:1px solid var(--navy-700);
  border-radius:var(--radius-sm);padding:6px 10px;font-size:.85rem;
}

.badge{
  display:inline-flex;align-items:center;gap:6px;
  padding:5px 12px;border-radius:100px;font-size:.78rem;font-weight:700;
}
.badge-disponibile{background:rgba(62,207,142,.14);color:var(--ok);}
.badge-in_servizio{background:rgba(245,166,35,.14);color:var(--busy);}
.badge-offline{background:rgba(108,127,156,.16);color:var(--gray-400);}
.badge-in_attesa{background:rgba(245,197,24,.14);color:var(--gold-400);}
.badge-assegnata{background:rgba(88,150,255,.15);color:#7fb0ff;}
.badge-in_corso{background:rgba(245,166,35,.14);color:var(--busy);}
.badge-completata{background:rgba(62,207,142,.14);color:var(--ok);}
.badge-annullata{background:rgba(255,90,90,.14);color:#ff8686;}

.icon-btn{
  background:none;border:1px solid var(--navy-700);color:var(--gray-300);
  border-radius:var(--radius-sm);padding:6px 10px;font-size:.8rem;font-weight:600;
}
.icon-btn:hover{border-color:var(--gold-500);color:var(--gold-400);}
.icon-btn.danger:hover{border-color:#ff8686;color:#ff8686;}
.row-actions{display:flex;gap:8px;}

.empty-row td{text-align:center;color:var(--gray-500);padding:30px;}

/* ---------- map view ---------- */
#admin-map{height:70vh;border-radius:var(--radius-md);overflow:hidden;border:1px solid rgba(255,255,255,.07);}
.map-legend{display:flex;gap:22px;margin-bottom:16px;font-size:.85rem;color:var(--gray-300);}
.map-legend span{display:inline-flex;align-items:center;gap:8px;}
.legend-dot{width:10px;height:10px;border-radius:50%;}

/* ---------- modal ---------- */
.modal-overlay{
  position:fixed;inset:0;background:rgba(3,7,14,.65);
  display:none;align-items:center;justify-content:center;z-index:100;padding:20px;
}
.modal-overlay.active{display:flex;}
.modal{
  width:100%;max-width:440px;background:var(--navy-850);
  border:1px solid rgba(255,255,255,.09);border-radius:var(--radius-lg);
  padding:30px;box-shadow:var(--shadow-lift);
}
.modal h3{margin-bottom:18px;}
.modal-actions{display:flex;gap:12px;margin-top:20px;}
.modal-actions .btn{flex:1;}

@media (max-width: 980px){
  .stat-grid{grid-template-columns:repeat(2,1fr);}
  .sidebar{width:76px;}
  .sidebar .brand-text,.side-nav button span:not(.ic){display:none;}
  .main{padding:24px 18px;}
  table{font-size:.8rem;}
  th,td{padding:10px 12px;}
}
