/* ============================================================================
   Stile condiviso mock-up Power BI — Villabebè/Giokids
   Tema di default: magenta brand. Aggiungi class="theme-navy" su <body> per PDV.
   ============================================================================ */
:root{
  /* Palette ufficiale cliente (estratta dai loghi Villabebè / Giokids) */
  --vb-blue:#1C5D94; --vb-blue-dk:#0A3B5B; --vb-yellow:#FFDD0E;
  --gk-navy:#0A3B5B; --gk-green:#90C364; --gk-cyan:#6AC4E9; --gk-red:#EC605F; --gk-yellow:#F5D94A;
  --bg:#f4f6f8; --panel:#fff; --ink:#1b2733; --muted:#5b6b7b; --line:#dbe3ea;
  --brand:#1C5D94; --brand2:#0A3B5B; --navy:#0A3B5B; --navy2:#1C5D94;
  --pos:#2e9e5b; --neg:#e0533f; --accent:#1C5D94;
  --shadow:0 1.6px 3.6px rgba(10,59,91,.12),0 .3px .9px rgba(10,59,91,.08);
  --hd1:var(--vb-blue); --hd2:var(--vb-blue-dk); --title:var(--vb-blue-dk); --y-cur:var(--vb-yellow);
}
/* Dashboard PDV: navy Giokids/Villabebè */
body.theme-navy{--hd1:var(--gk-navy);--hd2:#1C5D94;--title:var(--gk-navy);--y-cur:#1C5D94;--brand:#0A3B5B;--brand2:#1C5D94}
/* logo nella top bar */
.appbar .brandlogo{height:30px;width:auto;display:block;background:#fff;border-radius:6px;padding:2px 6px}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{font-family:'Segoe UI',system-ui,-apple-system,Arial,sans-serif;background:var(--bg);color:var(--ink);font-size:13px}

.appbar{height:48px;background:linear-gradient(90deg,var(--hd1),var(--hd2));color:#fff;display:flex;align-items:center;gap:14px;padding:0 16px;box-shadow:var(--shadow);position:sticky;top:0;z-index:30}
.appbar .logo{font-weight:700;letter-spacing:.5px;font-size:15px;display:flex;align-items:center;gap:9px}
.appbar .logo .dot{width:18px;height:18px;border-radius:50%;background:#fff;display:inline-block;box-shadow:inset 0 0 0 4px var(--hd1)}
.appbar .sub{opacity:.85;font-size:12px;border-left:1px solid rgba(255,255,255,.4);padding-left:14px}
.appbar .spacer{flex:1}
.appbar .home{color:#fff;text-decoration:none;font-size:12px;background:rgba(255,255,255,.15);padding:5px 12px;border-radius:14px;margin-right:4px}
.appbar .home:hover{background:rgba(255,255,255,.28)}
.appbar .period{background:rgba(255,255,255,.15);padding:5px 12px;border-radius:14px;font-size:12px}
.appbar .mockbadge{background:#fff;color:var(--hd2);font-weight:700;font-size:10.5px;padding:4px 9px;border-radius:10px;letter-spacing:.4px}

.shell{display:flex;height:calc(100vh - 48px)}
.rail{width:56px;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;align-items:center;padding-top:8px;gap:4px;z-index:20}
.rail button{width:44px;height:44px;border:none;background:transparent;border-radius:8px;cursor:pointer;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-size:9px;line-height:1;position:relative}
.rail button svg{width:20px;height:20px}
.rail button:hover{background:#f3f2f1;color:var(--ink)}
.rail button.active{background:color-mix(in srgb,var(--hd1) 12%,#fff);color:var(--hd1)}
.rail button.active::before{content:"";position:absolute;left:-6px;width:3px;height:32px;background:var(--hd1);border-radius:0 3px 3px 0}

.slicers{width:230px;background:#faf9f8;border-right:1px solid var(--line);padding:14px 14px 24px;overflow-y:auto}
.slicers h3{font-size:11px;text-transform:uppercase;letter-spacing:.7px;color:var(--muted);margin:16px 0 7px}
.slicers h3:first-child{margin-top:0}
.slicer-card{background:#fff;border:1px solid var(--line);border-radius:6px;padding:8px;margin-bottom:6px}
.seg{display:flex;flex-direction:column;gap:3px}
.seg label{display:flex;align-items:center;gap:8px;padding:5px 7px;border-radius:4px;cursor:pointer;font-size:12.5px}
.seg label:hover{background:#f3f2f1}
.seg input{accent-color:var(--hd1);cursor:pointer}
.chips{display:flex;flex-wrap:wrap;gap:5px}
.checklist{display:flex;flex-direction:column;gap:2px;max-height:210px;overflow-y:auto}
.checklist label{display:flex;align-items:center;gap:8px;padding:4px 7px;border-radius:4px;cursor:pointer;font-size:12.5px}
.checklist label:hover{background:#f3f2f1}
.checklist label span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.checklist input{accent-color:var(--hd1);cursor:pointer;flex:0 0 auto}
.checklist .cl-all{border-bottom:1px solid var(--line);margin-bottom:2px;padding-bottom:6px;position:sticky;top:0;background:#fff;z-index:1}
.chip{border:1px solid var(--line);background:#fff;border-radius:14px;padding:4px 10px;font-size:11.5px;cursor:pointer;color:var(--muted);user-select:none}
.chip.on{background:var(--hd1);border-color:var(--hd1);color:#fff}
.slicer-mini{font-size:11px;color:var(--muted);margin-top:3px}
select,.selbox{width:100%;padding:6px 8px;border:1px solid var(--line);border-radius:5px;background:#fff;font-size:12.5px;color:var(--ink)}
.metric-tabs{display:inline-flex;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;width:100%}
.metric-tabs button{border:none;background:transparent;padding:5px 10px;cursor:pointer;font-size:12px;color:var(--muted);flex:1}
.metric-tabs button.on{background:var(--hd1);color:#fff}
.btn-clear{margin-top:10px;width:100%;padding:7px;border:1px solid var(--line);background:#fff;border-radius:5px;cursor:pointer;font-size:12px;color:var(--muted)}
.btn-clear:hover{background:#f3f2f1;color:var(--ink)}

.canvas{flex:1;overflow-y:auto;padding:16px 18px 40px}
.pagehdr{display:flex;align-items:baseline;gap:12px;margin-bottom:12px;flex-wrap:wrap}
.pagehdr h1{font-size:19px;margin:0;color:var(--title)}
.pagehdr .crumb{font-size:12px;color:var(--muted)}
.filter-note{margin-left:auto;font-size:11.5px;color:var(--muted);background:#fff;border:1px solid var(--line);padding:4px 10px;border-radius:12px}

.kpirow{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}
.kpirow.k3{grid-template-columns:repeat(3,1fr)}
.kpi{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:13px 15px;box-shadow:var(--shadow)}
.kpi .lab{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.kpi .val{font-size:23px;font-weight:700;margin-top:5px}
.kpi .delta{font-size:12px;margin-top:4px;font-weight:600;display:flex;align-items:center;gap:5px}
.up{color:var(--pos)} .down{color:var(--neg)}

.grid{display:grid;gap:12px}
.g-2{grid-template-columns:1fr 1fr}
.g-3{grid-template-columns:2fr 1fr}
.card{background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:var(--shadow);padding:12px 14px;margin-bottom:12px}
.card h2{font-size:13.5px;margin:0 0 10px;color:var(--ink);display:flex;align-items:center;gap:8px}
.card h2 .tag{font-size:10px;font-weight:600;color:#fff;background:var(--hd1);padding:2px 7px;border-radius:9px;letter-spacing:.4px}
.chart-wrap{position:relative;height:230px}
.chart-sm{height:200px}

.yoy{overflow-x:auto}
table.yoy-t{border-collapse:collapse;width:100%;font-size:11.5px}
table.yoy-t th,table.yoy-t td{border:1px solid var(--line);padding:5px 7px;text-align:right;white-space:nowrap}
table.yoy-t thead th{background:#f3f2f1;color:var(--muted);font-weight:600;position:sticky;top:0}
table.yoy-t td.lab,table.yoy-t th.lab{text-align:left;font-weight:600;color:var(--ink);background:#fafafa;position:sticky;left:0}
table.yoy-t td.tot{background:color-mix(in srgb,var(--hd1) 7%,#fff);font-weight:700}
table.yoy-t tr.seg-title td{background:var(--hd2);color:#fff;font-weight:700;text-align:left}
table.yoy-t .dpos{color:var(--pos)} table.yoy-t .dneg{color:var(--neg)}
table.yoy-t tbody tr:hover td{background:#fbf7fa}

.rank{display:flex;flex-direction:column;gap:7px}
.rank .row{display:grid;grid-template-columns:130px 1fr 110px;align-items:center;gap:8px;font-size:12px}
.rank .bar{height:16px;background:#f0eef0;border-radius:8px;overflow:hidden}
.rank .bar>span{display:block;height:100%;background:linear-gradient(90deg,var(--hd1),var(--hd2));border-radius:8px}
.rank .amt{text-align:right;font-variant-numeric:tabular-nums;color:var(--muted)}

.legend{display:flex;gap:16px;font-size:11.5px;color:var(--muted);margin-top:6px}
.legend i{display:inline-block;width:11px;height:11px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.footer{font-size:10.5px;color:var(--muted);margin-top:18px;text-align:center;line-height:1.5}
.footer:empty{display:none}
.hidden{display:none!important}
/* il contenuto analitico riempie l'altezza disponibile */
.canvas{display:flex;flex-direction:column}
#pageBody{flex:1 1 auto;display:flex;flex-direction:column}
#pageBody > .grid{flex:1 1 auto}
#pageBody > .card:last-child{flex:1 1 auto;display:flex;flex-direction:column}
#pageBody > .card:last-child .yoy{flex:1 1 auto}
