:root{--ink:#0B0B0F;--paper:#FAFAF9;--card:#FFFFFF;--line:#EBEAF0;--muted:#6B7180;--purple:#6C5CE7;--purple-dark:#4E3FD1;--purple-tint:#F1EEFD;--purple-tint-2:#E4DFFB;--coral:#FF6B57;--coral-tint:#FFEFEC;--green:#1DA57A;--green-tint:#E7F6F1;--shadow: 0 1px 2px rgba(16,15,30,.04), 0 8px 24px -12px rgba(16,15,30,.1)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--paper);color:var(--ink);font-family:Manrope,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}.wrap{max-width:1180px;margin:0 auto;padding:36px 24px 80px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:28px}.pill{display:inline-flex;align-items:center;gap:7px;background:var(--card);border:1px solid var(--line);padding:6px 14px 6px 10px;border-radius:999px;font-size:12.5px;font-weight:600;color:var(--ink);box-shadow:var(--shadow)}.pill .dot{width:7px;height:7px;border-radius:50%;background:var(--purple);flex:none}.pill.coral .dot{background:var(--coral)}.pill-row{display:flex;gap:10px;flex-wrap:wrap}.pill.button{border:none;cursor:pointer;font:inherit}.pill.button:hover{background:var(--purple-tint)}.refresh-progress{height:3px;border-radius:999px;background:var(--line);overflow:hidden;margin:0 0 18px}.refresh-progress-bar{display:block;height:100%;width:0%;border-radius:999px;background:linear-gradient(90deg,var(--purple),var(--purple-dark));transition:width .25s ease}.hero{margin-bottom:8px}.eyebrow{font-size:12.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--purple-dark);margin:0 0 10px}h1{font-size:clamp(32px,4.4vw,46px);line-height:1.04;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}h1 em{font-family:"Instrument Serif",serif;font-style:italic;font-weight:400;color:var(--purple);margin-left:2px}.subhead{color:var(--muted);font-size:15.5px;font-weight:500;margin:0 0 6px;max-width:680px}.subhead b{color:var(--ink);font-weight:700}.note-line{color:var(--muted);font-size:12.5px;font-weight:600;margin:0 0 30px;max-width:680px}.note-line .dot-inline{color:var(--purple-dark)}.kpis{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:22px}.kpi{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:20px 18px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:6px;position:relative;overflow:hidden}.kpi .num{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1}.kpi .label{font-size:12.5px;color:var(--muted);font-weight:600}.kpi .foot{font-size:12px;color:var(--purple-dark);font-weight:700;margin-top:2px}.kpi.accent{background:linear-gradient(155deg,var(--purple) 0%,var(--purple-dark) 100%);color:#fff;border:none}.kpi.accent .label{color:#ffffffc7}.kpi.accent .foot{color:#fff}.grid-2{display:grid;grid-template-columns:1.6fr 1fr;gap:14px;margin-bottom:14px}.grid-2b{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:22px 22px 18px;box-shadow:var(--shadow)}.card h3{font-size:15px;font-weight:800;margin:0 0 2px;letter-spacing:-.01em}.card .card-sub{font-size:12.5px;color:var(--muted);font-weight:600;margin:0 0 14px}.chart-box{position:relative}.section-label{display:flex;align-items:center;gap:10px;margin:34px 0 12px}.section-label .txt{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--ink)}.section-label .line{flex:1;height:1px;background:var(--line)}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:14px 15px 12px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:3px;min-width:0}.stat .k{font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat .v{font-size:25px;font-weight:800;letter-spacing:-.025em;line-height:1.1;font-variant-numeric:tabular-nums;display:flex;align-items:baseline;gap:5px}.stat .v .u{font-size:12px;font-weight:700;color:var(--muted);letter-spacing:0}.stat .f{font-size:11.5px;font-weight:600;color:var(--muted);line-height:1.45;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.stat.accent{background:var(--purple-tint);border-color:var(--purple-tint-2)}.stat.accent .k{color:var(--purple-dark)}.stat.accent .f{color:#5b5480}.stat-note{font-size:11.5px;font-weight:600;color:var(--muted);line-height:1.6;margin:0 2px 4px}.prov-mini{display:flex;gap:8px;flex:none;flex-wrap:wrap}.prov-mini-item{display:flex;flex-direction:column;gap:1px;background:var(--paper);border:1px solid var(--line);border-radius:11px;padding:7px 12px;font-size:10.5px;font-weight:700;color:var(--muted);letter-spacing:.03em;text-transform:uppercase;white-space:nowrap}.prov-mini-item b{font-size:15px;font-weight:800;color:var(--ink);letter-spacing:-.01em;text-transform:none;font-variant-numeric:tabular-nums}.prov-mini-item b.up{color:var(--green)}.prov-mini-item b.down{color:var(--coral)}.prov-scroll{max-height:420px;overflow:auto}.prov-table{min-width:820px}.prov-table th.num,.prov-table td.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.prov-table td.rank{width:34px;font-weight:700;font-size:11.5px}.prov-table td.prov-cell{font-weight:700;white-space:nowrap}td .sigla{display:inline-block;min-width:28px;text-align:center;background:var(--purple-tint);color:var(--purple-dark);font-size:10.5px;font-weight:800;letter-spacing:.04em;padding:2px 5px;border-radius:6px;vertical-align:1px}.prov-table td.prov-cell .sigla{margin-right:8px}.prov-table td.barcell{width:110px}.prov-table td.barcell .geo-bar-wrap{display:block;width:100%}.prov-table .tiny{font-size:11px;opacity:.7}.trend-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;flex-wrap:wrap;margin-bottom:14px}.seg{display:inline-flex;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;flex:none}.seg button{border:none;background:transparent;font-family:inherit;font-size:12.5px;font-weight:700;padding:7px 15px;border-radius:999px;cursor:pointer;color:var(--muted);transition:all .15s ease}.seg button.active{background:var(--ink);color:#fff}.delta{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:12px;padding:2px 8px;border-radius:999px}.delta.up{background:var(--green-tint);color:var(--green)}.delta.down{background:var(--coral-tint);color:var(--coral)}.delta.flat{background:var(--purple-tint);color:var(--purple-dark)}.recap-scroll{max-height:380px;overflow-y:auto;margin-top:16px;border:1px solid var(--line);border-radius:14px}.recap-table{width:100%;border-collapse:collapse;font-size:13px}.recap-table thead th{position:sticky;top:0;z-index:1;text-align:left;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:10px;background:var(--card);border-bottom:1px solid var(--line);white-space:nowrap}.recap-table tbody td{padding:9px 10px;border-bottom:1px solid var(--line);color:var(--ink)}.recap-table tbody tr:last-child td{border-bottom:none}.recap-table tbody tr:nth-child(2n){background:#fcfcfb}.recap-table tbody tr:hover{background:var(--purple-tint)}.recap-table tbody tr.is-peak{background:var(--coral-tint)}.recap-table td.num{font-weight:700}.recap-table td.muted{color:var(--muted)}.muted-dash{opacity:.45}.partial-tag{font-size:10px;font-weight:800;color:var(--purple-dark);background:var(--purple-tint);padding:2px 7px;border-radius:999px;margin-left:6px;white-space:nowrap}.geo-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:26px;align-items:center}.geo-map{position:relative;display:flex;justify-content:center}.italy-svg{width:100%;max-width:340px;height:auto;filter:drop-shadow(0 6px 18px rgba(16,15,30,.08))}.italy-svg path{cursor:pointer;transition:filter .12s ease,transform .12s ease;transform-origin:center}.italy-svg path:hover,.italy-svg path.is-hover{filter:brightness(.92)}.italy-svg path:focus-visible{outline:2px solid var(--purple-dark);outline-offset:1px}.geo-tooltip{position:absolute;pointer-events:none;opacity:0;transition:opacity .1s ease;background:#0b0b0f;color:#fff;font-size:12px;font-weight:600;line-height:1.5;padding:8px 11px;border-radius:9px;white-space:nowrap;z-index:2;box-shadow:var(--shadow)}.geo-tooltip b{font-weight:800}.geo-side{display:flex;flex-direction:column;gap:14px;min-width:0}.geo-legend{display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--muted);font-weight:700}.geo-legend-bar{flex:1;height:8px;border-radius:999px;background:linear-gradient(90deg,#eeedf3,#e4dffb 35%,#4e3fd1)}.geo-rank-list{display:flex;flex-direction:column;gap:9px}.geo-row{display:grid;grid-template-columns:18px 1fr 72px 56px;align-items:center;gap:10px;font-size:12.5px}.geo-row .geo-rank-num{font-weight:800;color:var(--muted);font-size:11.5px}.geo-row .geo-name{font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.geo-bar-wrap{background:var(--paper);border-radius:999px;height:7px;overflow:hidden}.geo-bar{display:block;height:100%;background:var(--purple);border-radius:999px}.geo-row .geo-count{font-weight:800;color:var(--ink);text-align:right;white-space:nowrap}.geo-row .geo-count small{display:block;font-weight:600;color:var(--muted);font-size:10px}.table-card{background:var(--card);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);overflow:hidden}.table-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;padding:20px 22px 16px;border-bottom:1px solid var(--line)}.table-head h3{margin:0;font-size:15px;font-weight:800}.table-head .card-sub{margin:2px 0 0;font-size:12.5px;color:var(--muted);font-weight:600}.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.search{display:flex;align-items:center;gap:8px;background:var(--paper);border:1px solid var(--line);border-radius:999px;padding:8px 14px;min-width:220px}.search input{border:none;background:transparent;outline:none;font:inherit;font-size:13.5px;width:100%;color:var(--ink)}.search svg{flex:none;opacity:.45}.btn{display:inline-flex;align-items:center;gap:7px;background:var(--ink);color:#fff;border:none;border-radius:999px;padding:9px 16px 9px 18px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:transform .12s ease,background .12s ease}.btn:hover{background:var(--purple-dark);transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:default;transform:none}.btn svg{flex:none}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}.btn.ghost:hover{background:var(--paper);color:var(--ink)}table{width:100%;border-collapse:collapse;font-size:13.5px}thead th{text-align:left;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:700;padding:12px 22px;border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}thead th:hover{color:var(--purple-dark)}thead th .arrow{opacity:.4;margin-left:3px;font-size:10px}tbody td{padding:11px 22px;border-bottom:1px solid var(--line);color:var(--ink);vertical-align:top}tbody tr:hover{background:var(--paper)}tbody tr:last-child td{border-bottom:none}td.name{font-weight:700}td.muted{color:var(--muted)}.badge-repeat{display:inline-block;margin-left:6px;font-size:10.5px;font-weight:800;background:var(--coral-tint);color:var(--coral);padding:2px 7px;border-radius:999px;vertical-align:middle}.badge-notag{display:inline-block;width:6px;height:6px;border-radius:50%;background:#c9c6e0;margin-left:6px;vertical-align:middle}.table-scroll{max-height:520px;overflow:auto}.empty-row td{text-align:center;color:var(--muted);padding:40px;font-weight:600}.count-tag{font-size:12.5px;color:var(--muted);font-weight:700;padding:14px 22px 6px}.legend-note{font-size:11.5px;color:var(--muted);font-weight:600;padding:0 22px 16px}footer{margin-top:26px;text-align:center;font-size:12px;color:var(--muted);font-weight:600}footer a{color:var(--purple-dark);text-decoration:none;font-weight:700}.banner{display:flex;align-items:center;gap:10px;border-radius:14px;padding:12px 16px;font-size:13px;font-weight:600;margin-bottom:18px;border:1px solid}.banner.error{background:var(--coral-tint);border-color:#ffdcd4;color:#8a2e1f}.banner.info{background:var(--purple-tint);border-color:var(--purple-tint-2);color:#3a2f8c}.banner .dismiss{margin-left:auto;background:none;border:none;cursor:pointer;font:inherit;font-weight:800;color:inherit;opacity:.6}.banner .dismiss:hover{opacity:1}.loading-state{padding:120px 20px;text-align:center;color:var(--muted);font-weight:600}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;background:var(--card);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:34px 32px 30px}.login-card .brand{display:flex;align-items:center;gap:8px;margin-bottom:22px}.login-card .brand .dot{width:9px;height:9px;border-radius:50%;background:var(--purple)}.login-card .brand span{font-size:12.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--purple-dark)}.login-card h1{font-size:26px;margin:0 0 6px}.login-card h1 em{font-family:"Instrument Serif",serif;font-style:italic;font-weight:400;color:var(--purple);margin-left:2px}.login-card p.sub{color:var(--muted);font-size:13.5px;font-weight:500;margin:0 0 22px}.field{margin-bottom:16px}.field label{display:block;font-size:12.5px;font-weight:700;color:var(--ink);margin-bottom:6px}.field input{width:100%;padding:11px 14px;border-radius:12px;border:1px solid var(--line);font:inherit;font-size:14px;background:var(--paper);color:var(--ink);outline:none;transition:border-color .12s ease}.field input:focus{border-color:var(--purple)}.login-card .btn{width:100%;justify-content:center;padding:12px 16px;font-size:14px}.login-error{background:var(--coral-tint);color:#8a2e1f;border:1px solid #FFDCD4;border-radius:10px;padding:9px 12px;font-size:12.5px;font-weight:600;margin-bottom:16px}@media (max-width:920px){.kpis{grid-template-columns:repeat(2,1fr)}.grid-2,.grid-2b{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr)}.prov-mini{width:100%;overflow-x:auto;padding-bottom:2px}.geo-layout{grid-template-columns:1fr}}@media (max-width:560px){.kpis{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(2,1fr);gap:8px}.stat .v{font-size:21px}.wrap{padding:24px 16px 60px}.table-head{flex-direction:column;align-items:flex-start}.search{min-width:0;width:100%}.trend-head{flex-direction:column}}
