:root{
  --navy:#10243b;--navy-2:#173b5f;--blue:#2f6ea5;--blue-soft:#e8f1fa;
  --ink:#182534;--muted:#667789;--line:#dbe4ec;--surface:#ffffff;
  --surface-2:#f5f8fb;--success:#277a4d;--danger:#ad2d3c;--warning:#a3680a;
  --shadow:0 18px 44px rgba(16,36,59,.10);--shadow-soft:0 8px 24px rgba(16,36,59,.07);
}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:#eef3f7;color:var(--ink)}body{margin:0;min-height:100vh;background:radial-gradient(circle at 8% 6%,rgba(84,139,185,.16),transparent 30%),radial-gradient(circle at 92% 18%,rgba(49,114,164,.10),transparent 27%),linear-gradient(180deg,#f5f8fb,#eaf0f5 75%);font-size:15px;line-height:1.45}.ambient{position:fixed;pointer-events:none;border-radius:999px;filter:blur(70px);opacity:.16;z-index:-1}.ambient-one{width:340px;height:340px;background:#4d8fc4;top:110px;left:-150px}.ambient-two{width:380px;height:380px;background:#89a8c1;right:-180px;bottom:50px}
button,input,select{font:inherit}button{border:1px solid #cbd7e1;border-radius:11px;background:#fff;color:var(--ink);padding:.64rem .9rem;cursor:pointer;transition:.18s ease;font-weight:650}button:hover{transform:translateY(-1px);box-shadow:0 6px 16px rgba(15,39,63,.09);border-color:#9eb4c6}button:disabled{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}.primary{background:linear-gradient(135deg,var(--navy-2),#2c6a9c);color:#fff;border-color:transparent}.danger-ghost{color:var(--danger);border-color:#e5b9bf;background:#fff9fa}.large{padding:.82rem 1.08rem}.app-shell{width:min(1480px,100%);margin:0 auto;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 24px;background:linear-gradient(135deg,#0c1f33,#173e62);color:#fff;border-radius:0 0 24px 24px;box-shadow:0 18px 36px rgba(10,30,49,.20)}.brand{display:flex;align-items:center;gap:12px}.brand-mark{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:linear-gradient(145deg,#e9f3fb,#9ec3df);color:#102c46;font-weight:900;letter-spacing:.04em;box-shadow:inset 0 0 0 1px rgba(255,255,255,.6)}.brand h1{margin:0;font-size:1.28rem}.brand p{margin:.12rem 0 0;color:#bad0e1;font-size:.79rem}.save-tools{display:flex;align-items:end;gap:.48rem;flex-wrap:wrap}.compact-label{display:grid;gap:.25rem;color:#c8d9e6;font-size:.72rem}.compact-label select{min-width:180px;background:#fff;color:var(--ink);border:0;border-radius:10px;padding:.64rem}.topbar button{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.20);color:#fff}.topbar button.primary{background:#fff;color:#123452}.topbar .danger-ghost{color:#ffd9de}
.status-strip{display:grid;grid-template-columns:repeat(8,minmax(100px,1fr));gap:1px;margin:16px 18px 0;background:#dfe7ee;border:1px solid #dfe7ee;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-soft)}.status-item{background:rgba(255,255,255,.93);padding:12px 13px;min-width:0}.status-item span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.status-item strong{display:block;margin-top:.2rem;font-size:.91rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.save-indicator strong{color:var(--success)}
.tabs{display:flex;gap:5px;overflow-x:auto;padding:14px 18px 10px;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{white-space:nowrap;background:rgba(255,255,255,.72);border-color:transparent;color:#546576;padding:.62rem .82rem}.tab.active{background:#153a5d;color:#fff;box-shadow:0 7px 18px rgba(21,58,93,.17)}main{padding:0 18px 32px}.panel{display:none}.panel.active{display:block}.card{background:rgba(255,255,255,.95);border:1px solid rgba(208,220,230,.95);border-radius:18px;padding:18px;box-shadow:var(--shadow-soft);margin-top:14px;backdrop-filter:blur(12px)}.card h2,.section-intro h2,.setup-banner h2,.observer-notice h2{margin:.1rem 0 .25rem;font-size:1.16rem}.card p,.section-intro p,.setup-banner p,.observer-notice p{margin:.25rem 0;color:var(--muted)}.card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:15px}.eyebrow{display:block;color:#47718f;font-size:.69rem;text-transform:uppercase;letter-spacing:.11em;font-weight:800}.badge,.infinity-pill{display:inline-flex;align-items:center;border-radius:999px;padding:.36rem .68rem;background:var(--blue-soft);color:#235a83;font-size:.73rem;font-weight:800;white-space:nowrap}.badge.success{background:#e5f4eb;color:#247148}.infinity-pill{background:#e8f5ec;color:#236b43}.inline-actions,.turn-controls,.chart-actions{display:flex;gap:.48rem;flex-wrap:wrap}.section-intro{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;padding:10px 4px 0}.setup-banner{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:14px;border:1px solid #bdd2e4;background:linear-gradient(135deg,#f8fbfe,#e9f3fb);border-radius:19px;padding:22px;box-shadow:var(--shadow-soft)}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.75fr);gap:14px}.standings{margin-top:14px}.party-row{display:grid;grid-template-columns:minmax(180px,1.2fr) minmax(180px,2.5fr) 66px;align-items:center;gap:.8rem;padding:.68rem .1rem;border-top:1px solid #edf1f4}.party-label{display:flex;align-items:center;gap:.55rem;min-width:0}.party-swatch{width:12px;height:12px;border-radius:4px;flex:none;box-shadow:0 0 0 2px rgba(0,0,0,.04)}.party-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:650}.bar-track{height:12px;border-radius:999px;background:#eaf0f4;overflow:hidden}.bar-fill{height:100%;border-radius:999px;transition:width .4s ease}.party-value{text-align:right;font-variant-numeric:tabular-nums;font-weight:800}.player-tag,.observer-tag,.government-tag,.opposition-tag,.pole-tag{font-size:.61rem;padding:.18rem .38rem;border-radius:6px;font-weight:850;white-space:nowrap}.player-tag{background:#102f4c;color:#fff}.observer-tag{background:#eef2f5;color:#5e6e7c}.government-tag{background:#dff1e5;color:#226c43}.opposition-tag{background:#edf1f5;color:#5e6c79}.pole-tag{background:#fff1c9;color:#8a5a00}.news-list{display:grid;gap:.72rem;margin-top:12px;max-height:460px;overflow:auto}.news-item{border-left:4px solid #6c8ba3;padding:.6rem .72rem;background:#f6f9fb;border-radius:0 11px 11px 0}.news-item strong{font-size:.86rem}.news-item p{font-size:.79rem;margin-top:.18rem}.news-date{display:block;color:var(--muted);font-size:.68rem;margin-top:.22rem}.metrics-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:13px}.metric-card{background:rgba(255,255,255,.94);border:1px solid var(--line);border-radius:16px;padding:15px;margin-top:14px;box-shadow:var(--shadow-soft)}.metric-card span,.metric-card small{display:block;color:var(--muted)}.metric-card strong{font-size:1.45rem;display:block;margin:.22rem 0}.metric-card small{font-size:.73rem}
.party-manager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.party-manage-card{border:1px solid var(--line);border-radius:15px;padding:14px;background:linear-gradient(180deg,#fff,#f8fafc);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;transition:.2s ease}.party-manage-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-soft)}.party-manage-main{display:flex;align-items:center;gap:.75rem;min-width:0}.party-large-swatch{width:38px;height:38px;border-radius:11px;flex:none}.party-manage-main h3{margin:0;font-size:.98rem}.party-manage-main h3 small{color:var(--muted);font-weight:650}.party-manage-main p{font-size:.77rem;margin:.2rem 0 0}.party-badges{display:flex;gap:.35rem;justify-content:flex-end;align-items:center}.party-manage-actions{grid-column:1/-1;display:flex;justify-content:flex-end;gap:.45rem;border-top:1px solid #e7ecf0;padding-top:10px}.empty-state{text-align:center;border:1px dashed #bdcbd6;border-radius:18px;padding:34px;background:rgba(255,255,255,.7);margin-top:14px}.empty-state h3{margin:.4rem 0}.empty-state p{color:var(--muted)}.empty-icon{font-size:2rem}.observer-notice{display:flex;align-items:center;gap:16px;margin-top:14px;padding:18px;border:1px solid #c5d8e8;border-radius:17px;background:#eef6fc}.observer-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center;background:#173d61;color:#fff;font-size:1.5rem;flex:none}
.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:14px}.action-card{border:1px solid var(--line);border-radius:14px;padding:14px;background:linear-gradient(180deg,#fff,#f7fafc);display:grid;gap:.65rem}.action-card h3{margin:0;font-size:.95rem}.action-card p{font-size:.79rem;margin:0}.action-meta{display:flex;justify-content:space-between;font-size:.71rem;color:var(--muted)}.action-card button{width:100%}.timeline{display:grid;gap:.65rem;margin-top:12px;max-height:340px;overflow:auto}.timeline-item{padding:.65rem .75rem;border-left:3px solid #2c6f9f;background:#f6f9fb;border-radius:0 9px 9px 0}.timeline-item p{font-size:.8rem;margin:.15rem 0}.timeline-item time{font-size:.68rem;color:var(--muted)}
.poll-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:14px}.poll-control-card label,.settings-grid label,.modal-card label,.archive-toolbar label{display:grid;gap:.35rem;margin-top:.9rem;color:var(--muted);font-size:.81rem}.poll-control-card select,.settings-grid input,.settings-grid select,.modal-card input,.modal-card select,.archive-toolbar select{width:100%;padding:.7rem;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--ink)}.latest-poll{margin-top:14px;border:1px solid var(--line);border-radius:12px;padding:12px;background:#f8fafc}.latest-poll.empty,.latest-election.empty{color:var(--muted)}.latest-results{display:grid;gap:.44rem;margin-top:.65rem}.latest-result{display:flex;justify-content:space-between;gap:1rem}.rule-row{display:flex;justify-content:space-between;padding:.72rem 0;border-bottom:1px solid #e8edf1;font-size:.81rem}.rule-row strong{color:#236b43}.chart-card{min-width:0}.legend{display:flex;gap:.78rem;flex-wrap:wrap;margin:12px 0}.legend-item{display:flex;gap:.38rem;align-items:center;font-size:.75rem}.legend-line{width:23px;height:3px;border-radius:4px}.chart-wrap{position:relative;min-height:410px;overflow:hidden;border:1px solid #dbe4eb;border-radius:14px;background:linear-gradient(180deg,#fff,#fbfcfd)}.chart-wrap svg{display:block;width:100%;height:auto;touch-action:none}.chart-tooltip{position:absolute;background:#102337;color:#fff;border-radius:9px;padding:.52rem .68rem;font-size:.75rem;pointer-events:none;box-shadow:var(--shadow);z-index:4}.table-wrap{overflow:auto;margin-top:12px;max-height:430px;border:1px solid #e3e9ee;border-radius:12px}table{border-collapse:collapse;width:100%;font-size:.77rem}th,td{padding:.59rem;border-bottom:1px solid #e8edf1;text-align:right;white-space:nowrap}th:first-child,td:first-child{text-align:left}thead{position:sticky;top:0;background:#f6f9fb;z-index:2}.archive-toolbar{display:grid;grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr);gap:18px;align-items:end}.archive-summary{display:flex;justify-content:flex-end;gap:14px;flex-wrap:wrap}.archive-chip{background:#edf4f9;border:1px solid #d5e3ee;border-radius:12px;padding:.65rem .8rem}.archive-chip span{display:block;color:var(--muted);font-size:.68rem;text-transform:uppercase}.archive-chip strong{display:block;margin-top:.16rem}
.government-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(290px,.8fr);gap:14px}.stability-block{margin-top:16px}.stability-label{display:flex;justify-content:space-between;gap:1rem;font-size:.83rem}.stability-track{height:13px;background:#eaf0f4;border-radius:999px;overflow:hidden;margin-top:7px}.stability-track>div{height:100%;background:linear-gradient(90deg,#b33a43,#d1a52f,#278351);border-radius:999px}.coalition-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin-top:15px}.coalition-member{display:flex;align-items:center;gap:.6rem;border:1px solid #e1e8ee;border-radius:11px;padding:10px;background:#fafcfd}.coalition-member strong,.coalition-member small{display:block}.coalition-member small{color:var(--muted);font-size:.71rem;margin-top:.15rem}.government-note{border-top:1px solid #e5eaef;padding-top:12px;margin-top:14px!important}.factor-list{display:grid;gap:9px;margin-top:14px}.factor-list>div{display:flex;justify-content:space-between;gap:1rem;padding:.76rem;border:1px solid #e5eaef;border-radius:11px}.factor-list span{color:var(--muted)}.government-history{display:grid;gap:9px;margin-top:12px}.government-history-item{display:flex;justify-content:space-between;align-items:center;gap:1rem;border:1px solid var(--line);border-radius:11px;padding:11px}.government-history-item p{font-size:.77rem;margin:.22rem 0 0}.election-control{display:flex;justify-content:space-between;align-items:center;gap:1rem}.seat-grid{display:grid;gap:.55rem;margin-top:12px}.seat-row{display:grid;grid-template-columns:minmax(130px,1fr) 2fr 72px;gap:.7rem;align-items:center}.election-history{display:grid;gap:10px;margin-top:12px}.election-entry{border:1px solid var(--line);border-radius:11px;padding:11px;background:#fff}.election-entry summary{cursor:pointer;font-weight:800}.settings-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.settings-grid .card{display:flex;flex-direction:column}.settings-grid button{margin-top:.9rem}.button-stack{display:grid;gap:.56rem;margin-top:.8rem}.file-button{display:block;text-align:center;border:1px solid var(--line);border-radius:10px;padding:.64rem .9rem;color:var(--ink)!important;cursor:pointer}.settings-grid output{color:var(--ink);font-weight:800}.small-note{font-size:.75rem!important;margin-top:1rem!important}
.modal[hidden]{display:none!important}.modal{position:fixed;inset:0;background:rgba(5,15,25,.62);z-index:50;display:grid;place-items:center;padding:18px;backdrop-filter:blur(5px)}.modal-card{width:min(760px,100%);max-height:90vh;overflow:auto;background:#fff;border-radius:18px;padding:20px;box-shadow:0 28px 80px rgba(0,0,0,.32)}.modal-card.small{width:min(450px,100%)}.modal-head{display:flex;justify-content:space-between;align-items:flex-start}.modal-head h2{margin:.1rem 0}.modal-head button{font-size:1.5rem;border:0;padding:.2rem .55rem}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.modal-card label small{font-size:.7rem;color:var(--muted)}.modal-actions{display:flex;justify-content:flex-end;gap:.55rem;margin-top:18px}.toast{position:fixed;right:20px;bottom:20px;background:#102337;color:#fff;padding:.78rem 1.05rem;border-radius:11px;z-index:80;box-shadow:var(--shadow)}
@media(max-width:1180px){.status-strip{grid-template-columns:repeat(4,1fr)}.metrics-grid{grid-template-columns:repeat(3,1fr)}.dashboard-grid,.government-grid{grid-template-columns:1fr}.news-list{max-height:300px}}
@media(max-width:950px){.poll-layout,.settings-grid{grid-template-columns:1fr}.party-manager{grid-template-columns:1fr}.action-grid{grid-template-columns:repeat(2,1fr)}.archive-toolbar{grid-template-columns:1fr}.archive-summary{justify-content:flex-start}}
@media(max-width:700px){.topbar{align-items:flex-start;flex-direction:column;border-radius:0 0 18px 18px}.save-tools{width:100%}.compact-label{flex:1}.compact-label select{min-width:0;width:100%}.status-strip{grid-template-columns:repeat(2,1fr);margin-inline:10px}.tabs{padding-left:10px;padding-right:10px}main{padding:0 10px 24px}.metrics-grid,.action-grid,.form-grid{grid-template-columns:1fr}.card-head,.election-control,.section-intro,.setup-banner{flex-direction:column}.turn-controls,.inline-actions{width:100%}.turn-controls button,.inline-actions button{flex:1}.party-row{grid-template-columns:minmax(130px,1fr) minmax(100px,1.6fr) 58px}.party-manage-card{grid-template-columns:1fr}.party-badges{justify-content:flex-start}.coalition-list{grid-template-columns:1fr}.seat-row{grid-template-columns:1fr 1.5fr 58px}.observer-notice{align-items:flex-start}.chart-wrap{min-height:330px}}

/* POLIS SANDBOX 6 — veste istituzionale e cronologie */
:root{
  --navy:#071a2d;--navy-2:#123f6b;--blue:#2d78b7;--blue-soft:#e7f2fb;
  --ink:#112337;--muted:#617488;--line:#d5e0e9;--surface:#ffffff;
  --surface-2:#f3f7fa;--gold:#d3a93d;--gold-soft:#fff4cf;
  --shadow:0 22px 55px rgba(7,26,45,.13);--shadow-soft:0 10px 28px rgba(7,26,45,.09);
}
body{
  background:
    radial-gradient(circle at 4% 4%,rgba(54,134,194,.28),transparent 24%),
    radial-gradient(circle at 95% 12%,rgba(211,169,61,.18),transparent 20%),
    linear-gradient(180deg,#dce9f3 0,#edf3f7 320px,#e8eef3 100%);
}
.app-shell{padding-bottom:24px}
.topbar{
  position:relative;overflow:hidden;padding:23px 26px;
  background:
    radial-gradient(circle at 78% -40%,rgba(255,255,255,.18),transparent 40%),
    linear-gradient(125deg,#06182a 0%,#0e3355 48%,#175a86 100%);
  border-radius:0 0 30px 30px;box-shadow:0 25px 60px rgba(5,23,40,.28);
}
.topbar:after{content:"";position:absolute;right:4%;top:-75px;width:260px;height:260px;border:1px solid rgba(255,255,255,.11);border-radius:50%;box-shadow:0 0 0 32px rgba(255,255,255,.035),0 0 0 66px rgba(255,255,255,.025);pointer-events:none}
.brand-mark{width:54px;height:54px;border-radius:17px;background:linear-gradient(145deg,#fff8dc,#d9b85b);color:#163550;box-shadow:inset 0 0 0 1px rgba(255,255,255,.85),0 10px 24px rgba(0,0,0,.18)}
.brand h1{font-size:1.42rem;letter-spacing:.01em}.brand p{color:#c8ddea;font-size:.82rem}
.status-strip{margin-top:20px;border-radius:19px;background:rgba(191,208,220,.85);box-shadow:0 16px 38px rgba(7,26,45,.12)}
.status-item{background:rgba(255,255,255,.96);padding:13px 14px}.status-item strong{font-size:.94rem}
.tabs{position:sticky;top:0;z-index:20;margin:10px 12px 0;padding:10px;border:1px solid rgba(255,255,255,.8);border-radius:17px;background:rgba(239,245,249,.86);backdrop-filter:blur(18px);box-shadow:0 10px 28px rgba(7,26,45,.08)}
.tab{border-radius:11px}.tab.active{background:linear-gradient(135deg,#0b2946,#1c5d8b);box-shadow:0 9px 22px rgba(13,55,88,.24)}
.panel.active{animation:panelIn .24s ease both}@keyframes panelIn{from{opacity:.35;transform:translateY(6px)}to{opacity:1;transform:none}}
.card{border-color:rgba(190,207,220,.84);border-radius:20px;box-shadow:0 12px 34px rgba(7,26,45,.085)}
.card:hover{border-color:#c2d4e2}.card h2,.section-intro h2,.setup-banner h2,.observer-notice h2{font-size:1.22rem}
.eyebrow{color:#3977a2}.eyebrow.light{color:#b8d9ee}
.primary{background:linear-gradient(135deg,#0f3d65,#267ab0);box-shadow:0 8px 20px rgba(21,91,139,.18)}
.setup-banner{background:linear-gradient(125deg,#ffffff,#eaf5fd 68%,#fff4d7);border-color:#b7d4e7}
.metrics-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.metric-card{position:relative;overflow:hidden;border-radius:18px;background:linear-gradient(155deg,#fff 0%,#f6f9fb 100%)}
.metric-card:before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:linear-gradient(90deg,#1c6fa7,#d4ab3f)}
.metric-card strong{color:#0f3657}.party-manage-card{border-radius:18px;background:linear-gradient(145deg,#fff,#f4f8fb)}
.party-large-swatch{border-radius:13px;box-shadow:0 8px 20px rgba(7,26,45,.16)}
.news-item{border-left-color:#2474a9;background:linear-gradient(90deg,#f3f8fc,#fff)}
.chart-wrap{border-radius:18px;background:linear-gradient(180deg,#fff,#f6f9fb);box-shadow:inset 0 0 0 1px rgba(255,255,255,.9)}
.chart-wrap svg text{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

.section-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:14px;padding:25px 27px;border-radius:24px;color:#fff;background:radial-gradient(circle at 85% 10%,rgba(255,255,255,.17),transparent 30%),linear-gradient(120deg,#081d31,#123e64 55%,#1f6c98);box-shadow:0 22px 50px rgba(7,26,45,.22);overflow:hidden}
.section-hero h2{margin:.15rem 0 .35rem;font-size:1.55rem}.section-hero p{max-width:780px;margin:0;color:#cfe0ec}.hero-seal{width:86px;height:86px;border-radius:50%;display:grid;place-items:center;flex:none;border:2px solid rgba(255,255,255,.55);box-shadow:inset 0 0 0 8px rgba(255,255,255,.08),0 12px 30px rgba(0,0,0,.2);font-size:1.4rem;font-weight:900;letter-spacing:.08em;color:#ffe9a9}
.pm-section-hero{background:radial-gradient(circle at 86% 10%,rgba(255,224,135,.18),transparent 30%),linear-gradient(125deg,#121d33,#273655 55%,#4d2b42)}
.pm-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.pm-timeline-card{overflow:hidden}
.pm-timeline{margin-top:16px}.pm-timeline-scroll{overflow-x:auto;padding:14px 4px 20px;scrollbar-color:#9eb5c6 #e7edf2}.pm-track{display:flex;align-items:stretch;gap:12px;position:relative;padding-top:20px}.pm-track:before{content:"";position:absolute;left:8px;right:8px;top:11px;height:5px;border-radius:999px;background:linear-gradient(90deg,#c7d5df,#8ca9bd,#c7d5df)}
.pm-term{position:relative;flex:none;min-height:205px;border:1px solid #cfdae3;border-radius:17px;background:#fff;overflow:hidden;box-shadow:0 10px 26px rgba(7,26,45,.10)}.pm-term.active{box-shadow:0 0 0 3px rgba(28,111,167,.15),0 15px 34px rgba(7,26,45,.16)}
.pm-term-band{padding:9px 13px;background:var(--pm-color);color:var(--pm-contrast);font-size:.68rem;letter-spacing:.1em;font-weight:900}.pm-term-body{padding:16px;position:relative}.pm-dot{position:absolute;left:17px;top:-31px;width:18px;height:18px;border-radius:50%;background:var(--pm-color);border:4px solid #fff;box-shadow:0 0 0 2px var(--pm-color)}
.pm-term-body small{display:block;color:var(--muted);font-size:.71rem}.pm-term-body h3{margin:.55rem 0 .2rem;font-size:1.08rem}.pm-term-body p{margin:0;color:var(--muted);font-size:.78rem}.pm-term-footer{display:flex;justify-content:space-between;gap:12px;margin-top:18px;padding-top:12px;border-top:1px solid #e3e9ee;font-size:.73rem}.pm-term-footer b{color:#173f61}
.pm-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}.pm-profile-card{display:flex;gap:13px;align-items:center;border:1px solid #d7e1e8;border-left:6px solid var(--pm-color);border-radius:16px;padding:14px;background:linear-gradient(145deg,#fff,#f7f9fb)}.pm-profile-avatar{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;flex:none;font-weight:900;letter-spacing:.05em;box-shadow:0 8px 18px rgba(7,26,45,.16)}.pm-profile-copy{min-width:0;flex:1}.pm-profile-copy h3{margin:.15rem 0}.pm-profile-copy p{margin:.12rem 0;color:var(--muted)}.pm-profile-copy small{display:block;color:var(--muted);font-size:.72rem}.pm-profile-top{display:flex;justify-content:space-between;gap:12px;color:#47718f;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em}.pm-profile-top b{color:#143b5c}.pm-ribbon{display:flex;justify-content:space-between;gap:12px;margin-top:14px;padding:11px 13px;border-left:6px solid var(--pm-color);border-radius:0 12px 12px 0;background:color-mix(in srgb,var(--pm-color) 10%,#fff)}.pm-ribbon span{font-weight:850}.pm-ribbon b{color:var(--muted)}.muted-copy{color:var(--muted)}

.election-chart-stage{margin-top:14px;padding:24px;border-radius:25px;background:radial-gradient(circle at 90% 0,rgba(58,140,196,.28),transparent 28%),linear-gradient(135deg,#061729,#0b2a46 62%,#133f60);box-shadow:0 24px 60px rgba(5,22,38,.28)}.election-chart-head{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;color:#fff}.election-chart-head h2{margin:.15rem 0 .25rem;font-size:1.55rem}.election-chart-head p{margin:0;color:#bad2e2}.glass-button{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.22);color:#fff}.legend-dark .legend-item{color:#d6e5ef}.election-chart-wrap{min-height:510px;background:linear-gradient(180deg,#fff,#f5f8fa);border-color:rgba(255,255,255,.4);box-shadow:0 16px 38px rgba(0,0,0,.20)}
.dispersion-scale{display:flex;justify-content:space-between;gap:10px;margin-top:.2rem;color:var(--muted);font-size:.67rem}.settings-grid label small{color:var(--muted);font-size:.7rem}.settings-grid input[type="range"]{padding:0;border:0;accent-color:#1b6c9f}

@media(max-width:1180px){.metrics-grid{grid-template-columns:repeat(3,1fr)}.pm-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:950px){.pm-card-grid{grid-template-columns:1fr}}
@media(max-width:700px){.tabs{margin-inline:5px;top:0}.section-hero,.election-chart-head{align-items:flex-start;flex-direction:column}.hero-seal{width:64px;height:64px}.pm-metrics{grid-template-columns:1fr}.election-chart-stage{padding:16px;border-radius:19px}.pm-profile-card{align-items:flex-start}.pm-ribbon{flex-direction:column}.metrics-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.metrics-grid{grid-template-columns:1fr}.pm-profile-avatar{width:46px;height:46px;border-radius:13px}.section-hero h2,.election-chart-head h2{font-size:1.32rem}}

/* POLIS SANDBOX 7 — salvataggi robusti, leadership e regole leggibili */
[hidden]{display:none!important}
.metrics-grid{grid-template-columns:repeat(7,minmax(0,1fr))}
.leader-line{color:#29465f!important}.leader-line strong{color:var(--ink)}
.leader-term{grid-column:1/-1;padding:10px 0 2px;border-top:1px solid #e7edf2}.leader-term>div:first-child{display:flex;justify-content:space-between;gap:12px;color:var(--muted);font-size:.72rem}.leader-term b{color:#224e70}.leader-term-track{height:7px;margin-top:7px;border-radius:999px;background:#e6edf2;overflow:hidden}.leader-term-track span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#d5ad43,#287bb4)}
.leadership-archive{display:grid;gap:9px;margin-top:14px}.leadership-record{display:grid;grid-template-columns:8px minmax(0,1fr) auto;gap:12px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:12px;background:linear-gradient(145deg,#fff,#f7fafc)}.leadership-color{align-self:stretch;border-radius:999px}.leadership-record p{font-size:.76rem;margin:.16rem 0 0}.leadership-dates{text-align:right}.leadership-dates b,.leadership-dates small{display:block}.leadership-dates b{font-size:.75rem}.leadership-dates small{color:var(--muted);font-size:.68rem;margin-top:.18rem}
.rules-explainer{margin-top:16px}.rules-explainer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:16px}.rule-explanation{display:grid;grid-template-columns:44px minmax(0,1fr);gap:13px;align-items:start;border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(145deg,#f9fcfe,#eef5fa)}.rule-icon{width:44px;height:44px;border-radius:13px;display:grid;place-items:center;background:#123f66;color:#fff;font-size:1.45rem;font-weight:900}.rule-explanation strong{display:block;font-size:1.05rem;color:#123f66}.rule-explanation p{font-size:.79rem;margin:.3rem 0 0}.dispersion-preview{height:112px;display:flex;align-items:end;gap:7px;margin-top:12px;padding:8px 8px 0;border-bottom:1px solid #cdd9e2}.dispersion-preview>div{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:end;gap:3px;height:100%}.dispersion-preview i{display:block;width:min(26px,80%);min-height:5px;border-radius:6px 6px 2px 2px;background:linear-gradient(180deg,#2b83bc,#164d75)}.dispersion-preview span,.dispersion-preview b{font-size:.61rem}.dispersion-preview span{color:var(--muted)}
.save-indicator strong[title*="database"]{color:var(--success)}
@media(max-width:1280px){.metrics-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:850px){.rules-explainer-grid{grid-template-columns:1fr}.leadership-record{grid-template-columns:8px minmax(0,1fr)}.leadership-dates{grid-column:2;text-align:left}}
@media(max-width:700px){.metrics-grid{grid-template-columns:1fr 1fr}}
@media(max-width:430px){.metrics-grid{grid-template-columns:1fr}.rule-explanation{grid-template-columns:1fr}.rule-icon{width:38px;height:38px}}


/* POLIS SANDBOX 8 — timeline delle leadership */
.leadership-archive{display:grid;gap:18px;margin-top:16px}
.party-leadership-timeline{--party-color:#64748b;--party-contrast:#fff;border:1px solid #cfdae3;border-radius:20px;background:linear-gradient(145deg,#fff,#f5f9fc);overflow:hidden;box-shadow:0 12px 30px rgba(7,26,45,.08)}
.party-leadership-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 17px;border-bottom:1px solid #dbe4ea;background:linear-gradient(90deg,color-mix(in srgb,var(--party-color) 11%,#fff),#fff 54%)}
.party-timeline-identity{display:flex;align-items:center;gap:12px;min-width:0}.party-timeline-swatch{width:14px;height:48px;flex:none;border-radius:999px;background:var(--party-color);box-shadow:0 7px 16px color-mix(in srgb,var(--party-color) 27%,transparent)}
.party-timeline-identity h3{margin:0;font-size:1.03rem}.party-timeline-identity h3 small{color:var(--muted);font-size:.72rem}.party-timeline-identity p{margin:.2rem 0 0;font-size:.74rem;color:var(--muted)}
.timeline-status{padding:6px 9px;border-radius:999px;background:#e7edf2;color:#607487;font-size:.64rem;font-weight:900;letter-spacing:.08em;white-space:nowrap}.timeline-status.active{background:color-mix(in srgb,var(--party-color) 15%,#fff);color:color-mix(in srgb,var(--party-color) 78%,#102033)}
.leader-timeline-scroll{overflow-x:auto;padding:19px 15px 22px;scrollbar-color:#9eb5c6 #e7edf2}.leader-timeline-track{display:flex;align-items:stretch;gap:7px;position:relative;padding-top:19px}.leader-timeline-track:before{content:"";position:absolute;left:8px;right:8px;top:10px;height:5px;border-radius:999px;background:linear-gradient(90deg,color-mix(in srgb,var(--party-color) 35%,#dfe7ed),var(--party-color),color-mix(in srgb,var(--party-color) 35%,#dfe7ed))}
.leader-tenure{position:relative;flex:none;min-height:178px;border:1px solid #d2dde5;border-radius:15px;background:#fff;overflow:hidden;box-shadow:0 8px 20px rgba(7,26,45,.08)}.leader-tenure.active{box-shadow:0 0 0 3px color-mix(in srgb,var(--party-color) 17%,transparent),0 13px 26px rgba(7,26,45,.13)}
.leader-tenure-band{display:flex;justify-content:space-between;gap:8px;padding:8px 11px;background:var(--party-color);color:var(--party-contrast);font-size:.64rem;font-weight:900;letter-spacing:.075em}.leader-tenure-band b{white-space:nowrap}.leader-tenure-body{position:relative;padding:14px}.leader-timeline-dot{position:absolute;left:15px;top:-27px;width:16px;height:16px;border-radius:50%;background:var(--party-color);border:4px solid #fff;box-shadow:0 0 0 2px var(--party-color)}
.leader-tenure-body small{display:block;color:var(--muted);font-size:.69rem}.leader-tenure-body h4{margin:.52rem 0 .18rem;font-size:1rem}.leader-tenure-body p{margin:0;color:#41627c;font-size:.75rem}.leader-tenure-body footer{margin-top:14px;padding-top:10px;border-top:1px solid #e4eaef;color:var(--muted);font-size:.69rem}
.pm-national-track{gap:7px}.pm-national-track .pm-term{min-height:190px}.pm-term-band{display:flex;justify-content:space-between;gap:10px}.pm-term-band b{font-size:.66rem;white-space:nowrap}
@media(max-width:700px){.party-leadership-header{align-items:flex-start;flex-direction:column}.leader-timeline-scroll{padding-inline:10px}}
.leader-tenure-band{padding-left:34px}.pm-term-band{padding-left:38px}
