: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}

/* ==========================================================================\n   POLIS SANDBOX 9 — interfaccia da gioco politico\n   ========================================================================== */
:root{
  --game-night:#07111f;
  --game-night-2:#0a1b2e;
  --game-panel:#10263d;
  --game-panel-2:#163653;
  --game-gold:#d9b85f;
  --game-gold-soft:#f1dea6;
  --game-cyan:#68b9df;
  --game-paper:#f3efe5;
  --game-ink:#142033;
  --game-accent:#2d78b2;
  --game-party:#2d78b2;
  --game-party-contrast:#fff;
  --game-shadow:0 24px 64px rgba(0,0,0,.28);
}
html{background:var(--game-night);color:var(--game-ink)}
body{
  min-height:100vh;
  color:var(--game-ink);
  background:
    linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px),
    radial-gradient(circle at 10% 5%,color-mix(in srgb,var(--game-party) 23%,transparent),transparent 32%),
    radial-gradient(circle at 92% 12%,rgba(216,184,95,.16),transparent 25%),
    linear-gradient(180deg,#06101d 0,#0a1b2e 41%,#0c2034 100%);
  background-size:34px 34px,34px 34px,auto,auto,auto;
  background-attachment:fixed;
}
body:before{
  content:"";
  position:fixed;
  inset:0;
  z-index:-3;
  pointer-events:none;
  background:
    linear-gradient(120deg,transparent 0 47%,rgba(255,255,255,.018) 47.2% 47.7%,transparent 47.9%),
    radial-gradient(ellipse at center top,transparent 0 48%,rgba(0,0,0,.16) 100%);
}
body:after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index:9998;
  box-shadow:inset 0 0 150px rgba(0,0,0,.35);
}
.ambient{opacity:.22;filter:blur(95px)}
.ambient-one{background:var(--game-party)}
.ambient-two{background:#c39236}
.app-shell{width:min(1560px,100%);padding-bottom:34px}

/* Top command deck */
.topbar{
  position:relative;
  overflow:hidden;
  min-height:116px;
  padding:22px 27px;
  border-radius:0 0 28px 28px;
  background:
    linear-gradient(90deg,rgba(255,255,255,.035),transparent 34%),
    radial-gradient(circle at 14% 0,color-mix(in srgb,var(--game-party) 38%,transparent),transparent 34%),
    linear-gradient(135deg,#050d18,#0b2138 58%,#102f4b);
  border-bottom:1px solid rgba(217,184,95,.26);
  box-shadow:0 24px 55px rgba(0,0,0,.35),inset 0 -1px rgba(255,255,255,.05);
}
.topbar:before{
  content:"";
  position:absolute;
  inset:auto 0 0;
  height:4px;
  background:linear-gradient(90deg,transparent,var(--game-party),var(--game-gold),var(--game-party),transparent);
  opacity:.85;
}
.topbar:after{
  content:"POLIS NATIONAL COMMAND";
  position:absolute;
  right:24px;
  top:9px;
  font-size:.56rem;
  letter-spacing:.32em;
  color:rgba(255,255,255,.22);
  font-weight:900;
}
.game-brand{position:relative;z-index:1}
.game-seal{
  width:62px;height:62px;border-radius:50%;
  background:
    radial-gradient(circle,#f8e6ad 0 32%,#c79b38 33% 40%,#102a45 41% 62%,#d7b75d 63% 69%,#071422 70%);
  color:#10283f;
  box-shadow:0 0 0 3px rgba(217,184,95,.19),0 12px 26px rgba(0,0,0,.36);
  position:relative;
}
.game-seal:before,.game-seal:after{content:"";position:absolute;left:50%;transform:translateX(-50%);width:24px;height:5px;border-radius:999px;background:#10283f;opacity:.72}
.game-seal:before{top:16px}.game-seal:after{bottom:16px}
.game-seal span{position:relative;z-index:2;font-family:Georgia,serif;font-size:1.08rem;letter-spacing:.04em}
.brand-kicker{display:flex;align-items:center;gap:7px;color:#a9cfe3;font-size:.61rem;letter-spacing:.17em;font-weight:900;margin-bottom:3px}
.live-dot,.signal-dot{width:8px;height:8px;border-radius:50%;background:#61d28e;box-shadow:0 0 0 4px rgba(97,210,142,.12),0 0 15px rgba(97,210,142,.72);animation:livePulse 2.1s ease-in-out infinite}
.brand h1{font-family:Georgia,"Times New Roman",serif;font-size:1.58rem;letter-spacing:.015em;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.brand h1 em{font-style:normal;color:var(--game-gold-soft);font-size:.82em;margin-left:.2rem}
.brand p{color:#9fb8ca;font-size:.78rem;letter-spacing:.025em}
.save-tools{position:relative;z-index:1;background:rgba(5,14,24,.42);padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:16px;box-shadow:inset 0 1px rgba(255,255,255,.04)}
.compact-label{color:#99b4c8;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.compact-label select{background:#0a1b2c;color:#eef6fb;border:1px solid rgba(255,255,255,.14);min-width:200px}
.topbar button{border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.06);color:#eef6fb;box-shadow:none}
.topbar button:hover{background:rgba(255,255,255,.12);border-color:rgba(217,184,95,.38)}
.topbar button.primary{background:linear-gradient(135deg,#f4df9e,#c69b3f);color:#112034;border:1px solid #ffe8a5;text-shadow:none;box-shadow:0 8px 22px rgba(197,153,58,.22)}

/* HUD */
.status-strip{
  grid-template-columns:repeat(8,minmax(105px,1fr));
  margin:15px 18px 0;
  gap:1px;
  background:rgba(216,184,95,.2);
  border:1px solid rgba(216,184,95,.24);
  border-radius:17px;
  box-shadow:0 16px 36px rgba(0,0,0,.24);
}
.status-item{
  position:relative;
  padding:13px 14px 12px 17px;
  color:#eef5fa;
  background:linear-gradient(180deg,rgba(21,49,76,.96),rgba(9,28,46,.96));
}
.status-item:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:999px;background:var(--game-party);opacity:.75}
.status-item span{color:#7898af;font-size:.6rem;font-weight:850;letter-spacing:.12em}
.status-item strong{font-size:.89rem;color:#f6fbff;letter-spacing:.01em}
.status-item:nth-child(4):before,.status-item:nth-child(6):before{background:var(--game-gold)}
.save-indicator strong{color:#72d79b}

.game-ribbon{
  margin:11px 18px 0;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:15px;
  min-height:44px;
  padding:7px 10px 7px 14px;
  color:#d7e6ef;
  border:1px solid rgba(255,255,255,.09);
  border-radius:14px;
  background:linear-gradient(90deg,rgba(5,17,29,.93),rgba(15,42,66,.94),rgba(5,17,29,.93));
  box-shadow:inset 0 1px rgba(255,255,255,.04),0 11px 25px rgba(0,0,0,.19);
}
.game-ribbon-signal{display:flex;align-items:center;gap:9px;color:#8bdbaa;font-size:.62rem;letter-spacing:.13em;white-space:nowrap}
.political-ticker{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:Georgia,serif;font-size:.83rem;color:#c5d5df;text-align:center}
.resource-pills{display:flex;gap:6px}.resource-pills span{padding:5px 8px;border-radius:7px;background:rgba(216,184,95,.12);border:1px solid rgba(216,184,95,.2);color:#f0d996;font-size:.59rem;font-weight:900;letter-spacing:.08em}

/* Game navigation */
.tabs.game-nav{
  position:sticky;
  top:0;
  z-index:25;
  gap:7px;
  margin:10px 18px 0;
  padding:8px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:17px;
  background:rgba(4,14,24,.89);
  backdrop-filter:blur(16px);
  box-shadow:0 14px 32px rgba(0,0,0,.25);
}
.tab{
  display:flex;align-items:center;gap:7px;
  min-height:42px;
  color:#8fa9bc;
  background:transparent;
  border:1px solid transparent;
  border-radius:11px;
  font-size:.76rem;
  letter-spacing:.015em;
}
.tab:hover{color:#eaf4fa;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.07);box-shadow:none}
.tab.active{
  color:#fff;
  background:linear-gradient(135deg,color-mix(in srgb,var(--game-party) 78%,#18364e),color-mix(in srgb,var(--game-party) 50%,#081725));
  border-color:color-mix(in srgb,var(--game-party) 55%,#fff);
  box-shadow:0 0 0 1px rgba(255,255,255,.05) inset,0 8px 22px color-mix(in srgb,var(--game-party) 24%,transparent);
}
.tab-icon{width:23px;height:23px;border-radius:7px;display:grid;place-items:center;background:rgba(255,255,255,.07);font-size:.9rem;color:#b7cddd}
.tab.active .tab-icon{background:rgba(255,255,255,.15);color:#fff}
main{padding:0 18px 36px}
.panel{animation:panelReveal .26s ease-out}

/* Strategic hero */
.command-hero{
  position:relative;
  overflow:hidden;
  min-height:210px;
  margin-top:14px;
  padding:28px 32px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:25px;
  color:#fff;
  border:1px solid rgba(217,184,95,.22);
  border-radius:24px;
  background:
    linear-gradient(90deg,rgba(3,13,23,.1),rgba(3,13,23,.65)),
    radial-gradient(circle at 77% 44%,color-mix(in srgb,var(--game-party) 49%,transparent),transparent 28%),
    linear-gradient(135deg,#102d47 0,#081827 61%,#0b2134 100%);
  box-shadow:var(--game-shadow),inset 0 1px rgba(255,255,255,.07);
}
.command-hero:before{
  content:"";
  position:absolute;
  inset:0;
  opacity:.28;
  background:
    linear-gradient(30deg,transparent 48%,rgba(255,255,255,.05) 49% 50%,transparent 51%),
    linear-gradient(150deg,transparent 48%,rgba(255,255,255,.035) 49% 50%,transparent 51%);
  background-size:42px 42px;
}
.command-hero:after{content:"";position:absolute;left:0;right:0;bottom:0;height:5px;background:linear-gradient(90deg,var(--game-party),var(--game-gold),transparent)}
.command-hero-copy{position:relative;z-index:2;max-width:850px}.eyebrow.light{color:#b5d9eb}
.command-hero h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.55rem,3vw,2.35rem);margin:.3rem 0 .45rem;line-height:1.08;letter-spacing:.01em}
.command-hero p{max-width:760px;margin:0;color:#a8c0d0;font-size:.91rem}
.hero-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.hero-chip{padding:7px 10px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:rgba(255,255,255,.065);color:#dcebf3;font-size:.69rem;font-weight:800}
.political-orb{position:relative;z-index:2;width:154px;height:154px;border-radius:50%;flex:none;display:grid;place-content:center;text-align:center;background:radial-gradient(circle,#102b44 0 46%,rgba(6,19,31,.92) 47% 62%,transparent 63%);border:1px solid rgba(217,184,95,.42);box-shadow:0 0 0 10px rgba(255,255,255,.025),0 0 45px color-mix(in srgb,var(--game-party) 35%,transparent)}
.political-orb:before,.political-orb:after{content:"";position:absolute;inset:-11px;border-radius:50%;border:1px solid color-mix(in srgb,var(--game-party) 46%,transparent);animation:orbRotate 13s linear infinite}.political-orb:after{inset:11px;border-style:dashed;animation-direction:reverse;animation-duration:9s}.political-orb strong{font-family:Georgia,serif;font-size:2rem;color:#fff;text-shadow:0 0 20px color-mix(in srgb,var(--game-party) 65%,transparent)}.political-orb span{display:block;margin-top:2px;font-size:.52rem;color:#91b0c4;letter-spacing:.14em;font-weight:900}

/* Surfaces */
.card,.metric-card{
  border-color:rgba(185,199,210,.73);
  background:
    linear-gradient(145deg,rgba(255,255,255,.985),rgba(239,244,247,.97));
  box-shadow:0 15px 38px rgba(0,0,0,.18),inset 0 1px #fff;
}
.card{border-radius:18px;position:relative;overflow:hidden}
.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:linear-gradient(180deg,var(--game-party),transparent 70%);opacity:.88}
.card-head h2,.section-intro h2,.setup-banner h2,.observer-notice h2{font-family:Georgia,"Times New Roman",serif;font-size:1.3rem;letter-spacing:.01em}
.eyebrow{color:#346584;font-size:.62rem;letter-spacing:.14em}
.badge,.infinity-pill{border:1px solid rgba(41,101,139,.16);box-shadow:inset 0 1px rgba(255,255,255,.65)}
.primary{background:linear-gradient(135deg,color-mix(in srgb,var(--game-party) 76%,#21415d),color-mix(in srgb,var(--game-party) 52%,#0a243a));border-color:color-mix(in srgb,var(--game-party) 64%,#fff);box-shadow:0 8px 19px color-mix(in srgb,var(--game-party) 20%,transparent)}
button{border-radius:9px;letter-spacing:.01em}
button:hover{transform:translateY(-2px);box-shadow:0 9px 20px rgba(13,37,57,.14)}
.setup-banner{background:linear-gradient(135deg,#fff7dc,#f0e3b7);border-color:#d7b75d}.setup-banner:before{content:"MISSIONE INIZIALE";position:absolute;right:20px;top:14px;font-size:.57rem;letter-spacing:.16em;color:#896a20;font-weight:900}

.dashboard-grid{grid-template-columns:minmax(0,1.7fr) minmax(310px,.72fr);gap:15px}
.standings-card{background:linear-gradient(150deg,#f9fbfc,#e7eef3)}
.standings-card:after{content:"CAMERA ELETTORALE";position:absolute;right:18px;bottom:11px;color:rgba(20,46,68,.09);font-size:1.35rem;font-weight:950;letter-spacing:.12em;pointer-events:none}
.news-card{background:linear-gradient(165deg,#132b42,#0b1d30);color:#eef7fb;border-color:rgba(217,184,95,.2)}
.news-card:before{background:linear-gradient(180deg,var(--game-gold),transparent)}
.news-card h2{color:#fff}.news-card p{color:#9eb5c5}.news-card .eyebrow{color:#d1ba79}.news-card .badge{background:rgba(217,184,95,.12);color:#f2d991;border-color:rgba(217,184,95,.22)}
.news-list{max-height:510px}.news-item{position:relative;border-left:3px solid var(--game-party);background:rgba(255,255,255,.055);border-radius:0 9px 9px 0;padding:.72rem .82rem}.news-item:after{content:"";position:absolute;left:-6px;top:14px;width:9px;height:9px;border-radius:50%;background:var(--game-party);box-shadow:0 0 0 4px rgba(255,255,255,.05)}.news-item strong{color:#f2f7fa}.news-item p,.news-date{color:#91aabd}
.party-row{position:relative;padding:.78rem .1rem;border-top:1px solid #dbe4ea}.party-row:hover{background:rgba(35,104,150,.035)}.bar-track{height:14px;background:#dce5eb;box-shadow:inset 0 1px 3px rgba(0,0,0,.1)}.bar-fill{box-shadow:inset 0 1px rgba(255,255,255,.35),0 0 12px color-mix(in srgb,currentColor 20%,transparent)}.party-value{font-family:Georgia,serif;font-size:1rem}
.metrics-grid{gap:12px}.metric-card{position:relative;overflow:hidden;border-radius:14px;padding:15px 15px 14px 17px}.metric-card:before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--game-party)}.metric-card strong{font-family:Georgia,serif;font-size:1.48rem;color:#102b43}.metric-card span{font-size:.68rem;text-transform:uppercase;letter-spacing:.09em;font-weight:850}.metric-card small{font-size:.7rem}

/* Party roster as game cards */
.party-manager{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.party-manage-card{
  position:relative;
  overflow:hidden;
  min-height:182px;
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:stretch;
  padding:16px;
  border-radius:17px;
  background:
    radial-gradient(circle at 100% 0,color-mix(in srgb,var(--party-card-color,#3b82a8) 16%,transparent),transparent 35%),
    linear-gradient(155deg,#fff,#edf3f6);
  box-shadow:0 12px 30px rgba(8,29,46,.12);
}
.party-manage-card:before{content:"";position:absolute;inset:0 0 auto;height:5px;background:var(--party-card-color,var(--game-party))}
.party-manage-card:hover{transform:translateY(-4px);box-shadow:0 20px 38px rgba(8,29,46,.18)}
.party-manage-main{align-items:flex-start}.party-large-swatch{width:50px;height:50px;border-radius:50%;box-shadow:0 0 0 4px rgba(255,255,255,.8),0 8px 18px rgba(0,0,0,.18)}.party-manage-main h3{font-family:Georgia,serif;font-size:1.09rem}.party-manage-main p{line-height:1.55}.party-badges{justify-content:flex-start;flex-wrap:wrap;margin-top:8px}.party-manage-actions{margin-top:auto;justify-content:stretch}.party-manage-actions button{flex:1;font-size:.72rem}.player-tag,.government-tag,.opposition-tag,.pole-tag,.observer-tag{border-radius:999px;padding:.22rem .46rem;letter-spacing:.045em}

/* Campaign action deck */
.action-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.action-card{position:relative;min-height:205px;padding:16px;border-radius:16px;background:linear-gradient(155deg,#fff,#eaf1f5);overflow:hidden}.action-card:before{content:"STRATEGIA";position:absolute;right:10px;top:8px;font-size:.52rem;color:rgba(26,65,93,.2);font-weight:950;letter-spacing:.13em}.action-card h3{font-family:Georgia,serif;font-size:1.07rem}.action-card button{margin-top:auto}.observer-notice{background:linear-gradient(135deg,#122f49,#0b2033);color:#f2f8fb;border-color:rgba(217,184,95,.28)}.observer-notice h2{color:#fff}.observer-notice p{color:#a9bdca}.observer-icon{background:radial-gradient(circle,#dfbd63,#b58a2d);color:#17293a;box-shadow:0 0 0 5px rgba(217,184,95,.12)}

/* Charts and archives */
.chart-card{background:linear-gradient(150deg,#f8fafb,#e8eef2)}
.chart-wrap{border:1px solid #c8d5df;background:linear-gradient(180deg,#fbfcfd,#edf2f5);box-shadow:inset 0 0 35px rgba(25,61,89,.045)}
.legend-item{font-weight:800}.legend-line{box-shadow:0 0 8px rgba(0,0,0,.18)}
.poll-control-card{background:linear-gradient(165deg,#102c46,#0a1b2c);color:#fff;border-color:rgba(217,184,95,.2)}.poll-control-card:before{background:var(--game-gold)}.poll-control-card h2{color:#fff}.poll-control-card .rule-row{border-color:rgba(255,255,255,.1);color:#a9becc}.poll-control-card .rule-row strong{color:#f1f7fb}.poll-control-card .latest-poll{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.1);color:#dce8ef}.poll-control-card button{background:linear-gradient(135deg,#f0d68a,#bf9132);color:#142538;border-color:#f4dc91}
.archive-toolbar{background:linear-gradient(135deg,#f8f3e4,#ece2c4);border-color:#d5bf7f}

/* Government and institutional sections */
.government-grid>.card:first-child{background:linear-gradient(150deg,#0e2a43,#071a2c);color:#eff8fb;border-color:rgba(217,184,95,.25)}.government-grid>.card:first-child:before{background:var(--game-gold)}.government-grid>.card:first-child h2,.government-grid>.card:first-child h3{color:#fff}.government-grid>.card:first-child p{color:#a7bdca}
.section-hero,.election-chart-stage{border:1px solid rgba(217,184,95,.24);box-shadow:var(--game-shadow)}
.pm-section-hero{background:radial-gradient(circle at 88% 20%,color-mix(in srgb,var(--game-party) 35%,transparent),transparent 27%),linear-gradient(135deg,#071a2c,#123653)}
.hero-seal{border:2px solid rgba(217,184,95,.55);background:radial-gradient(circle,#e8cd82,#aa7e2b);color:#12263a;box-shadow:0 0 0 9px rgba(217,184,95,.08),0 12px 35px rgba(0,0,0,.3)}
.pm-timeline-card,.leadership-archive-card{background:linear-gradient(155deg,#f7f3e8,#e7edf1)}
.party-leadership-timeline{border-color:#bfcbd4;box-shadow:0 17px 35px rgba(7,26,45,.13)}
.leader-tenure,.pm-term{transition:.2s ease}.leader-tenure:hover,.pm-term:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(7,26,45,.18)}
.election-control{background:linear-gradient(135deg,#f9f1da,#ece0bd);border-color:#d6bd74}.latest-election:not(.empty){background:linear-gradient(145deg,#102e49,#071a2d);color:#eef7fb;border-color:rgba(217,184,95,.24)}
.election-chart-stage{background:radial-gradient(circle at 90% 0,color-mix(in srgb,var(--game-party) 34%,transparent),transparent 28%),linear-gradient(135deg,#050f1b,#09233a 62%,#113e5f)}

/* Settings as control room */
.settings-grid .card{background:linear-gradient(155deg,#f8fafb,#e9eff3)}
.rules-explainer{background:linear-gradient(145deg,#102c46,#071a2c);color:#f0f7fb;border-color:rgba(217,184,95,.22)}.rules-explainer:before{background:var(--game-gold)}.rules-explainer h2{color:#fff}.rules-explainer p{color:#9fb6c5}.rules-explainer .eyebrow{color:#dfc77f}.rule-explanation{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.11)}.rule-explanation strong{color:#f3df9f}.rule-explanation p{color:#adc1ce}.rule-icon{background:linear-gradient(135deg,var(--game-party),#173f5c);box-shadow:0 8px 20px rgba(0,0,0,.24)}
input[type="range"]{height:6px;background:#d4dee5;border-radius:999px}

/* Tables */
.table-wrap{border:1px solid #cad6de;border-radius:12px;overflow:auto;background:#fff}table{border-collapse:separate;border-spacing:0}thead th{position:sticky;top:0;background:#102d47;color:#eef6fa;font-size:.67rem;letter-spacing:.06em;text-transform:uppercase}tbody tr:nth-child(even){background:#f3f6f8}tbody tr:hover{background:#e8f0f5}

/* Modals as game windows */
.modal{background:rgba(2,8,15,.76);backdrop-filter:blur(8px)}
.modal-card{border:1px solid rgba(217,184,95,.38);border-radius:20px;background:linear-gradient(155deg,#f8f6ef,#e7edf1);box-shadow:0 34px 90px rgba(0,0,0,.5)}
.modal-head{margin:-1px -1px 14px;padding:15px 17px;background:linear-gradient(135deg,#102f4b,#071a2d);color:#fff;border-radius:19px 19px 0 0}.modal-head h2{font-family:Georgia,serif}.modal-head .eyebrow{color:#d9c27d}.modal-head button{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.13);color:#fff}
.toast{background:linear-gradient(135deg,#102f4b,#071827);border:1px solid rgba(217,184,95,.3);color:#fff;box-shadow:0 16px 45px rgba(0,0,0,.42)}

/* Turn feedback */
body.time-pulse .command-hero{animation:turnFlash .62s ease}
body.time-pulse .signal-dot{animation:none;background:#f2ce6f;box-shadow:0 0 0 5px rgba(242,206,111,.15),0 0 20px rgba(242,206,111,.8)}

@keyframes livePulse{0%,100%{transform:scale(.86);opacity:.72}50%{transform:scale(1.08);opacity:1}}
@keyframes orbRotate{to{transform:rotate(360deg)}}
@keyframes panelReveal{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@keyframes turnFlash{0%{box-shadow:var(--game-shadow)}35%{box-shadow:0 0 0 2px var(--game-gold),0 0 50px color-mix(in srgb,var(--game-party) 55%,transparent)}100%{box-shadow:var(--game-shadow)}}

@media(max-width:1280px){
  .party-manager{grid-template-columns:repeat(2,minmax(0,1fr))}
  .status-strip{grid-template-columns:repeat(4,minmax(120px,1fr))}
}
@media(max-width:980px){
  .topbar{align-items:flex-start;flex-direction:column}.save-tools{width:100%}.compact-label{flex:1}.compact-label select{width:100%;min-width:0}
  .dashboard-grid{grid-template-columns:1fr}.news-list{max-height:320px}.political-orb{width:125px;height:125px}.political-orb strong{font-size:1.55rem}
  .game-ribbon{grid-template-columns:auto minmax(0,1fr)}.resource-pills{display:none}
}
@media(max-width:760px){
  body:after{box-shadow:inset 0 0 70px rgba(0,0,0,.24)}
  .topbar{min-height:0;padding:17px 15px;border-radius:0 0 20px 20px}.game-seal{width:53px;height:53px}.brand h1{font-size:1.32rem}.brand p{display:none}.topbar:after{display:none}
  .status-strip{margin-inline:10px;grid-template-columns:repeat(2,minmax(0,1fr));border-radius:13px}.status-item{padding:10px 11px 10px 14px}
  .game-ribbon{margin-inline:10px;grid-template-columns:1fr}.game-ribbon-signal{display:none}.political-ticker{text-align:left;font-size:.76rem}
  .tabs.game-nav{margin-inline:10px;padding:6px}.tab{min-width:47px;justify-content:center;padding:.55rem}.tab>span:last-child{display:none}.tab-icon{width:28px;height:28px}
  main{padding-inline:10px}.command-hero{padding:22px 19px;min-height:0;align-items:flex-start}.political-orb{display:none}.command-hero h2{font-size:1.62rem}.hero-chips{gap:5px}.hero-chip{font-size:.62rem}
  .party-manager{grid-template-columns:1fr}.action-grid{grid-template-columns:1fr}.card{padding:15px}.card-head{flex-direction:column}.turn-controls{width:100%}.turn-controls button{flex:1}
}
@media(max-width:430px){
  .save-tools{display:grid;grid-template-columns:repeat(2,1fr)}.compact-label{grid-column:1/-1}.save-tools button{width:100%}
  .brand-kicker{font-size:.53rem}.game-seal{width:47px;height:47px}.brand h1{font-size:1.15rem}
  .status-strip{grid-template-columns:1fr 1fr}.status-item strong{font-size:.8rem}.command-hero h2{font-size:1.42rem}
  .hero-chips{display:grid;grid-template-columns:1fr}.hero-chip{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
}
.party-rank{width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:#102d47;color:#fff;font-size:.66rem;font-weight:900;flex:none;box-shadow:0 4px 10px rgba(0,0,0,.13)}
.news-index{float:right;color:rgba(255,255,255,.2);font-family:Georgia,serif;font-size:1.05rem;font-weight:900;margin-left:8px}
