/* ============================================================
   Strategic Advisory — ADMIN UI
   Layer di raffinamento del pannello di amministrazione.
   Additivo: si carica DOPO lo <style> inline di admin-panel.html
   e ne raffina l'aspetto senza riscrivere il markup.
   Creato 2026-08-21
   ============================================================ */

:root{
  --ad-ink:#16242c;
  --ad-muted:#5b6a72;
  --ad-faint:#8b9aa3;
  --ad-line:#e3e9ec;
  --ad-line-soft:#eef2f4;
  --ad-surface:#ffffff;
  --ad-ground:#eef1f4;
  --ad-ok:#1a7a3a;      --ad-ok-bg:#e7f4ec;
  --ad-warn:#a8752b;    --ad-warn-bg:#fbf2df;
  --ad-danger:#b3261e;  --ad-danger-bg:#fbeae9;
  --ad-info:#1a5266;    --ad-info-bg:#e7eef1;
  --ad-shadow:0 1px 2px rgba(22,36,44,.05), 0 2px 8px rgba(22,36,44,.05);
  --ad-shadow-lg:0 8px 28px rgba(22,36,44,.12);
  --ad-serif:'Playfair Display',Georgia,serif;
}

body{
  background:var(--ad-ground);
  color:var(--ad-ink);
  -webkit-font-smoothing:antialiased;
}

/* ---------- SIDEBAR ---------- */
.sb{
  width:248px;
  background:linear-gradient(180deg,#0d3341 0%,#0f3a4a 55%,#123f50 100%);
  border-right:1px solid rgba(255,255,255,.06);
  scrollbar-width:thin;
}
.sb::-webkit-scrollbar{width:6px}
.sb::-webkit-scrollbar-thumb{background:rgba(255,255,255,.14);border-radius:3px}

.sb .brand{
  padding:1.15rem 1.1rem;
  border-bottom:1px solid rgba(255,255,255,.08);
  margin-bottom:.35rem;
}
.sb .brand b{
  font-family:var(--ad-serif);
  font-size:.98rem;
  font-weight:600;
  letter-spacing:.01em;
  line-height:1.2;
}
.sb .brand small{
  font-size:.6rem;
  letter-spacing:.16em;
  color:var(--a);
  opacity:.9;
  margin-top:1px;
}

.sb .lbl{
  font-size:.6rem;
  letter-spacing:.16em;
  color:rgba(255,255,255,.3);
  padding:1.15rem .95rem .35rem;
  font-weight:600;
}

.sb a{
  position:relative;
  margin:1px 8px;
  padding:.58rem .7rem;
  font-size:.83rem;
  font-weight:500;
  border-radius:7px;
  color:rgba(255,255,255,.66);
  transition:background .15s ease, color .15s ease;
}
.sb a:hover{background:rgba(255,255,255,.07);color:#fff}
.sb a.act{
  background:rgba(196,163,90,.14);
  color:var(--a);
  font-weight:600;
}
/* barretta oro sull'elemento attivo */
.sb a.act::before{
  content:"";
  position:absolute;
  left:-8px; top:50%;
  transform:translateY(-50%);
  width:3px; height:20px;
  border-radius:0 3px 3px 0;
  background:var(--a);
}
.sb a i{width:19px;font-size:.86rem;opacity:.95}
.sb .badge{
  background:#d9483c;
  font-size:.58rem;
  padding:2px 6px;
  border-radius:9px;
  letter-spacing:.02em;
}

/* ---------- MAIN ---------- */
.mn{margin-left:248px;padding:1.6rem 1.75rem 3rem}

.topbar{
  position:sticky;
  top:0;
  z-index:60;
  margin:-1.6rem -1.75rem 1.5rem;
  padding:1rem 1.75rem;
  background:rgba(238,241,244,.86);
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--ad-line);
}
.topbar h1{
  font-family:var(--ad-serif);
  font-size:1.32rem;
  font-weight:600;
  letter-spacing:-.005em;
  color:var(--ad-ink);
}

/* ---------- STAT CARDS ---------- */
.cards{gap:1.1rem}
.card{
  border-left:0;                       /* via la barra spessa: pesante e ripetitiva */
  border:1px solid var(--ad-line);
  border-top:3px solid var(--p);
  border-radius:11px;
  padding:1.15rem 1.2rem;
  box-shadow:var(--ad-shadow);
  transition:box-shadow .18s ease, transform .18s ease;
}
.card:hover{box-shadow:var(--ad-shadow-lg);transform:translateY(-2px)}
.card.g{border-top-color:var(--ad-ok)}
.card.gold{border-top-color:var(--a)}
.card.r{border-top-color:var(--ad-danger)}
.card.pur{border-top-color:#7b52a8}

.card .lbl2{
  font-size:.66rem;
  letter-spacing:.1em;
  color:var(--ad-faint);
  font-weight:600;
  margin-bottom:.35rem;
}
.card .val{
  font-family:var(--ad-serif);
  font-size:1.95rem;
  font-weight:700;
  line-height:1.05;
  color:var(--ad-ink);
  font-variant-numeric:tabular-nums;
}
.card .ico{
  top:1.05rem; right:1.05rem;
  font-size:1.45rem;
  opacity:.1;
}

/* ---------- PANNELLI ---------- */
.pnl{
  border:1px solid var(--ad-line);
  border-radius:11px;
  box-shadow:var(--ad-shadow);
  margin-bottom:1.35rem;
}
.pnl-h{
  padding:.95rem 1.25rem;
  border-bottom:1px solid var(--ad-line);
  background:linear-gradient(0deg,rgba(26,82,102,.022),transparent);
  gap:.75rem;
  flex-wrap:wrap;
}
.pnl-h h3{
  font-family:var(--ad-serif);
  font-size:1.02rem;
  font-weight:600;
  letter-spacing:-.003em;
}

/* ---------- TABELLE ---------- */
th{
  padding:.65rem 1.15rem;
  font-size:.66rem;
  letter-spacing:.09em;
  color:var(--ad-faint);
  background:#f7f9fa;
  border-bottom:1px solid var(--ad-line);
  position:sticky;
  top:0;
  z-index:2;
  white-space:nowrap;
}
td{
  padding:.78rem 1.15rem;
  border-bottom:1px solid var(--ad-line-soft);
  font-size:.83rem;
  color:var(--ad-ink);
}
tr:hover{background:#f9fbfc}
tbody tr:last-child td{border-bottom:0}
/* numeri e date allineati */
td.num, th.num, td .num{font-variant-numeric:tabular-nums;text-align:right}

/* wrapper scorrevole per tabelle larghe */
.pnl > table{display:table}
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}

/* ---------- BADGE DI STATO ---------- */
.tb{
  font-size:.66rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  padding:.2rem .55rem;
  border-radius:999px;
  line-height:1.5;
  white-space:nowrap;
  display:inline-block;
}
.tb-pro{background:var(--ad-info-bg);color:var(--ad-info)}
.sb-act{background:var(--ad-ok-bg);color:var(--ad-ok)}
.sb-pen{background:var(--ad-warn-bg);color:var(--ad-warn)}

/* ---------- BOTTONI ---------- */
.btn{
  border-radius:7px;
  font-weight:600;
  font-size:.8rem;
  padding:.45rem .85rem;
  border:1px solid var(--ad-line);
  background:#fff;
  color:var(--ad-ink);
  transition:background .15s ease, border-color .15s ease, box-shadow .15s ease;
  display:inline-flex;
  align-items:center;
  gap:.4rem;
  cursor:pointer;
  line-height:1.4;
}
.btn:hover{background:#f4f7f8;border-color:#cdd8dd}
.btn:focus-visible{outline:none;box-shadow:0 0 0 3px rgba(26,82,102,.18)}
.btn-p{background:var(--p);border-color:var(--p);color:#fff}
.btn-p:hover{background:#17475a;border-color:#17475a}
.btn-a{background:linear-gradient(135deg,var(--a),#a8893e);border-color:#a8893e;color:#2a1f05}
.btn-a:hover{filter:brightness(1.05);background:linear-gradient(135deg,var(--a),#a8893e)}
.btn-d{background:#fff;border-color:#e6bdba;color:var(--ad-danger)}
.btn-d:hover{background:var(--ad-danger-bg);border-color:#d9a09c}

/* ---------- FORM ---------- */
.fg{margin-bottom:.85rem}
.fg label{
  display:block;
  font-size:.72rem;
  font-weight:600;
  color:var(--ad-muted);
  margin-bottom:.3rem;
  letter-spacing:.01em;
}
.fc{
  width:100%;
  padding:.52rem .7rem;
  border:1px solid var(--ad-line);
  border-radius:7px;
  font-family:'Inter',sans-serif;
  font-size:.84rem;
  color:var(--ad-ink);
  background:#fff;
  transition:border-color .15s ease, box-shadow .15s ease;
}
.fc:focus{
  outline:none;
  border-color:var(--p);
  box-shadow:0 0 0 3px rgba(26,82,102,.13);
}
.fc::placeholder{color:#a8b6bd}
select.fc{cursor:pointer}

.flt{
  display:flex;
  gap:.55rem;
  flex-wrap:wrap;
  align-items:end;
  padding:.9rem 1.25rem;
  background:#f7f9fa;
  border-bottom:1px solid var(--ad-line);
}
.flt .fg{margin-bottom:0}

/* ---------- FORM A SEZIONI (deal / immobili) ---------- */
.fset{
  border:1px solid var(--ad-line);
  border-radius:10px;
  padding:1.1rem 1.2rem 1.2rem;
  margin-bottom:1.1rem;
  background:#fcfdfd;
}
.fset-h{
  display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;
  font-family:var(--ad-serif);
  font-size:1rem;font-weight:600;
  margin-bottom:.3rem;
}
.fset-h i{color:var(--a);font-size:.9rem}
.fset-tag{
  font-family:'Inter',sans-serif;
  font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:.15rem .5rem;border-radius:999px;
}
.fset-tag.pub{background:var(--ad-ok-bg);color:var(--ad-ok)}
.fset-tag.priv{background:var(--ad-warn-bg);color:var(--ad-warn)}
.fset-note{font-size:.78rem;color:var(--ad-faint);margin:0 0 .9rem;line-height:1.55}

.fg .hint{display:block;font-size:.72rem;color:var(--ad-faint);margin-top:.25rem;line-height:1.45}
.fg .req{color:var(--ad-danger);font-weight:700}

/* campo in errore */
.fc.err{border-color:var(--ad-danger);background:#fffafa}
.fc.err:focus{box-shadow:0 0 0 3px rgba(179,38,30,.14)}
.fg .errmsg{display:block;font-size:.73rem;color:var(--ad-danger);margin-top:.25rem;font-weight:500}

/* riepilogo calcolato sotto i dati economici */
.fset-calc{
  margin-top:.9rem;padding:.7rem .9rem;border-radius:8px;
  background:var(--ad-info-bg);font-size:.8rem;color:var(--ad-info);
  display:none;line-height:1.6;
}
.fset-calc.on{display:block}
.fset-calc b{font-variant-numeric:tabular-nums}
.fset-calc .warn{color:var(--ad-warn);font-weight:600}

/* ---------- STATI E MESSAGGI ---------- */
.empty{
  text-align:center;
  padding:2.75rem 1rem;
  color:var(--ad-faint);
  font-size:.86rem;
}
.empty i{font-size:1.9rem;display:block;margin-bottom:.55rem;opacity:.4}

.info-box,.success-box,.err-box{
  border-radius:9px;
  padding:.85rem 1.05rem;
  font-size:.83rem;
  line-height:1.55;
  border-left:3px solid;
}
.info-box{background:var(--ad-info-bg);border-left-color:var(--p);color:#123f50}
.success-box{background:var(--ad-ok-bg);border-left-color:var(--ad-ok);color:#155f2e}
.err-box{background:var(--ad-danger-bg);border-left-color:var(--ad-danger);color:#8c1d17}

/* ---------- LOGIN ---------- */
.login-ov{background:linear-gradient(135deg,#0d3341,#1a5266 60%,#2a7a99)}
.login-box{
  border-radius:14px;
  box-shadow:0 24px 60px rgba(0,0,0,.3);
  border:1px solid rgba(255,255,255,.1);
  padding:2.1rem 1.9rem;
}
.login-box h2{
  font-family:var(--ad-serif);
  font-weight:600;
  letter-spacing:-.005em;
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:900px){
  .sb{
    width:100%;
    height:auto;
    position:relative;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    padding-bottom:.5rem;
  }
  .sb .brand{width:100%;margin-bottom:0}
  .sb .lbl{display:none}
  .sb a{margin:2px 4px;padding:.45rem .65rem;font-size:.78rem}
  .sb a.act::before{display:none}
  .mn{margin-left:0;padding:1.1rem}
  .topbar{margin:-1.1rem -1.1rem 1.1rem;padding:.85rem 1.1rem;position:static}
  .cards{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
  th{position:static}
}
@media(max-width:560px){
  .cards{grid-template-columns:1fr 1fr}
  .card .val{font-size:1.6rem}
}

@media(prefers-reduced-motion:reduce){
  .card,.btn,.fc{transition:none}
  .card:hover{transform:none}
}

/* ---------- STAMPA ---------- */
@media print{
  .sb,.topbar,.flt,.btn{display:none!important}
  .mn{margin-left:0}
  .pnl{box-shadow:none;border-color:#999;break-inside:avoid}
}
